Sincronización de procesos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Sincronización de procesos"

Transcripción

1 Sincronización de procesos

2 Contenido Procesos concurrentes. El problema de la seccion critica Problemas clásicos de comunicación y sincronización. Mecanismos de comunicación y sincronización. DSO Sincronización

3 Procesos concurrentes Los procesos llevan a cabo tareas para lograr un objetivo comun. Interaccionan entre ellos para: Competir por recursos Compartir recursos ES NECESARIA LA COMUNICACION y LA SINCRONIZACION (orden) ENTRE ELLOS DSO Sincronización

4 Procesos concurrentes El método mas sencillo de comunicación entre los procesos de un programa concurrente, es el uso común de unas variables de datos. Sin embargo el uso de este mecanismo puede hacer que la ejecución de un proceso interfiera en las acciones del otro. DSO Sincronización

5 Ejemplo Procesador 1 Procesador 2 PID = 500 Lee PID Registro o posición de memoria PID = 500 Incrementa y asigna PID Lee PID PID = 500 PID = 501 Escribe PID PID = 501 Incrementa y asigna PID PID = 501 PID = 501 Escribe PID DSO Sincronización

6 DSO Sincronización

7 Código del productor El productor no puede escribir en el buffer si está lleno Comparte con el consumidor: el buffer y el contador do {... ( elemento_p ) produce un nuevo elemento... while (contador == MAX_ELEMENTOS) haz_nada; buffer[indice_p] = elemento_p; indice_p = (indice_p + 1) % MAX_ELEMENTOS; contador = contador + 1; } while (TRUE); DSO Sincronización

8 Código del consumidor El productor no puede leer del buffer si está vacío Comparte con el consumidor: el buffer y el contador do { while (contador == 0) haz_nada; elemento_c = buffer[indice_c]; indice_c = (indice_c + 1) % MAX_ELEMENTOS; contador = contador - 1;... ( elemento_c ) consume el elemento... } while (TRUE); DSO Sincronización

9 Condiciones de carrera El código anterior no funciona por existir condiciones de carrera al actualizar el contador Veamos qué ocurre al ejecutar la sentencia: contador = contador + 1; Productor Consumidor load r0, contador load r0, contador add r0, 1 sub r0, 1 store contador, r0 store contador, r0 Problema: la modificación del contador no es atómica DSO Sincronización

10 Atomicidad Una operación se dice que es atómica (en un sistema uniprocesador) cuando se ejecuta con las interrupciones deshabilitadas Las referencias y las asignaciones son atómicas en la mayoría de los sistemas. Esto no es siempre cierto para matrices, estructuras o números en coma flotante Si el HW no proporciona operaciones atómicas, éstas no pueden construirse por SW DSO Sincronización

11 DSO Sincronización

12 Cuál es el problema planteado? Alguien necesita leche, pero no tanta Exclusión mutua: es el mecanismo que asegura que sólo un proceso está haciendo algo en un instante determinado Sección crítica: es la sección de código, o colección de operaciones, en el que se actualizan variables comunes o se ejecuta código común. Cuando un proceso está ejecutando código de su SC, ningún otro proceso puede estar en su SC DSO Sincronización

13 Seccion Critica Para evitar este tipo de errores, hay que identificar las regiones de los procesos en donde se acceden a recursos compartidos y dotarlas de la posibilidad de ejecucion como si fueran una única instruccion DSO Sincronización

14 Seccion Critica Seccion Critica: Aquellas partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente. Los procesos deben de acceder en Exclusion Mutua DSO Sincronización

15 Problema de la Sección Critica Sistema compuesto por n procesos Cada uno tiene un (mismo) fragmento de código: sección crítica Sólo uno de los procesos en cada instante puede ejecutar en la sección crítica Cuando un proceso está ejecutando en la sección crítica, ningún otro puede hacerlo DSO Sincronización

16 Problema de la Sección Critica Para conseguir dicha exclusión mutua se deben de implementar protocolos software o hardware que impidan o bloqueen el acceso a una SC mientras está siendo utilizada por otro proceso. Solución general: do { protocolo de entrada sección crítica protocolo de salida resto de la sección } while (TRUE); DSO Sincronización

17 Problema de la sección crítica Toda solución debe cumplir tres condiciones Exclusión mutua Progreso Espera limitada DSO Sincronización

18 Tipos de soluciones Soluciones soft. basadas en variables de (.., DecKer,Peterson ) control Soluciones hw. basadas en instrucciones máquina específicas (test-and-set o ( swap Soluciones basadas en primitivas del SO ( (impartido en ARCO Soluciones basadas en regiones críticas y monitores DSO Sincronización

19 Problemas clásicos de comunicación y sincronización El problema del productor-consumidor El problema de los lectores-escritores Comunicación cliente-servidor DSO Sincronización

20 Problema del productorconsumidor Proceso Productor Proceso Consumidor Flujo de datos Mecanismo de comunicación DSO Sincronización

21 El problema de los lectores-escritores Lector Lector Escritor Lector Escritor Recurso DSO Sincronización

22 Comunicación clienteservidor Computador Computador Petición Proceso cliente Proceso servidor S.O. Respuesta DSO Sincronización

23 Primitivas del SO para comunicación y sincronizacion

24 Primitivas del SO Mecanismos de comunicación Tuberías (pipes, FIFOS) Paso de mensajes Mecanismos de sincronizacion Servicios del sistema operativo: Señales (asincronismo) Tuberías (pipes, FIFOS) Semáforos Paso de mensajes Las operaciones de sincronización deben ser atómicas DSO Sincronización

25 Semáforos Introducidos por Dijkstra en los años 60 Es un tipo especial de variable que sólo puede ser accedida por dos primitivas P y V P (semáforo): operación atómica que espera hasta que la variable semáforo sea positiva, en este momento la decrementa en 1 V (semáforo): operación atómica que incrementa la variable semáforo en 1 Cómo quedaría el problema de la sección crítica con semáforos? DSO Sincronización

26 Operaciones sobre Semáforos Wait(s) { s = s - 1; if (s < 0) { <Bloquear al proceso> } } signal(s) { s = s + 1; ( 0 <= (s if <Desbloquear a un proceso bloqueado por la operacion wait> } } DSO Sincronización

27 Características de los semáforos Son independientes de la máquina Son simples Pueden trabajar con varios procesos Doble uso de los semáforos: Exclusión mutua Sincronización DSO Sincronización

28 Secciones críticas con semáforos Wait(s); /* P(s) entrada en la seccion critica */ < seccion critica > signal(s); /* V(S) salida de la seccion critica */ El semáforo debe tener valor inicial 1 DSO Sincronización

29 DSO Sincronización

30 Restricciones: Productor-consumidor El consumidor espera a que haya datos en el buffer El productor espera a que haya buffers vacíos Sólo un único proceso puede manipular el buffer a la vez Semáforos: smf_llenos, smf_vacíos y exmut Inicialización: smf_llenos = 0 smf_vacíos = número_de_buffers exmut = 1 DSO Sincronización

31 Productor Consumidor P (smf_vacíos); P (exmut); Produce un dato; V (exmut); V (smf_llenos); P (smf_llenos); P (exmut); Consume el dato; V (exmut); V (smf_vacíos); Por qué el productor hace P(smf_vacíos) y V(smf_llenos)? Es importante el orden en que se ejecutan las primitivas P y V? Cómo podemos extender el problema si hay dos consumidores? DSO Sincronización

32 Lectores-escritores Descripción: Los escritores acceden a la BBDD cuando no haya ningún otro escritor y ningún lector. Semáforo escribir Los lectores acceden cuando no haya ningún escritor accediendo o esperando. Semáforo leer Variables compartidas: LA, LE, EA, EE. A estas variables accederemos en exclusión mutua. Semáforo exmut DSO Sincronización

33 Iniciación leer = escribir = 0 exmut = 1 LA = EA = LE = EE = 0 Además: Los escritores tienen prioridad sobre los lectores DSO Sincronización

34 Lector Escritor P (exmut); if ((EA + EE) == 0) { V (leer); LA = LA + 1; } else { LE = LE + 1; } V (exmut); P (leer); Leemos los datos; P (exmut); LA = LA - 1; if (LA == 0 && EE > 0) { V (escribir); EA = EA + 1; EE = EE - 1; } P (exmut); if (( EA + LA + EE) == 0) { V (escribir); EA = EA + 1; } else { EE = EE + 1; } V (exmut); P (escribir); Escribimos los datos; P (exmut); EA = EA - 1; if (EE > 0) { V (escribir); EA = EA + 1; EE = EE - 1; } else while (LE > 0) { V (leer); LA = LA + 1; LE = LE - 1; } V (exmut); DSO Sincronización

35 Problema del barbero dormilón Problema: 1 barbero y N sillas de espera Si un cliente entra y no hay sillas, se va Semáforos: clientes: número de clientes en espera sin contar el que está en la silla del peluquero barberos: número de barberos inactivos exmut: exclusión mutua Variable compartida: esperando: número de clientes esperando Inicialmente: clientes=0 barberos=0 exmut=1 esperando=0 DSO Sincronización

36 Barbero Cliente do { P(clientes); P(exmut); esperando=esperando-1; V(barberos); V(exmut); /* Corta el pelo */ } while (TRUE); do { P(exmut); if (esperando < SILLAS) { esperando=esperando + 1; V(clientes); V(exmut); P(barberos); /* Se corta el pelo */ } else { V(exmut); } } while (PELOLARGO); DSO Sincronización

37 Problema del puente estrecho Por un puente sólo pueden pasar o coches que suben o coches que bajan. Solución: Variables compartidas: int contadorsubida = 0, contadorbajada = 0; semaforo exmut_s, exmut_b, puente; Iniciación: Los semáforos inicialmente deben valer 1 No se tratan los problemas de inanición DSO Sincronización

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos

Sistemas operativos: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos Sistemas operativos: una visión aplicada Capítulo 5 Comunicación y sincronización de procesos Sistema multiprogramado con un una CPU Proceso A Proceso B Proceso C Tiempo Sistemas operativos: una visión

Más detalles

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Procesos concurrentes y problemas en la comunicación y la sincronización

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Procesos concurrentes y problemas en la comunicación y la sincronización SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Procesos concurrentes y problemas en la comunicación y la sincronización Contenido 2 Concurrencia. Condiciones de carrera. Exclusión mutua

Más detalles

Estados de un proceso

Estados de un proceso Semáforos Estados de un proceso Inactivo Listo Ejecutando Completo Escribimos p.state := ready p. state := running Bloqueado Para indicar que un proceso cambia de estado Semáforo Es un tipo de dato abstracto

Más detalles

ISO Tema 8,

ISO Tema 8, ISO Tema 8, 2017-2018 Pablo González Nalda Depto. de Lenguajes y Sistemas Informáticos 13 de abril de 2018 Modificado el 27 de abril de 2018 de la presentación 1 2 3 4 5 6 7 2 / 32 1 2 3 4 5 6 7 3 / 32

Más detalles

SISTEMAS OPERATIVOS:

SISTEMAS OPERATIVOS: SISTEMAS OPERATIVOS: Lección 6: Procesos concurrentes y problemas en la comunicación y la sincronización Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Sistemas Operativos Tema 6. Concurrencia

Sistemas Operativos Tema 6. Concurrencia Contenidos Sistemas Operativos Tema 6. Concurrencia Sistemas concurrentes El problema de la sección crítica Semáforos Monitores 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 2 Bibliografía

Más detalles

Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi

Concurrencia, exclusión mutua y sincronización. Capítulo 5 HungriaBerbesi Concurrencia, exclusión mutua y sincronización Capítulo 5 HungriaBerbesi 1 Concurrencia Múltiples aplicaciones Aplicaciones estructuradas Estructura del sistema operativo 2 Concurrencia 3 Sección Crítica:

Más detalles

Unidad 1: Gestión de Procesos

Unidad 1: Gestión de Procesos Unidad 1: Gestión de Procesos Tema 1, Concurrencia: Exclusión mutua y sincronización. 1.1 Problema de la sección crítica, alternativas al uso de semáforos: - Regiones críticas, Monitores, Variables de

Más detalles

7. Programación Concurrente

7. Programación Concurrente 7. Programación Concurrente 1. Qué es la programación concurrente? Se conoce por programación concurrente a la rama de la informática que trata de las técnicas de programación que se usan para expresar

Más detalles

Acceso coordinado a recursos compartidos

Acceso coordinado a recursos compartidos Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos

Más detalles

*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010

*** SOLUCIONES *** SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 Calificación SISTEMAS OPERATIVOS Examen Parcial 24 de Abril de 2010 1 2 3 4 Nombre *** SOLUCIONES *** Titulación Dispone de tres horas para realizar el examen 1 (5 puntos) Test. En cada uno de los siguientes

Más detalles

Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo

Concurrencia. Programación Concurrente. Espera ocupada. Primitivas IPC con bloqueo Concurrencia Programación Concurrente Espera ocupada. Primitivas IPC con bloqueo Programación concurrente Los lenguajes concurrentes tienen elementos para: Crear procesos Sincronizar procesos Comunicar

Más detalles

Concurrencia Condiciones de Carrera. Guillermo Román Díez

Concurrencia Condiciones de Carrera. Guillermo Román Díez Concurrencia Condiciones de Carrera Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Condiciones de Carrera 1/20 Condiciones de carrera Condición

Más detalles

Sincronización de Procesos

Sincronización de Procesos Sincronización de Procesos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Sincronización de Procesos Fundamentos El Problema de la Sección Crítica Solución a la sección

Más detalles

SINCRONIZACIÓN DE PROCESOS

SINCRONIZACIÓN DE PROCESOS SINCRONIZACIÓN DE PROCESOS 1 Introducción Los procesos acceden a datos o recursos compartidos El acceso puede provocar que el estado final de los datos no sea correcto, generando incoherencias debido a

Más detalles

Sistemas operativos. Comunicación y sincronización de procesos

Sistemas operativos. Comunicación y sincronización de procesos Sistemas operativos Comunicación y sincronización de procesos Comunicación y sincronización de procesos Contenido 1. Introducción 2. Comunicación por memoria común 3. El problema de la sección crítica

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE Lenguajes de Programación - Progr. Concurrente 1 Introducción El concepto fundamental de la programación concurrente es la noción de Proceso. Proceso: Cálculo secuencial con su

Más detalles

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica

Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Sistemas Computacionales Sistemas Operativos Docente: M.G.A.

Más detalles

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

Secciones críticas y exclusión mutua

Secciones críticas y exclusión mutua Secciones críticas y exclusión mutua Lecturas: Andrews, secciones 3.1, 3.2, 3.3, 3.4 Ben-Ari, sección 2.2 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la

Más detalles

Sistemas Operativos Tema 3. Concurrencia Conceptos generales Sincronización con semáforos

Sistemas Operativos Tema 3. Concurrencia Conceptos generales Sincronización con semáforos Sistemas Operativos Tema 3. Concurrencia Conceptos generales Sincronización con semáforos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos n Sistemas concurrentes n El problema

Más detalles

MECANISMOS PARA SINCRONIZACIÓN. Semáforos

MECANISMOS PARA SINCRONIZACIÓN. Semáforos MECANISMOS PARA SINCRONIZACIÓN Semáforos Mecanismos para sincronización Una vez discutidos los principales problemas a enfrentar para coordinar procesos/hilos que comparten espacio de direccionamiento,

Más detalles

Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.

Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales. GRAFOS DE PRECEDENCIA Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales. Un arco de un nodo Si al nodo Sj significa que la sentencia Sj puede ejecutarse sólo cuando ha acabado

Más detalles

Concurrencia de Procesos

Concurrencia de Procesos Concurrencia de Procesos Dos o mas procesos, se dice que son concurrentes o paralelos, cuando se ejecutan al mismo tiempo. Esta concurrencia puede darse en un sistema con un solo procesador (pseudo paralelismo)

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 6, Concurrencia: Exclusión mutua y sincronización. 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones

Más detalles

Concurrencia Monitores. Guillermo Román Díez

Concurrencia Monitores. Guillermo Román Díez Concurrencia Monitores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema

Más detalles

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

Lección 6: Ejemplos de programación con semáforos Lección 6: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación

Más detalles

SISTEMAS OPERATIVOS:

SISTEMAS OPERATIVOS: SISTEMAS OPERATIVOS: Lección 7: Hilos y mecanismos de comunicación y sincronización Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez

Más detalles

Ejercicios con Monitores

Ejercicios con Monitores Ejercicios con Monitores 57. Aunque un monitor garantiza la exclusión mutua, los procedimientos tienen que ser reentrantes. Explicar por qué. 58. Demostrar que incluso si la implementación del semáforo

Más detalles

Comunicación y sincronización

Comunicación y sincronización Comunicación y sincronización Son conceptos relacionados con la interacción entre los procesos La comunicación se refiere al paso de información de un proceso a otro La sincronización corresponde al cumplimiento

Más detalles

Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización. Slides de Samuel Oporto Díaz

Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización. Slides de Samuel Oporto Díaz Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización Slides de Samuel Oporto Díaz CONCURRENCIA 2 Concurrencia La concurrencia es la simultaneidad de hechos. Un programa concurrente

Más detalles

Uso de recursos compartidos

Uso de recursos compartidos Uso de recursos compartidos Cada proceso o hebra se ejecuta de forma independiente. Sin embargo, cuando varias hebras (o procesos) han de acceder a un mismo recurso, se ha de coordinar el acceso a ese

Más detalles

Porque desarrolló el concepto de lista de tareas (pool de Job) que podía ser gestionada de acuerdo a políticas distintas a la FIFO.

Porque desarrolló el concepto de lista de tareas (pool de Job) que podía ser gestionada de acuerdo a políticas distintas a la FIFO. Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen Parcial, 3 de mayo de 2003 SOLUCIONES Calificación 1 2 3 4 5 Nombre Titulación

Más detalles

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

Lección 10: Ejemplos de programación con semáforos Lección 10: Ejemplos de programación con semáforos El problema de la cena de los filósofos El problema de los lectores y escritores Ejercicios Gestión de concurrencia mediante paso de testigo (implementación

Más detalles

SOLUCIONES. DURACIÓN: Dispones de dos horas para realizar el examen. Lee las instrucciones para el test en la hoja correspondiente.

SOLUCIONES. DURACIÓN: Dispones de dos horas para realizar el examen. Lee las instrucciones para el test en la hoja correspondiente. 1 2 3 4 test extra NOTA Fundamentos de los Sistemas Operativos Examen parcial 3 de abril de 2017 Nombre y apellidos DNI/NIE SOLUCIONES DURACIÓN: Dispones de dos horas para realizar el examen. Lee las instrucciones

Más detalles

CONCURRENCIA. Sincronización. Sistemas Operativos y Distribuidos. Prof. Javier Echaiz 1. Material Adicional (SOSD Mod 4)

CONCURRENCIA. Sincronización. Sistemas Operativos y Distribuidos. Prof. Javier Echaiz 1. Material Adicional (SOSD Mod 4) Material Adicional (SOSD Mod 4) Concurrencia Exclusión mutua y sincronización CONCURRENCIA Slides de Samuel Oporto Díaz 2 Concurrencia La concurrencia es la simultaneidad de hechos. Un programa concurrente

Más detalles

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas

Más detalles

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

Lección 5: Sincronización de procesos mediante semáforos 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

Más detalles

El problema de los Filósofos

El problema de los Filósofos El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM

Más detalles

Tema 1: Programación Multiproceso. Curso

Tema 1: Programación Multiproceso. Curso Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de

Más detalles

Teoría de Sistemas Operativos Sincronización Procesos

Teoría de Sistemas Operativos Sincronización Procesos Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica º Semestre, 00 Gabriel Astudillo Muñoz http://www.elo.utfsm.cl/~elo1 Dos o más procesos leen o escriben ciertas zonas compartidas

Más detalles

FUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018

FUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018 FUNDAMENTOS BÁSICOS DE LOS SISTEMAS OPERATIVOS Fe de Erratas Actualizada a 12 de septiembre de 2018 Nota: Las erratas que comienzan con la viñeta+son erratas que han sido añadidas o modificadas con respecto

Más detalles

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

SEMAFOROS. if hay procesos suspendidos en este semáforo then despertar a uno de ellos else S = S + 1 1 de 21 22/12/2007 21:48 SEMAFOROS 1. DEFINICIONES 1.1. Semáforo general 1.2. Semáforo binario 1.3. Semáforo con cola de procesos bloqueados 1.4. Semáforo con espera activa (busy-wait) 1.5. Consecuencias

Más detalles

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

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Introducción y Conceptos Básicos Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería

Más detalles

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

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 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 Fundamentos El Problema de la Sección Crítica La Solución

Más detalles

SIMULACIÓN GRÁFICA DE EVENTOS PARALELOS EN TIEMPO REAL SINCRONIZADOS CON MENSAJES. Dr. Maximino Peña Guerrero Ing. José de Jesús Negrete Redondo

SIMULACIÓN GRÁFICA DE EVENTOS PARALELOS EN TIEMPO REAL SINCRONIZADOS CON MENSAJES. Dr. Maximino Peña Guerrero Ing. José de Jesús Negrete Redondo SIMULACIÓN GRÁFICA DE EVENTOS PARALELOS EN TIEMPO REAL SINCRONIZADOS CON MENSAJES Dr. Maximino Peña Guerrero Ing. José de Jesús Negrete Redondo ACÚSTICA-ESIME-IPN1 1 [presen4.tex] Noviembre, 2010 1 OBJETIVO:

Más detalles

TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN

TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN TEMA 2: PROCESOS E HILOS: CONCURRENCIA, SINCRONIZACIÓN Y COMUNICACIÓN 1. Introducción Definición de proceso (tarea según los fabricantes): Programa en ejecución. Cálculo computacional que puede hacerse

Más detalles

DE SISTEMAS CONCURRENTES

DE SISTEMAS CONCURRENTES REDES DE PETRI: MODELADO DE SISTEMAS CONCURRENTES PROGRAMACIÓN CONCURRENTE MASTER EN COMPUTACIÓN DEPARTAMENTO DE ELECTRÓNICA Y COMPUTADORES UNIVERSIDAD DE CANTABRIA CURSO 2012/13 1 MODELADO DE SISTEMAS

Más detalles

Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA.

Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA. Primitivas de Sincronización (continuación) MONITORES: Primitiva de alto nivel, es a nivel de lenguajes como: ADA, PASCAL, JAVA. Carácterísticas: Construcción de alto nivel. Estructura de datos estática:

Más detalles

Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software.

Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software. Junio 2008 Programación Concurrente 1/6 Normas Examen de Programación Concurrente - Clave: a Junio 2008 Departamento de Lenguajes, Sistemas Informáticos e Ingeniería del Software Este examen es un cuestionario

Más detalles

UNIDAD 3 MEMORIA COMÚN. El problema de exclusión mutua

UNIDAD 3 MEMORIA COMÚN. El problema de exclusión mutua UNIDAD 3 MEMORIA COMÚN El problema de exclusión mutua Exclusión mutua Exclusión mutua significa asegurar que un recurso compartido (variable, estructura de datos, etc.) sea accedida por un solo hilo a

Más detalles

Sistemas Operativos. Concurrencia. Concurrencia de procesos. Concurrencia de procesos. Ejecución simultánea de procesos.

Sistemas Operativos. Concurrencia. Concurrencia de procesos. Concurrencia de procesos. Ejecución simultánea de procesos. Sistemas Operativos Concurrencia Mario Medina (mariomedina@udec.cl) Everybody understands what concurrency means? Two lies at once. Todos entienden qué significa concurrencia? Dos mentiras a la vez. Luis

Más detalles

Práctico 2. Sincronización

Práctico 2. Sincronización Práctico 2. Sincronización 1. Dena a) Tareas b) Prioridades jas y dinámicas 2. Crear dos threads con prioridades jas iguales que impriman sucesivamente por la salida estándar, las palabras "Tiempo" y "Real"

Más detalles

Interbloqueo. Concurrencia: Interbloqueo e Inanición

Interbloqueo. Concurrencia: Interbloqueo e Inanición Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución

Más detalles

Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos

Concurrencia. Programación Concurrente Procesos Comunicación entre Procesos Concurrencia Programación Concurrente Procesos Comunicación entre Procesos Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada instante la CPU ejecuta

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a

Más detalles

Sistemas multiprogramados

Sistemas multiprogramados dit UPM Sistemas multiprogramados Juan Antonio de la Puente DIT/UPM Objetivos Veremos cómo realizar sistemas de tiempo real con arquitectura asíncrona tareas como hebras de sistema operativo no todas las

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 6, Principios de Programación Concurrente 6.1 Principios generales de concurrencia. 6.2 EM: Soluciones software (Algoritmos de Dekker y Peterson). 6.3 EM: Soluciones

Más detalles

Concurrencia entre Procesos.

Concurrencia entre Procesos. Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que

Más detalles

Lección 13: Introducción a los sistemas de tiempo real

Lección 13: Introducción a los sistemas de tiempo real Lección 13: Introducción a los sistemas de tiempo real Introducción Conceptos básicos Sistemas síncronos Sistemas asíncronos Sistemas dirigidos por interrupciones Algoritmos de scheduling J. Ezpeleta-P.

Más detalles

Modelo de Cómputo. Programación concurrente

Modelo de Cómputo. Programación concurrente Programa concurrente Programa concurrente: conjunto finito de procesos (secuenciales). Un proceso secuencial está escrito con un conjunto finito de acciones atómicas. Ejecución: una secuencia de acciones

Más detalles

Sistemas Operativos Tema 7. Concurrencia

Sistemas Operativos Tema 7. Concurrencia Contenidos Sistemas Operativos Tema 7. Concurrencia Sistemas concurrentes El problema de la sección crítica Semáforos Monitores 1998-2012 José Miguel Santos Alexis Quesada Francisco Santana 1 2 Bibliografía

Más detalles

Plataformas de Tiempo Real

Plataformas de Tiempo Real Master en Computación Plataformas de Tiempo Real POSIX Avanzado y Extensiones Tema 1. Ficheros y entrada/salida Tema 3. Monitorización y control del tiempo de ejecución Tema 4. Planificación EDF Tema 5.

Más detalles

Biblioteca de sistema

Biblioteca de sistema * Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder

Más detalles

Introducción a los Sistemas Operativos S.O.

Introducción a los Sistemas Operativos S.O. Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es

Más detalles

SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria

SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria Calificación 1 2 3 SISTEMAS OPERATIVOS, 10 de septiembre de 2009 Examen Convocatoria Extraordinaria Nombre Titulación Dispone de dos horas para realizar el examen 1 (6 puntos) Test. En cada uno de los

Más detalles

Sentencias de control de flujo

Sentencias de control de flujo Bucles Sentencias de control de flujo Departamento de Electrónica Fundación San Valero Bucles Hasta ahora los programas que hemos visto eran lineales. Comenzaban por la primera instrucción y acababan por

Más detalles

Sobre la programación concurrente

Sobre la programación concurrente Sobre la programación concurrente Lecturas recomendadas: G. Andrews, introducción parte 1 Ben-Ari, secciones 2.1 y 2.3 A. Burns, A. Wellings, capítulo 2 (hasta 2.4) Andrews & Schneider, todo el artículo

Más detalles

Simultaneidad + Sincronización

Simultaneidad + Sincronización Sobre la programación concurrente Lecturas recomendadas: G. Andrews, introducción parte 1 Ben-Ari, secciones 2.1 y 2.3 A. Burns, A. Wellings, capítulo 2 (hasta 2.4) Andrews & Schneider, todo el artículo

Más detalles

El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante.

El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante. El kernel forma parte del sistema operativo, para ser más claros es el núcleo, la parte más importante. Cuando arrancas un ordenador con cualquier sistema operativo, el Kernel se carga en memoria y permanece

Más detalles

Manipulación de procesos

Manipulación de procesos Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama

Más detalles

SISTEMAS OPERATIVOS Manejo de procesos

SISTEMAS OPERATIVOS Manejo de procesos SISTEMAS OPERATIVOS Manejo de procesos Amilcar Meneses Viveros ameneses@computacion.cs.cinvestav.mx Universidad de Occidente Presentación Concepto de proceso Despacho de procesos Operaciones sobre procesos

Más detalles

Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1

Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Semáforos Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons

Más detalles

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Tipos de Diseño. Ing. Elizabeth Guerrero V. Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador

Más detalles

Sistemas Operativos. Paso de Mensajes. Direccionamiento de Mensajes. Sincronización de mensajes. Mensajes permiten: Paso de Mensajes

Sistemas Operativos. Paso de Mensajes. Direccionamiento de Mensajes. Sincronización de mensajes. Mensajes permiten: Paso de Mensajes Paso de Mensajes Sistemas Operativos Paso de Mensajes Mario Medina (mariomedina@udec.cl) Mensajes permiten: Sincronización de procesos Comunicación entre procesos Aptos para: Beware of bugs in the above

Más detalles

Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en

Aviso 2: Escriba con buena letra y evite los tachones. Aviso 3: Solución del examen y fecha de revisión en SISTEMAS OPERATIVOS (Código: 71902048) Enero 2012 Material permitido: Solo calculadora no programable Tiempo: 2 horas N1 Aviso 1: Todas las respuestas deben estar debidamente razonadas. Aviso 2: Escriba

Más detalles

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Parte II AGOSTO 2011 1 Qué es un Sistema Operativo? Un Sistema Operativo es un programa que actúa de intermediario entre el usuario y el hardware del computador.

Más detalles

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Introducción. Tema 6 Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los

Más detalles

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

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 Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons License

Más detalles

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Hilos y mecanismos de comunicación y sincronización

SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Hilos y mecanismos de comunicación y sincronización SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Hilos y mecanismos de comunicación y sincronización Contenido 2 Comunicación y sincronización. Semáforos. El problema de los lectores escritores.

Más detalles

Guillermo Román Díez

Guillermo Román Díez Concurrencia Creación de Procesos en Java Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia

Más detalles

Ejercicios sobre tuberías

Ejercicios sobre tuberías Boletín 3. Ejercicios sobre tuberías July 14, 016 1. Indica de manera justificada si las siguientes afirmaciones sobre la utilización de tuberías como mecanismo de sincronización entre dos procesos son

Más detalles

Concurrencia. Guillermo Román Díez

Concurrencia. Guillermo Román Díez Concurrencia Semáforos Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2017-2018 Guillermo Román, UPM CC: Semáforos 1/11 Problemas de la espera activa Los algoritmos de espera

Más detalles

Tema 3: Concurrencia de procesos

Tema 3: Concurrencia de procesos Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas

Más detalles

PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS

PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS PROBLEMAS CLÁSICOS DE LA COMUNICACIÓN N ENTRE PROCESOS SISTEMAS OPERATIVOS JOSÉ ALFREDO ESTRADA SOTO Para cada uno de los siguientes tres problemas se requiere escribir un programa que atienda las necesidades

Más detalles

Sincronización de Threads

Sincronización de Threads Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)

Más detalles

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009

SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas

Más detalles

Sistemas Operativos INF - 151

Sistemas Operativos INF - 151 Sistemas Operativos INF - 151 MODULO II. PROCESOS 2.3 Concurrencia y Exclusión Mutua 12/10/07 Resumen preparado por Miguel Cotaña El diseño de SO están relacionados con la gestión de procesos e hilos:

Más detalles

Por ejemplo, el siguiente error conduce inmediatamente a un deadlock:

Por ejemplo, el siguiente error conduce inmediatamente a un deadlock: Monitores Los semáforos, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles a errores. Su utilización exige disciplina.

Más detalles

TEMA 3: MP DE MEMORIA COMPARTIDA (I)

TEMA 3: MP DE MEMORIA COMPARTIDA (I) Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua

Más detalles

Sistemas Operativos (Parte 2)

Sistemas Operativos (Parte 2) Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: elinos@ci.ulsa.mx web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria 1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo

Más detalles