Académique Documents
Professionnel Documents
Culture Documents
2.1 Procesos 2.3 Comunicacin entre procesos 2.4 Problemas clasicos de comunicacin entre procesos 2.5 Calendarizacin
Procesos
Todas las computadoras modernas pueden hacer varias cosas al mismo tiempo. Si bien, en trminos estrictos, la CPU slo puede ejecutar un programa en cualquier instante dado, a lo largo de un segundo puede trabajar en varios programas, lo que da a los usuarios la ilusin de paralelismo. A veces se le llama pseudoparalelismo, para contrastarlo con el verdadero paralelismo de hw de los sistemas multiprocesador. Un proceso es un programa en ejecucin, incluye los valores que tienen el contador de programa, los registros y las variables.
Procesos
El modelo de procesos
a) Multiprogramacin de cuatro programas. b) Modelo conceptual de cuatro procesos secuenciales independientes. c) Solo un programa est activo a la vez. Con la CPU conmutando, la rapidez con que un proceso efecta sus operaciones no ser uniforme y es probable que ni siquiera sea reproducible si los mismos procesos se ejecutan otra vez. Ejemplo: cientfico cocinando. 3
Creacin de Procesos
Principales eventos que causan la creacin de procesos.
1. El arranque del sistema 2. La ejecucin, desde un proceso, de una llamada al sistema para creacin de procesos. 3. Una peticin de usuario para crear un proceso. 4. Inicio de un trabajo por lotes.
Terminacin de Procesos
Condiciones para terminan procesos:
1. 2. 3. 4. Terminacin normal (voluntaria) Terminacin por error (voluntaria) Error fatal (involuntaria) Terminado por otro proceso (involuntaria)
Jerarquas de procesos
Los padres crean procesos hijos, los procesos hijos pueden crear a su vez sus propios procesos. Forman una jerarqua
UNIX la llama un grupo de procesos Los procesos en UNIX no pueden desheredar a sus hijos.
10
Dos procesos que quieren tener acceso a la memoria compartida al mismo tiempo.
Ley de Murphy: si algo puede salir mal, lo har.
11
Regiones Crticas
Cuantro condiciones para proveer exclusin mutua.
1.
2.
3.
4.
Dos procesos no pueden entrar al mismo tiempo dentro de sus regiones criticas. No pueden hacerse suposiciones sobre las velocidades ni el nmero de las CPUs. Ningn proceso que se est ejecutando afuera de su regin crtica puede bloquear a otros procesos. Ningn proceso deber tener que esperar de manera indefinida para entrar en su regin crtica.
12
Espera Ocupada
15
Semforos
18
Monitores (1)
Es una coleccin de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de mdulo o paquete. Los procesos pueden invocar los procedimientos de un monitor cuando lo deseen, pero no pueden acceder en forma directa a sus estructuras de datos internas desde procedimientos declarados fuera de dicho monitor.
Un monitor
19
Monitores (2)
Cuando un proceso llama a un procedimiento de monitor, las primeras instrucciones de ste verifican si algn otro proceso est activo dentro del monitor. Si es as, el proceso invocador se suspender hasta que el otro proceso haya salido del monitor. Si ningn otro proceso lo est usando, el proceso invocador puede entrar.
20
Monitores (3)
Aunque los monitores facilitan la exclusin mutua, no es suficiente, tambin necesitamos que los procesos puedan bloquearse cuando les sea imposible continuar. Variables de condicin, wait y signal.
Cuando un procedimiento de monitor descubre que no puede continuar (ej. para el productor un buffer lleno) ejecuta wait con alguna variable de condicin (ej. lleno). Esta accin hace que el proceso invocador se bloquee, y tambin permite la entrada de otro proceso al que antes se le haba impedido entrar en el monitor. Este proceso, que podra ser el consumidor, puede activar a su compaero inactivo ejecutando signal con la variable de condicin que su compaero est esperando.
21
Monitors (4)
Si no hay mensajes disponibles, el receptor puede bloquearse hasta que llegue uno, o bien, regresar de inmediato un cdigo de error.
23
24
25
27
28
30
31