Está en la página 1de 65

Control y descripcin de procesos

o Un computador est consituido por varios recursos (HW) compartidos. o Las aplicaciones de computador son desarrollados para ejecutar una tarea en particular. o Resultara poco (nada) prctico crear aplicaciones para una plataforma de hardware en particular.

El S.O. fue desarrollado para proveer interfaces a travs de abstracciones simples y uniformes del HW y que sern usadas por las aplicaciones.

Resumen de conceptos revisados


El S.O. gestiona la ejecucin de aplicaciones. Los recursos estn disponibles para mltiples aplicaciones. El procesador fsico es conmutado entre mltiples aplicaciones de tal forma que parecera que todas se ejecutan al mismo tiempo. El procesador y los dispositivos de E/S deben ser usados de forma eficiente. o Evitar monopolios. o Planificar la ejecucin de aplicaciones de manera justa, no necesariamente equititativa

Elementos de un proceso
Cuando el procesador comienza a ejecutar el cdigo mquina de un programa , nosotros referiremos a esta entidad en ejecucin como PROCESO

Los dos elementos esenciales de un proceso son:

Cdigo mquina y datos del programa.

Puede ser compartido con otros procesos que estn ejecutndose en el mismo programa.

Un conjunto de datos asociados con el cdigo.

Cuando un programa est en ejecucin, este proceso puede ser caracterizado de forma nica por algunos elementos , que inlcuyen:
Identificador (PID)
contador de programa Informacin de contabilidad (CPU usado)

estado Punteros de memoria (cdigo y datos) Datos de contexto

prioridad

(Registros)

Informacin de estado de E/S

Bloque de control de proceso


Contiene los elementos de un
proceso.
I dentifier State Priority Program counter M emory pointers Context data I /O status information Accounting information

Es posible interrumpir un proceso en


ejecucin y reanudar ms tarde de la ejecucin, como si la interrupcin no hubiese sucedido.

Es creado y gestionado por el S.O.

Es la estructura clave que permite la


ejecucin de varios procesos (multiprocesamiento).

Proceso: Cdigo mquina del


programa + datos asociados + bloque de control de proceso.

Ejecucin de procesos
Rastreo
El comportamiento de un proceso puede ser rastreado por las instrucciones que son ejecutadas por ste.
Planificador Dispatcher

Ejecuta un programa pequeo que conmuta de un proceso a otro.

El comportamiento del procesador puede ser caracterizado mostrando el rastreo de varios procesos intercalados.

Ejecucin de procesos
Address

M ain M emory Dispatcher

0 100

Program Counter
8000

5000

Process A
8000

Process B
12000

Process C

Figure 3.2 Snapshot of Example Execution (Figure 3.4)

Ejecucin de procesos (desde la perspectiva

de cada proceso)
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011
(a) Trace of Process A

8000 8001 8002 8003

12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011

(b) Trace of Process B (c) Trace of Process C

5000 = Starting address of program of Process A 8000 = Starting address of program of Process B 12000 = Starting address of program of Process C

Ejecucin de procesos (desde la perspectiva

del procesador)
1 5000 2 5001 3 5002 4 5003 5 5004 6 5005 -------------------- Timeout 7 100 8 101 9 102 10 103 11 104 12 105 13 8000 14 8001 15 8002 16 8003 ----------------I/O Request 17 100 18 101 19 102 20 103 21 104 22 105 23 12000 24 12001 25 12002 26 12003 27 12004 28 12005 -------------------- Timeout 29 100 30 101 31 102 32 103 33 104 34 105 35 5006 36 5007 37 5008 38 5009 39 5010 40 5011 -------------------- Timeout 41 100 42 101 43 102 44 103 45 104 46 105 47 12006 48 12007 49 12008 50 12009 51 12010 52 12011 -------------------- Timeout

100 = Starting address of dispatcher program Shaded areas indicate execution of dispatcher process; first and third columns count instruction cycles; second and fourth columns show address of instruction being executed

Modelo de proceso con 2 estados


La principal responsabilidad de los sistemas operativos es controlar la ejecucin de procesos.
Dispatch

Enter

Not Running

Running

Exit

Pause (a) State transition diagram

Pause

Modelo de proceso con 2 estados (a) State transition diagram


Queue Enter Dispatch
Processor

Exit

Pause (b) Queuing diagram

Hay una sola cola, en donde cada entrada es un puntero al bloque deTwo-State controlProcess de un M proceso en Figure 3.5 odel particular.

Cundo se crean procesos?


Creados por el S.O. para proveer servicios y evitar

que el usuario tenga que esperar por l.


Que sucede cuando envo a imprimir un archivo desde M. Word? Como funciona un servidor web cuando recepta peticiones de los usuarios?

Creados por procesos existentes con el propsito

de explotar el paralelismo.
Cuando requieras ejecutar varias tareas de forma concurrente.
Ejm?

Trabajo grupal Creacin de procesos


Objetivo: Plantear posibles escenarios en donde sea necesaria la creacin de procesos que se ejecuten de forma concurrente. Procedimiento:
o Hacer grupos de 5 o 6 personas. o Discutir y plantear posibles escenarios, en el rea de nuestra especialidad, en donde es necesaria la creacin de procesos. o Exponer ante sus compaeros el planteamiento del grupo, justificando la inclusin de cada escenario.

Tiempo requerido: 15 minutos

Creacin de procesos

Engendrado de un proceso Process spawning Cuando el S.O, crea un proceso ante la solicitud explcita de otro proceso.

Proceso Padre Es el proceso original, el engendrador.

Proceso Hijo Es el nuevo proceso.

Cooperacin

Finalizacin de procesos
El S,O. debe proveer un mecanismo para indicar que un proceso a terminado.
o Se incluye una instruccin HALT, que genera una interrupcin para alertar al S.O. que un proceso se ha completado.

Cundo?
o o o o o o o o o o o Proceso completado. Lmite de tiempo excedido. Memoria no disponible. Violacin de acceso a memoria. Error de proteccin. Error aritmtico. Falla de E/S. Intento de ejecucin de instruccin privilegiada. Mal uso de datos. Intervencin del S.O. Ejm: deadlock. Finalizacin del proceso padre.

Modelo de proceso de 5 estados


New Admit Dispatch Ready Timeout Running Release Exit

Event Occurs

Event Wait

Blocked

Figure 3.6 Five-State Process M odel

Modelo de proceso de 5 estados


Process A

Process B

Process C

Dispatcher

10

15

20

25

30

35

40

45

50

= Running

= Ready

= Blocked

Figure 3.7 Process States for Trace of Figure 3.4

Modelo de proceso de 5 estados


Ready Queue Admit Dispatch
Processor

Release

Timeout Blocked Queue Event Occurs Event Wait (a) Single blocked queue

Ready Queue Admit Dispatch


Processor

Release

Timeout Event 1 Queue Event 1 Occurs Event 2 Queue Event 2 Occurs

Event 1 Wait

Event 2 Wait

Event n Queue Event n Occurs Event n Wait

(b) M ultiple blocked queues

Procesos suspendidos
o Las tareas de E/S son mucho ms lentas que las tareas que ejecuta el procesador.
El procesador en un sistema monotarea pasara la mayor parte del tiempo en reposo. En un sistema multitarea, el modelo presentado en la diapositiva enterior resuelve el problema parcialmente.
o Tengo muchos procesos y cuando uno se bloquea conmuto a otro proceso Sin embargo, an el procesador podra pasar mucho tiempo en reposo.

Solucin: Acomodar ms procesos en memoria principal. Aparece otro problema. Sabemos que la memoria principal es un recurso limitado. Qu ocurre con los procesos bloqueados por un perodo de tiempo considerable? ocupan memoria?. Solucin: Swapping

Procesos suspendidos
o Swapping.
Mover los procesos bloqueados, que se hallan en memoria principal, hacia el disco duro. El S.O. mueve los procesos que no estn en estado READY hacia una cola de procesos suspendidos. Ahora, el S.O. puede traer otros procesos suspendidos o nuevos procesos creados (NEW).

Procesos suspendidos
New Admit Dispatch Ready Timeout Running Release Exit

Event Occurs

ct iv at e

Suspend

Suspend

Blocked (a) With One Suspend State

New

Ev en t

ai t

Razones para la suspensin de un proceso


Swapping: El S.O. necesita liberar suficiente memoria principal para traer un proceso que est listo para ejecutarse. Otra razn del S.O. EL S.O. puede suspender un proceso en background que es sospechoso de causar un problema Solicitudes interactiva de usuario. Un usuario desea suspender la ejecucin de una aplicacin con propsitos de depuracin de programa. Temporizacin: Un proceso es ejecutado de forma peridica (Ejm: Proceso de monitorizacin del sistema). Entonces ser suspendido esperando el prximo intervalo de tiempo. Solicitud del proceso padre: El proceso padre solicita la suspensin de sus procesos hijos.

DESCRIPCION DE PROCESOS

Procesos y Recursos
El S.O. es una entidad que gestiona el uso de recursos del sistema mediante procesos.

P1

P2

Pn
Virtual M emory Computer Resources

Processor

I /O

I /O

I /O

M ain M emory

Estructura General de las tablas de control del S.O.


M emory Tables M emory Devices Files Processes File Tables I /O Tables Process I mage Process 1

Primary Process Table Process 1 Process 2 Process 3 Process I mage Process n

Process n

Figure 3.11 General Structure of Operating System Control Tables

Deben ser administradas por el S.O. Todos los procesos deben estar referenciados a memoria, E/S y archivos directa o indirectamente. Cmo el S.O. crea las tablas la primera vez?
o Se requiere de una configuracin inicial bsica del entorno (cunta memoria existe, que dispositivos de E/S existen y cuales son sus identificadores)

Qu El lugar donde est el proceso. necesita el S.O. para Los atributos del proceso que gestionar y son necesarios controlar para su gestin. un proceso?

Process I dentification Processor State I nformation Process Control I nformation

Process I dentification Processor State I nformation Process Control I nformation

Process I dentification Processor State I nformation Process Control I nformation

Process Control Block

User Stack

User Stack

User Stack

Private User Address Space (Programs, Data)

Private User Address Space (Programs, Data)

Private User Address Space (Programs, Data)

Shared Address Space

Shared Address Space

Shared Address Space

Process 1

Process 2

Process n

Process I dentification I dentifiers Numeric identifiers that may be stored with the process control block include Identifier of this process Identifier of the process that created this process (parent process) User identifier Processor State I nformation User-Visible Registers A user-visible register is one that may be referenced by means of the machine language that the processor executes while in user mode. Typically, there are from 8 to 32 of these registers, although some RISC implementations have over 100. Control and Status Registers These are a variety of processor registers that are employed to control the operation of the processor. These include Program counter: Contains the address of the next instruction to be fetched Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry, equal, overflow) Status information: Includes interrupt enabled/disabled flags, execution mode Stack Pointers Each process has one or more last-in-first-out (LIFO) system stacks associated with it. A stack is used to store parameters and calling addresses for procedure and system calls. The stack pointer points to the top of the stack.

Process Control I nformation Scheduling and State I nformation This is information that is needed by the operating system to perform its scheduling function. Typical items of information: Process state: Defines the readiness of the process to be scheduled for execution (e.g., running, ready, waiting, halted). Priority: One or more fields may be used to describe the scheduling priority of the process. In some systems, several values are required (e.g., default, current, highest-allowable) Scheduling-related information: This will depend on the scheduling algorithm used. Examples are the amount of time that the process has been waiting and the amount of time that the process executed the last time it was running. Event: Identity of event the process is awaiting before it can be resumed. Data Structuring A process may be linked to other process in a queue, ring, or some other structure. For example, all processes in a waiting state for a particular priority level may be linked in a queue. A process may exhibit a parent-child (creator-created) relationship with another process. The process control block may contain pointers to other processes to support these structures. I nterprocess Communication Various flags, signals, and messages may be associated with communication between two independent processes. Some or all of this information may be maintained in the process control block. Process Privileges Processes are granted privileges in terms of the memory that may be accessed and the types of instructions that may be executed. In addition, privileges may apply to the use of system utilities and services. M emory M anagement This section may include pointers to segment and/or page tables that describe the virtual memory assigned to this process. Resource Ownership and Utilization Resources controlled by the process may be indicated, such as opened files. A history of utilization of the processor or other resources may also be included; this information may be needed by the scheduler.

Cada proceso tiene asignado un identificador nico (PID) que sirve como ndice en la tabla de procesos. Muchas de las tablas controladas por el S.O. pueden usar los PID para establecer una referencia crazada con las tablas de procesos.

Las tablas de memoria pueden ser organizadas para proveer un mapa de memoria con una indicacin del proceso al que se le ha asignado cada regin. Cuando un proceso se comunica con otro, el PID informa al S.O. el destino de una comunicacin en particular. La relacin entre procesos padres e hijos es mantenida a travs de los PID.

Process Control Block Running Ready Blocked

CONTROL DE PROCESOS

Modo Usuario

Modo Kernel
o Mximos privilegios. o Lo ejecuta el kernel del S.O. Para la gestin de procesos, memoria, E/S, archivos, etc.

o Menos privilegios o Todos los programas de usuario se ejecutan de este modo.

El procedimiento que lleva a cabo es el siguiente:


Asigna un identificador nico al proceso creado. Asigna espacio de memoria para el proceso (en funcin de la imagen del proceso) Se inicializa el bloque de control de procesos. Configura las relaciones de forma apropiada ( en la cola adecuada) Crea o expande otras estructurasd de datos para mantener la contabilidad por ejemplo.

Mecanismos para la interrupcin de la ejecucin de procesos


Mecanismo Interrupcin Trap Causa Externa a la ejecucin de la instruccin actual. Asociada a la ejecucin de la instruccin actual Solicitud explcita Uso Reaccin a eventos externos asncronos. Manejo de un error o una condicin de excepcin. Llamada a una funcin del S.O.

Llamada al sistema

Interrupciones del sistema


Interrupcin
Debido a un evento que es externo e independiente del proceso que se ejecuta actualmente. o Interrupcin de reloj. o Interrupcin de E/S o Falla de memoria. Time slice o Mxima cantidad de tiempo que un proceso puede ejecutarse antes de ser interrumpido.

Trap
Un error o condicin de excepcin generado dentro del proceso que se ejecuta actualmente. EL S.O. determina si una condicin es fatal. o Finaliza el proceso si es necesario. o Notifica al usuario y continua.

Si no hay interrupciones pendientes para el procesador.

Si hay interrupciones pendientes para el procesador


Setea el contador de programa (PC), hacia el inicio de la rutina que maneja la interrupcin. Conmuta desde el modo usuario al modo kernel, para ejecutar instrucciones privilegiadas.

Procede a apuntar a la siguiente instruccin a ejecutar.

Consideraciones de seguridad
Los privilegios determinan los recursos a los que puede acceder un proceso (regiones de memoria, archivos, instrucciones privilegiadas, etc). Un proceso que se ejecuta en favor de un usuario tiene los privilegios que el S.O. reconoce para el usuario. En un sistema tpico, los ms altos privilegios se conoce como administrador o acceso root.
o Tiene el control completo del sistema, puede agregar o cambiar programas y archivos, monitorear otros procesos, etc.

Una consideracin de diseo clave es prevenir, o al menos detectar el malware que intenta ganar acceso como root.

Gestin de procesos en LINUX

Diagrama de transicin de estados de un proceso en LINUX


fork Created Preempted return to user enough memory not enough memory (swapping system only)

User Running return system call, interrupt

preempt swap out reschedule process Kernel Running wakeup wakeup Ready to Run I n M emory swap in Ready to Run Swapped

interrupt, interrupt return

sleep exit

Zombie

Asleep in M emory

swap out

Sleep, Swapped

Imagen de un proceso en LINUX


User-Level Context Process text Process data User stack Shared memory Executable machine instructions of the program Data accessible by the program of this process Contains the arguments, local variables, and pointers for functions executing in user mode Memory shared with other processes, used for interprocess communication Register Context Address of next instruction to be executed; may be in kernel or user memory space of this process Contains the hardware status at the time of preemption; contents and format are hardware dependent Points to the top of the kernel or user stack, depending on the mode of operation at the time or preemption Hardware dependent System-Level Context Defines state of a process; this information is always accessible to the operating system Process control information that needs to be accessed only in the context of the process Defines the mapping from virtual to physical addresses; also contains a permission field that indicates the type of access allowed the process: read-only, read-write, or read-execute Contains the stack frame of kernel procedures as the process executes in kernel mode

Program counter Processor status register Stack pointer General-purpose registers

Process table entry U (user) area Per process region table

Kernel stack

Entrada en la tabla de procesos.


Process status Pointers Process size Current state of process. To U area and process memory area (text, data, stack). Enables the operating system to know how much space to allocate the process. The real user I D identifies the user who is responsible for the running process. The effective user I D may be used by a process to gain temporary privileges associated with a particular program; while that program is being executed as part of the process, the process operates with the effective user ID. ID of this process; ID of parent process. These are set up when the process enters the Created state during the fork system call. Valid when a process is in a sleeping state; when the event occurs, the process is transferred to a ready-to-run state. Used for process scheduling. Enumerates signals sent to a process but not yet handled. Include process execution time, kernel resource utilization, and user-set timer used to send alarm signal to a process. Pointer to the next link in the ready queue (valid if process is ready to execute). Indicates whether process image is in main memory or swapped out. If it is in memory, this field also indicates whether it may be swapped out or is temporarily locked into main memory.

User identifiers

Process identifiers

Event descriptor

Priority Signal Timers

P_link

Memory status

La creacin de procesos es mediante la llamada al sistema fork(). Al ejecutar fork, lo que sucede es lo siguiente:
1 Asigna un slot en la tabla de procesos, para el nuevo proceso. Asigna un identificador nico al proceso hijo. Hace una copia de la imagen del proceso padre, con excepcin de la memoria compartida. Incremente los contadores para cualquier archivo perteneciente al padre, para reflejar que un proceso adicional es ahora tambin dueo de estos archivos. Setea el estado del proceso hijo a un estado ready

Despus de la creacin del proceso, el kernel puede hacer lo siguiente, como parte de la rutina del planificador: o Mantenerse en el proceso padre. o Transferir el control al proceso hijo. o Transferir el control a otro proceso.

Procesos en LINUX
Listado de procesos
o ps: Lista todos los procesos creados por el terminal actual.

PID: Process Identifier TTY: Terminal Type (Ingrese tty para observar el terminal en el que se encuetra). TIME: Tiempo de CPU usado desde que el proceso inicio. CMD: Comando ejecutado para ejecutar el proceso. o pstree: Lista los procesos en forma de rbol. o top: Muestra un snapshot de los procesos en tiempo real.

Procesos en LINUX getpid y getppid


Obteniendo el PID de un proceso.
o getpid(): Retorna el PID del proceso que se est ejecutando. o getppid(): Retorna el PID del proceso padre del proceso que se est ejecutando.

Compilar y ejecutar el programa desde el shell de Linux.


o Cul es el PPID? o A quin pertenece el proceso padre?

Utilice el comando cat para ver el contenido del archivo /proc/sys/kernel/pid_max


o Qu indica este valor?

Procesos en LINUX system


Creacin de procesos por medio de la funcin system
o Crea un proceso corriendo sobre el shell para la ejecucin de un comando.

o Retorna 0 cuando la ejecucin es satisfactoria.

Procesos en LINUX system


Creacin de procesos por medio de la funcin system
o Crea un proceso corriendo sobre el shell para la ejecucin de un comando.

o Retorna 0 cuando la ejecucin es satisfactoria.

Procesos en LINUX fork


Creacin de procesos mediante la llamada al sistema fork().
o Duplica un proceso, llamado proceso hijo. El proceso padre continua la ejecucin del proceso desde el punto donde fork fue llamado. El proceso hijo tambin ejecuta el mismo programa, desde el mismo punto. o Cmo difieren esos procesos? Primero el proceso hijo tiene un nuevo PID, distinto al del proceso padre. o Ambos pueden ser obtenidos mediante la llamada a la funcin getpid(). El valor que retorna fork() difiere en el proceso hijo y en el proceso padre. o El valor retornado en el proceso padre es el PID del hijo. o El valor de retorno en el proceso hijo es cero.

Procesos en LINUX ejemplo fork

Procesos en LINUX exec


Las funciones exec reemplazan el programa en ejecucin de un proceso con otro programa. Cuando un programa llama a la funcin exec, el proceso deja de ejecutar el programa actual y comienza a ejecutar el nuevo programa desde el inicio. Hay varias funciones exec que varan ligeramente y que siguen ciertas reglas.

Procesos en LINUX exec


Las funciones que contienen la letra p en sus nombres (execvp y execlp):
o Aceptan los nombres del programa y buscan el programa por su nombre en la ruta de ejecucin actual. o Si no se especifica la p, se debe proporcionar toda la ruta del programa.

Las funciones que contienen la letra v en sus nombres (execv, execvp, execve):
o Aceptan una lista de argumentos en un arreglo de punteros a cadenas de carateres (terminan con un NULL).

Las funciones que contienen la letra l en sus nombres (execl, execlp, execle):
o Aceptan una lista de argumentos usando el mecanismo varargs de C.

Las funciones que contienen la letra e en sus nombres (execve y execle):


o Aceptan un arreglo con variables de entorno como argumento adicional (terminan con NULL). Cada cadena de caracteres debe tener la forma VARIABLE=value

Procesos en Linux exec


Ejemplo simple: Paso de parmetros varargs a un programa en C:

Procesos en LINUX (fork y exec)


El uso de ambas funciones es un patrn comn.
o Primero se crea el proceso y luego se ejecuta un subprograma. Esto permite que el programa llamante siga con el ejecucin en el proceso padre, mientras que el proceso hijo inicia con la ejecucin de otro programa.

A incluir en el informe semanal


Qu hace el comando nice de LINUX?
o Cundo es necesario el login como root? o Para qu ser importante el comando nice?

Procesos en LINUX Seales (Signals)


Una seal es un mensaje asncrono especial enviado a un proceso. Las seales con un mecanismo de comunicacin y manipulacin de procesos. Cuando un proceso recibe una seal, ste la procesa de forma inmediata. Cada seal est identificada por un nmero (o su nombre de constante).
o En Linux para usar las seales se debe incluir el archivo de cabecera signal.h

Cuando se recibe una seal, el proceso detiene su ejecucin normal. En su lugar, ejecuta una rutina signalhandler.
o Al terminar de ejecutar la rutina de manejo de seal retorna a la ejecucin del programa.

Procesos en LINUX - Seales (Signals)


Identificador
1 4 11

Nombre
SIGHUP SIGILL SIGSEGV

Descripcin
Terminal colgado o proceso muerto. Instruccin ilegal El S.O. informa: Violacin de acceso a memoria El S.O. informa: Excepcin de punto flotante. Un proceso solicita la finalizacin de otro proceso. Un proceso finaliza otro proceso de forma unilateral. Seal definida por el usuario 1 Seal definida por el usuario 2

Accin por defecto


Terminar el proceso. Terminar el proceso y volcado de memoria. Terminar el proceso y volcado de memoria. Terminar el proceso y volcado de memoria. Pregunta si finaliza el proceso. Terminar el proceso.

SIGFPE

15

SIGTERM

SIGKILL

30, 10 y 16 31, 12 y 17

SIGUSR1 SIGUSR2

Terminar el proceso. Terminar el proceso.

Procesos en LINUX Seales (Signals)


La funcin sigaction es una funcin que permite modificar la accin, disposition, por defecto a ejecutar cuando se recibe una seal.
o Hay que ser cuidadosos en la implementacin de una nueva rutina para al manejo de la seal. Por qu?

Procesos en LINUX Finalizacin de proceso


Hemos visto que el comando kill permite enviar un mensaje a un proceso especfico.
o Kill KILL 3450 (Enva la seal KILL (9) al proceso cuyo PID es 3450).

Para enviar una seal desde un programa en C, hay que utilizar la funcin kill con dos parmetros de entrada:
o kill(pid, seal) o Donde: pid es el identificador del proceso a emitir la seal. seal es el tipo de seal a emitir. o Por ejemplo kill(pid_hijo, SIGKILL), termina el proceso cuyo PID est contenido en pid_hijo. o Se debe usar los archivos de cabecera sys/types.h y signal.h para el uso de la funcin kill.

Procesos en LINUX
Esperando por la finalizacin de un proceso

Qu sucedi con el programa en donde se crea un proceso hijo para imprimir la salida del comando ls -l /?

Procesos en LINUX
Esperando por la finalizacin de un proceso

No olvidemos que los procesos se ejecutan de forma independiente. Podemos predecir cual se ejecutar primero? Qu ocurre en un S.O. multitarea? Se puede lograr que el proceso padre espere a que los procesos hijo terminen su ejecucin usando la familia de llamadas al sistema wait.

Proceso en LINUX wait


wait. Bloquea al proceso llamante hasta que sus procesos hijos salga (o un error ocurra).
o Retorna el estado por medio de un puntero a entero.

Procesos en LINUX wait


Es necesario para el uso de WEXITSATUS y WIFEXITED Espera q que el proceso hijo termine

También podría gustarte