Lección 10: Ejemplos de programación con semáforos
|
|
|
- Adolfo Herrera Moreno
- hace 9 años
- Vistas:
Transcripción
1 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 con semáforos) J. Ezpeleta 1
2 El problema de la cena de los filósofos El problema: cada filósofo, alternativamente, piensa y come se necesitan dos tenedores para comer el de la izquierda y el de la derecha la cantidad de espaguetis es infinita! hay que evitar que se mueran de hambre por la cabezonería de los filósofos Salta a la vista que: dos filósofos vecinos no pueden comer a la vez no más de dos filósofos pueden comer a la vez Objetivo: desarrollar un programa concurrente que simule el sistema Filósofo:: Mq TRUE coge tenedores come deja tenedores piensa 2 J. Ezpeleta 2
3 El problema de la cena de los filósofos Vars cogido,dejado:vector(1..n) de Ent:=(1..5,0) Filosofo(i:1..5):: I: {1..5}. Mq TRUE dejado( )<=cogido( )<=dejado( )+1 <cogido(i) := cogido(i)+1> <cogido(i 1) := cogido(i 1)+1> come <dejado(i) := dejado(i)+1> <dejado(i 1) := dejado(i 1)+1> piensa J. Ezpeleta 3
4 El problema de la cena de los filósofos Vars cogido,dejado:vector(1..n) de Ent:=(1..5,0) Filosofo(i:1..5):: I: {1..5}. Mq TRUE dejado( )<=cogido( )<=dejado( )+1 <await cogido(i)<dejado(i)+1 cogido(i) := cogido(i)+1 > <await cogido(i 1)<dejado(i 1)+1 cogido(i 1) := cogido(i 1)+1 > come <dejado(i) := dejado(i)+1> <dejado(i 1) := dejado(i 1)+1> piensa J. Ezpeleta 4
5 El problema de la cena de los filósofos Vars tenedor:vector(1..n) de sem:=(1..5,1) Filosofo(1..5):: Mq TRUE wait(tenedor(i)) wait(tenedor(i 1)) come send(tenedor(i)) send(tenedor(i 1)) piensa Problema: se llega a bloquear Bloqueo: recursos de uso en exclusión mutua estados hold-and-wait no preemption ciclo wait-for Proponer una solución J. Ezpeleta 5
6 El problema de los lectores/escritores Problema: dos tipos de procesos para acceder a una base de datos: lectores: consultan la BBDD escritores: consultan y modifican la BBDD cualquier transacción aislada mantiene la consistencia de la BBDD cuando un escritor accede a la BBDD, es el único proceso que la puede usar varios lectores pueden acceder simultáneamente J. Ezpeleta 6
7 El problema de los lectores/escritores Vars leyendo:=0, numlec:=0, escribiendo:vector(1..n) de Ent := (1..n,0) Lector(i:1..m):: <numlec:=numlec+1 Si numlec=1 leyendo:=leyendo+1 FSi> leebasedatos <numlec:=numlec-1 Si numlec=0 leyendo:=leyendo-1 FSi> I: leyendo+ {1..n}.escribiendo( )<=1 Escritor(i:1..n):: <escribiendo(i):= escribiendo(i)+1> escribebasedatos <escribiendo(i):= escribiendo(i)-1> J. Ezpeleta 7
8 El problema de los lectores/escritores vars leyendo:=0, numlec:=0, escribiendo:vector(1..n) de Ent := (1..n,0) Lector(i:1..m):: <numlec:=numlec+1 Si numlec=1 <await SUM<=0 leyendo:=leyendo+1 > FSi> leebasedatos <numlec:=numlec-1 Si numlec=0 leyendo:=leyendo-1 FSi> SUM: leyendo+ {1..n}.escribiendo( ) I: SUM<=1 Escritor(i:1..n):: <await SUM<=0 escribiendo(i):= escribiendo(i)+1> escribebasedatos <escribiendo(i):= escribiendo(i)-1> J. Ezpeleta 8
9 vars El problema numlec:=0, de mutexlec:sem:=1,permiso:sem:=1 los lectores/escritores Lector(i:1..m):: wait(mutexlect) numlec:=numlec+1 Si numlec=1 wait(permiso) FSi send(mutexlect) leebasedatos wait(mutexlect) numlec:=numlec-1 Si numlec=0 send(permiso) FSi send(mutexlect) Escritor(i:1..n):: wait(permiso) escribebasedatos send(permiso) J. Ezpeleta 9
10 El problema de los lectores/escritores. Prioridad Lector(i:1..n):: Si escritor escribiendo o esperando Ent esperarparaleer Fsi avisar sig. lector espera leebasedatos Si último y escritor espera Ent avisarle Fsi Escritor(i:1..m):: Si alguien escribiendo o leyendo Ent esperarparaesc Fsi escribebasedatos Si escritor esperando Ent avisarle SiNo Si lector esperando Ent avisarle FSi Fsi J. Ezpeleta 10
11 vars numlec: Ent:=0, mutex:sem:=1; puedesleer, El puedesescribir:sem:=0;numle,numee: problema de los lectores/escritores Ent:=0 Lector(i:1..m):: wait(mutex) Si escribiendo numee>0 numle:=numle+1 send(mutex) wait(puedesleer) numle:=numle-1 FSi numlec:=numlec+1 Si numle>0 send(puedesleer) Si_No send(mutex) Fsi Prioridad a escritores leebasededatos wait(mutex) numlec:=numlec-1 Si numlec=0 numee>0 send(puedesescribir) Si_No send(mutex) FSi J. Ezpeleta 11
12 ... Escritor(i:1..n):: El problema de los lectores/escritores wait(mutex) Si numlec>0 escribiendo numee:=numee+1 send(mutex) wait(puedesescribir) numee:=numee-1 FSi escribiendo:=true send(mutex) escribirbbdd Prioridad a escritores wait(mutex) Si numee>0 Ent send(puedesescribir) Si_No Si nle>0 Ent send(puedesleer) Si_No send(mutex) FSi FSi J. Ezpeleta 12
13 Ejercicios Ejercicio 1: Un grafo de precedencias de tareas es un grafo dirigido acíclico que establece un orden de ejecución de tareas de un programa concurrente, de manera que una tarea no puede empezar a ejecutarse hasta que las que sean anteriores en el grafo hayan terminado. Por ejemplo, si consideramos el grafo de la figura 1, la tarea P4 no puede empezar a ejecutarse hasta que P2 y P1 terminen, mientras que P5 no puede empezar hasta que P1, P2, P3 y P4 hayan terminado. Asumamos que cada tarea ejecuta el siguiente código: espera a que las tareas anteriores terminen ejecuta el cuerpo de la tarea avisa de su terminación a quien corresponda P1 P3 P5 1) Usando semáforos, escribir el programa concurrente correspondiente al diagrama de la figura P2 P4 2) Esquematizar un método general de sincronización para un grafo de precedencias general. Calcular el número de semáforos que el método utilizaría. Este número se puede poner, por ejemplo, como función del número de tareas, de arcos, etc. J. Ezpeleta 13
14 Ejercicios Ejercicio 2: Considerar el siguiente programa concurrente: Calcular para él el Vars x: Ent := 0; conjunto de los posibles s1: sem := 1; valores finales para la s2: sem := 0 P1:: variable x P2:: P3:: Ejercicio 3: Implementar un semáforo general en base a uno (o varios) semáforo binarios wait(s2) wait(s1) x := 2*x send(s1) wait(s1) x := x*x send(s1) wait(s1) x := x+3 send(s2) send(s1) J. Ezpeleta 14
15 Ejercicios Ejercicio 4: Problema de uso de recursos: n procesos compiten por el uso de un recurso, del que se disponen de k unidades. Las peticiones de uso del recurso son del tipo: reserva(r): --necesito se me concedan, de golpe, r unidades del recurso libera(l): --libero, de golpe, l unidades del recurso, que previamente se me habían concedido Programar dichas operaciones usando semáforos binarios J. Ezpeleta 15
16 Ejercicios Ejercicio 5: Considerar el siguiente programa, que presenta un problema: nada impide que se use una variable en una expresión con un valor todavía indefinido. Se pide lo siguiente. Utilizando semáforos, completar el código de dicho programa de manera que nunca una variable sea usada en una expresión antes de que se le haya asignado un valor, ya sea mediante una instrucción leer o una asignación. Explicar cómo se generalizaría dicha solución para cualquier programa. Podría un programa escrito de acuerdo a la propuesta anterior llegar a bloquearse? Si es así, escribir un ejemplo sencillo de bloqueo. Si no es posible, justificar "de manera convincente" por qué es así. Vars a,b,c,d: Ent; P1:: leer(a); c := a+b b := 2*d P2:: leer(c) leer(d) b := a+d+c J. Ezpeleta 16
17 El paso del testigo Veamos una forma (eficiente) de implementar exclusiones mutuas y sincronización por condición con semáforos binarios Necesitamos: E 1 : <S i > E 2 :<await B j S j > Un semáforo binario para asegurar la ejecución en exclusión mutua: mutex (valor inicial 1) Para cada j, un semáforo binario b j y un contador d j, a cero J. Ezpeleta 17
18 El paso del testigo Cambiar E 1 : wait(mutex) S i AVISAR E 2 : wait(mutex) Si no B j Ent d j :=d j +1 send(mutex) wait(b j ) FSi S j AVISAR donde AVISAR: --mutex=0 Sel B 1 y d 1 >0: d 1 :=d 1-1;send(b 1 ) B n y d n >0: d n :=d n -1;send(b n ) otros casos: send(mutex) FSel J. Ezpeleta 18
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
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
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
Lección 12: Ejemplos de programación con monitores
Lección 12: Ejemplos de programación con monitores El problema del semáforo equitativo El problema del temporizador El problema del barbero dormilón J. Ezpeleta 1 El problema del semáforo equitativo Era
Lección 3: Concurrencia y sincronización
Lección 3: Concurrencia y sincronización Composición concurrente de acciones Acciones atómicas y sincronización Atomicidad de una expresión Atomicidad de una acción de asignación Sincronización de acciones
Unidad 1: Gestión de Procesos
Unidad 1: Gestión de Procesos Tema 2, Concurrencia: Interbloqueo e inanición. 2.1 Caracterización del interbloqueo y grafo de asignación de recursos. 2.2 Estrategias de tratamiento del interbloqueo: -
Lección 7: Sincronización de procesos mediante monitores
Lección 7: Sincronización de procesos mediante monitores Introducción Qué es un monitor? Características y funcionamiento de un monitor Implementación de un monitor en C++ y Java Algunos ejemplos de aplicació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
SOLUCIONES. DURACIÓN: Dispone de dos horas para realizar el examen. Lea las instrucciones para el test en la hoja correspondiente.
1 2 3 test extra NOTA Fundamentos de los Sistemas Operativos Examen parcial 10 de abril de 2015 Nombre y apellidos SOLUCIONES DURACIÓN: Dispone de dos horas para realizar el examen. Lea las instrucciones
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
Sincronización de procesos
Sincronización de procesos 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 2014
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
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
Lección 15: Programación concurrente mediante paso síncrono de mensajes
Lección 15: Programación concurrente mediante paso síncrono de mensajes Limitaciones del paso asíncrono de mensajes Paso síncrono de mensajes: notación simplificada ejemplo: proceso filtro copiar notación
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
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
PROBLEMAS CLÁSICOS. EL PROBLEMA DE LOS FILÓSOFOS COMENSALES.
PROBLEMAS CLÁSICOS. EL PROBLEMA DE LOS FILÓSOFOS COMENSALES. Cinco filósofos pasan su vida pensando y comiendo. Los filósofos comparten una mesa circular rodeada por cinco sillas, una para cada uno de
Sincronización entre procesos (aka: semáforos)
Sincronización entre procesos (aka: semáforos) DC - FCEyN - UBA Sistemas Operativos, 1c-2016 Dónde estamos? De dónde venimos? Race condition Semáforos Race condition Semáforos Primero repasemos brevemente
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
La cena de los filósofos.
La cena de los filósofos. Es posible encontrar diferentes soluciones para el problema de los filósofos que cenan. Para las siguientes explicaciones supondremos cinco filósofos, aunque las soluciones deberían
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
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
Programación de Sistemas Concurrentes y Distribuidos 2 a Convocatoria curso 12/13
Programación de Sistemas Concurrentes y Distribuidos 2 a Convocatoria curso 12/13 13 de septiembre de 2013 Dpto. de Informática e Ingeniería de Sistemas Universidad de Zaragoza Ejercicio 1 (2.0 ptos.)
Concurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
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
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"
Cena de filosofos y sincronizacion java
Programación concurrente y Distribuída Curso 2011-12 Miguel Telleria, Laura Barros, J.M. Drake telleriam AT unican.es Computadores y Tiempo Real http://www.ctr.unican.es Objetivos Presentaros la aplicació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
Capítulo 16: Control de la concurrencia
Capítulo 16: Control de la concurrencia Protocolos basados en bloqueos Protocolos basados en las marcas temporales Esquemas multiversión Tratamiento de interbloqueos 16.1 Protocolos basados en bloqueos
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
Lección 10: Coordinación mediante espacios de tuplas
Lección 10: Coordinación mediante espacios de tuplas Introducción El modelo de coordinación Linda Ejemplos Acceso a un espacio de tuplas en el mundo real Aproximación conceptual a los monitores Ejercicios
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
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
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
Lección 7: Sincronización de procesos El problema de la sección crítica
Lección 7: Sincronización de procesos El problema de la sección crítica Metodología de resolución de problemas de sincronización El problema de la sección crítica Especificaciones de diseño Esquema algorítmico
Especificando interacción con recursos compartidos
Especificando interacción con recursos compartidos (en construcción, no imprimir) Julio Mariño Concurrencia GRADO EN INGENIERÍA INFORMÁTICA/ GRADO EN MATEMÁTICAS E INFORMÁTICA/ DOBLE GRADO EN ING. INFORMÁTICA
Programación Concurrente: Septiembre 2007 David Fernández-Amorós
El juego del laberinto concurrente se juega en un tablero rectangular de n filas y m columnas. En cada casilla puede haber una pared, un espacio vacío o un coco. El objetivo de cada coco es salir del laberinto.
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
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
CAPÍTULO 3. PROCESOS VS. HILOS
CAPÍTULO 3. PROCESOS VS. HILOS 3.1 Primitivas de sincronización en Java Java no tiene semáforos como primitivas de sincronización. Sin embargo, proporciona otras primitivas diferentes con las cuales sí
Apellidos: Nombre: Matrícula:
Apellidos: Nombre: Matrícula: Concurrencia (parte 2)/clave: a Curso 2016 2017 - Convocatoria Extraordinaria (Julio 2017) Grado en Ingeniería Informática / Grado en Matemáticas e Informática UNIVERSIDAD
Apellidos: Nombre: Matrícula: UNIVERSIDAD POLITÉCNICA DE MADRID
Apellidos: Nombre: Matrícula: Concurrencia (parte 2)/clave: a Curso 2014/2015-2 o semestre (junio 2015) Grado en Ingeniería Informática / Grado en Matemáticas e Informática UNIVERSIDAD POLITÉCNICA DE MADRID
CAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
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:
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
El problema del interbloqueo
Programación Concurrente en Linux El problema del interbloqueo Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Inanición e interbloqueo 2. Modelo del interbloqueo
Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada
Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos
Prueba objetiva 2 - Clave a Concurrencia Primer semestre Grado en Ingeniería Informática. Universidad Politécnica de Madrid
Normas Prueba objetiva 2 - Clave a Concurrencia 2013-2014 - Primer semestre Grado en Ingeniería Informática. Universidad Politécnica de Madrid Este es un cuestionario que consta de 4 preguntas en 5 páginas.
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
Transacciones y Control de Concurrencia (capítulo 15 del libro)
Transacciones y Control de Concurrencia (capítulo 15 del libro) Básicamente, una transacción es una colección de operaciones que forman una unidad de trabajo. Se busca que se ejecuten todas las operaciones
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
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia Calendario Comienzo: Lunes 2 de noviembre y miércoles 4 de noviembre. Entrega: 16 de noviembre y 18 de noviembre. 1. Requisitos
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
Programación de Sistemas Concurrentes y Distribuidos 1 a Convocatoria curso 12/13
Programación de Sistemas Concurrentes y Distribuidos 1 a Convocatoria curso 12/13 5 de febrero de 2013 Dpto. de Informática e Ingeniería de Sistemas Universidad de Zaragoza Ejercicio 1 (1.5 ptos.) Considérese
Programación concurrente
Programación concurrente Master de Computación I Conceptos y recursos para la programación concurrente: I.6 Sincronización basada en memoria compartida. J.M. Drake M. Aldea Procesos concurrentes y memoria
PRÁCTICO 4. La evaluación de una expresión sólo debe esperar por la evaluación de sus subexpresiones.
Objetivos PRÁCTICO 4 Comprender el problema de la mutua exclusión y las dificultades de probar la correctitud de programas concurrentes Ver soluciones por software y por hardware al problema de la mutua
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo
Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo Hilo (theread) llamado también proceso ligero o subproceso, es la unidad de ejecución de un proceso y esta asociado con una secuencia
cilred.com GESTIÓN DE TRANSACCIONES
cilred.com GESTIÓN DE TRANSACCIONES ING. EDUARDO CRUZ ROMERO [email protected] cilred.com GESTIÓN DE TRANSACCIONES En las base de datos existen una serie de operaciones fundamentales tales como la
Programación concurrente
23 de Marzo de 2017 Condiciones generales Docente: Hernán Melgrati (hmelgra@...) Horario: Teóricas: Jueves de 14 a 17 Prácticas: Martes de 14 a 17 Evaluaciones: Un parcial (mediados de mayo) Un trabajo
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
seguridad y vivacidad/viveza
Aclaraciones seguridad y vivacidad/viveza Un programa concurrente puede fallar por varias razones, las cuales se pueden clasificar entre dos grupos de propiedades: seguridad: Esa propiedad indica que no
Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco
Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos
Introducción a Sistemas Operativos: Concurrencia
Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso
Hilos Secciones Stallings:
Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los
4.6.- Integridad: Control de concurrencia.
4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas
*** 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
CDI Exclusión mutua a nivel alto. conceptos
conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente
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:
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 ([email protected]) Mensajes permiten: Sincronización de procesos Comunicación entre procesos Aptos para: Beware of bugs in the above
Programación Concurrente y Distribuída Estado Compartido, 2010
Programación Concurrente y Distribuída Estado Compartido, 2010 Camilo Rueda 1 1 Universidad Javeriana-Cali 9 de abril de 2010 Concurrencia con estado: introducción problema: modelar con puertos un objeto
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
SISTEMAS OPERATIVOS PROBLEMAS RESUELTOS. Jorge Walter Orellana Araoz
UNIVERSIDAD MAYOR DE SAN SIMON FACULTAD DE CIENCIAS Y TECNOLOGIA DEPARTAMENTO INFORMATICA SISTEMAS PROBLEMAS RESUELTOS SISTEMAS OPERATIVOS Jorge Walter Orellana Araoz 2016 Capítulo 2. Gestió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
Tema 6: Clases. Índice
Tema 6: Clases Antonio J. Sierra Índice 1. Fundamentos. 2. Declaración de objetos. 3. Asignación de objetos a variables referencia. 4. Métodos. 5. Constructores. 6. this. 7. Recogida de basura. 8. Modelado
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
Programación de Multitareas utilizando Hilos
Programación de Multitareas utilizando Hilos Enero/2012 Programación de Multitareas utilizando Hilos Origen de los hilos como elementos necesarios en la programación de multitareas Multihilos en un solo
Sistemas Operativos (Parte 2)
Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: [email protected] web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización
Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos
Fundamentos de los Sistemas Operativos
Práctica 3 : hilos! Fundamentos de los Sistemas Operativos Grado en Ingeniería Informática Rubén García Rodríguez Alexis Quesada Arencibia Eduardo Rodríguez Barrera Francisco J. Santana Pérez José Miguel
Informática I Threads
Informática I Threads 28 de Setiembre 2010 1 Concepto de programación paralela. 2. 3 Concurrencia => Race Conditions. 4. 5 Funciones Concepto de Programación Paralela Computación paralela Técnica de programación
Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur
Interbloqueos Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Interbloqueos Modelo de Sistema Caracterización de Interbloqueos Métodos para el Manejo de Interbloqueos
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
PRIMITIVAS DE SINCRONIZACIÓN BASADAS EN MEMORIA COMPARTIDA.
PRIMITIVAS DE SINCRONIZACIÓN BASADAS EN MEMORIA COMPARTIDA. En este modulo vamos a presentar una serie de técnicas que permitan resolver los problemas inherentes a la programación concurrente, apoyándose
