capitulo iii. control y descripcion de procesos

65
Control y descripción de procesos

Upload: siamaradi

Post on 29-Dec-2015

22 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Capitulo III. Control y Descripcion de Procesos

Control y descripción de

procesos

Page 2: Capitulo III. Control y Descripcion 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 Resultaría poco (nada) práctico crear aplicaciones para una plataforma de hardware en particular.

• El S.O. fue desarrollado

para proveer

“interfaces” a través

de abstracciones

simples y uniformes del

HW y que serán

usadas por las

aplicaciones.

Page 3: Capitulo III. Control y Descripcion de Procesos

Resumen de conceptos revisados

• El S.O. gestiona la ejecución de aplicaciones.

• Los recursos están disponibles para múltiples aplicaciones.

• El procesador “físico” es conmutado entre múltiples aplicaciones de tal forma que parecería 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 ejecución de aplicaciones de manera justa, no necesariamente equititativa

Page 4: Capitulo III. Control y Descripcion de Procesos

Elementos de un proceso

• Cuando el procesador comienza a ejecutar el código máquina de un programa , nosotros referiremos a esta entidad en ejecución como PROCESO

• Los dos elementos esenciales de un proceso son:

Código máquina y datos del programa.

Puede ser compartido con otros procesos que están ejecutándose en el mismo programa.

Un conjunto de datos asociados con el código.

Page 5: Capitulo III. Control y Descripcion de Procesos

• Cuando un programa está en ejecución, este proceso puede ser caracterizado de forma única por algunos elementos , que inlcuyen:

Identificador (PID)

estado prioridad contador de programa

Punteros de memoria

(código y datos)

Datos de contexto

(Registros)

Información de estado de E/S

Información de contabilidad

(CPU usado)

Page 6: Capitulo III. Control y Descripcion de Procesos

Bloque de control de proceso

Contiene los elementos de un

proceso.

Es posible interrumpir un proceso en

ejecución y reanudar más tarde de la

ejecución, como si la interrupción no

hubiese sucedido.

Es creado y gestionado por el S.O.

Es la estructura clave que permite la

ejecución de varios procesos

(multiprocesamiento).

Proceso: Código máquina del

programa + datos asociados + bloque

de control de proceso.

Identifier

Figure 3.1 Simplified Process Control Block

State

Priority

Program counter

Memory pointers

Context data

I /O status

information

Accounting

information

Page 7: Capitulo III. Control y Descripcion de Procesos

Ejecución de procesos

Rastreo

El comportamiento de un proceso puede ser rastreado por las instrucciones que son ejecutadas por éste.

El comportamiento del procesador puede ser

caracterizado mostrando el rastreo de varios procesos

intercalados.

Planificador

Dispatcher

Ejecuta un programa

pequeño que conmuta de un proceso a otro.

Page 8: Capitulo III. Control y Descripcion de Procesos

Ejecución de procesos

Main MemoryAddress

Dispatcher

Process A

Process B

Process C

Program Counter0

100

5000

8000

8000

12000

Figure 3.2 Snapshot of Example Execution (Figure 3.4)

at Instruction Cycle 13

Page 9: Capitulo III. Control y Descripcion de Procesos

5000

5001

5002

5003

5004

5005

5006

5007

5008

5009

5010

5011

8000

8001

8002

8003

12000

12001

12002

12003

12004

12005

12006

12007

12008

12009

12010

12011

(a) Trace of Process A (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

Figure 3.3 Traces of Processes of Figure 3.2

Ejecución de procesos (desde la perspectiva

de cada proceso)

Page 10: Capitulo III. Control y Descripcion de Procesos

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

Figure 3.4 Combined Trace of Processes of Figure 3.2

Ejecución de procesos (desde la perspectiva

del procesador)

Page 11: Capitulo III. Control y Descripcion de Procesos

Modelo de proceso con 2 estados

Not

Running Running

Figure 3.5 Two-State Process Model

Dispatch

Dispatch

Queue

Enter Exit

Pause

Pause

Enter Exit

(a) State transition diagram

(b) Queuing diagram

Processor

La principal responsabilidad de los sistemas

operativos es controlar la ejecución de procesos.

Page 12: Capitulo III. Control y Descripcion de Procesos

Not

Running Running

Figure 3.5 Two-State Process Model

Dispatch

Dispatch

Queue

Enter Exit

Pause

Pause

Enter Exit

(a) State transition diagram

(b) Queuing diagram

Processor

Modelo de proceso con 2 estados

Hay una sola cola, en donde cada entrada es un

puntero al bloque de control de un proceso en

particular.

Page 13: Capitulo III. Control y Descripcion de Procesos

¿Cuándo se crean procesos?

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

que el usuario tenga que esperar por él.

• ¿Que sucede cuando envío a imprimir un archivo

desde M. Word?

• ¿Como funciona un servidor web cuando recepta peticiones de los usuarios?

• Creados por procesos existentes con el propósito

de explotar el paralelismo.

• Cuando requieras ejecutar varias tareas de

forma concurrente.

• ¿Ejm?

Page 14: Capitulo III. Control y Descripcion de Procesos

Trabajo grupal Creación de procesos

• Objetivo: Plantear posibles ‘escenarios’ en donde

sea necesaria la creación 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 creación de procesos.

o Exponer ante sus compañeros el planteamiento del grupo, justificando la

inclusión de cada escenario.

• Tiempo requerido: 15 minutos

Page 15: Capitulo III. Control y Descripcion de Procesos

Creación de procesos

‘Engendrado’ de un proceso

Process spawning

• Cuando el S.O, crea un proceso ante la solicitud explícita de otro proceso.

Proceso Padre

• Es el proceso original, el engendrador.

Proceso Hijo

• Es el nuevo proceso.

Cooperación

Page 16: Capitulo III. Control y Descripcion de Procesos

Finalización de procesos • El S,O. debe proveer un mecanismo para

indicar que un proceso a terminado. o Se incluye una instrucción HALT, que genera una interrupción para

alertar al S.O. que un proceso se ha completado.

• ¿Cuándo? o Proceso completado.

o Límite de tiempo excedido.

o Memoria no disponible.

o Violación de acceso a memoria.

o Error de protección.

o Error aritmético.

o Falla de E/S.

o Intento de ejecución de instrucción privilegiada.

o Mal uso de datos.

o Intervención del S.O. Ejm: deadlock.

o Finalización del proceso padre.

Page 17: Capitulo III. Control y Descripcion de Procesos

Modelo de proceso de 5 estados

New Ready

Blocked

Running Exit

Figure 3.6 Five-State Process Model

AdmitDispatch

Timeout

Release

Event

Wait

Event

Occurs

Page 18: Capitulo III. Control y Descripcion de Procesos

Dispatcher

= Running = Ready

Figure 3.7 Process States for Trace of Figure 3.4

= Blocked

0 5 10 15 20 25 30 35 40 45 50

Process C

Process B

Process A

Modelo de proceso de 5 estados

Page 19: Capitulo III. Control y Descripcion de Procesos

Figure 3.8 Queuing Model for Figure 3.6

Dispatch

Timeout

Event Wait

Event 1 Wait

Event 2 Wait

Event n Wait

Event

Occurs

Ready Queue

Blocked Queue

AdmitRelease

Processor

Dispatch

ReleaseReady QueueAdmit

Processor

Timeout

Event 1 QueueEvent 1

Occurs

Event 2

Occurs

Event n

Occurs

Event 2 Queue

Event n Queue

(a) Single blocked queue

(b) Multiple blocked queues

Modelo de proceso de 5 estados

Page 20: Capitulo III. Control y Descripcion de Procesos

Procesos suspendidos o Las tareas de E/S son mucho más lentas que

las tareas que ejecuta el procesador.

• El procesador en un sistema monotarea pasaría 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, aún el procesador podría pasar mucho tiempo

en reposo.

• Solución: Acomodar más procesos en memoria principal.

• Aparece otro problema. Sabemos que la memoria principal es un recurso limitado. ¿Qué ocurre con los procesos bloqueados por un período de tiempo considerable? ¿ocupan memoria?.

• Solución: Swapping

Page 21: Capitulo III. Control y Descripcion de Procesos

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 están en estado READY hacia una cola de procesos suspendidos. Ahora, el S.O. puede traer otros procesos suspendidos o nuevos procesos creados (NEW).

Page 22: Capitulo III. Control y Descripcion de Procesos

Even

t

Occ

urs

New

Suspend

Ready

Blocked

Running Exit

Figure 3.9 Process State Transition Diagram with Suspend States

Admit

(a) With One Suspend State

Suspend

Eve

nt W

ait

Even

t

Occ

urs

Activat

e

Dispatch

Timeout

Release

Ready/

Suspend

New

Ready

Blocked

Running Exit

Adm

itAdm

it

(b) With Two Suspend States

Eve

nt W

ait

Even

t

Occ

urs

Dispatch

Timeout

Activate

Suspend

Suspend

Activate

Suspend

Release

Blocked/

Suspend

Procesos suspendidos

Page 23: Capitulo III. Control y Descripcion de Procesos

Razones para la suspensión de un proceso

• Swapping: El S.O. necesita liberar suficiente memoria principal para traer un proceso que está listo para ejecutarse.

• Otra razón 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 ejecución de una aplicación con propósitos de depuración de programa.

• Temporización: Un proceso es ejecutado de forma periódica (Ejm: Proceso de monitorización del sistema). Entonces será suspendido esperando el próximo intervalo de tiempo.

• Solicitud del proceso padre: El proceso padre solicita la suspensión de sus procesos hijos.

Page 24: Capitulo III. Control y Descripcion de Procesos

DESCRIPCION DE PROCESOS

Page 25: Capitulo III. Control y Descripcion de Procesos

Processor I /O I /O

Figure 3.10 Processes and Resources (resource allocation at one snapshot in time)

I /OMain

Memory

Computer

Resources

Virtual

Memory

P1 P2 Pn

Procesos y Recursos

“El S.O. es una entidad que gestiona el uso

de recursos del sistema mediante

procesos”.

Page 26: Capitulo III. Control y Descripcion de Procesos

Memory

Devices

Files

Processes

Process 1

Memory Tables

Process

Image

Process

1

Process

Image

Process

n

I /O Tables

File Tables

Figure 3.11 General Structure of Operating System Control Tables

Primary Process Table

Process 2

Process 3

Process n

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

Page 27: Capitulo III. Control y Descripcion de Procesos

• Deben ser administradas por el S.O.

• Todos los procesos deben estar

referenciados a memoria, E/S y

archivos directa o indirectamente.

• ¿Cómo el S.O. crea las tablas la

primera vez? o Se requiere de una configuración inicial básica del

entorno (cuánta memoria existe, que dispositivos

de E/S existen y cuales son sus identificadores)

Page 28: Capitulo III. Control y Descripcion de Procesos

•El lugar donde está el proceso.

•Los atributos del proceso que son necesarios para su gestión.

¿Qué necesita el S.O. para

gestionar y controlar

un proceso?

Page 29: Capitulo III. Control y Descripcion de Procesos

Process

IdentificationProcess

Control

Block

Processor State

Information

Process Control

Information

User Stack

Private User

Address Space

(Programs, Data)

Shared Address

Space

Process

Identification

Process 1 Process 2 Process n

Processor State

Information

Process Control

Information

User Stack

Private User

Address Space

(Programs, Data)

Shared Address

Space

Process

Identification

Processor State

Information

Process Control

Information

User Stack

Private User

Address Space

(Programs, Data)

Shared Address

Space

Figure 3.13 User Processes in Virtual Memory

Page 30: Capitulo III. Control y Descripcion de Procesos

Process Identification

Identifiers 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 Information

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.

Page 31: Capitulo III. Control y Descripcion de Procesos

Process Control Information

Scheduling and State Information 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.

Interprocess 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.

Memory Management

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.

Page 32: Capitulo III. Control y Descripcion de Procesos

• 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 indicación del proceso al que se le ha asignado cada región.

• Cuando un proceso se comunica con otro, el PID informa al S.O. el destino de una comunicación en particular.

• La relación entre procesos padres e hijos es mantenida a través de los PID.

Page 33: Capitulo III. Control y Descripcion de Procesos

Running

Ready

Blocked

Process

Control Block

Figure 3.14 Process List Structures

Page 34: Capitulo III. Control y Descripcion de Procesos

CONTROL DE PROCESOS

Page 35: Capitulo III. Control y Descripcion de Procesos

Modo Usuario

o Menos privilegios

o Todos los

programas de

usuario se

ejecutan de este

modo.

Modo Kernel

o Máximos privilegios.

o Lo ejecuta el kernel

del S.O. Para la

gestión de

procesos, memoria,

E/S, archivos, etc.

Page 36: Capitulo III. Control y Descripcion de Procesos

• El procedimiento que lleva a cabo es el

siguiente:

Asigna un identificador único al proceso creado.

Asigna espacio de memoria para el proceso (en función 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.

Page 37: Capitulo III. Control y Descripcion de Procesos

Mecanismos para la interrupción de la

ejecución de procesos

Mecanismo Causa Uso

Interrupción Externa a la ejecución de la instrucción actual.

Reacción a eventos externos asíncronos.

Trap Asociada a la ejecución de la instrucción actual

Manejo de un error o una condición de excepción.

Llamada al sistema Solicitud explícita Llamada a una función del S.O.

Page 38: Capitulo III. Control y Descripcion de Procesos

Interrupciones del sistema

Interrupción

• Debido a un evento que es externo e independiente del proceso que se ejecuta actualmente.

o Interrupción de reloj.

o Interrupción de E/S

o Falla de memoria.

• Time slice

o Máxima cantidad de tiempo que un proceso puede ejecutarse antes de ser interrumpido.

Trap

• Un error o condición de

excepción generado dentro del proceso que

se ejecuta actualmente.

• EL S.O. determina si una

condición es fatal.

o Finaliza el proceso si es

necesario.

o Notifica al usuario y

continua.

Page 39: Capitulo III. Control y Descripcion de Procesos

Si no hay interrupciones pendientes para el procesador.

Procede a apuntar a la siguiente instrucción a ejecutar.

Si hay interrupciones pendientes para el procesador

Setea el contador de programa (PC), hacia el inicio de la rutina que

maneja la interrupción.

Conmuta desde el modo usuario al modo kernel, para ejecutar instrucciones privilegiadas.

Page 40: Capitulo III. Control y Descripcion de Procesos

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 típico, los más 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 consideración de diseño clave es prevenir, o al menos detectar el malware que intenta ganar acceso como root.

Page 41: Capitulo III. Control y Descripcion de Procesos

Gestión de procesos en LINUX

Page 42: Capitulo III. Control y Descripcion de Procesos

Created

Sleep,

Swapped

Ready to Run

In Memory

Ready to Run

Swapped

Asleep in

MemoryZombie

Kernel

Running

User

Running

Preempted

fork

not enough memory

(swapping system only)enough

memory

swap in

swap out

swap out

wakeupwakeupsleep

return

preempt

return

to user

system call,

interrupt

exit

reschedule

process

interrupt,

interrupt return

Figure 3.17 UNIX Process State Transition Diagram

Diagrama de transición de estados

de un proceso en LINUX

Page 43: Capitulo III. Control y Descripcion de Procesos

User-Level Context Process text Executable machine instructions of the program Process data Data accessible by the program of this process

User stack Contains the arguments, local variables, and pointers for functions

executing in user mode

Shared memory Memory shared with other processes, used for interprocess

communication

Register Context Program counter Address of next instruction to be executed; may be in kernel or

user memory space of this process

Processor status register Contains the hardware status at the time of preemption; contents

and format are hardware dependent

Stack pointer Points to the top of the kernel or user stack, depending on the mode

of operation at the time or preemption

General-purpose registers Hardware dependent

System-Level Context Process table entry Defines state of a process; this information is always accessible to

the operating system U (user) area Process control information that needs to be accessed only in the

context of the process

Per process region table 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

Kernel stack Contains the stack frame of kernel procedures as the process

executes in kernel mode

Imagen de un proceso en LINUX

Page 44: Capitulo III. Control y Descripcion de Procesos

Process status Current state of process.

Pointers To U area and process memory area (text, data, stack).

Process size Enables the operating system to know how much space to allocate

the process.

User identifiers The real user ID identifies the user who is responsible for the

running process. The effective user ID 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.

Process identifiers ID of this process; ID of parent process. These are set up when the

process enters the Created state during the fork system call.

Event descriptor Valid when a process is in a sleeping state; when the event occurs,

the process is transferred to a ready-to-run state.

Priority Used for process scheduling.

Signal Enumerates signals sent to a process but not yet handled.

Timers Include process execution time, kernel resource utilization, and

user-set timer used to send alarm signal to a process.

P_link Pointer to the next link in the ready queue (valid if process is ready to execute).

Memory status 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.

Entrada en la tabla de procesos.

Page 45: Capitulo III. Control y Descripcion de Procesos

• La creación 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.

2 • Asigna un identificador único al proceso hijo.

3

• Hace una copia de la imagen del proceso padre, con excepción de la memoria compartida.

4

• Incremente los contadores para cualquier archivo perteneciente al padre, para reflejar que un proceso adicional es ahora también dueño de estos archivos.

5 • Setea el estado del proceso hijo a un estado ready

Page 46: Capitulo III. Control y Descripcion de Procesos

• Después de la creación 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.

Page 47: Capitulo III. Control y Descripcion de Procesos

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.

Page 48: Capitulo III. Control y Descripcion de Procesos

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 ¿Cuál es el PPID?

o ¿A quién pertenece el proceso padre?

• Utilice el comando cat para ver el contenido del archivo /proc/sys/kernel/pid_max o ¿Qué indica este valor?

Page 49: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX system

• Creación de procesos por medio de la función

system o Crea un proceso corriendo sobre el shell para la ejecución de un

comando.

o Retorna 0 cuando la ejecución es satisfactoria.

Page 50: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX system

• Creación de procesos por medio de la función

system o Crea un proceso corriendo sobre el shell para la ejecución de un

comando.

o Retorna 0 cuando la ejecución es satisfactoria.

Page 51: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX fork

• Creación de procesos mediante la llamada al

sistema fork(). o Duplica un proceso, llamado proceso hijo.

• El proceso padre continua la ejecución del proceso desde el punto

donde fork fue llamado.

• El proceso hijo también ejecuta el mismo programa, desde el mismo

punto.

o ¿Cómo 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 función

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.

Page 52: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX ejemplo fork

Page 53: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX exec

• Las funciones exec reemplazan el programa en

ejecución de un proceso con otro programa.

• Cuando un programa llama a la función exec, el

proceso deja de ejecutar el programa actual y

comienza a ejecutar el nuevo programa desde el

inicio.

• Hay varias funciones exec que varían ligeramente y

que siguen ciertas reglas.

Page 54: Capitulo III. Control y Descripcion de Procesos

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 ejecución 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

Page 55: Capitulo III. Control y Descripcion de Procesos

Procesos en Linux exec

• Ejemplo simple: Paso de parámetros varargs a un

programa en C:

Page 56: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX (fork y exec)

• El uso de ambas funciones es un patrón común. o Primero se crea el proceso y luego se ejecuta un subprograma. Esto

permite que el programa llamante siga con el ejecución en el proceso

padre, mientras que el proceso hijo inicia con la ejecución de otro

programa.

Page 57: Capitulo III. Control y Descripcion de Procesos

A incluir en el informe semanal…

• ¿Qué hace el comando

nice de LINUX? o ¿Cuándo es necesario el login como

root?

o ¿Para qué será importante el comando

nice?

Page 58: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX Señales (Signals)

• Una señal es un mensaje asíncrono ‘especial’ enviado a un proceso.

• Las señales con un mecanismo de comunicación y manipulación de procesos.

• Cuando un proceso recibe una señal, éste la procesa de forma inmediata.

• Cada señal está identificada por un número (o su nombre de constante). o En Linux para usar las señales se debe incluir el archivo de cabecera signal.h

• Cuando se recibe una señal, el proceso detiene su ejecución normal. En su lugar, ejecuta una rutina signal-handler. o Al terminar de ejecutar la rutina de manejo de señal retorna a la ejecución del

programa.

Page 59: Capitulo III. Control y Descripcion de Procesos

Identificador Nombre Descripción Acción por defecto

1 SIGHUP Terminal colgado o proceso muerto.

Terminar el proceso.

4 SIGILL Instrucción ilegal Terminar el proceso y volcado de memoria.

11 SIGSEGV El S.O. informa: Violación de acceso a memoria

Terminar el proceso y volcado de memoria.

8 SIGFPE El S.O. informa: Excepción de punto flotante.

Terminar el proceso y volcado de memoria.

15 SIGTERM Un proceso solicita la finalización de otro proceso.

Pregunta si finaliza el proceso.

9 SIGKILL Un proceso finaliza otro proceso de forma unilateral.

Terminar el proceso.

30, 10 y 16 SIGUSR1 Señal definida por el usuario 1

Terminar el proceso.

31, 12 y 17 SIGUSR2 Señal definida por el usuario 2

Terminar el proceso.

Procesos en LINUX - Señales (Signals)

Page 60: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX Señales (Signals)

• La función sigaction es una función que permite

modificar la acción, “disposition”, por defecto a

ejecutar cuando se recibe una señal. o Hay que ser cuidadosos en la implementación de una nueva rutina para

al manejo de la señal. ¿Por qué?

Page 61: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX Finalización de proceso

• Hemos visto que el comando kill permite enviar un mensaje a un proceso específico. o Kill –KILL 3450 (Envía la señal KILL (9) al proceso cuyo PID es 3450).

• Para enviar una señal desde un programa en C, hay que utilizar la función kill con dos parámetros de entrada: o kill(pid, señal)

o Donde:

• pid es el identificador del proceso a emitir la señal.

• señal es el tipo de señal 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 función kill.

Page 62: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX Esperando por la finalización de un proceso.

• ¿Qué sucedió con el programa en donde se crea un proceso hijo para imprimir la salida del comando “ls -l /”?

Page 63: Capitulo III. Control y Descripcion de Procesos

• 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 ejecución usando

la familia de llamadas al sistema wait.

Procesos en LINUX Esperando por la finalización de un proceso.

Page 64: Capitulo III. Control y Descripcion de Procesos

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.

Page 65: Capitulo III. Control y Descripcion de Procesos

Procesos en LINUX wait

Es necesario para el uso de

WEXITSATUS y WIFEXITED

Espera q que el proceso

hijo termine