Gestión de procesos en sistema operativo

Anuncio
Módulo 2
Gestión 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
multiprogramación.
Sección 1: Procesos
Antonio Reynoso Lobato 2002 A
1
Módulo 2, Sección 1
Procesos
Antonio Reynoso Lobato 2002 A
2
Procesos
Objetivo: Comprender el sistema como una
colección de procesos que ejecutan código
del sistema de manera concurrente con
programas del usuario que ejecutan código del
usuario
Antonio Reynoso Lobato 2002 A
3
Temas
• Idea Conceptual de Proceso
• Coordinación de Procesos
• Operación sobre los Procesos
• Procesos Cooperativos
• Comunicación entre los Procesos
Antonio Reynoso Lobato 2002 A
4
Idea Conceptual de Proceso
• Un sistema operativo ejecuta una variedad de programas:
– Tareas en Batch
– Tareas o programas de usuario en Tiempo Compartido
• Los términos tarea y proceso se usan casi como sinónimos
y son la unidad de trabajo de los sistemas modernos.
• Proceso – un programa en ejecución;
 la ejecución de un proceso debe progresar de
manera secuencial.
• Un proceso incluye:
– program counter
– stack
– Sección de Datos
Antonio Reynoso Lobato 2002 A
5
Stack: Direcciones de Retorno
Antonio Reynoso Lobato 2002 A
6
Stack: Paso de Parámetros
Antonio Reynoso Lobato 2002 A
7
Stack: Cambio de Contexto
Antonio Reynoso Lobato 2002 A
8
Bloque de Control del Proceso (PCB)
Información asociada con cada proceso.
• Estado del proceso
• Program counter
• Registros del CPU
• Información para la coordinación del CPU
• Información para la Administración de Memoria
• Información para la Contabilidad
• Información 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 están ejecutando en el
CPU.
– esperando: El proceso esta en el Disco en espera de
que ocurra algún evento.
– terminado: El proceso ha finalizado su ejecución y es
enviado al Disco.
Antonio Reynoso Lobato 2002 A
11
Diagrama de Estado del Proceso
Admitido
Interrupción
Memoria
Principal
CPU
Despacho-Coordinador
Terminación de E/S o suceso
Disco Duro
Antonio Reynoso Lobato 2002 A
Salir
12
Espera por E/S o suceso
Intercambio del CPU de un Proceso a otro Proceso
Interrupción o llamada al sistema
Interrupción o llamada al sistema
Antonio Reynoso Lobato 2002 A
13
Colas de la Coordinación 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.
• Cola de dispositivos –conjunto de todos los procesos
en espera de un dispositivo de E/S.
• Migración 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 Coordinación 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 traído 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 multiprogramación y también
para mejorar la mezcla de procesos
Antonio Reynoso Lobato 2002 A
17
Coordinador de mediano plazo
Entra por intercambio
Antonio Reynoso Lobato 2002 A
Sale por intercambio
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 rápido).
• 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
multiprogramación.
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
(overhead) gasto
extra; el sistema no realiza trabajo útil durante la
conmutación.
• Este tiempo depende del hardware.
Antonio Reynoso Lobato 2002 A
21
Operación sobre los Procesos:Creación
• 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 iniciación
(entradas).
Antonio Reynoso Lobato 2002 A
22
Creación 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
• Ejecución
– El padre sigue ejecutándose concurrentemente
con sus hijos.
– El padre espera hasta que uno de los hijos, o todos,
han terminado.
Antonio Reynoso Lobato 2002 A
23
Creación de Procesos (Cont.)
• Ejemplo UNIX :Cada proceso se identifica con un
número 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 después 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
Terminación de Procesos
• El proceso termina cuando ejecuta su ultima proposición
y pide al sistema operativo que lo elimine con (exit).
– Devuelve datos de salida desde el hijo al padre
(vía wait).
– Los recursos del proceso son liberados por el
sistema operativo.
Antonio Reynoso Lobato 2002 A
26
Terminación de Procesos (Cont.)
• Padres pueden terminar la ejecución 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.
Terminación en cascada de todos sus hijos.
Antonio Reynoso Lobato 2002 A
27
Procesos Cooperativos
• Proceso Independiente
no puede afectar ni ser
afectado por la ejecución de otro proceso
(no comparte datos).
• Proceso Cooperativo puede afectar y ser afectado por la
ejecución de otro proceso (comparte datos).
• Ventajas de la cooperación de procesos.
–
–
–
–
Información compartida
Aceleración de la Computación
Modularidad (procesos individuales)
Comodidad
Antonio Reynoso Lobato 2002 A
28
Problema del Productor-Consumidor
• Paradigma de los procesos cooperativos, el
proceso
productor produce información que es consumida por un
proceso consumidor.
• Buffer: que el productor pueda llenar y el consumidor
pueda vaciar.
– Buffer-ilimitado sin prácticamente limite sobre el
tamaño del buffer.
– Buffer-limitado supone que hay un tamaño fijo para el
tamaño del buffer.
Antonio Reynoso Lobato 2002 A
29
Buffer Limitado – Solución Memoria Compartida
• Datos Compartidos
var n;
type item = … ;
var buffer. array [0..n–1] of item;
in, out: 0..n–1;
• 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;
• Solución
correcta, pero solo puede llenar n–1 buffers.
Antonio Reynoso Lobato 2002 A
31
Hilos
• Un Hilo (o proceso ligero) es la Unidad básica de
utilización del CPU; consiste de:
– program counter
– Conjunto de registros
– Espacio en el stack
• Un hilo comparte con su hilo par (del mismo nivel):
– sección de código
– Sección de datos
– Recursos del sistema- operativo como archivos
abiertos y señales 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 Múltiples dentro de una Tarea
Hilos
Tarea
Antonio Reynoso Lobato 2002 A
33
Hilos (Cont.)
• En una tarea de hilos múltiples, mientras un hilo servidor es
bloqueado y esta esperando,un segundo hilo de la misma
tarea puede correr.
– Cooperación de hilos múltiples en una misma tarea
confiere alto rendimiento y un desempeño mejorado.
– Aplicaciones que requieren un buffer común compartido
(ejemplo, productor-consumidor) se benefician de la
utilización 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, vía un
conjunto de llamadas a biblioteca al nivel de usuario
(Proyecto Andrew de CMU).
• Aproximación Híbrida 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 versión de UNIX con soporte de hilos a
nivel de kernel y de usuario, multiprocesamiento
simétrico, y coordinación 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
núcleo
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 pequeña y un
stack; el cambio entre hilos no requiere cambiar la
información de acceso a memoria – relativamente
rápidos.
– Procesos Ligeros (LWP): PCB con datos de registro,
información 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 rápidos..
Antonio Reynoso Lobato 2002 A
38
Comunicación Í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 comunicación ínter- procesos
provee dos operaciones
primitivas:
– send(message)
– receive(message)
– el tamaño del mensaje es fijo o variable
Antonio Reynoso Lobato 2002 A
39
Comunicación Ínter-procesos (IPC) Cont.
•
Si P y Q desean comunicarse, ellos tienen que:
1. Establecer un (link) enlace de comunicación entre
ellos
2. Intercambiar mensajes vía send/receive
•
Para establecer el (link) enlace de comunicación, tienen
que:
1. físico (ejemplo, memoria-compartida, bus en
hardware o una red)
2. lógico (ejemplo, propiedades lógicas)
Antonio Reynoso Lobato 2002 A
40
Propiedades Lógicas
• ¿Como establecer los enlaces?
• ¿Puede un enlace estar asociado con mas de dos
procesos?
• ¿Cuántos enlaces puede haber entre cualquier par de
procesos en comunicación?
• ¿Qué capacidad tiene un enlace?
• ¿El tamaño 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:Comunicación Directa
• Los procesos deberán referirse uno al otro explícitamente:
send (P, message): enviar un mensaje al proceso P
receive(Q, message):recibir un mensaje del proceso Q
• Propiedades de los lazos de comunicación
• Los enlaces son establecidos automáticamente.
Un enlace esta asociado con exactamente un par de
procesos en comunicación.
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:Comunicación Indirecta
• Los mensajes son dirigidos y recibidos desde mailboxes
(también llamados ports).
– Cada buzón tiene un id (identificador) único.
– Los procesos pueden comunicarse solo si comparten
un buzón
• Propiedades de un lazo de comunicación:
– El enlace se establece solo si los procesos comparten
un buzón común
– Un enlace puede estar asociado con muchos procesos.
– Cada par de procesos puede compartir varios enlaces
de comunicación.
– El enlace puede ser unidireccional o bi-direccional.
Antonio Reynoso Lobato 2002 A
43
Comunicación Indirecta (Cont.)
• Operaciones
– create un nuevo buzón
– send y receive mensajes por medio
del buzón
– destroy un buzón
Antonio Reynoso Lobato 2002 A
44
Comunicación Indirecta (Continuación)
•
Buzón compartido
 P1, P2, y P3 comparten el buzón A.
 P1, sends; P2 y P3 receive.
 ¿Quién 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
operación 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 asíncrona 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 jamás espera.
Antonio Reynoso Lobato 2002 A
47
Condiciones de Excepción y Recuperación
Cuando ocurre un fallo antes de que se procese un
mensaje o durante la comunicación:
• El proceso termina.
– Notificación
• Mensajes perdidos
– Retransmite el mensaje
– Retransmite el mensaje, si el emisor desea
hacerlo
• Mensajes alterados
– Códigos de verificación de errores
– Retransmisión
Antonio Reynoso Lobato 2002 A
48
Descargar