Lección 12: Ejemplos de programación con monitores
|
|
- María Antonia Figueroa Navarrete
- hace 6 años
- Vistas:
Transcripción
1 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
2 El problema del semáforo equitativo Era correcto Comportamiento no equitativo: el proceso que recibe un signal no tiene garantizada la inmediata reanudación de su ejecución el signal puede ser robado Monitor semaforo Vars s: Ent:= 0 espos: cond --señala s>0 --IM::Sem: s>=0 Accion wait Mq (s=0) wait(espos) FMq s := s-1 Accion send s := s+1 signal(espos) FMonitor J. Ezpeleta 2
3 El problema del semáforo equitativo Monitor semaforo --IM::Sem: s>=0 Vars s: Ent:= 0 espos: cond --señala s>0 cuando --espos no está vacía Accion wait Sel s>0: s:=s-1 s=0: wait(espos) FSel FMonitor... Accion send Sel empty(espos): s:=s+1 empty(espos): signal(espos) FSel... J. Ezpeleta 3
4 El problema del temporizador Diseñar un monitor con las operaciones retardar y tick que se especifican a continuación Monitor temporizador Vars t: Ent:= 0 IM::Rel: t>=0 t es monótono de 1 en 1 Accion delay(e int: Ent) --Pre: Rel int>=0 t=t --Post: Rel t>=t+int Accion tick --Pre: Rel t=t --Post: Rel t=t+1 FMonitor J. Ezpeleta 4
5 El problema del temporizador Monitor temporizador Vars t: Ent:= 0 comprobar: cond -- Un nuevo tick! Accion delay(e int: Ent) IM::Rel: t>=0 Vars horadedespertar: Ent t es monótono de 1 en 1 horadedespertar := t+int Mq t<horadedespertar wait(comprobar) FMq Accion tick t := t+1 signal_all(comprobar) FMonitor J. Ezpeleta 5
6 El problema del temporizador Monitor temporizador Vars t: Ent:= 0 comprobar: cond Accion delay(e int: Ent) Vars horadedespertar: Ent horadedespertar := t+int --minrank(comprobar)<=t Una solución con esperas con prioridad IM::Rel: t>=0 t es monótono de 1 en 1 Si t<horadedespertar wait(comprobar,horadedespertar) FSi Accion tick t := t+1 Mq empty(comprobar) minrank(comprobar)<=t signal(comprobar) FMq FMonitor J. Ezpeleta 6
7 El problema del barbero dormilón Cuando no hay clientes, el barbero duerme en un sillón de trabajo Si entonces llega un cliente, éste despierta al barbero, se sienta en el sillón y se duerme mientras el barbero le corta el pelo Si llega un cliente cuando el barbero está trabajando, se sienta en una silla de espera y duerme hasta que llega su turno y, entonces, el barbero le despierta Cuando ha terminado, el barbero le abre la puerta y cuando se ha ido, va a por el siguiente cliente Concurrent Programming Concurrent Programming J. Ezpeleta 7
8 Análisis y diseño del programa Elementos principales del programa concurrente: Barbero: proceso servidor Clientes: procesos clientes Barbería: monitor para sincronizar el barbero y los clientes Variables para la sincronización: clientesensilla: #clientes han pasado por el sillón del barbero clientessalido: #clientes que han sido servidos y cobrados barberodisponible: #veces en que el barbero ha estado en disposición de atender a un nuevo cliente barberoocupado: #veces en que el barbero ha estado trabajando barberoterminado: #veces en que el barbero ha acabado un servicio J. Ezpeleta 8
9 Requisitos de sincronización C1: los clientes reciben el servicio antes de pagarlo y el barbero debe estar disponible antes de atender a un cliente y sólo después de servirle puede cobrarle: (clientesensilla >= clientessalido) (barberodisponible >= barberoocupado >= barberoterminado ) C2: un cliente no puede sentarse en el sillón del cliente si el barbero está atendiendo a otro cliente y el barbero no comienza un nuevo servicio si no tiene un cliente en el sillón del cliente: (clientesensilla <= barberodisponible) (barberoocupado <= clientesensilla) J. Ezpeleta 9
10 Requisitos de sincronización C3: para que el n-ésimo cliente pague será preciso que antes el barbero haya concluido el servicio y esté dispuesto a cobrarle: clientessalido <= barberoterminado Invariante: Barb: C1 C2 C3 J. Ezpeleta 10
11 Una primera solución Monitor barbería Vars clientesensilla: Ent := 0 clientessalido: Ent := 0 barberodisponible: Ent := 0 barberoocupado: Ent := 0 barberoterminado: Ent := 0 IM: Barb: C1 C2 C3 Accion cortemeelpelo --llamada por los clientes <await clientesensilla < barberodisponible> clientesensilla := clientesensilla+ 1 <await clientessalido < barberoterminado> clientessalido := clientessalido FMonitor J. Ezpeleta 11
12 Una primera solución IM: Barb: C1 C2 C3... Accion siguienteporfavor --llamada por el barbero barberodisponible := barberodisponible + 1 <await barberoocupado < clientesensilla > barberoocupado := barberoocupado + 1 Accion servicioconcluido --llamada por el barbero barberoterminado := barberoterminado + 1 <await barberoterminado = clientessalido >... J. Ezpeleta 12
13 Una solución con variables condición IM: Barb : 0<=barbero<=1 0<=silla<=1 0<=abierta<=1 Monitor barbería Vars barbero: Ent := 0 silla: Ent := 0 abierta: Ent := 0 barberodisponible: cond --cuando barbero>0 sillaocupada: cond --cuando silla>0 puertaabierta: cond --cuando abierta>0 clientesale: cond --cuando abierta=0... FMonitor barbero: barberodisponible-clientesensilla silla: clientesensilla-barberoocupado abierta: barberoterminado-clientessalido J. Ezpeleta 13
14 Una solución con variables condición IM: Barb : 0<=barbero<=1 0<=silla<=1 0<=abierta<=1 Accion cortemeelpelo --llamada por los clientes Mq (barbero=0) wait(barberodisponible) FMq barbero := barbero-1 silla := silla+1 signal(sillaocupada) Mq (abierta=0) wait(puertaabierta) FMq abierta := abierta-1 signal(clientesale) barbero: barberodisponible-clientesensilla silla: clientesensilla-barberoocupado abierta: barberoterminado-clientessalido J. Ezpeleta 14
15 Una solución con variables condición Accion siguienteporfavor --llamada por el barbero barbero := barbero+1 signal(barberodisponible) Mq (silla=0) wait(sillaocupada) FMq silla := silla-1 IM: Barb : 0<=barbero<=1 0<=silla<=1 0<=abierta<=1 Accion servicioconcluido --llamada por el barbero abierta := abierta+1 signal(puertaabierta) Mq (abierta>0) wait(clientesale) FMq barbero: barberodisponible-clientesensilla silla: clientesensilla-barberoocupado abierta: barberoterminado-clientessalido J. Ezpeleta 15
16 Una solución con variables condición barbero:: Mq TRUE barberia.siguienteporfavor barberia.servicioconcluido FMq cliente:: barberia.cortemeelpelo J. Ezpeleta 16
17 Una solución con variables condición Monitor barbería Vars barberodisp: Ent := 0 --cuando barberodisp: 0,1 sillaocup: Ent := 0 puertaab: Ent := 0 barberodisponible: cond --cuando barberodisp>0 sillaocupada: cond --cuando sillaocup>0 puertaabierta: cond --cuando puertaab>0 clientesale: cond --cuando puertaab=0... FMonitor J. Ezpeleta 17
18 Una solución con variables condición Accion cortemeelpelo --llamada por los clientes Mq barberodisp=0 wait(barberodisponible) FMq barberodisp := 0 sillaocup := 1 signal(sillaocupada) Mq puertaab=0 wait(puertaabierta) FMq puertaab := 0 signal(clientesale) J. Ezpeleta 18
19 Una solución con variables condición Accion siguienteporfavor --llamada por el barbero barbdisp := 1 signal(barberodisponible) Mq sillaocup=0 wait(sillaocupada) FMq sillaocup := 1 Accion servicioconcluido --llamada por el barbero puertaab := 1 signal(puertaabierta) Mq puertaab=1 wait(clientesale) FMq J. Ezpeleta 19
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
Lección 6: Propiedades de un programa concurrente
Lección 6: Propiedades de un programa concurrente Propiedades de un PC Propiedades de seguridad Prueba de propiedades de seguridad Propiedades de equidad J. Ezpeleta 1 Propiedades de un PC Propiedad de
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
Lección 11: Sincronización mediante monitores
Lección 11: Sincronización mediante monitores Quées un monitor? Características y funcionamiento de un monitor Algunos ejemplos Verificación de programas con monitores Sobre seguridad y vivacidad Lectores-escritores
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
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
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
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
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
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
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
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
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
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
Mientras duerme, el barbero espera a ser despertado por un nuevo cliente.
1. Enunciado Tres barberos trabajan en una barbería. La barbería cuenta con tres sillones de barbero, cada uno asignado a uno de los barberos. Cada barbero desarrolla el siguiente plan de trabajo: El barbero
Soluciones al problema de exclusión mutua
Semáforos y Monitores Soluciones al problema de exclusión mutua Lámina 1 El problema del productor/consumidor Dos procesos comparten un almacen (buffer) de tamaño fijo. productor: coloca información en
Lección 1: Introducción a la Programación de Sistemas Concurrentes y Distribuidos
Lección 1: Introducción a la Programación de Sistemas Concurrentes y Distribuidos De la programación secuencial a la concurrente y distribuida Programas secuenciales, concurrentes y distribuidos La asignatura
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
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:
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
Programación Concurrente
Programación Concurrente Joaquín EZPELETA Dept. de Informática e Ingeniería de Sistemas Universidad de Zaragoza J. Ezpeleta 1 Programas concurrentes Un programa concurrente se compone de procesos y objetos
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
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
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
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
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
Concurrencia y Paralelismo
Concurrencia y Paralelismo Carrera: Ingeniería en Computación Profesor Responsable: Naiouf, Ricardo Marcelo Año: 4º Duración: Semestral Carga Horaria Semanal: 6hs Carga Horaria Total: 96hs Objetivos Generales
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
Tarea #1 Comunicación y Sincronización entre Procesos
Comunicación y Sincronizacion 1 Tarea #1 Comunicación y Sincronización entre Procesos 1. Enumere cuatro elementos de diseño para los cuales es necesario el concepto de concurrencia. La concurrencia comprende
dit Programación concurrente Sincronización condicional UPM
20151028 dit UPM Programación concurrente Sincronización condicional Juan Antonio de la Puente Algunos derechos reservados. Este documento se distribuye bajo licencia Crea9ve Commons
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
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN
BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA PRACTICA 8 MONITORES BASADOS EN SEMÁFOROS
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.
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:
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
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
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
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.)
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
Prueba objetiva 2 (4F1M) - Clave a
Apellidos: Nombre: Matrícula: Normas Prueba objetiva 2 (4F1M) - Clave a Concurrencia 2010-2011 - Segundo semestre Dpto. de Lenguajes, Sistemas Informáticos e Ingeniería de Software Este es un cuestionario
*** 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
Programación 2. Lección 3. Introducción a la recursividad
Programación 2 Lección 3. Introducción a la recursividad 1 1. Definiciones recursivas Número natural y número entero Múltiplos de 7 Secuencia de datos Factorial de un número natural Sucesión de Fibonacci
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
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.
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
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
Lección 2: Conceptos básicos de PC
Lección 2: Conceptos básicos de PC Procesos y programas concurrentes Aplicaciones de la programación concurrente Sincronización Propiedades de un programa Especificación de algoritmos Verificación de propiedades
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
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
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
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
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
Primitivas de Sincronización
Primitivas de Sincronización JUAN CARLOS CONDE RAMÍREZ DISTRIBUTED COMPUTING Introducción Todas las soluciones previas al problema de mutex fueron un desperdicio de algún modo: Si un proceso es incapaz
Programación 1 Tema II Clase de problemas. Diseño de funciones elementales
Programación 1 Tema II Clase de problemas Diseño de funciones elementales 1 Problema 1º. Diseñar esta función * Pre: anyo >= 1600 * Post: Devuelve si y solo si es un año * bisiesto bool esbisiesto
Lección 9: Programación concurrente con semáforos
Lección 9: Programación concurrente con semáforos Semáforos: sintaxis y semántica Técnicas de programación con semáforos: el ejemplo de la sección crítica un ejemplo de barreras el caso de productores/consumidores
Examen escrito de Programación 1. Viernes 22 de enero de Problema 1 o (3.0 puntos) Problema 2 o (3.0 puntos)
Examen escrito de Programación 1. Viernes 22 de enero de 2016 Se debe disponer de un documento de identificación con fotografía sobre la mesa. Se debe comenzar a resolver cada uno de los problemas del
UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA
358-M/R Versión 1 1 Prueba Integral 1/5 UNIVERSIDAD NACIONAL ABIERTA VICERRECTORADO ACADÉMICO ÁREA INGENIERÍA MODELO DE RESPUESTA ASIGNATURA: SISTEMAS OPERATIVOS CÓDIGO: 358 MOMENTO: Primera Prueba Integral
1. Equivalencia de herramientas. Implemente las primitivas de los buzones mediante monitores.(2pt).
1. Equivalencia de herramientas. Implemente las primitivas de los buzones mediante monitores.(2pt). monitor mibuzon; const MAXBUZON =...; export s, receive, empty; buffer : array[1..maxbuzon] of item;
Planificación con prioridades
dit UPM Planificación con prioridades Juan Antonio de la Puente DIT/UPM Copyright 2007, Juan Antonio de la Puente Planificación El objetivo de los métodos de planificación (scheduling) es repartir el tiempo
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.
Rushes. Luis Miguel González Cruz. PERSONAJES SCRIPT. MUJER. CANICHE, el perro. Oscuro. SCRIPT.- Sesenta y tres, uno, primera.
Rushes Luis Miguel González Cruz PERSONAJES SCRIPT. MUJER. CANICHE, el perro. SCRIPT.- Sesenta y tres, uno, primera. (Una MUJER abre la puerta de un piso, enciende la luz y se queda en la puerta, aterrada.
SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS
SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. Con las tres llamadas create, suspend, y resume, la estructura del programa sería la siguiente: process recoger;
Prueba final, parte 2 - Clave a Concurrencia Segundo semestre Universidad Politécnica de Madrid
Apellidos: Nombre: DNI/NIE: Normas Prueba final, parte 2 - Clave a Concurrencia 2013-2014 - Segundo semestre Universidad Politécnica de Madrid Este es un cuestionario que consta de 6 preguntas en 5 páginas.
Árboles n-arios. Lección 15
Árboles n-arios Lección 15 Conceptos, deiciones y terminología básica Árbol: Conjunto de elementos de un mismo tipo, denominados nodos, que pueden representarse en un grafo no orientado, conexo y acíclico,
Final de Sistemas Operativos
Final de Sistemas Operativos Sergio Yovine de agosto de 016 1 Sincronización Ejercicio 1.A Considere el modelo de memoria compartida. 1. Dé dos primitivas de sincronización.. Dé implementaciones para cada
Programación 1. Tema V Clase de problemas. Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras
Programación 1 Tema V Clase de problemas Desarrollo de un módulo de biblioteca C++ para trabajar con conjuntos de letras 1 1. Representación del tipo Conjunto DebedefinirselarepresentacióndelosdatosdetipoConjunto
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
S. empotrados y ubicuos
S. empotrados y ubicuos Programación de dispositivos (clase 4) fperez@fi.upm.es Sincronización Tipos de problemas de sincronización: Producidos por tratamiento interrupciones Debidos a ejecución concurrente
Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.
Tema 3. Paso de mensajes Bibliografía Programación Concurrente J. Palma, C. Garrido, F. Sánchez, A. Quesada, 2003 Capítulo 7 Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall,
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
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
Programación Concurrente
Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 5.
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
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
Sistemas Operativos 1
Ejercicio 1. Se desea implementar una aplicación de n procesos concurrentes, donde cada proceso ejecuta una determinada tarea en forma de pipeline. Un ejemplo de esta aplicación con n=4 sería la siguiente:
ANX-PR/CL/ GUÍA DE APRENDIZAJE
PROCESO DE COORDINACIÓN DE LAS ENSEÑANZAS PR/CL/001 ASIGNATURA 615000242 - PLAN DE ESTUDIOS 61IW - CURSO ACADÉMICO Y SEMESTRE 2018/19 - Segundo semestre Índice Guía de Aprendizaje 1. Datos descriptivos...1
06/06/2017. Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa
1 Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa 2 Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de
Examen Práctico de Programación 1-27/enero/2017. Especificación del trabajo a desarrollar en el turno 1 o (15:00 horas) Presentación del trabajo
Examen Práctico de Programación 1-27/enero/2017 Tiempo máximo para realizar el trabajo de programación propuesto: 110 minutos Entrega del trabajo a través de la plataforma Moodle2. Especificación del trabajo
UPM Concurrencia en Java
UPM Concurrencia en Java Juan Antonio de la Puente DIT/UPM Hebras (threads) Una hebra es un objeto de una subclase de java.lang.thread o una implementación de la interfaz Runnable El código que ejecuta
Otras formas de Sincronización en Java
75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Otras formas de Sincronización en Java java.util.concurrent Class Exchanger
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:
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
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
Especificando interacción con recursos compartidos (EN CONSTRUCCIÓN: NO IMPRIMIR)
Especificando interacción con recursos compartidos (EN CONSTRUCCIÓN: NO IMPRIMIR) Julio Mariño Universidad Politécnica de Madrid Babel research group http://babel.upm.es Concurrencia, marzo 2017 Mariño
Tema 4: Modelos Teóricos de Control de la Concurrencia
Tema 4: Modelos Teóricos de Control de la Concurrencia CONTENIDO: El Problema de la Exclusión Mutua Concepto de Sección Crítica Algoritmos de Espera Ocupada Semáforos. Protocolos de E. Mutua, Sincronización
Programación Concurrente y Distribuida Ejercicios de Programación de Java
Programación Concurrente y Distribuida Ejercicios de Programación de Java 1. Escribir un programa en Java que sume los cuadrados de los cien primeros números naturales, mostrando el resultado en pantalla.
Sistemas Paralelos y Distribuidos
Sistemas Paralelos y Distribuidos Facultad de Cs. de la Computación Juan Carlos Conde Ramírez Distributed Computing Contenido 1 Características 2 Buenas prácticas 3 Procesos y Tareas 4 Procesos en UNIX
Recorridos de grafos
Recorridos de grafos Introducción 2 Recorrido en profundidad 3 Recorrido en anchura 9 Ordenación topológica 12 J. Campos - C.P.S. Esquemas algorítmicos - Grafos Pág. 1 Introducción Justificación de la
Asignaturas antecedentes y subsecuentes
PROGRAMA DE ESTUDIOS Programación Concurrente Área a la que pertenece: Área de Formación Integral Profesional Horas teóricas: 3 Horas prácticas: 2 Créditos: 8 Clave: F0177 Asignaturas antecedentes y subsecuentes
Tema 12: Programación multihilo
Tema 12: Programación multihilo Antonio J. Sierra Índice 1. Modelo de hilo en Java. 2. El hilo principal. 3. Creación de un hilo. 4. Creación de múltiples hilos. Prioridades. 5. Comunicación entre hilos.
Examen de Programación 1. Viernes 31/enero/2014. Problema 1 o (2.5 puntos) Disponer un documento de identificación con fotografía sobre la mesa.
Examen de Programación 1. Viernes 31/enero/2014 Disponer un documento de identificación con fotografía sobre la mesa. Comenzar a resolver cada problema del examen en una hoja de papel diferente. Escribir
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
MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA
MECANISMOS DE SINCRONIZACIÓN PROGRAMACIÓN CONCURRENTE Y PARALELA Sincronización El problema de la sincronización de hilos tiene lugar cuando varios hilos intentan acceder al mismo recurso o dato. A la
Técnicas de Programac. Concurrente I PLANIFICACIONES Actualización: 2ºC/2018. Planificaciones Técnicas de Programac.
Planificaciones 7559 - Técnicas de Programac. Concurrente I Docente responsable: GARIBALDI JULIA ELENA 1 de 5 OBJETIVOS Familiarizar al estudiante con las técnicas de Programación Concurrente, los conceptos
Análisis del caso promedio El plan:
Análisis del caso promedio El plan: Probabilidad Análisis probabilista Árboles binarios de búsqueda construidos aleatoriamente Tries, árboles digitales de búsqueda y Patricia Listas skip Árboles aleatorizados
Nombre y Apellido PENDENTI HORACIO A
INSTITUTO DE DESARROLLO ECONÓMICO E INNOVACIÓN Año: 2017 PROGRAMA DE LA ASIGNATURA: Introducción a la Concurrencia (IF038) CÓDIGO: IF038 AÑO DE UBICACIÓN EN EL PLAN DE ESTUDIOS: 3 año FECHA ULTIMA REVISIÓN