Sie sind auf Seite 1von 48

Mdulo 2

Gestin de procesos

Objetivo : Comprender el concepto de proceso, como un


programa de sistema que tiene un modelo de registros y valores particulares de la computadora y que conduce a la multiprogramacin. Seccin 1: Procesos

Antonio Reynoso Lobato 2002 A

Mdulo 2, Seccin 1

Procesos

Antonio Reynoso Lobato 2002 A

Procesos

Objetivo: Comprender el sistema como una coleccin de procesos que ejecutan cdigo del sistema de manera concurrente con programas del usuario que ejecutan cdigo del usuario

Antonio Reynoso Lobato 2002 A

Temas

Idea Conceptual de Proceso Coordinacin de Procesos Operacin sobre los Procesos Procesos Cooperativos Comunicacin entre los Procesos

Antonio Reynoso Lobato 2002 A

Idea Conceptual de Proceso


Un sistema operativo ejecuta una variedad de programas:
Tareas en Batch Tareas o programas de usuario en Tiempo Compartido

Los trminos tarea y proceso se usan casi como sinnimos


y son la unidad de trabajo de los sistemas modernos.

Proceso un programa en ejecucin;


la ejecucin de un proceso debe progresar de

manera secuencial.

Un proceso incluye:
program counter stack Seccin de Datos
Antonio Reynoso Lobato 2002 A
5

Stack: Direcciones de Retorno

Antonio Reynoso Lobato 2002 A

Stack: Paso de Parmetros

Antonio Reynoso Lobato 2002 A

Stack: Cambio de Contexto

Antonio Reynoso Lobato 2002 A

Bloque de Control del Proceso (PCB)


Informacin asociada con cada proceso.

Estado del proceso Program counter Registros del CPU Informacin para la coordinacin del CPU Informacin para la Administracin de Memoria Informacin para la Contabilidad Informacin del Estado de la E/S
Antonio Reynoso Lobato 2002 A
9

Bloque de Control del Proceso (PCB)

Antonio Reynoso Lobato 2002 A

10

Estados del Proceso


Cuando un proceso se ejecuta, este cambia de estado.
nuevo: El proceso se esta creando.Cargador- Ligador listo: El programa esta en la Memoria Principal en espera de ser asignado a un proceso. corriendo: Las instrucciones se estn ejecutando en el CPU. esperando: El proceso esta en el Disco en espera de que ocurra algn evento. terminado: El proceso ha finalizado su ejecucin y es enviado al Disco.

Antonio Reynoso Lobato 2002 A

11

Diagrama de Estado del Proceso

Admitido

Interrupcin

Salir

Memoria Principal

CPU

Despacho-Coordinador

Terminacin de E/S o suceso

Espera por E/S o suceso

Disco Duro
Antonio Reynoso Lobato 2002 A

12

Intercambio del CPU de un Proceso a otro Proceso

Interrupcin o llamada al sistema

Interrupcin o llamada al sistema

Antonio Reynoso Lobato 2002 A

13

Colas de la Coordinacin de Procesos

Cola de tareas conjunto de todos los procesos en el


sistema.

Cola de procesos listos

conjunto de todos los procesos residentes en la memoria-principal, listos y en espera para ejecutarse. en espera de un dispositivo de E/S.

Cola de dispositivos conjunto de todos los procesos

Migracin de los Procesos entre las distintas colas.


Antonio Reynoso Lobato 2002 A

14

Cola de Listos y Varias Colas de Dispositivos de E/S


Cola de procesos listos

Antonio Reynoso Lobato 2002 A

15

Diagrama de Colas de la Coordinacin de Procesos


Coordinador de Largo plazo Coordinador de Corto plazo

Coordinador de Mediano plazo

Antonio Reynoso Lobato 2002 A

16

Schedulers-Coordinadores

Coordinador de largo plazo (o coordinador de tareas)


selecciona cual proceso deber ser trado a la cola de procesos listos.

Coordinador de corto plazo (o coordinador del CPU)


selecciona cual proceso deber ser ejecutado enseguida y colocarlo en el CPU.

Coordinador de mediano plazo


( en sistemas de tiempo compartido) realiza intercambio (swapping), para liberar a la memoria principal y reducir el grado de multiprogramacin y tambin para mejorar la mezcla de procesos
Antonio Reynoso Lobato 2002 A
17

Coordinador de mediano plazo

Entra por intercambio

Sale por intercambio

Antonio Reynoso Lobato 2002 A

18

Schedulers-Coordinadores (Cont.)

Los procesos pueden ser descritos como:


Procesos limitados por E/S pasan mas tiempo realizando E/S que computaciones, y va muchas veces al CPU -de carrera corta. Procesos limitados por CPU pasan mas tiempo realizando computaciones; y va muy pocas veces al CPU -de carrera larga.

El sistema con el mejor rendimiento tiene una buena


mezcla de ambos procesos.

Antonio Reynoso Lobato 2002 A

19

Schedulers-Coordinadores (Cont.)

El coordinador de corto plazo es invocado muy


frecuentemente: (en milisegundos) (deber de ser rpido).

El coordinador de largo plazo es invocado muy


infrecuentemente: (en segundos, o minutos) (deber de ser lento).

El coordinador de largo plazo controla el grado de


multiprogramacin.

Antonio Reynoso Lobato 2002 A

20

Cambio de Contexto
Cuando el CPU cambia a otro proceso, el sistema deber:
guardar el estado del proceso viejo y cargar el estado guardado para el nuevo proceso.

El tiempo de cambio-contexto es solo Este tiempo depende del hardware.

(overhead) gasto extra; el sistema no realiza trabajo til durante la conmutacin.

Antonio Reynoso Lobato 2002 A

21

Operacin sobre los Procesos:Creacin

Los procesos padres crean procesos hijos, los cuales, a


su vez crean otros procesos, formando un rbol de procesos.

Recursos compartidos
Los padres dividen todos sus recursos entre sus hijos. Los hijos comparten un subconjunto de los recursos de los padres. Padres e hijos comparten datos de iniciacin (entradas).

Antonio Reynoso Lobato 2002 A

22

Creacin de Procesos (Cont.)


Cuando se crea un proceso nuevo (Posibilidades):

Espacio de direcciones
El hijo es un duplicado del padre. Se carga un programa dentro del proceso hijo

Ejecucin
El padre sigue ejecutndose concurrentemente con sus hijos. El padre espera hasta que uno de los hijos, o todos, han terminado.

Antonio Reynoso Lobato 2002 A

23

Creacin de Procesos (Cont.)

Ejemplo UNIX :Cada proceso se identifica con un


nmero entero nico El llamado a sistema fork (bifurcar) crea un nuevo proceso con una copia del espacio de direcciones del proceso original El llamado a sistema execve usado despus de un fork para reemplazar el espacio de memoria del proceso con un programa nuevo.

Antonio Reynoso Lobato 2002 A

24

Un rbol de Procesos en un Sistema UNIX

Antonio Reynoso Lobato 2002 A

25

Terminacin de Procesos

El proceso termina cuando ejecuta su ultima proposicin


y pide al sistema operativo que lo elimine con (exit).

Devuelve datos de salida desde el hijo al padre (va wait). Los recursos del proceso son liberados por el sistema operativo.

Antonio Reynoso Lobato 2002 A

26

Terminacin de Procesos (Cont.)

Padres pueden terminar la ejecucin de los procesos


hijos (abort): El hijo ha excedido los recursos que se le asignaron. Las tareas asignadas a los hijos ya no son necesarias. El padre esta saliendo. El sistema operativo no le permite al hijo continuar si su padre termina. Terminacin en cascada de todos sus hijos.

Antonio Reynoso Lobato 2002 A

27

Procesos Cooperativos

Proceso Independiente

no puede afectar ni ser afectado por la ejecucin de otro proceso (no comparte datos). ejecucin de otro proceso (comparte datos).

Proceso Cooperativo puede afectar y ser afectado por la Ventajas de la cooperacin de procesos.
Informacin compartida Aceleracin de la Computacin Modularidad (procesos individuales) Comodidad
28

Antonio Reynoso Lobato 2002 A

Problema del Productor-Consumidor

Paradigma de los procesos cooperativos, el

proceso productor produce informacin que es consumida por un proceso consumidor.


pueda vaciar. Buffer-ilimitado sin prcticamente limite sobre el tamao del buffer. Buffer-limitado supone que hay un tamao fijo para el tamao del buffer.

Buffer: que el productor pueda llenar y el consumidor

Antonio Reynoso Lobato 2002 A

29

Buffer Limitado Solucin Memoria Compartida

Datos Compartidos
var n; type item = ; var buffer. array [0..n1] of item; in, out: 0..n1;

Proceso Productor
repeat produce an item in nextp while in+1 mod n = out do no-op; buffer [in] :=nextp; in :=in+1 mod n; until false;
Antonio Reynoso Lobato 2002 A

30

Buffer-Limitado (Cont.)
Proceso Consumidor
Repeat while in = out do no-op; nextc := buffer [out]; out := out+1 mod n; consume the item in nextc until false;

Solucin

correcta, pero solo puede llenar n1 buffers.

Antonio Reynoso Lobato 2002 A

31

Hilos
Un Hilo (o proceso ligero) es la Unidad bsica de
utilizacin del CPU; consiste de: program counter Conjunto de registros Espacio en el stack

Un hilo comparte con su hilo par (del mismo nivel):


seccin de cdigo Seccin de datos Recursos del sistema- operativo como archivos abiertos y seales lo que se conoce como tarea (task).

Un proceso tradicional (o proceso pesado) es igual a


una tarea con un solo hilo
Antonio Reynoso Lobato 2002 A
32

Hilos Mltiples dentro de una Tarea

Hilos

Tarea

Antonio Reynoso Lobato 2002 A

33

Hilos (Cont.)
En una tarea de hilos mltiples, mientras un hilo servidor es
bloqueado y esta esperando,un segundo hilo de la misma tarea puede correr. Cooperacin de hilos mltiples en una misma tarea confiere alto rendimiento y un desempeo mejorado. Aplicaciones que requieren un buffer comn compartido (ejemplo, productor-consumidor) se benefician de la utilizacin de hilos.

Los hilos proveen un

mecanismo que permite a los procesos secuenciales hacer llamados de bloqueo mientras realizan paralelismo.

Antonio Reynoso Lobato 2002 A

34

Hilos (Cont.)

Kernel-soportado por hilos (Mach y OS/2). Hilos a nivel de usuario; soportado sobre el kernel, va un
conjunto de llamadas a biblioteca al nivel de usuario (Proyecto Andrew de CMU).

Aproximacin Hbrida implementa hilos a nivel de usuario


y kernel-soportado por hilos (Solaris 2).

Antonio Reynoso Lobato 2002 A

35

Hilos en Solaris 2

Solaris 2 es una versin de UNIX con soporte de hilos a


nivel de kernel y de usuario, multiprocesamiento simtrico, y coordinacin en tiempo real.

LWP: Procesos Ligeros nivel intermedio entre hilos a


nivel de usuario e hilos a nivel de kernel.

Antonio Reynoso Lobato 2002 A

36

Solaris 2 :Hilos
hilo en el nivel de usuario Proceso ligero

hilo del ncleo

Antonio Reynoso Lobato 2002 A

37

Hilos en Solaris 2 (Cont.)


Recursos que requieren los distintos tipos de hilos:
Hilo de Kernel : estructura de datos pequea y un stack; el cambio entre hilos no requiere cambiar la informacin de acceso a memoria relativamente rpidos. Procesos Ligeros (LWP): PCB con datos de registro, informacin de memoria y de contabilidad;el cambio entre procesos ligeros es relativamente lento. Hilos a nivel de usuario: solo necesitan stack y program counter; el no involucramiento del kernel significa cambios rpidos..

Antonio Reynoso Lobato 2002 A

38

Comunicacin nter-procesos (IPC)

Mecanismo para comunicar procesos cooperativos y


para sincronizar sus acciones.

Sistema de Mensajes comunica procesos uno con otro


sin frecuentar el rea de la memoria-compartida.

La comunicacin nter- procesos


primitivas:

provee dos operaciones

send(message) receive(message) el tamao del mensaje es fijo o variable

Antonio Reynoso Lobato 2002 A

39

Comunicacin nter-procesos (IPC) Cont.

Si P y Q desean comunicarse, ellos tienen que:


1. Establecer un (link) enlace de comunicacin entre ellos 2. Intercambiar mensajes va send/receive

Para establecer el (link) enlace de comunicacin, tienen que:

1. fsico (ejemplo, memoria-compartida, bus en hardware o una red) 2. lgico (ejemplo, propiedades lgicas)

Antonio Reynoso Lobato 2002 A

40

Propiedades Lgicas

Como establecer los enlaces? Puede un enlace estar asociado con mas de dos
procesos?

Cuntos enlaces puede haber entre cualquier par de


procesos en comunicacin?

Qu capacidad tiene un enlace? El tamao de un mensaje, que el enlace puede


acomodar, es fijo o variable?

El enlace es unidireccional o bi-direccional?


Antonio Reynoso Lobato 2002 A
41

Intercambio de Mensajes:Comunicacin Directa

Los procesos debern referirse uno al otro explcitamente:


send (P, message): enviar un mensaje al proceso P receive(Q, message):recibir un mensaje del proceso Q

Propiedades de los lazos de comunicacin


Los enlaces son establecidos automticamente. Un enlace esta asociado con exactamente un par de procesos en comunicacin. Entre cada par existe exactamente un enlace. El enlace puede ser unidireccional, pero usualmente es bi-direccional.

Antonio Reynoso Lobato 2002 A

42

Intercambio de Mensajes:Comunicacin Indirecta

Los mensajes son dirigidos y recibidos desde mailboxes


(tambin llamados ports). Cada buzn tiene un id (identificador) nico. Los procesos pueden comunicarse solo si comparten un buzn

Propiedades de un lazo de comunicacin:


El enlace se establece solo si los procesos comparten un buzn comn Un enlace puede estar asociado con muchos procesos. Cada par de procesos puede compartir varios enlaces de comunicacin. El enlace puede ser unidireccional o bi-direccional.
Antonio Reynoso Lobato 2002 A
43

Comunicacin Indirecta (Cont.)

Operaciones
create un nuevo buzn send y receive mensajes por medio del buzn destroy un buzn

Antonio Reynoso Lobato 2002 A

44

Comunicacin Indirecta (Continuacin)

Buzn compartido
P1, P2, y P3 comparten el buzn A. P1, sends; P2 y P3 receive. Quin tiene el mensaje?

Soluciones Permitir que un enlace este asociado cuando mucho a dos procesos . Permitir que solo un proceso a un tiempo ejecute una operacin receive . Permitir que el sistema seleccione arbitrariamente al receptor. El transmisor ser notificado de quien fue el receptor.

Antonio Reynoso Lobato 2002 A

45

Buffering: Uso de Buffers

Implementado en una de la tres formas siguientes: 1. Capacidad cero Sin Buffer: 0 mensajes El transmisor deber de sincronizarse: esperar por el receptor (rendezvous) o enviar el mensaje sin esperar aunque se pierda. Comunicarse de manera asncrona no-responsiva: esperar el acuse de recibo del receptor, por medio de la primitiva reply( P, mensaje).

Antonio Reynoso Lobato 2002 A

46

Buffering: Uso de Buffers (Cont.)

Cola de mensajes adherida al enlace (link); implementada en una de las formas siguientes: 2. Capacidad limitada longitud finita de los n mensajes El transmisor deber de esperar, si el Buffer esta lleno. 3. Capacidad ilimitada longitud infinita El transmisor jams espera.

Antonio Reynoso Lobato 2002 A

47

Condiciones de Excepcin y Recuperacin


Cuando ocurre un fallo antes de que se procese un mensaje o durante la comunicacin:

El proceso termina.
Notificacin

Mensajes perdidos
Retransmite el mensaje Retransmite el mensaje, si el emisor desea hacerlo

Mensajes alterados
Cdigos de verificacin de errores Retransmisin
Antonio Reynoso Lobato 2002 A
48

Das könnte Ihnen auch gefallen