Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3.4 Explain the role of the init process on UNIX and Linux systems in regards to process
termination.
Cuando finaliza un proceso, se mueve brevemente al estado zombie y permanece en
ese estado hasta que el padre invoca una llamada a wait (). Cuando esto ocurre, tanto
la identificación del proceso como la entrada en la tabla de proceso se liberan. Sin
embargo, si un padre no invoca a wait (), el proceso hijo sigue siendo un zombie,
siempre y cuando el padre permanezca con vida. Una vez que finaliza el proceso
principal, el proceso init se convierte en el nuevo padre del zombi. Periódicamente, el
proceso init llama a wait (), que finalmente libera el pid y la entrada en la tabla de
proceso del proceso zombie.
What is a thread?
Un hilo es un flujo de ejecución dentro de un proceso.
Un hilo comparte un espacio de direcciones virtuales con otros
hilos del mismo proceso.
Es menos costoso (en términos de tiempo y espacio) crear hilos de lo que es crear
procesos secundarios.
What are two differences between use-level threads and kernel-level threads? Under what
circumstances is one type better than the other?
(1) El kernel desconoce los hilos de nivel de usuario mientras que el kernel es
consciente de los hilos del kernel.
(2) Los hilos del kernel no necesitan asociarse con un proceso mientras que cada
hilo de usuario pertenece a un proceso, los hilos de kernel son más difíciles de
mantener que los hilos de usuario ya que deben de estar representados con
una estructura de datos del kernel
Kernel: El kernel es responsable de mantener todas las abstracciones importantes del
sistema operativo, incluidas cosas como la memoria virtual y los procesos.
pipe(fdSortCut);
switch(fork()){
case -1:
fprintf(stderr, "No se pudo crear la pipa.\n");
exit(EXIT_FAILURE);
break
case 0:
pipe(fdLsSort);
switch(fork()){
case -1:
fprintf(stderr, "No se pudo crear la pipa.\n");
exit(EXIT_FAILURE);
break;
case 0:
close(STDOUT_FILENO);
dup(fdLsSort[WRITE]);
close(fdLsSort[READ]);
default:
close(STDIN_FILENO);
dup(fdLsSort[READ]);
close(fdLsSort[WRITE]);
close(STDOUT_FILENO);
dup(fdSortCut[WRITE]);
close(fdSortCut[READ]);
}
reak;
b
default:
close(STDIN_FILENO);
dup(fdSortCut[READ]);
close(fdSortCut[WRITE]);