Articles of tenedor

Cuando los processs de los padres, hijos y nietos comparten una página, ¿cómo funciona el copy-on-write?

Si el niño intenta escribir, recibe una nueva copy de la página (que ya no está protegida contra escritura), ¿señala el nieto esa página nueva o la anterior (que el padre tiene)?

Bandera de process 1: se bifurcó pero no ejecutó (¿caso de uso?)

En la página del manual para ps, enumera el indicador de process 1 como "process bifurcado pero no ejecutado". ¿Cuál sería un caso / situación de uso común para que un process se encuentre en este estado?

¿Cómo limitar el número de processs que un usuario puede crear?

Creo que tengo un progtwig que crea infinidad de cosas en sí mismo (no intencionalmente, espero). Me gusta probar esto pero no puedo matar la máquina, entonces ¿cómo podría limitar el número de processs para ejecutar esto de una manera sabia?

¿Cuál es la semántica de get EADDRINUSE cuando no está vinculado un socket de escucha, pero las conexiones están abiertas?

Considere un process principal que complete un socket/bind/accept , y bifurcará a los niños con ese socket abierto para que se comuniquen, mientras que el padre continúa aceptando conexiones. Ese process parental es luego asesinado. Otro process ahora intenta vincularse a la misma dirección a la que estaba vinculado el process principal, en el mismo […]

¿Cómo sabe el núcleo qué descriptor de file escribir datos en fork () en un server concurrente?

Arquitectura básica de cliente / server concurrente: hay un bucle principal que escucha las requestes en un puerto (por ejemplo, 3000). Después de aceptar la connection, el server genera un process secundario que termina teniendo acceso a los descriptores de files donde se pueden leer los datos. Si tenemos varios clientes conectados al server, el […]

¿Cómo pueden dos direcciones virtuales idénticas señalar diferentes direcciones físicas?

Después de una llamada a fork () en Linux, dos processs (uno de los cuales es hijo de la otra) compartirán la memory de stack asignada. Estas páginas asignadas están marcadas como COW (copy-on-write) y permanecerán compartidas hasta que el process las modifique. En este punto, se copyn, pero los pointers de dirección virtual que […]

No hay una indicación del indicador de bash después de que termine un process bifurcado

Estoy leyendo el libro Progtwigción avanzada en el entorno Unix . Hay un progtwig de testing para probar la function de la fork . Funciona bien en mi Ubuntu. Pero lo que confundí es por qué no hay una indicación del indicador de command después de que el process hijo sale. El progtwig original es […]

¿Cómo pasa Bash los grupos de usuarios a un niño?

Es bien sabido que si me agrego a un nuevo grupo, ese cambio no se verá reflejado hasta que cierre la session y regrese: $ sudo adduser me newgroup $ groups me sudo $ groups me me sudo newgroup $ Este comportamiento extraño se debe a groups el shell interpreta los groups y no se […]

Lanzamiento Spark en primer plano a través de Supervisor

Tenemos un grupo de chispa que se inicia a través de un supervisor. Extractos: /etc/supervisor/conf.d/spark_master.conf: command=./sbin/start-master.sh directory=/opt/spark-1.4.1 /etc/supervisor/conf.d/spark_worker.conf: command=./sbin/start-slave.sh spark://spark-master:7077 directory=/opt/spark-1.4.1 El desafío para el supervisor es que estos scripts inicien un process de daemon y se desconecten, donde el supervisor espera que las cosas se ejecuten en primer plano sin un tenedor. Hasta ahora, […]

¿Cómo funciona la llamada del sistema de horquilla realmente funciona

Tengo una pregunta muy específica sobre la llamada al sistema de fork. Tengo este pedazo de código: int main (void) { for (int i = 0; i < 10; i++) { pid_t pid = fork (); if ( !pid ) { printf("CHILD | PID: %d, PPID: %d\n", getpid(), getppid()); _exit(i + 1); } } for […]