Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Operativos: Tecnicatura en Programación
Sistemas Operativos: Tecnicatura en Programación
TECNICATURA EN PROGRAMACIÓN
..................................
..................................
..................................
........ ........
. . . . . . .Sistemas
. Operativos . . . . . . . .
........ ........
........ 2022 – Semana 5 ........
. . . . . . . . . . . . Javier H. Scodelaro . . . . . . . . . . . .
. . . . . . . . . . . . jscodelaro@caece.edu.ar . . . . . . . . . . . .
......... .........
SISTEMAS OPERATIVOS
Agenda
Procesos – Hilos
Principios de concurrencia
Sincronización
Comunicación
Semáforos
Monitores
Sincronización avanzada
Paso de mensajes
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
Procesos múltiples
Multiprocesamiento
Procesamiento distribuido
Procesos competitivos
Comunicación
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Múltiples aplicaciones
Compartir el Tiempo
Compartir recursos
Compartibles
No compartibles
Aplicaciones estructuradas
Terminología
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Dificultades de Concurrencia
void echo()
chin = getchar();
chout = chin;
putchar(chout);
}
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Process P1 Process 2
… …
chin = getchar() …
} putchar(chout);
}
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
P1 completa la ejecución
Orden arbitrario
Recurso compartido
Impredescible
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Situación de concurrencia
Como interactúan los procesos Interbloqueo
Exclusión mutua
No comparten recurso
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Secciones críticas
Inanición
crítica de un recurso
procesos
MUTEX
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
Deshabilitar interrupción
No funciona en arquitectura
multiprocesador
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Variable candado
X software
Variable compartida
0o1
1 sección crítica
Alternancia estricta
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
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
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
Fortaleza –
Los semáforos usan FIFO
Exclusión mutua -> semáforo
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
Semáforos – Mecanismo
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Semáforos – Mecanismo
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
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
Algoritmos – Productor/Consumidor
Caso típico
Buffer infinito
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Algoritmos – Productor/Consumidor
Caso típico
Buffer infinito
Circular
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
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
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
Algoritmos – Monitores
Algoritmos – Monitores
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
Piensan
Comen
5 Filósofos
5 tenedores
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
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
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
Funciona con
Memoria compartida y
Sistemas distribuidos
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Sincrónico o asincrónico
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Direccionamiento directo
Direccionamiento indirecto
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
Agenda
Principios de concurrencia
Semáforos
Monitores
Paso de mensajes
Resumen
Proceso
Asignación
Lector/Escritor
Productor/consumidor
El banquero
…
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Preguntas
INTRODUCCION CONCEPTOS CLAVE CONCLUSIONES RECOMENDACIONES FINALES
Bibliografía
Recomendaciones…
Recordar: