Eli
261meneos

En las profesiones serias... esto no pasa.

En cuanto hablas de procesos con alguien windowsero o del mundo exterior... ¿que coño es eso?

negativos: 2  usuarios: 261  anónimos: 0  compartir:  twitter  facebook  friendfeed
  1. #1   Un apunte a la charla:

    Los zombies mueren al matar al padre, hasta ahí correcto, pero es una chapuza hacer eso. El proceso hijo queda zombie a la espera que se lea la información que dió al terminar. Para leerla se puede usar waitpid() <sop.upv.es/sso/transparencias/proc/tsld011.htm;, por ejemplo así:

    int main(int argc, char **argv)
    {
    int status;
    pid_t PID_Hijo;
    PID_Hijo=fork();
    if(!PID_Hijo) exit(0);
    else
    while(1){waitpid(PID_Hijo,&status,WNOHANG);}

    return 1;
    }

    Así se quita de la tabla de procesos correctamente.
    NOTA: Para terminar haced Ctrl+C XD
    votos: 6, karma: 54
    por kasterlinkel 09-05-2007 20:07 UTC
  2. #2   Zombies?????
    vaya guarrería, las personas serias utilizan plan9 jejejejejejejeje
    votos: 2, karma: 16
    por odinlinkel 09-05-2007 20:48 UTC
  3. #3   En mis tiempos, los hombres de verdad mataban a los zombies con escopetas recortadas :-P
    votos: 10, karma: 88
    por jotapelinkel 09-05-2007 20:58 UTC
  4. #4   Los hombres de verdad matan los procesos dándole un puñetazo a la torre xD
    votos: 8, karma: 70
    por DZPMlinkel 09-05-2007 21:01 UTC
  5. #5   uhmm, suena como kriptópolis y las bombas fork

    int main()
    {
    while(1)
    {fork();}
    return 1;
    }
    votos: 0, karma: 5
    por dev_eddielinkel 09-05-2007 21:18 UTC
  6. #6   Hola,

    En las profesiones serias la gente envía enlaces que apuntan a la noticia, no a los comentarios ;-)
    votos: 6, karma: 52
    por baclinkel 09-05-2007 21:28 UTC
  7. #7   #6, gracias, arreglado.

    ¿Nadie se ha dado cuenta hasta el voto número 60? xD
    votos: 1, karma: 22
    por DZPMlinkel 09-05-2007 21:32 UTC
  8. por --7500--linkel 09-05-2007 21:34 UTC
  9. #9   #5 Me has pillado, quería joder a todos los talibanes linuxeros...No ha colado?

    PD: Es broma, si te fijas bien en el bucle entra una vez, y no crea procesos dentro de él.

    salu2 ;)
    votos: 1, karma: 1
    por kasterlinkel 09-05-2007 22:09 UTC
  10. #10   Hola, soy windowsero y sé perfectamente lo que es un proceso en estado Zombie. No todos los que usamos windows somos tan listos como los que usan Linux, pero te aseguro que unos cuantos lo intentamos.
    votos: 13, karma: 90
    por Jimmy_RAYlinkel 10-05-2007 01:34 UTC
  11. #11   Yo con windows no necesito eso. Microsoft me manda un chuck norris con el cd de instalación.
    votos: 12, karma: 69
    por Undefinedlinkel 10-05-2007 01:38 UTC
  12. #12   Aquí va una de las prácticas de Laboratorio de Sistemas Operativos de la USAL de hace... 2 o 3 años. Esto sólo es un par de cachos para que os hagáis una idea:

    –-
    El mecanismo de procreación, tanto para elfos como para hobbits, consistirá en los siguientes pasos:

    1. La parte femenina de la pareja mostrará su disponibilidad para la procreación enviando la señal SIGUSR1 a su pareja.

    2. La parte masculina, una vez recibida la señal, responde a su pareja enviando la señal SIGUSR1.

    3. La parte femenina decide cuántas veces se ha de repetir los dos pasos anteriores al azar (entre 2 y 11, úsese la función rand()).

    4. Una vez satisfecha, y como no necesita más de la parte masculina, le envía la señal SIGTERM. Su pareja muere, por consiguiente.

    5. La parte femenina, finalmente, tiene un proceso hijo. La única diferencia en el proceso de procreación de hobbit y elfos está en que los elfos lo realizan sin consumir CPU mientras que los hobbits (al igual que los humanos, por cierto) sí que la consumen y realizan espera ocupada.
    –-

    Eso es de una, y aquí va otro cacho...

    –-
    La lucha entre los dos magos seguirá las siguientes reglas:

    1. El campo de batalla es una zona de memoria compartida donde se aloja una variable energia de tipo long long.

    2. La variable energia comenzará con el valor de 200000.

    3. Gandalf, cuando tenga la CPU, incrementará la variable energia en pasos de dos en dos.

    4. Por su parte, Saruman, en posesión de la CPU, decrementará la variable energia de uno en uno.

    5. Cuando la variable supere o sea igual a 600000, Gandalf ganará.

    6. Si la variable toma valor negativo, es Saruman el vencedor.

    7. Mientras dure la lucha, se producirá una salida a tiempo real por la pantalla:
    + Se usarán los códigos del terminal VT100 que se han proporcionado en el resumen de las llamadas al sistema.
    + Al principio, se limpiará la pantalla.
    + En la séptima línea, empezando a contar por la parte superior de la pantalla, se escribirá SARUMAN, 62 espacios en blanco para el campo de batalla y GANDALF.
    + Mientras dure la batalla, se posicionará el cursor en los 62 espacios en blanco, según vaya progresando la lucha. Esto es, cuando la variable energia valga 0, el cursor se posicionará sobre el segundo espacio, cerca de SARUMAN. Si alcanza su valor límite, el cursor se pondrá sobre el espacio sexagéximo segundo. En una situación intermedia el cursor se posicionará proporcionalmente al valor de la energía.
    –-

    A alguno con unos enunciados tan divertidos seguro que le está molando la idea de hacer ingeniería informática pero... que se os quite esa idea de la cabeza xD ;-)
    votos: 8, karma: 55
    por heffequelinkel 10-05-2007 01:42 UTC
  13. #13   #1 No me confundas los zombies con los huérfanos...

    El while(1) no es necesario, para nada. Solo va a morir una vez el hijo... además, solo hay uno :-) -> waitpid(PID_Hijo,&status,0); o wait(&status);

    Por otra parte... al morir el padre, en Linux 2.6 se matan los procesos huérfanos, úsease, no es necesario enterrarlos.
    votos: 5, karma: 23
    por FrIkIlinkel 10-05-2007 01:46 UTC
  14. #14   Y la mejor práctica de laboratorio de SSOO de TODAS:
    Tolkien: avellano.usal.es/~labssoo/pract104.htm
    votos: 2, karma: 19
    por heffequelinkel 10-05-2007 01:48 UTC
  15. #15   es una pena esta noticia
    votos: 9, karma: -41
    por palermilinkel 10-05-2007 02:17 UTC
  16. #16   Todos los días se aprende algo, sobre todo los novatos en Linux. Más fácil en es.wikipedia.org/wiki/Proceso_zombie
    votos: 1, karma: 20
    por charlie-crlinkel 10-05-2007 02:19 UTC
  17. #17   Temos tumbao el blog xD
    votos: 1, karma: 11
    por Torankslinkel 10-05-2007 02:45 UTC
  18. votos: 2, karma: 25
    por naddialinkel 10-05-2007 03:18 UTC
  19. #19   Chuck Norris mata los procesos con la mirada.
    votos: 2, karma: 7
    por Vindiuslinkel 10-05-2007 05:34 UTC
  20. #20   Y esto tenía que llegar a portada?? Para empezar... ¿Es realmente una noticia? La conversación friki de 3 pavos charlando en una terminología propia de su profesión? La conversación tiene poca o nula grcia... no se... será que me he levantado con mal pie esta mañana pero ciertamente a veces no entiendo algunas cosas...
    votos: 9, karma: 33
    por nervxplinkel 10-05-2007 05:55 UTC
  21. #21   #10 Buen intento,pero olvidalo compañero.Los linuxeros están a otro nivel..saben mas que nadie por el mero hecho de usar linux y siempre tienen la razon,siempre. Incluso seguramente mas de uno se acaba de enterar de lo que es un proceso, pero se mofara de un windowsero y hará como que lo sabia de toda la vida.Son asi :P

    En cuanto a la noticia,como no le veo la gracia ni el interes por ningun sitio,será que soy un windowsero .

    #20 totalmente deacuerdo ,no creo que hubiese llegado a portada de no incluir la referencia a los windowseros, y basicamente me parece una gilipollez de noticia)
    votos: 10, karma: 24
    por wooplinkel 10-05-2007 05:58 UTC
  22. #22   como bien dice #21 windowsero != inutil. Es cierto que hay más ignorancia informática entre windowseros que linuxeros, pero también es cierto que hay (mucho) más de todo !!!.
    votos: 0, karma: 7
    por drjekillinkel 10-05-2007 07:38 UTC
  23. #23   #10 Te puedo asegurar que el sistema operativo que uses no define tu coeficiente intelectual. Ellos quieren creen que sí, que son más listos y mejores, pero no es así. Ya quisieran algunos tuxis estar a la altura de muchos administradores de Windows (Entornos MS en general).

    Aleh!
    votos: 4, karma: 14
    por GuraDXPUlinkel 10-05-2007 07:51 UTC
  24. #24   Naaaa, lo que pasa es que en windowseros se incluyen la mayoria de No informaticos y contarlos es hacer trampa XD.

    Tambien es casualidad leer esta noticia cuando en el curro estoy peleandome precisamente con los:
    CreateThread()
    WaitForSingleObject()
    CreateMutex()
    KillThread()
    ...

    Argg, malditos zombies. (tomo nota de lo de la recortada)
    votos: 1, karma: 0
    por ShOtGaNlinkel 10-05-2007 07:56 UTC
  25. #25   #13 Lo último que dices está mal.

    De toda la vida de Dios... si el padre muere, los hijos son adoptados por Init (pid = 1).
    votos: 1, karma: 12
    por usallinkel 10-05-2007 08:27 UTC
  26. #26   A mi lo que me mola es que la noticia ha sido votada 60 veces sin haber sido leída siquiera #7. En la próxima noticia no olvidaré poner la palabra windowsero. :lol:

    Pero reconozco que también pensaba que era un juego de rol...
    votos: 1, karma: 13
    por SISORlinkel 10-05-2007 08:39 UTC
  27. por --35969--linkel 10-05-2007 08:42 UTC
  28. #28   sudo kill -9 `pidof windows`
    votos: 1, karma: 0
    por ant30linkel 10-05-2007 08:50 UTC
  29. #29   David es un trollaco linuxero, pero creo que en este post no está insultando a nadie por usar o dejar de usar Windows...
    votos: 2, karma: 12
    por jotapelinkel 10-05-2007 08:53 UTC
  30. por --35969--linkel 10-05-2007 08:57 UTC
  31. #31   #30 porque es un troll, cony xD
    votos: 0, karma: 10
    por jotapelinkel 10-05-2007 08:59 UTC
  32. #32   No veo donde el articulo original dice nada de los "windowseros". Que ganas de inventarse titulares para sesgar la noticia...
    En windows existen procesos, hilos, y se pueden matar, y a fe mía que se pueden quedar "zombies" (aunq esa no sea la nomenclatura más usada).
    Se confunde "usuario" de un sistema operativo, que no tiene pq saber q coño es un proceso (o es q el usuario de un telefono movil tiene q saber q es una portadora, un bucle de abonado o un tono DTMF para poder usarlo?) con el programador o técnico o ingeniero que conoce y manipula ese sistema.
    Lo q pasa es q linux tiene muy pocos usuarios ajenos al mundo de la informática, pero eso, me temo, no puede ser considerado precisamente una virtud.
    votos: 2, karma: 28
    por oscarsjlinkel 10-05-2007 09:07 UTC
  33. #33   #30 por cierto, que eso es cosecha propia de xeon, el que ha enviado el enlace, no de David :-P
    votos: 1, karma: 24
    por jotapelinkel 10-05-2007 09:09 UTC
  34. por --35969--linkel 10-05-2007 09:12 UTC
  35. #35   #34 >:( ;)
    votos: 0, karma: 10
    por jotapelinkel 10-05-2007 09:13 UTC
  36. por --35969--linkel 10-05-2007 09:15 UTC
  37. #37   Ya están los de siempre meneándosela los unos a los otros...
    votos: 5, karma: 18
    por pythonlinkel 10-05-2007 10:04 UTC
  38. #38   #37: No hay derecho, ya están los 217 de siempre meneándosela a ese capullo...

    oh wait!
    votos: 1, karma: 24
    por DZPMlinkel 10-05-2007 13:18 UTC
  39. #39   #13 Creo que te confundes tú. El proceso huérfano es aquel en que su padre ha muerto antes que él. Sin embargo el zombie es aquel que ha muerto, y no se ha leido su información de estado de finalización.

    Si te creas un programa que cree un hijo ,y muere el hijo, y luego muere el padre, si haces ps -aux verás que efectivamente ambos se han borrado de la tabla de procesos. El propio kernel se encarga dequitarlos de la tabla de procesos.

    Ahora piensa en un programa un poquito más complejo. Pongamos un árbol de unos 25 procesos hijos, cada uno ejecutando una tarea, y el padre gestionando la comunicación entre ellos. Si uno de los hijos muere, si observas la tabla de procesos (ps -aux nuevamente), verás que el que ha muerto tiene el indicativo Z . Se ha quedado, efectivamente zombie. Y así se quedará hasta que muera el padre, o hasta que se lea su información de finalización.

    Por supuesto pongamos un sistema en tiempo real crítico; El padre no puede ser terminado bajo ningún concepto, por lo tanto tienes que limpiar los procesos que has terminado. No hacerlo se considera un fallo en el programa, una mala costumbre, y además una chapuza propia de no haber entendido un carajo en clases de SSOO.

    Es posible que en el código haya cosas innecesarias. Modifiquémoslo:

    int main(int argc, char **argv)
    {
    int status;
    pid_t PID_Hijo;
    PID_Hijo=fork();
    if(!PID_Hijo) exit(0);
    else{
    sleep(50000);
    waitpid(PID_Hijo,&status,WNOHANG);
    }

    return 1;
    }

    Ejecuta, y mientras dura el sleep, comprueba en otra consola la tabla de procesos; verás un maravilloso ZOMBIE.

    Y luego me cuentas.... ;)
    votos: 3, karma: 22
    por kasterlinkel 10-05-2007 14:20 UTC
  40. #40   j0az xD si esto era de coña xD
    votos: 1, karma: 23
    por Adrianlinkel 10-05-2007 17:38 UTC
  41. #41   #40: " I didn't know she was three" xD
    votos: 0, karma: 14
    por DZPMlinkel 10-05-2007 18:15 UTC
  42. #42   #38 Eso de capullo ¿por quién va?
    votos: 0, karma: 7
    por pythonlinkel 10-05-2007 18:42 UTC
comentarios cerrados

menéame