Está en la página 1de 77

Dpto. …Sistemas….

TECNICATURA EN PROGRAMACIÓN
..................................
..................................
..................................
........ ........
. . . . . . .Sistemas
. Operativos . . . . . . . .
........ ........
........ 2022 – Semana 5 ........
. . . . . . . . . . . . Javier H. Scodelaro . . . . . . . . . . . .
. . . . . . . . . . . . jscodelaro@caece.edu.ar . . . . . . . . . . . .
......... .........
SISTEMAS OPERATIVOS

Licenciatura / Ingeniería en Sistemas


10/04/17
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Procesos – Hilos

Principios de concurrencia

Sincronización

Comunicación

MUTEX – Soporte de hardware

Semáforos

Monitores

Sincronización avanzada

Paso de mensajes
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 3: HEBRAS, SMP Y MICROKERNELS

Unidad 3: Hebras, SMP y Microkernels

Definición de Procesos. Caracterización de


Procesos. El Bloque de Control del Proceso (PCB)
Estado de los procesos. Ciclo de vida de un proceso.
Modelos de Cinco Estados y de Siete Estados.
Modelos de Estados en diferentes S.O..
Imagen, gráfico, esquema…
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Unidad 4: Sincronización y Comunicación entre Procesos

Conceptos de Sincronización y comunicación entre


procesos. Manejo de la exclusión mutua.
Caracterización y administración de la Sección
crítica de un proceso. Definiciones de Dijkstra.
Condiciones de Carrera. Herramientas de
sincronización de procesos en sistemas
Imagen, gráfico, esquema… centralizados: semáforos y monitores.Definición,
ejemplos y aplicaciones.

Herramientas de sincronización avanzadas: pasaje


de mensajes. Operaciones send y receive,
sincrónicas y asincrónicas. Uso de buzones.
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Procesos múltiples

Clave en el diseño de SO modernos, fundamental


gestionar múltiples procesos
Multiprogramación

Multiprocesamiento

Procesamiento distribuido

El gran problema es la concurrencia


Procesos cooperativos

Procesos competitivos

Gestionar la interacción de todos estos


procesos

Comunicación
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Procesos múltiples - Concurrencia

La concurrencia surge en:

Múltiples aplicaciones

Compartir el Tiempo

Compartir recursos

Compartibles

No compartibles

Aplicaciones estructuradas

Extensión del diseño modular

Estructura del sistema operativo

Sistemas operativos implementados como un


conjunto de procesos o hilos
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Terminología
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Intercalado & superposición

Dónde y cómo se intercalan?


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Intercalado & superposición

No sólo intercalado sino superpuesto en multiprocesadores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia

Compartir recursos globales

Gestión óptima de la asignación de recursos

Difícil localizar errores de programación ya que los


resultados no son deterministas y reproducibles.
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia - Ejemplo

void echo()

chin = getchar();

chout = chin;

putchar(chout);

}
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia - Ejemplo

Process P1 Process 2

… …

chin = getchar() …

chout = chin; chin = getchar()

putchar(chout); chout = chin;

} putchar(chout);

}
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Ejemplo en multiprocesador

Cumplir una regla que solo un proceso puede


ingresar a la función a la vez, entonces:

P1 y P2 se ejecutan en procesadores separados

P1 ingresa al “echo” primero,

P2 intenta ingresar pero está bloqueado


- P2 suspende

P1 completa la ejecución

P2 reanuda y ejecuta eco

P2 trata de entrar, pero se bloquea. F2


suspende.
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Condición de carrera

Una condición de carrera ocurre cuando

Múltiples procesos o subprocesos leer y escribir


elementos de datos

Lo hacen de forma tal que el resultado final


depende del orden de ejecución de los
procesos.

La salida depende de quién finaliza la carrera


por último

Se evita con monitor y exclusión mutua

Dificil de reproducir para arreglarlo


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Condición de carrera

Expresión en electrónica & programación

La salida o estado de un proceso depende de


una secuencia de eventos

Orden arbitrario

Recurso compartido

No llegan en el orden esperado

Dos personas depositando o retirando dinero

Impredescible
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Consideraciones SO

¿Qué problemas de diseño y gestión surgen por


la existencia de concurrencia?

El sistema operativo debe

Mantener un registro de varios procesos

Asignar y desasignar recursos

Proteja los datos y recursos contra la


interferencia de otros procesos.

Asegurar que los procesos y las salidas


sean independientes de la velocidad de
procesamiento
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Interacción


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Interacción

Situación de concurrencia
Como interactúan los procesos Interbloqueo

Competencia por recursos escasos.

Los procesos no conocen a los demás Interbolqueo

SO asigna a un P el otro espera Inanición

Exclusión mutua

Cooperación por compartición (confianza)

Procesos conocen indirectamente a los demás Interbloqueo, Inanición

Variables, archivos, BD Exclusión mutua, Coherencia de datos

Cooperación por comunicación

Los proceso conocen directamente a los otros. Interbloqueo

Comunicación por mensajes Inanición

No comparten recurso
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Competencia por recursos

Tres problemas principales de control:

Necesidad de exclusión mutua

Secciones críticas

Abrazo mortal o punto muerto

Inanición

Ejemplo de uso y bloqueo de recursos


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Competencia por recursos

Solo se permite un proceso a la vez en la sección

crítica de un recurso

Un proceso que se detiene en su sección

no crítica debe hacerlo sin interferir con otros

procesos

Sin punto muerto o inanición

Ejemplo de uso y bloqueo de recursos compartidos


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Exclusión mutua

Un proceso no debe retrasarse el acceso a una


sección crítica cuando no hay otro proceso que
lo use

No se hacen suposiciones sobre las velocidades


de proceso relativas o la cantidad de procesos

Un proceso permanece dentro de su sección


crítica solo por un tiempo finito
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Exclusión mutua

MUTEX

Entrar en sección crítica

Equivalente a colocar el cartel


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Desactivar interrupciones

Los monoprocesadores solo permiten


intercalado

Deshabilitar interrupción

Un proceso se ejecuta hasta que invoca


un servicio del sistema operativo o hasta
que se interrumpe

Deshabilitar las interrupciones garantiza


la exclusión mutua

No funciona en arquitectura
multiprocesador
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Desactivar interrupciones

Variable candado

X software

Variable compartida

0o1

1 sección crítica

Esperar que se haga 0

Puede darse condición de carrera

Alternancia estricta

Dos procesos alternan estrictamente


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Desactivar interrupciones

Procesadores modernos tienen muchas etapas en el pipeline


Ciclo de interrupciones es necesario
Microarchitecture Pipeline stages
P5 (Pentium) 5
P6 (Pentium 3) 10
P6 (Pentium Pro) 14
NetBurst (Willamette) 20
NetBurst (Northwood) 20
NetBurst (Prescott) 31
NetBurst (Cedar Mill) 31
Core 14
Bonnell (Atom) 16
Sandy Bridge 14
Silvermont 14 to 17
Haswell 14
Skylake i5, i7 14
Kabylake 14
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Mutex por hardware

Aplicable a cualquier cantidad de procesos en un solo


procesador o múltiples procesadores que comparten
la memoria principal

Es simple y, por lo tanto, es fácil de verificar

Se puede usar para admitir varias secciones críticas


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Semáforos

Semáforo:
Entero usado para la señalización entre
procesos.
Solo se pueden realizar tres operaciones en un
semáforo, todas las cuales son atómicas:
inicializar,
Decremento (semWait)
incremento. (semSignal
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Dificultades de Concurrencia – Semáforos - Primitivas

Semáforo:
Variable protegida
Restringir/permitir
Recursos
Almacenamiento
Variables
Binarios
Generales
Uso
Cierre exlusión mutua (lock)
Barrera
Máximo de threads acceder a un recurso
Notificaciones
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – Fortalezas Debilidades

Cola para los procesos que esperan en el semáforo.


¿En qué orden se eliminan los procesos de la cola?

Fortaleza - Los semáforos usan FIFO

Debilidad - No especifican el orden de eliminación de


la cola
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – Fortalezas Debilidades

Mecanismo de sincronización de dos o mas procesos


Ejecución ordenada
Ubicación memoria
Reserva
Liberación
Cola de hilos/procesos, para ordenar
Al ejecutar una llamada el SO verifica el valor en
memoria, si es <> 0, resta 1, si es 0, duerme al proceso y
lo pone en cola hasta que vale 0
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – Fortalezas Debilidades

Cola para los procesos que esperan en el semáforo.


¿En qué orden se eliminan los procesos de la
cola?

Fortaleza –
Los semáforos usan FIFO
Exclusión mutua -> semáforo

Debilidad - No especifican el orden de eliminación de


la cola
Puede ocurrir inanición -> para evitar, se
encolan
Recomendado para estructuras simples
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos

Fallas de programación
Exclusión mutua, responsabilidad del programador
Esperas
Sección crítica se puede resolver con semáforos
Para evitar paralelismo, se definen como operaciones
atómicas
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – Mecanismo
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – Mecanismo
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Semáforos – para gestionar procesos


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Productor/Consumidor

Situación general:
Uno o más productores están generando datos y
colocándolos en un búfer.
Un solo consumidor está sacando elementos del búfer
uno por vez
Solo un productor o consumidor puede acceder al
búfer a la vez.
El problema:
Asegurar que el Productor no pueda agregar datos al
búfer completo y el consumidor no pueda eliminar los
datos del búfer vacío
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Productor/Consumidor

Caso típico
Buffer infinito
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Productor/Consumidor

Caso típico
Buffer infinito
Circular
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Funciones

Caso típico
Buffer acotado

Producer Consumer
while (true) { while (true) {
/* produce item v */ while (in == out)
while ((in + 1) % n == out) /* /* do nothing */;
do nothing */; w = b[out];
b[in] = v; out = (out + 1) % n;
in = (in + 1) % n /* consume item w */
} }
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores

El monitor es una construcción de lenguaje de


programación que proporciona una funcionalidad
equivalente a la de los semáforos pero es más fácil de
controlar.

Implementado en varios lenguajes de programación,


incluyendo
Pascal concurrente, Pascal-Plus,
Modula-2, Modula-3 y Java.
C, C++

INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores

Encapsula el código de control de un recurso en un


solo módulo
Mas alto nivel que el semáforo.
Control de acceso a datos compartidos - Centralizado
Codigo agregado por compilador
Tiempo de ejecución
Lenguajes de programación:
Pascal concurrente, Pascal-Plus,
Modula-2, Modula-3 y Java.
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores - Características

Las variables de datos locales son accesibles solo por el


monitor

El proceso entra al monitor invocando uno de sus


procedimientos.

Solo se puede ejecutar un proceso en el monitor a la


vez
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores - Características

Acceso a datos se garantiza por los procedimientos


definidos
Encapsula
Estructura de datos compartidas
Procedimientos
Sincronización entre hilos/proce
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores - Sincronización

Sincronización lograda por variables de condición


dentro de un monitor.
Solo accesible por el monitor.
Funciones del monitor:
Cwait(c): suspender la ejecución del proceso
de llamada en la condición c
Csignal(c) Reanudar la ejecución de algún
proceso bloqueado después de una espera en
la misma condición
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores – Control acceso al monitor

Exclusión mutua
Sólo un hilo/proceso esta dentro del monitor
Sincronización esta implícita por diseño
Si un hilo trata de entrar cuando esta ocupado,
entonces se bloquea hasta que se libera
+ restrictivo respecto semáforos
Más sencillo de usar
En el monitor un hilo puede verse sin poder
continuar
Permite a una que está esperando entrar a
monitor
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores – Control acceso al monitor

Cuando un hilo está en el monitor


si no continúa se bloquea
Evento que otro hilo esté esperando, notifica al
que espera que puede ingresar al monitor
Variables de Condición
Variables de condición se acceden dentro del
monitor
Hay tres operaciones que se pueden realizar con variables
de condición
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores – Control acceso al monitor


Hay tres operaciones a realizar con variables de
condición
Wait(var_cond)
Libera Lock del monitor y se bloquea
espera por hilo que active (signal) la condición
var_cond. (cuando es despertada recupera lock)
variables de condición tienen asociadas cola de
espera por var_cond
Signal(var_cond)
despierta (si hay), un hilo/proceso esperando
var_cond
signal se pierde si nadie espera por var_cond
Hoare: hilo notifica inmediatamente entrega
lock al que despierta
Mesa: hilo notifica mantiene lock y cpu (requiere
signal sea última instrucción despues de salir de
procedimiento)
broadcast(var_cond)
despierta todos los hilos esperando por
var_cond
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Monitores - Estructura


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Cena de los filósofos

Piensan
Comen
5 Filósofos
5 tenedores

Hacen falta 2 tenedores para comer


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Cena de los filósofos

Exclusión mutua
No pueden comer dos contiguos

Sincronización
Si uno come, los contiguos no

Interbloqueo
El que termina, libera el tenedor
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Cena de los filósofos

Interbloqueo (activo)
2 contiguos agarran el tenedor, solo uno debe

Inanición
Todos deben poder comer en algún momento
(finito), sino mueren de hambre
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes - Interacción

Los procesos interactúan entre sí, deben cumplir dos


requisitos:
sincronización
comunicación.

Paso de mensajes es una solución para comunicación


Se envía un mensaje a otro proceso que
espera el mensaje

Funciona con
Memoria compartida y
Sistemas distribuidos
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes - Interacción

Unico método en sistemas distribuídos


No hay recursos directos

La función real del paso de mensajes normalmente se


proporciona en forma de un par de primitivas:

enviar (destino, mensaje)

recibir (fuente, mensaje)


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes - Interacción

La función real del paso de mensajes normalmente se


proporciona en forma de un par de primitivas:

enviar (destino, mensaje)

recibir (fuente, mensaje)


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes - Sincronización

La comunicación requiere sincronización.


El remitente debe enviar antes de que el
receptor pueda recibir

¿Qué le sucede a un proceso después de emitir un


envío o recibir una primitiva?

El remitente y el receptor pueden o no estar


bloqueando (esperando el mensaje)

Sincrónico o asincrónico
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes – bloqueo envío/recepción

Tanto el remitente como el receptor están bloqueados


hasta que se entrega el mensaje

Conocido como una cita

Permite una estrecha sincronización entre procesos.

Remitente espera hasta que se reciba el mensaje –


sincrónico
Remitente puede continuar – asincrónico
Remitente espera hasta que se responde el mensaje
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes – Envío sin bloqueo

Más natural para muchas tareas de programación


concurrente.

Envío sin bloqueo, bloqueo de recepción


Emisor continúa en
El receptor está bloqueado hasta que llega el
mensaje solicitado

Envío sin bloqueo, recepción sin bloqueo

Ninguna de las partes está obligada a esperar


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes – Direccionamiento

El proceso que envía debe poder especificar qué


proceso debe recibir el mensaje

Direccionamiento directo
Direccionamiento indirecto

Direccionamiento directo – canal directo


Distingue mensajes diferentes
Prioridades

Direccionamiento indirecto - buzón


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes – Direccionamiento directo

La primitiva de envío incluye un identificador


específico del proceso de destino

La primitiva de recepción podría saber de antemano


qué proceso se espera un mensaje

La primitiva de recepción podría usar el parámetro


fuente para devolver un valor cuando se haya realizado
la operación de recepción
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Algoritmos – Pase de mensajes – Direccionamiento indirecto

Los mensajes se envían a una estructura de datos


compartida que consiste en colas

Las colas se llaman buzones

Un proceso envía un mensaje al buzón y el otro


proceso recoge el mensaje del buzón.

Optimista
Muy probable que no haya conflicto
En caso de conflicto descartan

Pesimista
Bloqueo cualquier interferencia
Actualizan variable
Desbloquean
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Pase de mensajes – Comunicación indirecta entre procesos


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Pase de mensajes – Formato de mensaje general


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Pase de mensajes – Señales


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Pase de mensajes – Señales


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Agenda

Principios de concurrencia

Exclusión mutua: soporte de hardware

Semáforos

Monitores

Paso de mensajes

Problema de lectores / escritores


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Problema del lector/escritor

Un área de datos se comparte entre muchos procesos.


Algunos procesos solo leen el área de datos,
otros solo escriben en el área

Condiciones para satisfacer:


Varios lectores pueden leer el archivo a la vez.
Solo un escritor a la vez puede escribir
Si un escritor está escribiendo en el archivo,
ningún lector puede leerlo.
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Problema del lector/escritor – Escritor tiene prioridad


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Resumen

Proceso

Gestión de recursos compartidos

Asignación

Prioridad de uso (?)

Algoritmos para evitar situaciones de concurrencia

Lector/Escritor

Productor/consumidor

Cena de los filósofos

El banquero


INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Preguntas
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Bibliografía

Carretero, Jesús; De Miguel Anasagasti, Pedro; García


Carballaeira, Félix; Pérez Costoya; Fernando(2001): Sistemas
Operativos. Una visión aplicada (1er. Ed.) (Capítulos 1, 2, 3, 4).
España. McGraw-Hill Interamericana de España..

Finkel, R. (1988): An Operating Systems Vade Mecum. (2da.


Ed.) (Capítulos 3, 4, 5). Estados Unidos de América: Prentice
Hall.

Galvin, P.; Gagne, G.; Silberschatz, A., (2012): Operating


Systems Concepts. (9th. Ed.). (Capítulos 1, 2,3, 4). Estados
Unidos de América: Wiley Global Education.

Sinha P. K., (1997): Distributed Operating Systems - Concepts


and Design. (Capítulos 1, 2) Estados Unidos de América:
Wiley-IEEE Press.

Stallings, W. (2012): Sistemas Operativos. (7ma. Ed.):


(Capítulos 1, 2, 3, 4). Estados Unidos de América: Pearson
Education.

Tanenbaum, A. (2006): Operating Systems, Design and


Implementation. (3ra. Ed.). (Capítulos 1, 2, 3, 4) New Jersey:
Pearson Prentice Hall
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES

UNIDAD 4: SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS:& SMP

Recomendaciones…

Recordar:

Para cualquier duda o cuestión tu profesor está disponible


en los Foros.

Participa en las Clases Síncronas, es una excelente


oportunidad para resolver dudas y cuestiones en
tiempo real.

También podría gustarte