Beruflich Dokumente
Kultur Dokumente
Gestin de procesos
Mdulo 2, Seccin 1
Procesos
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
Temas
Idea Conceptual de Proceso Coordinacin de Procesos Operacin sobre los Procesos Procesos Cooperativos Comunicacin entre los Procesos
manera secuencial.
Un proceso incluye:
program counter stack Seccin de Datos
Antonio Reynoso Lobato 2002 A
5
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
10
11
Admitido
Interrupcin
Salir
Memoria Principal
CPU
Despacho-Coordinador
Disco Duro
Antonio Reynoso Lobato 2002 A
12
13
conjunto de todos los procesos residentes en la memoria-principal, listos y en espera para ejecutarse. en espera de un dispositivo de E/S.
14
15
16
Schedulers-Coordinadores
18
Schedulers-Coordinadores (Cont.)
19
Schedulers-Coordinadores (Cont.)
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.
21
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).
22
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.
23
24
25
Terminacin de Procesos
Devuelve datos de salida desde el hijo al padre (va wait). Los recursos del proceso son liberados por el sistema operativo.
26
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
29
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
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
Hilos
Tarea
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.
mecanismo que permite a los procesos secuenciales hacer llamados de bloqueo mientras realizan paralelismo.
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).
35
Hilos en Solaris 2
36
Solaris 2 :Hilos
hilo en el nivel de usuario Proceso ligero
37
38
39
1. fsico (ejemplo, memoria-compartida, bus en hardware o una red) 2. lgico (ejemplo, propiedades lgicas)
40
Propiedades Lgicas
Como establecer los enlaces? Puede un enlace estar asociado con mas de dos
procesos?
42
Operaciones
create un nuevo buzn send y receive mensajes por medio del buzn destroy un buzn
44
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.
45
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).
46
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.
47
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