[SOLUCIONADO] ¿Por que este código de ruby congela Kali Linux completamente?

Iniciado por iGreentick, Junio 22, 2016, 10:11:38 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Buenas a todos. Antes de comenzar (Por si desvarío un poco) cabe destacar que comencé mi primera guía de Ruby hace 4 días literalmente; y es mi primer lenguaje de programación; con lo que todavía soy demasiado noob. (Tiempo al tiempo....)

El caso; he estado siguiendo unas practicas; y yo.. que soy muy curioso; he querido probar cosas por mi cuenta.. he creado un código muy muy muy básico (No sabria crear nada mas) en el que una parte de él, creaba una matriz vacía, y seguídamente hacía un while con la condición de que si dentro de la matriz no está X objeto (En este caso 0 ), en la misma matriz se le añadirá un objeto (En este caso 1) esto por lo que entiendo hace que se cree un bucle infinito añadiendo ese mismo objeto todo el rato.

El código no era sólo eso; pero me di cuenta que al llegar a ese paso; el ordenador se me CONGELABA y no me dejaba hacer nada. (incluso entrar a modo comandas con CTRL + ALT + F1) . He intentado lanzar ese código 3 veces y las 3; he tenido que apagar el equipo de manera forzada.

Al ver que me pasaba eso; he intentado sacar esa parte del código y hacerla más simple. He querido comprobar si DE VERDAD ese código congela mi ordenador; y sí, lo hace cada vez que lo inicio.

Me gustaría que alguien más probase el código y me diga si le ocurre lo mismo. También; si alguien (Que seguro que alguien habrá) Sabe por qué pasa esto; me gustaría que me lo explicase, para así, poder entenderlo todo bien.

PD: Si no se os congela cuando lancéis el codigo; intentad usar un poco vuestro equipo (Entrar a alguna carpeta, abrir navegador..)

Citar
x = []
while x != '0'
x.push '1'
end
puts 'si el texto sale; algo ha ido mal'


PD2: ¿Es correcto usar la terminación 'Lanzar' para ejecutar un archivo ruby? en caso contrario; como se diría correctamente?.
Gracias!
8Noobs <- Más que una comunidad, una familia. (www.8noobs.hol.es)

La percepción, es solo una percepción

No entiendo ruby pero supongo que es una sobrecarga de la memoria.
Si no colocas una parada while se hará infinito sobrecargado la memoria.

Hmmm, dos cositas.
1- ¿Una qué while? No se apenas de progamación.. qué es eso y cómo se pone.
2- Entonces.. si este código sobrecarga la memoria;  encuentro algo que este escrito con ruby., le meto ese trozo de código dentro.. y podría decirse que he modificado eso para que sea una especie de "programa que te deja el ordenador colapsado?"
8Noobs <- Más que una comunidad, una familia. (www.8noobs.hol.es)

La percepción, es solo una percepción

Acá tienes una definición . no puedo escribir mucho porque se me complica desde el smartphone

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Es como una bomba fork... ¿no?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Buenas; Por lo que me he informado.. (Como siempre repito.. no sé si lo que digo es bien bien cierto, ya que todavía estoy aprendiendo) quizás, no es bien bien como una bomba fork; pero se le parece un poco...

El caso es; la bomba fork por lo que he leido; es un proceso, que crea a su vez dos procesos que a su vez cada proceso crea otros dos.. bla bla bla bla BOOM.

pero... con ese código, lo que haces es crear una matriz (Un baul, por asi decirlo) y añadir un objeto repetidas veces en ese baúl.. con lo que el baul va creciendo.. y creciendo.. y llenando la ram.. y creciendo.. y llenando al ram.. y creciendo más.. hasta que la ram llega a su tope. pero TODO eso se hace desde un único proceso.


¿ME EQUIVOCO?! (espero que sí, es muy raro que pille las cosas tan rapidamente)
8Noobs <- Más que una comunidad, una familia. (www.8noobs.hol.es)

La percepción, es solo una percepción

Es normal que si empiezas a llenar la ram todo el rato y siga y siga, deje de responder el ordenador, igual que cuando haces un bucle infinito en php seguramente te colapse el navegador.

Es algo lógico es como si me pongo a darte puñetazos infinitamente en algun momento te caeras.
O como cuando realizan un ataque ddos si el servidor no deja de recibir muchas peticiones en breve tiempo en algun momento caera.
No esperes nada, vive la vida, y que los demas hagan lo que ellos creen.

Es como si hicieras esto para windows

Citar:start
start calc.exe
goto start

Aunque tengas una computadora veloz llegara un punto en que se saturara la memoria y moriras!
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta