Cola de jobs- conjunto de todos los procesos en el sistema.
Cola de listos- conjunto de procesos residentes en memoria, listos y en espera para ejecucución.
Cola de dispositivos- conjunto de procesos esperando por algún dispositivo de E/S.
Migración de los procesos entre varias colas.
Colas de planificación de procesos
Planificadores
Planificador de largo plazo (job scheduler) – Selecciona que proceso traer a la cola de procesos listos.
Planificador de corto plazo (CPU scheduler) – Selecciona que proceso debe ejecutarse enseguida y reserva el CPU.
Cambio de Contexto
Cuando el CPU cambia a otro proceso, el sistema debe salvar el estado del proceso antiguo y cargar el estado del proceso nuevo.
El cambio de contexto es overhead; el sistema no realiza cómputo útil durante el cambio.
El tiempo de realización del cambio de contexto es dependiente del soporte de hardware.
Al crearse un proceso se le asigna memoria (para cargado de código, datos y stack), recursos, información del PCB, y se carga en memoria.
Además se inicializan registros para protección del espacio de memoria reserva a este proceso.
El proceso padre puede crear procesos hijos, los cuales a su vez pueden crear otros procesos, formando así un arbol de procesos.
Compartición de recursos.
Los padres e hijos comparten todos los recursos.
El hijo comparte un subconjunto de los recursos del padre.
El hijo y el padre no comparten recursos.
Ejecución
El padre y el hijo se ejecutan concurrentemente.
El padre espera hasta que el hijo termina.
Ejemplo UNIX
la llamada a fork crea un proceso nuevo.
Creacion del Proceso
Terminación de Procesos
El proceso ejecuta su última instrucción y pide al sistema que lo elimine (exit).
Los datos de salida van de hijo a padre (por fork).
Los recursos del proceso son desalojados por el sistema operativo.
El padre puede terminar la ejecución de un hijo(abort).
el proceso hijo se ha excedido en los recursos alojados.
la tarea asignada al proceso hijo ya no es requerida.
El proceso padre termina.
El sistema operativo no permite que el hijo continue su ejecución si el proceso padre termina.
terminación en cascada.
Procesos cooperativos
Los procesos Independientes no pueden afectar o ser afectados por la ejecución de otros procesos.
Los procesos cooperativos pueden afectar o ser afectados por la ejecución de otros procesos.
Ventajas:
Compartición de información
Mayor velocidad de cómputo
Modularidad
Conveniencia
Problema del productor-consumidor
Paradigma para procesos cooperativos; el proceso productor produce información que es consumida por el proceso consumidor.
Solución mediante memoria compartida.
Solución mediante buzones y envío de mensajes
La comunicación entre procesos provee mecanismos para permitir que los procesos se comuniquen y se sincronizen.
Sistema de mensajes – los procesos se comunican entre si sin tener que compartir variables.
Operaciones:
send (mensaje)- los mensaje pueden tener tamaño fijo o variable.
receive (mensaje)
Medio de comunicación
implementación física (p.ej, memoria compartida, bus de hardware)
implementación lógica.
Comunicación entre procesos
Tipos de comunicación
Mediante Buzones utilizados como medio común para comunicación entre procesos de forma:
1 proceso envia mensaje a 1 proceso
1 proceso envia mensaje a N procesos
N procesos envían mensajes a 1 proceso
N procesos envía mensajes a N procesos
Mediante una linea de comunicación o bus de hardware.
Mediante el envío de mensajes entre procesos
send (P, mensaje) – send a message to process P
receive(Q, mensaje) – receive a message from process Q
Mediante el envio de señales de tipo semaforo
P (sem,contador). Envía una señal al semaforo sem.
V (sem,contador) recive n señales del semáforo sem
Tipos de sincronización
Página anterior | Volver al principio del trabajo | Página siguiente |