Lección 5: Sincronización de procesos mediante semáforos

Documentos relacionados
Estados de un proceso

Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1. Exclusión mutua con semáforos

Semáforos. Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1. Exclusión mutua con semáforos

Lección 9: Programación concurrente con semáforos

PROGRAMACION CONCURRENTE

Sincronización de Procesos. Módulo 6. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur. Sincronización de Procesos

Lección 10: Ejemplos de programación con semáforos

Taller de Programación Paralela

Estructuras de control

7. Programación Concurrente

EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00

Tema 3: Concurrencia de procesos

SISTEMAS OPERATIVOS:

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

SINCRONIZACIÓN DE PROCESOS

Estructuras de Control

SEMAFOROS. if hay procesos suspendidos en este semáforo then despertar a uno de ellos else S = S + 1

CDI Exclusión mutua a nivel alto. conceptos

Concurrencia. Primitivas IPC con bloqueo

PROBLEMAS CLÁSICOS. EL PROBLEMA DE LOS FILÓSOFOS COMENSALES.

Tema 3. Monitores Programación Concurrente

Introducción a la programación: Contenido. Introducción

Mensajes. Interbloqueo

Unidad 2: Gestión de Procesos

Generación de Código Intermedio

PROGRAMACIÓN CONCURRENTE

El problema de los Filósofos

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

ESTRUCTURAS DE CONTROL

Ejercicios con Monitores

Unidad II: Análisis semántico

Computación I Curso 2016 Facultad de Ingeniería Universidad de la República

Programación de Sistemas Concurrentes y Distribuidos 2 a Convocatoria curso 12/13

Sistemas multiprogramados. Cooperan en realizar un trabajo: filtros. Comparten recursos del sistema

SISTEMAS OPERATIVOS:

El sintetizador de programas de Cornell

PLANIFICACION DE ALGORITMOS Y PROGRAMACION

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia

PROGRAMACIÓN UNIDADES

Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Esquemas repetitivos en Fortran 90. Tipos de Esquema

Java para no Programadores

1. Computadores y programación

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Conocer los tipos de esquemas condicionales. Entender su funcionamiento y sus diferencias. 1. Introducción. 3. Esquemas condicionales en C

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

LÓGICA DE PROGRAMACIÓN

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

CLASIFICACION DE LAS ESTRUCTURAS DE CONTROL

Sesión 1: Introducción al lenguaje VHDL. S1 1 Laboratorio de Estructura de Computadores Curso 04 / 05

Algoritmos y Programas

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

Estructuras en LabVIEW.

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Implementación de monitores POSIX

ESCUELA DE INGENIERIA Informática Y Sistemas

Sistemas Operativos Tema 7. Concurrencia

Administración de procesos: Procesos e hilos

UNIVERSIDAD CARLOS III DE MADRID. Ejercicios de VHDL. Circuitos Integrados y Microelectrónica. Luis Entrena. Celia López.

Concurrencia: Exclusión mutua y Sincronización

Lenguaje de Programación: C++ Estructuras de control:switch

ESTRUCTURAS REPETITIVAS EN PHP

TEMA 4. ESTRUCTURAS DE CONTROL

Tema 9. Recursividad

PROGRAMACIÓN CONCURRENTE

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

P L A N I F I C A C I O N

Introducción a PL/SQL

Práctico 2. Sincronización

Sistemas Operativos. Procesos

Controla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion

MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA

Sentencias de Procesamiento Iterativo: while y do-while

Universidad Nacional del Santa FACULTAD DE INGENIERIA E.A.P de Ingeniería de Sistemas e Informática NETBEANS 7.0

1. PRINCIPIOS BÁSICOS DE PROGRAMACIÓN

C# para no Programadores

Computadora y Sistema Operativo

Verificación de programas. Algoritmos y Estructuras de Datos I. Semánticas formales: Primer cuatrimestre de 2016

Planificaciones Sistemas Digitales. Docente responsable: ALVAREZ NICOLAS. 1 de 5

Resultado de Aprendizaje:

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Diseño de Compiladores I. Estructura General de un Compilador

UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGÍA PLAN GLOBAL COMPUTACION I

Guía práctica de estudio 05: Diagramas de flujo

CI154 DESARROLLO DE APLICACIONES DE ESCRITORIO Y ACCESO A DATOS CON.NET FRAMEWORK 5 CON C# OBJETIVOS

Algoritmos y Lenguajes de Programación

GENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA)

UNIVERSIDAD AUTÓNOMA DE SINALOA ESCUELA DE ADMINISTRACIÓN AGROPECUARIA Y DESARROLLO RURAL FORMATO DE DISEÑO INSTRUCCIONAL LIC.

TEMA 5: Subprogramas, programación modular

Guía práctica de estudio 03: Algoritmos

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

ADQUISICIÓN Y PRESENTACIÓN DE SEÑALES BIOMÉDICAS UTILIZANDO OBJETOS DE SINCRONIZACION ENTRE PROCESOS BAJO WINDOWS 98

Programación I Recursividad.

Facultad de Ingeniería Industrial y de Sistemas v1.1 Pre Maestría LENGUAJES DE PROGRAMACION

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

Cada examen debe superarse con al menos un 4 para hacer media.

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

Técnicas de Programación

Transcripción:

Lección 5: Sincronización de procesos mediante semáforos Introducción Estados de un proceso Semáforos: sintaxis y semántica Técnicas de programación con semáforos: el problema de la sección crítica el problema de la barrera el caso de productores/consumidores Algunos ejercicios sencillos J. Ezpeleta-P. Álvarez 1

Introducción La sincronización por espera activa tiene inconvenientes: los algoritmos son difíciles de diseñar y verificar se mezclan variables del problema a resolver y del método de resolución en los casos de multi-programación, se ocupa innecesariamente el procesador haciendo nada Los semáforos son una de las primeras soluciones son una solución conceptual, que puede implementarse de diferentes formas propuestos por Dijkstra en 1968 J. Ezpeleta-P. Álvarez 2

Estados de un proceso Para multitarea, y un proceso P, P.state es su estado J. Ezpeleta-P. Álvarez 3

Estados de un proceso Para multitarea, y un proceso P, P.state es su estado J. Ezpeleta-P. Álvarez 4

Semáforos: sintaxis y semántica Semáforo: instancia de un tipo abstracto de dato S=(k,L) tal que... k es un natural L es un conjunto de procesos con dos instrucciones atómicas... wait signal J. Ezpeleta-P. Álvarez 5

Semáforos: sintaxis y semántica Declaración semaphore S := (S 0,{}) Semántica de las operaciones (atómicas) cuando la invoca P: wait(s) if S.V > 0 S.V := S.V - 1 else S.L := S.L + {P} P.state := blocked J. Ezpeleta-P. Álvarez 6

Semáforos: sintaxis y semántica Semántica de las operaciones (atómicas) cuando la invoca P: signal(s) if S.L = {} S.V := S.V + 1 else S.L := S.L - {Q} Q.state := ready Propiedad: un semáforo S cumple el siguiente invariante S.V = S 0 + #signal(s) - #wait(s) J. Ezpeleta-P. Álvarez 7

El problema de la sección crítica Ejemplo: la sección crítica semaphore mutex := (1,{}) Process P Process Q loop forever loop forever SNC SNC p1 wait(mutex) wait(mutex) q1 SC SC p2 signal(mutex) signal(mutex) q2 J. Ezpeleta-P. Álvarez 8

Semáforos: sintaxis y semántica Semántica alternativa para semáforos: versión busy-wait semaphore S := (S 0,{}) wait(s) await S.V > 0 S.V := S.V - 1 S.V := S.V + 1 signal(s) J. Ezpeleta-P. Álvarez 9

Semáforos: sintaxis y semántica En realidad, S.L no hace falta, y podemos identificar S con S.V semaphore S := S 0 await S > 0 S := S - 1 S := S + 1 wait(s) signal(s) J. Ezpeleta-P. Álvarez 10

Semáforos: sintaxis y semántica Cuál es el matiz entre ambas versiones? signal(s) if S.L = {} S.V := S.V + 1 else S.L := S.L - {Q} Q.state := ready S := S + 1 signal(s) J. Ezpeleta-P. Álvarez 11

Semáforos: sintaxis y semántica Existe un caso especial: los semáforos binarios Declaración con S 0 : 0..1 binary semaphore S := S 0 Semántica de las operaciones (atómicas) cuando la invoca P: await S = 1 S := 0 wait(s) await S = 0 S := 1 signal(s) J. Ezpeleta-P. Álvarez 12

El problema de la sección crítica semaphore S := S 0 S S 0 tokens wait(s) M(S) = S 0 + #signal(s) - #wait(s) signal(s) J. Ezpeleta-P. Álvarez 13

El problema de la sección crítica semaphore S := S 0 S wait(s) signal(s) M(S) = S 0 + #signal(s) - #wait(s) J. Ezpeleta-P. Álvarez 14

El problema de la sección crítica Ejemplo: la sección crítica para dos procesos Y para n procesos? J. Ezpeleta-P. Álvarez 15

El problema de la barrera Ejemplo: algoritmo para dos procesos iterativos que sincronizan cada iteración mediante una barrera???? Process P loop forever cálculos locales espera a Q Process Q loop forever cálculos locales espera a P J. Ezpeleta-P. Álvarez 16

Productores/consumidores Ejemplo: tenemos un sistema con un proceso productor y un consumidor y un buffer intermedio de capacidad infinita queue el_tipo buffer... Process productor Process consumidor el_tipo d el_tipo d loop forever loop forever produce(d) consume(d,buffer) append(d,buffer) usa(d) J. Ezpeleta-P. Álvarez 17

Productores/consumidores Ejercicio 1: mismo enunciado, pero con un buffer de capacidad 1 Ejercicio 2: mismo enunciado, pero con un buffer de capacidad N Ejercicio 3: dar un esquema de solución al problema de la barrera para n procesos J. Ezpeleta-P. Álvarez 18

Algunos ejercicios sencillos Ejercicio 4: completar los procesos siguientes de manera que d no se puede ejecutar hasta que a haya acabado Ejercicio 5: completar los procesos siguientes de manera que P2 puede ejecutar d si se ha ejecutado e ó a Process P1 Process P2 a c b d Process P1 Process P2 Process P3 loop forever loop forever loop forever a c e b d f J. Ezpeleta-P. Álvarez 19

Algunos ejercicios sencillos J. Ezpeleta-P. Álvarez 20

Algunos ejercicios sencillos J. Ezpeleta-P. Álvarez 21