Sistemas Operativos Tema 6. Concurrencia
|
|
- César Gutiérrez Río
- hace 5 años
- Vistas:
Transcripción
1 Contenidos Sistemas Operativos Tema 6. Concurrencia Sistemas concurrentes El problema de la sección crítica Semáforos Monitores José Miguel Santos Alexis Quesada Francisco Santana 1 2 Bibliografía Contenidos Fundamentos de Sistemas Operativos S. Candela, C.R. García, A. Quesada, F.J. Santana, J.M. Santos. Thomson, 2007 Capítulo 3 Programación Concurrente J.T. Palma, M.C. Garrido, F. Sánchez, A. Quesada Capítulos 1, 2, 3, 4, 5 y 6 Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall, 1990 Concurrent Programming A. Burns, G. Davies. Addison-Wesley, 1993 Sistemas concurrentes El problema de la sección crítica Semáforos Monitores 3 4 Modelo del sistema Qué es concurrencia? Conjunto de procesos cooperativos Red de cajeros automáticos Sistema de reserva de billetes Servidor de impresión... Definición de diccionario: coincidir en el espacio o en el tiempo dos o más personas o cosas. En Informática, se habla de concurrencia cuando hay una existencia simultánea de varios procesos en ejecución. Ojo, concurrencia existencia simultánea no implica ejecución simultánea. 5 6
2 Paralelismo y concurrencia El paralelismo es un caso particular de la concurrencia. Se habla de paralelismo cuando ocurre la ejecución simultánea de instrucciones. Procesos cooperativos Necesidades de sincronización y comunicación Los procesos concurrentes tendrán necesidad de comunicarse información Además, será necesario en ocasiones detener a un proceso hasta que se produzca un determinado evento o se den ciertas condiciones sincronización 7 8 Técnicas de sincronización Basadas en memoria compartida Inhibición de Interrupciones Espera activa Semáforos Regiones críticas Monitores Basadas en el paso de mensajes Canales Buzones Ejemplo 1: modificación concurrente de una variable 9 10 Ejemplo 2: bucles infinitos concurrentes Ejemplo 3: búfer limitado Productor Consumidor 11 12
3 Problema al modificar datos compartidos Ambas rutinas son correctas si se ejecutan por separado pero podrían NO funcionar si se ejecutan de manera concurrente Supongamos que contador contiene en un momento dado el valor 5 y que las instrucciones contador=contador+1 y contador=contador-1 se ejecutan de forma concurrente ( contador podría ser 4, 5 o 6!) contador = contador + 1 contador=contador-1 registro 1 := contador; registro 2 := contador; registro 1 := registro 1 +1; registro 2 := registro 2-1; contador : registro 1 ; contador := registro 2 ; Contenidos Sistemas concurrentes El problema de la sección crítica Semáforos Monitores T0: productor registro 1 := contador (registro 1 = 5) T1: productor registro 1 := registro 1 +1 (registro 1 = 6) T2: consumidor registro 2 := contador (registro 2 = 5) T3: consumidor registro 2 := registro 2-1 (registro 2 = 4) T4: productor contador := registro 1 (contador = 6) T5: consumidor contador := registro 2 (contador = 4) Sección crítica: modelo del sistema N procesos intentan acceder a un recurso compartido en un bucle infinito: Sección crítica: segmento de código donde se accede a datos compartidos con otros procesos Sección crítica: modelo del sistema (2) Nunca puede haber más de un proceso en la sección crítica (exclusión mutua) Los pre y post protocolos serán algoritmos para garantizar que se cumple la exclusión mutua Requisitos de la solución Importante Exclusión mutua Progreso: si ningún proceso está en sección crítica y hay procesos que desean entrar en su s.c., sólo estos últimos participarán en la decisión y ésta se tomará en un tiempo finito. Espera limitada: hay un límite para el número de veces que otros procesos pueden adelantarse a un proceso que quiere entrar en s.c. Suponemos que cada proceso se ejecuta a una velocidad distinta de cero No podemos hacer suposiciones acerca de las velocidades relativas de los procesos 17 18
4 Solución trivial: cortar la multiprogramación Si suspendemos la multiprogramación, desaparece el problema de acceso a los datos compartidos pero perdemos todas las ventajas de la multiprogramación Hay que buscar una solución menos radical Solución del hardware: inhibir las interrupciones Antes de que un proceso entre en su sección crítica, se inhiben las interrupciones Así es imposible que el proceso sea expulsado de la CPU mientras está accediendo al dato compartido Al salir de la SC, se rehabilitan las interrupciones Inhibir las interrupciones: problemas Mientras un proceso está en SC, se suspende toda la concurrencia en el sistema no se le da oportunidad a otros procesos que no están accediendo al recurso compartido Esta técnica no se puede implementar en un multiprocesador Soluciones con espera activa La sincronización se basa en que un proceso espera mediante la comprobación continua de una variable, manteniendo ocupada la CPU. Soluciones Software Soluciones Hardware Intento ingenuo: usar un indicador de disponibilidad Primer intento serio: variable turno (solución para dos procesos) proceso 1 proceso
5 Discusión del primer intento Segundo intento: avisadores Exclusión mutua? Espera limitada? Progreso? proceso 1 proceso Tercer intento proceso 1 proceso 2 Algoritmo de Peterson - FUNCIONA!! Solución para N procesos: Algoritmo de la panadería (Lamport) Soluciones hardware Inhibir interrupciones (muy drástico) Instrucciones atómicas test-and-set o SWAP
6 Instrucciones atómicas Ejemplos de algoritmos Inventadas en los años 60. Permiten evaluar y asignar un valor a una variable de forma atómica. test-and-set(b): Pone B a true y devuelve el antiguo valor de B. (Evaluar-y-Asignar(B)) SWAP(A,B): Intercambia los valores de A y B. (Intercambiar(A,B)) Si disponemos de estas instrucciones, se simplifica muchísimo el problema de la sección crítica. usando test-and-set usando swap Solución completa (test-and-set) Contenidos Introducción El problema de la sección crítica Semáforos Monitores Semáforos Edsger Dijkstra, 1965 Objetivo: herramienta universal para sincronizar procesos, que sirva como componente básico para construir algoritmos concurrentes Concepto de semáforo Dijkstra lo definió como una variable entera S con dos operaciones atómicas: P(S): esperar a que S>0; S:=S-1; V(S): S:=S+1; NOTA: el semáforo no puede adquirir valores negativos 35 36
7 Semáforos: otras notaciones P(s) = wait(s) = espera (s) V(s) = signal(s) = señal (s) (se utilizan varias notaciones para las operaciones de los semáforos, pero significan lo mismo) Ejemplo: sección crítica resuelta con semáforos Usamos un único semáforo inicializado a uno Semáforos: esperar por eventos y condiciones Se asocia un semáforo, inicializado a cero, al evento por el que queremos esperar. Cuando un proceso ha hecho que se cumpla una determinada condición, lo indica ejecutando un signal(c). Un proceso esperará a que la condición sea cierta mediante un wait(c). Semáforos: ejercicios Ejercicios a.-) Resolver el problema de la sección crítica con n procesos b.-) Resolver diversos problemas de sincronización b.1.-) Sean P1 y P2 dos procesos concurrentes. Modificar el código de ambos procesos de forma que el conjunto de sentencias R2 del proceso 2 se ejecute después de que se Semáforos: ejercicios b.2.-) Realizar un pequeño programa que se ajuste al siguiente diagrama (o grafo) de precedencia (suponiendo que disponemos de las herramientas siguientes: sentencia concurrente cobegin/coend ) Semáforos: ejercicios b.3.-) Realizar un pequeño programa que se ajuste al siguiente diagrama (o grafo) de precedencia (suponiendo que disponemos de las herramientas siguientes: sentencia concurrente cobegin/coend y semáforos) A C A C B D B D 41 42
8 Semáforos: implementación con espera activa También llamados spinlocks Semáforos: implementación sin espera activa Suponemos que el SO proporciona unas operaciones para bloquear y desbloquear procesos Semáforos: la implementación debe garantizar atomicidad Es crítico que las operaciones se ejecuten de forma atómica Entorno uniprocesador: Inhibir interrupciones Entorno multiprocesador: Instrucciones hardware especiales Aplicar un algoritmo de sección crítica con espera activa Semáforos binarios Los semáforos vistos reciben el nombre de semáforo general o semáforo de conteo Un semáforo que sólo puede tomar los valores 0 y 1 recibe el nombre de semáforo binario Ejercicio Implementación de un semáforo de conteo con semáforos binarios Problemas clásicos de sincronización Problema del búfer limitado Problema de los lectores y escritores 1er problema: prioridad para los lectores 2º problema: prioridad para los escritores Problema de los filósofos comensales 47 48
9 Búfer limitado Productor Consumidor Lectores y escritores Esquema útil para gestionar el acceso a una base de datos: Puede haber varios lectores accediendo a la BD de forma concurrente Sólo puede haber un escritor trabajando No puede haber lectores y escritores al mismo tiempo y si se puede, que no haya inanición Lectores y escritores: dos variantes Primera variante: prioridad para los lectores Si un escritor está esperando, se le pueden adelantar otros lectores Ojo, riesgo de inanición para los escritores Segunda variante: prioridad para los escritores Si hay escritores esperando por la BD, los lectores que van llegando nuevos se deben esperar hasta que todos los escritores finalicen Ahora hay riesgo de inanición para los lectores Lectores y escritores: 1ª variante Lector Escritor Lectores y escritores: 2ª variante Lector Escritor Los filósofos 53 54
10 Los filósofos: modelo simple Filósofos: ojo al interbloqueo La solución anterior puede entrar en un estado de bloqueo mutuo entre todos los filósofos interbloqueo Posibles soluciones: Algoritmo asimétrico filósofos pares/impares Impedir a más de cuatro filósofos entrar a pedir los palillos Coger los dos palillos de forma atómica (o coges los dos, o no coges ninguno) Los semáforos ayudan, pero tienen limitaciones Los semáforos son una herramienta de bajo nivel, que requiere un uso disciplinado y cuidadoso. Es muy fácil cometer errores de uso con semáforos. Veamos algunos ejemplos dónde está el fallo? Sem = 0 P (sem) sección crítica V (sem) dónde está el fallo? Más problemas Dos procesos que acceden a recursos compartidos: qué ocurre al ejecutarlos al mismo tiempo? Proceso 1 P (impresora) P ( disco ) usar disco e impresora V (disco) V (impresora) Proceso 2 P (disco) P ( impresora ) usar disco e impresora V (impresora) V (disco) 59 60
11 Herramientas de alto nivel Regiones críticas condicionales Objetivo: introducir en el lenguaje de programación herramientas de sincronización que sean más seguras que los semáforos Ejemplos: Regiones críticas Monitores y variables condición Abstracción de un bloque de código que accede a recursos compartidos. Garantiza exclusión mutua. El código sólo se ejecuta si la condición asociada a la región crítica es cierta. Ejemplo: Regiones críticas condicionales Contenidos Se plantearon en 1972 (Brinch Hansen, Pascal Concurrente) Gran fuerza expresiva, el código queda mucho más legible y compacto Problema: implementación muy costosa, comparada con el código escrito a mano con semáforos Por ese motivo, nunca llegaron a prosperar como herramienta de uso común Introducción El problema de la sección crítica Semáforos Monitores Monitor Propuesto por Hoare (1972) Tipo abstracto de datos Estructura de datos privada + Operaciones públicas Exclusión mutua Sincronización (variables condición) Monitor: ejemplo básico Si varios procesos intentan manipular el monitor al mismo tiempo, van entrando de uno en uno: no puede haber más de un proceso trabajando con el monitor en cada momento
12 Monitor: estructura interna Variables condición Una variable condición sirve para gestionar una cola de espera por el monitor Dos operaciones x.wait bloquea al proceso y lo mete en la cola x x.signal desbloquea a un proceso de la cola x ; si no hay procesos en x, no hace nada Variables condición: ejemplo Monitor con variables condición colas asociadas a las variables condición x e y x y datos compartidos... operaciones cola de ingreso código de inicialización Qué ocurre tras un signal Qué ocurre cuando un proceso P realiza una operación signal sobre una variable condición x y existe un proceso suspendido Q asociado a dicha variable? Estilo Hoare se reanuda Q inmediatamente Estilo Mesa Q se desbloquea, pero espera a que P abandone el monitor El estilo Mesa es el más utilizado en los lenguajes de programación actuales Qué ocurre tras un signal (2) Si varios procesos están suspendidos por la condición x y algún proceso ejecuta x.signal, qué proceso se reanuda? FIFO desbloqueamos al más antiguo Por prioridades conveniente en sistemas de tiempo real 71 72
13 Ejemplo: un semáforo implementado con un monitor Ejemplo: búfer limitado Cómo se implementa un monitor El compilador genera un código parecido a este: El cerrojo garantiza que no puede haber más de un proceso dentro del monitor Cómo se implementa un monitor: variables condición Lectores y escritores (1) Monitores: ejemplos más avanzados 77 78
14 Lectores y escritores (2) Lectores y escritores (y 3) }; Filósofos (1): especificación del monitor Filósofos (2): ejemplo de uso Filósofos (3): rutina auxiliar Filósofos (y 4): operaciones públicas del monitor 83 84
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 detallesSistemas 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 detallesAcceso 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 detallesSincronizació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
Más detallesAsignaturas 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
Más detallesConcurrencia. 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 detallesISO 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 detallesSecciones 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 detallesConcurrencia 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 detallesTema 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,
Más detallesSISTEMAS 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 detallesUniversidad 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 detallesConcurrencia. 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 detallesGrafo 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 detallesSincronizació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 detallesSistemas 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 detallesFecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010
PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en ciencias computacionales Integral profesional Programa elaborado por: Programación Concurrente Horas teóricas: 1 Horas prácticas:
Más detallesGUÍA DE APRENDIZAJE PROGRAMACION CONCURRENTE
GUÍA DE APRENDIZAJE PROGRAMACION CONCURRENTE Datos Descriptivos TITULACIÓN: CENTROS IMPLICADOS: GRADO EN INGENIERIA DEL SOFTWARE E.U. DE INFORMATICA CICLO: Grado sin atribuciones MÓDULO: MATERIA: PROGRAMACIÓN
Más detalles7. 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 detallesConcurrencia 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 detallesSISTEMAS 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 detallesTé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
Más detallesUnidad 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 detallesSistemas 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 detallesConcurrencia 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 detallesConcurrencia PLANIFICACIONES Actualización: 1ºC/2013. Planificaciones Concurrencia. Docente responsable: A DESIGNAR.
Planificaciones 7522 - Concurrencia Docente responsable: A DESIGNAR. 1 de 5 OBJETIVOS Conocer y aplicar las técnicas necesarias para la cooperación entre procesos por diseño. Entender los problemas que
Más detallesExamen 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 detallesSistemas Operativos Tema 2: Estructura del computador José Miguel Santos Alexis Quesada Francisco Santana
Sistemas Operativos Tema 2: Estructura del computador 1998-2008 José Miguel Santos Alexis Quesada Francisco Santana 1 Contenidos Estructura de la E/S Sistema de Interrupciones DMA Jerarquía de memorias
Más detallesTEMA 1. FUNDAMENTOS DE LA CONCURRENCIA
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Beneficios de la programación Especificación de ejecución Características de los sistemas s Verificación de programas s 2 Bibliografía Programción
Más detallesCena 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
Más detallesLecturas: 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 detallesUNIVERSIDAD DE ORIENTE NÚCLEOS NUEVA ESPARTA-SUCRE COMISIÓN DE CURRICULA PROGRAMA ANALÍTICO DE LA ASIGNATURA
UNIVERSIDAD DE ORIENTE NÚCLEOS NUEVA ESPARTA-SUCRE COMISIÓN DE CURRICULA PROGRAMA ANALÍTICO DE LA ASIGNATURA ESCUELA Hotelería y Turismo-Nva. Esparta Ciencias Sucre CÓDIGO 230-3464 HORAS SEMANALES 6 HORAS
Más detallesConcurrencia. Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada.
Concurrencia Programación Concurrente Procesos Comunicación entre Procesos (IPC) con espera ocupada. Introducción a Procesos Todas las computadoras moderas realizan varias cosas al mismo tiempo. En cada
Más detallesUnidad 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 detallesTEMA 1. FUNDAMENTOS DE LA CONCURRENCIA. Ingeniería en Informática Curso
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 Contenidos Concurrencia y paralelismo Sistema concurrente Programación concurrente Lenguaje concurrente Arquitectura paralela
Más detallesContenidos. Contenidos. Bibliografía. Paralelismo vs concurrencia. Qué es la concurrencia? Ingeniería en Informática Curso
TEMA 1. FUNDAMENTOS DE LA CONCURRENCIA Ingeniería en Informática Curso 2001-2002 2 Bibliografía Principles of Concurrent and Distributed Programming M. Ben-Ari. Prentice Hall, 1990 Capítulo 1 y 2 Concurrent
Más detallesSemá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 detallesConcurrencia, 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 detallesConcurrencia. 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 detallesLecturas: 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 detallesGUÍA DE APRENDIZAJE PROGRAMACIÓN CONCURRENTE GRADUADO EN INGENIERÍA DE SOFTWARE
GUÍA DE APRENDIZAJE PROGRAMACIÓN CONCURRENTE GRADUADO EN INGENIERÍA DE SOFTWARE DATOS DESCRIPTIVOS 1 CENTRO RESPONSABLE E.U. de Informática OTROS CENTROS IMPLICADOS CICLO Grado sin atribuciones MÓDULO
Más detallesProgramació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
Más detallesINDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos
INDICE Prólogo XV 1. Introducción 1 1.1. Evolución de los sistemas operativos 2 Procesamiento en serie 3 Procesamiento por lotes 4 Multiprogramación 7 1.2. Tipos de Sistemas Operativos 9 Sistemas operativos
Más detalles*** 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 detallesTEMA 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 detalles1- UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES. Tecnicatura Universitaria en Programación de Sistemas
1- UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS EMPRESARIALES Carrera: Tecnicatura Universitaria en Programación de Sistemas Materia: Curso: 1 año Curso lectivo: 2018 Carga horaria
Más detallesPorque 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 detallesUnidad 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 detallesProgramació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 detallesPontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: SISTEMAS OPERATIVOS CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4
Más detallesEstados 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 detallesSEMAFOROS. 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 detallesSISTEMAS EN TIEMPO REAL
SISTEMAS EN TIEMPO REAL Año académico: 2006/07 Centro: Escuela Politécnica Superior Estudios: Ingeniero Técnico en Informática de Sistemas Asignatura: Sistemas en Tiempo real Ciclo: 1º Curso: 3º Cuatrimestre:
Más detallesseguridad 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
Más detallesFundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del computador y el SO
Fundamentos de los Sistemas Operativos Tema 1. Conceptos generales Estructura del computador y el SO 2015 ULPGC - José Miguel Santos Espino, Alexis Quesada, Francisco J. Santana Contenidos Estructura de
Más detallesUNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL
UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS MATERIA: SISTEMAS OPERATIVOS HRS. T/P: 2/3 CARRERA: LIC. EN TECNOLOGÌAS DE INFORMACIÓN CRÉDITOS:
Más detallesSISTEMAS 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 detallesConcurrencia. 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 detallesSISTEMAS 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 detallesSincronizació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 detallesCapítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de
Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un
Más detallesINTRODUCCION PASCAL-FC
INTRODUCCION PASCAL-FC Bibliografía Pascal-FC (Version 5): User Guide Pascal-FC (Version 5): Language Reference Manual G.L. Davies http://www-users.cs.york.ac.uk/~burns/pf.html Programción Concurrente
Más detallesSINCRONIZACIÓ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 detallesSistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Más detallesSistemas Operativos. Sistemas Operativos II ITS EMT CETP 2014 Prof. L. Carámbula
Sistemas Operativos Sistemas Operativos Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. Su propósito es: proporcionar un entorno en el cual el usuario pueda
Más detallesComunicació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 detallesPontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: MATERIA O MÓDULO: CÓDIGO: CARRERA: NIVEL: Sistemas Operativos IS603.a Sistemas Tercero No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: 0 SEMESTRE / AÑO ACADÉMICO: Segundo Semestre
Más detallesProgramación Concurrente : Docencia Práctica
Programación Concurrente : Docencia Práctica José Luis Herrero, Fabiola Lucio, David Domínguez, Fernando Sánchez {Jherrero, FLucio,Fernando}@unex.es Departamento de Informática Universidad de Extremadura
Más detallesFUNDAMENTOS 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 detallesDE 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 detallesProgramació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 detalles1. Para qué sirve un Descriptor de Dispositivo? Qué funciones del sistema operativo acceden a ellos y para qué?
1 2 3 4 5 6 7 8 Sistemas Operativos II Junio 2008 Nombre: Problema 1 [1,5 puntos] ITIS Castellano 1. Para qué sirve un Descriptor de Dispositivo? Qué funciones del sistema operativo acceden a ellos y para
Más detalles1 ( 3,5 puntos) Responda, justificando sus respuestas, a las siguientes cuestiones:
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Convocatoria de Junio, 26 de Junio de 2003 SOLUCIONES Calificación 1 2 3 4 Nombre
Más detallesTest SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)
Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Temas: Planificación Sincronización y Comunicación entre Procesos Funciones
Más detallesPontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4
Más detallesConcurrencia. 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 detallesProgramación Concurrente y de Tiempo Real
GUÍA DOCENTE 2014-2015 Programación Concurrente y de Tiempo Real 1. Denominación de la asignatura: Programación Concurrente y de Tiempo Real Titulación Grado en Ingeniería Informática Código 6369 2. Materia
Más detallesTema 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 detallesConcurrencia 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
Más detallesUso 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 detallesSistemas Operativos. Curso Página Web: Asignaturas de programación en el plan de estudios
Programa de la asignatura Sistemas Operativos 3 er Curso de la Licenciatura en Física Curso 2010-2011 Profesor: J. Javier Gutiérrez (gutierjj@unican.es) Página Web: http://www.ctr.unican.es/asignaturas/so/
Más detallesUniversisdad 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 detallesGUÍA DOCENTE Programación Concurrente y de Tiempo Real
GUÍA DOCENTE 2017-2018 Programación Concurrente y de Tiempo Real 1. Denominación de la asignatura: Programación Concurrente y de Tiempo Real Titulación Grado en Ingeniería Informática Código 6369 2. Materia
Más detallesSOLUCIONES. 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
Más detallesANX-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
Más detallesDATOS DE IDENTIFICACIÓN DEL CURSO
DATOS DE IDENTIFICACIÓN DEL CURSO DEPARTAMENTO: CIENCIAS COMPUTACIONALES ACADEMIA A LA QUE PERTENECE: SOFTWARE DE SISTEMAS NOMBRE DE LA MATERIA: SISTEMAS OPERATIVOS CLAVE DE LA MATERIA: CC300 CARÁCTER
Más detallesSistemas 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 detallesSistemas Operativos II Febrero 2008 Nombre:
Sistemas Operativos II Febrero 2008 Nombre: ITIS Castellano Ejercicio 1 [3 puntos] Considera dos procesos P1 y P2 que se ejecutan en un sistema operativo cuya política de planificación es configurable.
Más detallesConcurrencia. 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 detallesMaterial 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 detalles4.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
Más detalles1. Enunciado. 2. Trabajo del alumno
1. Enunciado El problema de las ocho reinas consiste en situar ocho reinas en un tablero de ajedrez de forma que ninguna de ellas ataque a otra. Una solución clásica consiste en generar todas las posiciones
Más detallesANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Programacion concurrente y avanzada. CURSO ACADÉMICO - SEMESTRE Segundo semestre
ANX-PR/CL/001-01 GUÍA DE APRENDIZAJE ASIGNATURA Programacion concurrente y avanzada CURSO ACADÉMICO - SEMESTRE 2016-17 - Segundo semestre GA_61CI_615000305_2S_2016-17 Datos Descriptivos Nombre de la Asignatura
Más detallesMercedes Fernández Redondo
Sistemas Operativos (IS11) Ingeniería Técnica en Informática de Sistemas http://www.icc.uji.es TEORÍA: Mercedes Fernández Redondo Página web: nuvol.uji.es/~redondo Despacho: TI 1121 PRÁCTICAS: LA1 Martes
Más detallesLecció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 detallesPuebla, Pue a 4 de Junio del Programación Concurrente y Paralela
Puebla, Pue a 4 de Junio del 2015 Programación Concurrente y Paralela Algoritmo de Dekker y Peterson Problemas: 1.- Esquimales 2.- Identificar procesos. ALUMNOS: OSCAR EDUARDO GONZÁLEZ RAMOS MICHAEL CASTAÑEDA
Más detalles