Upload
brenna
View
46
Download
0
Embed Size (px)
DESCRIPTION
Sistemas Operativos. 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 . Módulo 2, Sección 1. Procesos. - PowerPoint PPT Presentation
Citation preview
1
Sistemas Operativos
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
2
Módulo 2, Sección 1
Procesos
3
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
4
Temas
• Idea Conceptual de Proceso
•Coordinación de Procesos
•Operación sobre los Procesos
•Procesos Cooperativos•Comunicación entre los Procesos
5
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
6
Stack: Direcciones de Retorno
7
Stack: Paso de Parámetros
8
Stack: Cambio de Contexto
9
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
10
Bloque de Control del Proceso (PCB)
11
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.
12
Diagrama de Estado del Proceso
Admitido Interrupción Salir
Terminación de E/S o suceso Despacho-Coordinador
Espera por E/S o suceso
Memoria Principal CPU
Disco Duro
13
Intercambio del CPU de un Proceso a otro Proceso
Interrupción o llamada al sistema
Interrupción o llamada al sistema
14
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.
15
Cola de Listos y Varias Colas de Dispositivos de E/S
Cola de procesos listos
16
Diagrama de Colas de la Coordinación de Procesos Coordinador
de Largo plazo
Coordinador de
Corto plazo
Coordinador de
Mediano plazo
17
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
18
Coordinador de mediano plazo
Sale por intercambioEntra por intercambio
19
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.
20
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.
21
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.
22
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).
23
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.
24
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.
25
Un Árbol de Procesos en un Sistema UNIX
26
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.
27
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.
28
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
29
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.
30
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;
31
Buffer-Limitado (Cont.)• Proceso Consumidor
Repeatwhile 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.
32
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
33
Hilos Múltiples dentro de una Tarea
Tarea
Hilos
34
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.
35
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).
36
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.
37
Solaris 2 :Hilos
hilo en el nivel de usuario
Proceso ligero
hilo del núcleo
38
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..
39
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
40
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)
41
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?
42
Intercambio de Mensajes:Comunicación Directa
• Los procesos deberán referirse uno al otro explícitamente:send (P, message): enviar un mensaje al proceso Preceive(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.
43
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.
44
Comunicación Indirecta (Cont.)
•Operaciones– create un nuevo buzón– send y receive mensajes por medio
del buzón– destroy un buzón
45
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.
46
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).
47
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.
48
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