Академический Документы
Профессиональный Документы
Культура Документы
Conceptos
Planificación de Procesos
Operaciones sobre Procesos
Cooperación de Procesos
Comunicación entre Procesos
Comunicación en Sistemas Client-
Server
Conceptos
Un sistema operativo ejecuta una variedad de
programas:
Sistemas Batch – jobs
Sistemas de tiempo compartido – programas
del usuario o tareas
Proceso y tarea se usan generalmente con el
mismo significado.
Proceso – es un programa en ejecución. La
ejecución debe realizarse en forma secuencial.
Un proceso incluye:
un contador de programa
stack
sección de datos
Modelo de
Multiprogramación
Multiprogramación de 4 procesos
Modelo conceptual de 4 procesos
secuenciales independientes
Un solo proceso activo en un instante
dado
Estados de un Proceso
A medida que un proceso se ejecuta, cambia
de estado
nuevo: el proceso está siendo creado.
ejecutando: el proceso se está ejecutando.
esperando: el proceso está esperando la
ocurrencia de un evento.
listo: el proceso está listo esperando ser
ejecutado.
finalizado: el proceso ha terminado la
ejecución.
Diagrama de Estados
Bloque de Control de
Proceso (PCB)
Información asociada a cada
proceso.
Estado del proceso
Contador del programa
Registros de CPU
Información de planificación de CPU
Información de manejo de memoria
Información esta
Información de estado de E/S
Bloque de Control de
Proceso (PCB)
Cambio de CPU de Proceso
a Proceso
Modelo de 2 Estados
Modelo de 2 Estados
Creación de Procesos
Razones para la creación de
un proceso
Razones para la terminación
de un proceso
MODELO DE PROCESO DE
CINCO ESTADOS
PROCESO DE CINCO
ESTADOS
PROCESO DE CINCO
ESTADOS
Razones para la suspensión
de un proceso
ESTRUCTURAS DE
CONTROL DEL SISTEMA
OPERATIVO
Estructura general de las
tablas de control del SO
Estructura general de las
tablas de control del SO
Elementos típicos
Procesos de usuario en
memoria virtual
Estructuras de listas de
procesos
CONTROL DE PROCESOS
MODOS DE EJECUCIÓN
-modo usuario
-modo sistema,
modo control o modo núcleo
Funciones típicas de un
núcleo de sistema operativo
CREACIÓN DE PROCESOS
while (1) {
while (((in + 1) % BUFFER_SIZE)
== out)
; /* do nothing */
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Buffer-Limitado – Proceso
Consumidor
item nextConsumed;
while (1) {
while (in == out)
; /* do nothing */
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
}
Comunicación entre
Procesos (IPC)
Mecanismo que permite a los procesos
comunicarse y sincronizar sus acciones.
Sistema de mensajes – los procesos se
comunican entre sí sin necesidad de variables
compartidas.
IPC provee dos operaciones:
send(message) – mensaje de tamaño fijo o variable
receive(message)
Si P y Q quieren comunicarse, deben:
Establecer un enlace de comunicación entre ambos
Intercambiar mensajes por medio de send/receive
Implementación del canal de comunicación
físico (por ej., memoria compartida, bus de hardware)
lógico (por ej., propiedades lógicas)
Comunicación Directa
Los procesos se deben nombrar
explicitamente:
send (P, message) – enviar un mensaje al proceso P
receive(Q, message) – recibir un mensaje del
proceso Q
Propiedades del enlace de comunicación
Los enlaces se establecen automáticamente.
Un enlace está asociado a un único par de procesos.
Entre un par de procesos existe un único enlace.
El enlace puede ser unidireccional, pero
generalmente es bidireccional.
Comunicación Indirecta
Los mensajes son dirigidos y recibidos de
buzones o puertos.
Los procesos se pueden comunicar si comparten
un puerto.
Cada puerto tiene un identificador único.
Propiedades del canal de comunicación
Un enlace se establece sólo si los procesos
comparten un puerto en común.
Un enlace puede estar asociado con varios
procesos.
Cada par de procesos puede compartir varios
enlaces de comunicación.
Un enlace puede ser unidireccional o
bidireccional.
Comunicación Indirecta
Operaciones
Crear un nuevo puerto
Enviar y recibir mensajes por medio de
un puerto
Destruir un puerto
Las primitivas definidas son:
send(A, message) – envía un mensaje a
un puerto A
recibir(A, message) – recibe un mensaje
de un puerto A
Comunicación Indirecta
Puertos compartidos
P1, P2, y P3 comparten el puerto A.
P1, envía; P2 y P3 reciben.
Quién obtiene el mensaje?
Soluciones
Permitir que un enlace esté asociado a no
más de 2 procesos.
Permitir a un sólo proceso a la vez ejecutar
la operación receive.
Dejar que el sistema elija quien recibe el
mensaje en arbitraria. Se le notifica al que
envía quien fue el receptor.
Sincronización