Sistemas multiprogramados

Documentos relacionados
Comunicación y sincronización

Comunicación mediante mensajes

Comunicación y sincronización con datos comunes

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

Comunicación y sincronización con datos comunes

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

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

ISO Tema 8,

Unidad 1: Gestión de Procesos

UPM Comunicación entre tareas en Ada

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

Concurrencia. Primitivas IPC con bloqueo

dit Planificación de tareas de tiempo real Juan Antonio de la Puente DIT/UPM UPM Copyright 2007, Juan Antonio de la Puente

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

Sincronización de Procesos

Acceso coordinado a recursos compartidos

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

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

UPM Concurrencia en Java

Sincronización de procesos

MECANISMOS PARA SINCRONIZACIÓN. Semáforos

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

Hilos Secciones Stallings:

dit Programación concurrente Sincronización condicional UPM

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

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

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

SISTEMAS OPERATIVOS Manejo de procesos

Tema 3. Paso de mensajes. mensajes. Bibliografía. Sistemas de paso de mensajes (2) Sistemas de paso de mensajes. Ventajas del paso de.

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

Estados de un proceso

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

Concurrencia Monitores. Guillermo Román Díez

Programación concurrente

Concurrencia. Paso de Mensajes Control de Recursos Deadlock

3. Programación de los Sistemas de Tiempo Real

SISTEMAS OPERATIVOS:

6. Enumere tres ventajas de los ULT frente a los KLT.

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

SISTEMAS EN TIEMPO REAL

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

seguridad y vivacidad/viveza

Planificación con prioridades

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

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

SINCRONIZACIÓN DE PROCESOS

Unidad 2: Gestión de Procesos

Resumen Examen de Septiembre programación Concurrente.

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

Procesos. Procesos. Sistemas Operativos Procesos KMC 2017

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

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

Tecnología de software para sistemas de tiempo real

Concurrencia: Exclusión mutua y Sincronización

Concurrencia de Procesos

PROCESAMIENTO DISTRIBUIDO

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Sincronización entre procesos (aka: semáforos)

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

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

Comunicación mediante mensajes

Uso de recursos compartidos

06/06/2017. Hay varios niveles para expresar concurrencia: Nivel de Instrucción Nivel de Sentencia Nivel de Unidad Nivel de Programa

Tema 1: Programación Multiproceso. Curso

Tiempo real. Juan Antonio de la Puente DIT/UPM. Tiempo real. Comprender el papel del tiempo en el diseño y realización de sistemas de tiempo real

1. Equivalencia de herramientas. Implemente las primitivas de los buzones mediante monitores.(2pt).

7. Programación Concurrente

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

Planificación de tareas en Ada

UPM Concurrencia en Ada

dit UPM Tema 3: Concurrencia /threads (python) Análisis y diseño de software José A. Mañas

UPM Gestión del tiempo real

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA COMPUTACIÓN LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Tarea 2. Descripción y Control de Procesos

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

Interbloqueo. Concurrencia: Interbloqueo e Inanición

Sistemas Operativos Tema 6. Concurrencia

Concurrencia. Primitivas IPC con bloqueo

Tema 12: El sistema operativo y los procesos

Programación Concurrente y distribuida

Lenguajes de Programación

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

Sistemas Operativos. Procesos

dit Programación de sistemas grandes Juan Antonio de la Puente DIT/UPM UPM

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Sistemas Operativos (Parte 2)

Comunicación entre tareas de tiempo real

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

SISTEMAS OPERATIVOS - PRIMERA PARTE Examen Convocatoria Ordinaria, 18 de junio de 2009

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

Paradigma de paso de mensajes

Teoría de Sistemas Operativos Sincronización Procesos

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

Concurrencia. Guillermo Román Díez

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)

Transcripción:

dit UPM Sistemas multiprogramados Juan Antonio de la Puente DIT/UPM

Objetivos Veremos cómo realizar sistemas de tiempo real con arquitectura asíncrona tareas como hebras de sistema operativo no todas las realizaciones son adecuadas los mecanismos de comunicación y sincronización están limitados 20/03/07 Sistemas multiprogramados 2

Arquitectura síncrona y asíncrona La arquitectura síncrona (ejecutivo cíclico) tiene limitaciones muy rígida, bajo nivel mal encaje de tareas esporádicas limitaciones en los períodos» mejor armónicos» mejor si no son muy diferentes La alternativa es usar una arquitectura asíncrona las tareas se realizan como procesos ligeros (hebras) las tareas se reparten el procesador de forma dinámica (invisible para el diseñador) un núcleo de tiempo real gestiona el reparto del tiempo del procesador 20/03/07 Sistemas multiprogramados 3

Arquitectura síncrona tarea 1 tarea 2 tarea 3 núcleo de tiempo real 20/03/07 Sistemas multiprogramados 4

Procesos ligeros (hebras) Las hebras o threads son procesos concurrentes ligeros se ejecutan en el mismo espacio de memoria se pueden realizar de forma eficiente (contexto ligero) El núcleo de tiempo real proporciona la funcionalidad necesaria creación y terminación de hebras planificación del procesador sincronización (exclusión mutua y condiciones) gestión básica de interrupciones 20/03/07 Sistemas multiprogramados 5

Estados de un proceso Listo Fin de E/S o suceso Suspendido Nuevo Planificador Interrupción Ejecutándose Espera por E/S o suceso Terminado 20/03/07 Sistemas multiprogramados 6

Núcleo de tiempo real El núcleo (kernel) de tiempo real se encarga de la creación, terminación y el multiplexado de los procesos Puede tomar varias formas: Núcleo desarrollado como parte de la aplicación Núcleo incluido en el entorno de ejecución del lenguaje Núcleo de un sistema operativo de tiempo real Núcleo microprogramado El método de planificación que se usa afecta al comportamiento temporal del sistema 20/03/07 Sistemas multiprogramados 7

Jerarquía de procesos Un proceso (padre) puede crear otros (hijos) el padre debe esperar la iniciación de los hijos antes de seguir el general, también debe esperar que terminen los hijos antes de terminar En sistemas de tiempo real a menudo se usa una estructura de procesos estática sólo se crean procesos al comenzar la ejecución del sistema sólo se crean procesos desde el proceso inicial los procesos no terminan nunca 20/03/07 Sistemas multiprogramados 8

Comunicación y sincronización Los procesos de un sistema de tiempo real pueden ser independientes unos de otros no se comunican entre sí no se sincronizan de ninguna manera pero es más frecuente que haya interacciones cooperar para un fin común competir por la utilización de recursos. En este caso es necesario realizar operaciones de comunicación y sincronización entre procesos dos procesos se comunican cuando hay una transferencia de información de uno a otro dos procesos están sincronizados cuando hay restricciones en el orden en que ejecutan algunas de sus acciones Los dos conceptos están relacionados 20/03/07 Sistemas multiprogramados 9

Comunicación con datos comunes En un sistema monoprocesador, la forma más directa de comunicación entre dos o más procesos consiste en compartir datos un proceso escribe una variable compartida, el otro la lee Sin embargo, el acceso incontrolado a variables comunes puede producir resultados anómalos se dice que hay una condición de carrera cuando el resultado de la ejecución depende del orden en que se intercalan las instrucciones de dos o más procesos se trata de una situación anómala que hay que evitar 20/03/07 Sistemas multiprogramados 10

Secciones críticas Un segmento de código en el que un proceso accede a una variable compartida se llama sección crítica las secciones críticas se deben ejecutar de forma atómica para ello se usa sincronización por exclusión mutua» si un proceso está en una sección crítica, ningún otro proceso puede entrar en otra sección crítica que acceda a la misma variable La exclusión mutua debe cumplir algunas condiciones adicionales progreso: la selección del proceso que entra en la sección crítica no se puede aplazar indefinidamente. espera acotada: cuando un proceso espera para entra en su región crítica, el número de veces que entran otros procesos en sus respectivas secciones críticas está acotado 20/03/07 Sistemas multiprogramados 11

Sincronización condicional Cuando una acción de un proceso solo se puede ejecutar si otro proceso está en determinado estado o ha ejecutado ciertas acciones, hace falta un tipo de sincronización denominada sincronización condicional Ejemplo: Productor y consumidor con tampón limitado A :productor Put Get :Buffer A :consumidor» no se debe hacer Put cuando el tampón está lleno.» no se debe hacer Get cuando el tampón está vacío» además, hay exclusión mutua en el acceso al tampón 20/03/07 Sistemas multiprogramados 12

Mecanismos de sincronización El núcleo de tiempo real debe proporcionar mecanismos de sincronización adecuados para exclusión mutua y sincronización condicional Ejemplos semáforos monitores objetos protegidos Todos están basados en la suspensión de un proceso mientras no se cumplen las condiciones para que se siga ejecutando 20/03/07 Sistemas multiprogramados 13

Semáforos Un semáforo es una variable que toma valores enteros no negativos Además de asignarle un valor inicial, sólo se pueden hacer dos operaciones con un semáforo S Down (o wait): Si S > 0, decrementa S en 1 Si S 0, el proceso se suspende hasta que S > 0 Up (o signal): Incrementa S en 1 Down y Up son indivisibles de eso se ocupa el núcleo 20/03/07 Sistemas multiprogramados 14

Sincronización condicional con semáforos S : Semaphore; -- iniciado a 0 -- proceso 1 Down(S) -- espera condición -- proceso 2 Up(S) -- avisa de condición 20/03/07 Sistemas multiprogramados 15

Exclusión mutua con semáforos M : Semaphore := 1; -- iniciado a 1 -- proceso 1 Down(S) -- entra en SC -- sección crítica Up(S) -- sale de SC -- proceso 2 Down(S) -- entra en SC -- sección crítica Up(S) -- sale de SC M sólo toma los valores 1 y 0 (semáforo binario) 20/03/07 Sistemas multiprogramados 16

Ejemplo: productor y consumidor (1) package Buffers is type Buffer is tagged limited private; procedure Put(B: in out Buffer; X: in Item); procedure Get(B: in out Buffer; X: out Item); private type Buffer is record Mutex : Semaphore := 1; -- exclusión mutua Full : Semaphore := 0; -- elementos ocupados Empty : Semaphore := Size; -- elementos libres end record; end Buffers; 20/03/07 Sistemas multiprogramados 17

Ejemplo: productor y consumidor (2) procedure Put (B: in out Buffer; X: in Item) is begin Down(B.Empty); Down(B.Mutex); Up(B.Mutex); Up(B.Full); end Put; procedure Get (B: in out Buffer; X: out Item) is begin Down(B.Full); Down(B.Mutex); Up(B.Mutex); Up(B.Empty); end Get; end Buffers; 20/03/07 Sistemas multiprogramados 18

Problemas de los semáforos Es fácil cometer errores Un solo Down o Up mal colocado puede hacer que el programa funcione incorrectamente Problemas de vivacidad y equidad Interbloqueo (deadlock): cada proceso espera una condición o un recurso que depende de otro, en una cadena circular bloqueo vivo: (livelock): los procesos se ejecutan, pero ninguno consigue los recursos que necesita inanición (starvation): los procesos se ejecutan, pero algunos no consiguen los recursos nunca Es mejor usar mecanismos más abstractos y fiables monitores objetos protegidos 20/03/07 Sistemas multiprogramados 19

Monitores Un monitor es un módulo cuyas operaciones se ejecutan en exclusión mutua el compilador produce el código de bajo nivel necesario La sincronización condicional se obtiene con variables de condición dos operaciones primitivas: signal y wait» wait suspende el proceso de forma incondicional y lo pone en una cola asociada a la condición que espera» signal reanuda el primer proceso que espera en la señal» no hay memoria: si no espera nadie, la señal se pierde un proceso que espera una condición libera el monitor 20/03/07 Sistemas multiprogramados 20

Ejemplo: productor y consumidor (1) package Buffers is type Buffer is monitor; -- ojo! no es Ada procedure Put(B: in out Buffer; X: in Item); procedure Get(B: in out Buffer; X: out Item); private type Buffer is record Non_Full : Condition; Non_Empty : Condition; end record; -- ojo! no es Ada -- ojo! no es Ada end Buffers; 20/03/07 Sistemas multiprogramados 21

Ejemplo: productor y consumidor (2) procedure Put (B: in out Buffer; X: in Item) is begin if B.Count = Size then Wait(B.Non_Full); end if; Signal(B.Non_Empty); end Put; -- ojo! no es Ada -- ojo! no es Ada procedure Get (B: in out Buffer; X: out Item) is begin if B.Count = 0 then Wait(B.Non_Empty); end if; Signal(B.Non_Full); end Get; -- ojo! no es Ada -- ojo! no es Ada end Buffers; 20/03/07 Sistemas multiprogramados 22

Problemas de los monitores Las variables de condición son un mecanismo de bajo nivel La semántica de signal presenta problemas: Cuando un proceso hace signal puede haber dos procesos activos en el monitor Hay varias formas de evitar que se viole la exclusión mutua» permitir signal solo si es la última instrucción de un subprograma» forzar una salida del monitor al hacer signal» suspender el proceso que hace signal si se reanuda otro proceso 20/03/07 Sistemas multiprogramados 23

Objetos protegidos Monitores con sincronización condicional de alto nivel propuestos por primera vez en Ada 95 Un objeto protegido es un objeto compuesto cuyas operaciones se ejecutan en exclusión mutua como las de los monitores Algunas operaciones pueden tener una barrera para su ejecución la barrera es una expresión booleana la operación sólo se ejecuta si la barrera es verdadera si no, el proceso se queda suspendido» cuando la barrera se vuelve verdadera puede continuar 20/03/07 Sistemas multiprogramados 24

Ejemplo: productor y consumidor (1) package Buffers is protected type Buffer is entry Put(X : in Item); entry Get(X : out Item); private end Buffer; end Buffers; 20/03/07 Sistemas multiprogramados 25

Ejemplo: productor y consumidor (2) package body Buffers is protected body Buffer is entry Put (X : in Item) when Count < Size is begin Count := Count +1; end Put; entry Get (X : out Item) when Count > 0 is begin Count := Count - 1; end Get; end Buffer; end Buffers; 20/03/07 Sistemas multiprogramados 26

Evaluación de las barreras Las barreras se evalúan cuando un proceso llama a una entrada y la barrera hace referencia a una variable que puede haber cambiado desde la última evaluación un proceso termina la ejecución de una operación y hay otros procesos esperando en entradas cuyas barreras hacen referencia a variables que pueden haber cambiado desde la última evaluación No se deben usar variables globales en las barreras 20/03/07 Sistemas multiprogramados 27

Exclusión mutua y barreras Las tareas esperando en barreras tienen preferencia sobre las que esperan acceder al objeto de esta forma se evitan condiciones de carrera en la implementación Este modelo se llama cáscara de huevo (eggshell) procesos esperando entrar procesos esperando en barreras un proceso dentro como máximo 20/03/07 Sistemas multiprogramados 28

Comunicación mediante mensajes Los procesos se pueden comunicar y sincronizar también mediante mensajes Esta forma de comunicación no necesita memoria común Se usan los mismos mecanismos para la sincronización y la comunicación Hay tres aspectos de interés: Sincronización Identificación del proceso emisor y receptor Estructura de los mensajes 20/03/07 Sistemas multiprogramados 29

Diagramas de secuencia de mensajes send A mensaje B receive Representan la interacción entre procesos mediante el intercambio de mensajes El tiempo va hacia abajo 20/03/07 Sistemas multiprogramados 30

Sincronización en el envío de mensajes El proceso receptor siempre espera si el mensaje no ha llegado todavía Para el proceso emisor hay tres modelos básicos: Comunicación asíncrona: el emisor continúa su ejecución Comunicación síncrona (cita): el emisor espera a que el receptor reciba el mensaje Invocación remota (cita extendida): el emisor espera a que el receptor reciba el mensaje, y la respuesta de éste 20/03/07 Sistemas multiprogramados 31

Comunicación asíncrona send A mensaje B receive Hace falta usar un tampón capacidad potencialmente ilimitada si es limitado puede bloquearse el emisor El emisor puede requerir un reconocimiento diseño complicado 20/03/07 Sistemas multiprogramados 32

Comunicación síncrona No hace falta tampón A B Se puede construir a partir de la comunicación asíncrona: send suspendido mensaje receive A send(m); receive(ack); B receive(m); send(ack); 20/03/07 Sistemas multiprogramados 33

Invocación remota A B No hace falta tampón send suspendido mensaje receive reply Se puede construir a partir de la comunicación síncrona: A s_send(m); B s_receive(m); preparar r s_receive(r); s_send(r); 20/03/07 Sistemas multiprogramados 34

Identificación del emisor y el receptor Identificación directa o indirecta» directa: el emisor identifica explíctamente el receptor send mensaje to proceso» indirecta: se utiliza un intermediario (buzón, canal, tubería, etc.) send mensaje to buzón Simetría» Comunicación simétrica: el emisor identifica el receptor, y viceversa send mensaje to proceso (buzón) receive mensaje from proceso (buzón)» Comunicación asimétrica: el receptor acepta mensajes de cualquier emisor o buzón» Este tipo de comunicación es adecuado para realizar servidores 20/03/07 Sistemas multiprogramados 35

Estructura de los mensajes Deberían poderse enviar objetos de cualquier tipo Es difícil de conseguir en un entorno distribuido diferentes representaciones de tipos de datos problemas con punteros Se puede hacer con bibliotecas estándar de aplanamiento de tipos convierten cualquier tipo en una secuencia de octetos 20/03/07 Sistemas multiprogramados 36

Resumen La realización de las tareas de un sistema de tiempo real mediante procesos ligeros (hebras) es más flexible que el método cíclico El núcleo de tiempo real se encarga de gestionar los procesos planificación sincronización» exclusión mutua y condiciones» mecanismos: semáforos, monitores, objetos protegidos» paso de mensajes: asíncrono, síncrono, invocación remota 20/03/07 Sistemas multiprogramados 37