Diseño de sistemas concurrentes

Documentos relacionados
Sobre la programación concurrente

Simultaneidad + Sincronización

Especificando interacción con recursos compartidos

Secciones críticas y exclusión mutua

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

Tema 7. Entrada / Salida

Especificando interacción con recursos compartidos (EN CONSTRUCCIÓN: NO IMPRIMIR)

Guillermo Román Díez

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

CAPITULO 6. Control de Concurrencia y Recuperación

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

Ejemplo de Análisis Orientado a Objetos ATMs

Recursos compartidos y su especificación

seguridad y vivacidad/viveza

Examen de Lenguajes de Alto Nivel

Prácticas de Periféricos Interfaces y Buses

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

Universidad Carlos III de Madrid Grado en Ingeniería Informática Tecnología de Computadores

Servicios del Sistema Operativo (SO)

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Contenidos. Para el usuario. Para el programador. Para el desarrollador del sistema operativo.

Acceso coordinado a recursos compartidos

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

Parte I: Programación en Ada

Velocidades Típicas de transferencia en Dispositivos I/O

Introducción a la Computación. Capítulo 7 Entrada/Salida

Sage 50c Premium / Standard / Essential. Manual de instalación. SAGE 50c PREMIUM / STANDARD / ESSENTIAL Manual de Instalación

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Concurrencia de Procesos

Diseño de Algoritmos Paralelos Prof. Gilberto Díaz

Cena de filosofos y sincronizacion java

PROCESAMIENTO DISTRIBUIDO

INSTALACIÓN DEL GESTOR DE SESIONES PPPOE MULTIPUESTO

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

Manual de Usuario. Home. Desarrollado por: nergia. Servicios y Desarrollos en Gestión Energética

Para obtener más información sobre esta función, haga clic en un tema:

Arquitectura de Computadoras 2011

Área de Educación Tecnológica. Tecnología de los Procesos Productivos II. 3 Año. Programación de la CIUDAD DIGITAL EL PARQUE DE DIVERSIONES

MANUAL DE USUARIO. Funcionalidad del Asistente de Mantenimiento LAN+PC de Movistar GUÍA BÁSICA DE MANEJO. Versión 2

Sistemas Operativos. Daniel Rúa Madrid

Sistemas de E/S Ejercicios propuestos

INFORMACIÓN DEL DOCUMENTO

MANUAL DEL ALUMNO. (Se recomienda la lectura de completa de esta guía de alumno, ya que le evitarán disfunciones en la utilización del curso.

Arquitecturas cliente/servidor

Sage 50c Premium / Standard / Essential

Introducción Requisitos mínimos Programa Servidor en tu ordenador: APP dispositivo móvil: Instalación Conexión...

Concurrencia Monitores. Guillermo Román Díez

ENTRADA/SALIDA. Universidad San Pablo-CEU Escuela Politécnica Superior Rodrigo García Carmona

Tema 1: Introducción a los Sistemas Operativos

Gestor de Sesiones PPPoE Multipuesto. Amper Xavi 7868

Etapas en la vida del software

Uso de recursos compartidos

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

Parte I: El computador y el proceso de programación

Agosto de 2012 TUTORIAL PSEINT. Servicio Nacional de Aprendizaje SENA Jordan Angulo Canabal

Instrucciones para programar el chip AF/IS Tagotech para Olympus (revisión y traducción libre 2009)

Introducción a los Sistemas Operativos

Concurrencia. Concurrencia

Práctica 1. Introducción a la Programación sobre Ethernet

ISO Tema 8,

ITT-SE, ITT-ST, IT. Autómatas y Sistemas de Control 19 de enero de 2010 Alumno:... DNI:...

Robótica Inteligente Laboratorio Virtual Experimento 6

MANUAL AB TUTOR CONTROL

1. MANDAMIENTO DE PAGO PERIÓDICO NOTIFICACIÓN AL CIUDADANO LA EXISTENCIA DE MANDAMIENTO DE PAGO DISPONIBLE... 10

CC BASES DE DATOS PRIMAVERA Clase 12: Implementación de ACID. Aidan Hogan

Unidad 1: Gestión de Procesos

Lección 2: Conceptos básicos de PC

Práctica 01 - Preprocesamiento básico para un código fuente en lenguaje C Compiladores - Profr. Edgardo Adrián Franco Martínez

2. Indica cuál de las siguientes afirmaciones es cierta:

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

Programación Concurrente y Distribuida Ingeniería Informática Facultad de Ciencias Universidad de Cantabria.

Tema 1. Introducción al Paradigma Orientado a Objetos

Manual de Instalación

Proyecto de IS3. Tercera iteración. Documento de modelo funcional

Tema III. Multihilo. Desarrollo de Aplicaciones para Internet Curso 12 13

05 Análisis léxico I Compiladores - Profr. Edgardo Adrián Franco Martínez

RESERVA DE PISTAS DEPORTIVAS ON-LINE INFORMACIÓN UNIVERSITARIA MANUAL DE USUARIO CENTRO DE ACTIVIDADES DEPORTIVAS UNIVERSIDAD DE GRANADA

Vídeo Tragaperras Great Empire. Introducción. Cómo Apostar. Función Doblar

Qué es RecargaMobilis? Requisitos previos

TEMA 1. Introducción a las arquitecturas distribuidas

Sistemas Operativos. que es un sistema operativo?

08 RESOLUCIÓN DE PROBLEMAS

Ejercicios sobre recursividad

Esto se va a hacer bloqueando el acceso al Open Firmware del ordenador que queremos intentar asegurar.

Investiga cuales son los dispositivos y manejadores de dispositivos mediante conceptos e imágenes.

Sistemas Operativos. Sistemas Operativos II ITS EMT CETP 2014 Prof. L. Carámbula

Problemas de examen. A partir de 74LS153 exclusivamente, realizar un circuito que implemente la siguiente función:

copy data Guía rápida del usuario Versión 1.2

Programación concurrente Hebras

Eventos e interrupciones

Testo USB Driver Windows 7, Windows 8.1, Windows 10. Indicaciones de uso

Sistemas de Operación II

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

FUNCIONES JAVASCRIPT. CONCEPTO. PARÁMETROS O ARGUMENTOS Y TIPOS. PASO POR VALOR. RETURN. EJEMPLOS. (CU01122E)

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Transcripción:

Diseño de sistemas concurrentes Manuel Carro Universidad Politécnica de Madrid Necesidad de diseño Hasta ahora, problemas ya cerrados: Número de procesos, recursos Código de procesos Especificación de recursos De dónde salen? Método general difícil de elaborar, pero... Algunos consejos y directrices Experiencia Asegurar corrección, funcionalidad! Este texto se distribuye bajo los términos de la Creative Commons License M. Carro (UPM) Diseño 1 / 19 M. Carro (UPM) Diseño 2 / 19 Operaciones externas Frecuentemente con características especiales / restricciones de uso (No) Bloqueantes: suspenden (o no) el proceso llamante hasta que se cumple una condición Ej., lectura de un teclado, un sensor (No) Reentrantes: preparadas para ser llamadas (o no) concurrentemente Pueden necesitar protección Un ejemplo: escalera mecánica Arrancar/parar escalera con sensor presencia personas Presencia: arrancar durante T segundos (suficiente para que llegue al final) Parar después si no hay nadie en la escalera sólo guiándonos por T Interfaz con el exterior: procedure Sensor ; Detecta paso de personas procedure Arrancar Esc ; Pone en marcha e s c a l e r a procedure Detener Esc ; Detiene escalera M. Carro (UPM) Diseño 3 / 19 M. Carro (UPM) Diseño 4 / 19

Escalera mecánica (Cont.) Para manejar tiempo: procedure Hora (D : out T Tiempo ) ; Tiempo desde pasado procedure Espera ( T : in T Tiempo ) ; Suspende proceso Sensor es bloqueante Espera(T) es bloqueante Arrancar Esc y Detener Esc no son reentrantes, ni pueden ser llamadas simultáneamente; pueden tardar cierto tiempo No se debe llamar a Arrancar Esc cuando ya está en movimiento (sim. con Detener Esc) A diseñar! Diseño: directrices y pistas Clases de procesos y recursos: Algoritmos de control (normalmente un bucle) Procesos Bucles simples (caso anterior simplificado) Recursos Accesos bloqueantes Sincronización pura Acceso concurrente a estructuras de datos Mezcla de ambos Procesos y recursos: diseño interdependiente A menudo, varias soluciones (con variación de responsabilidades) M. Carro (UPM) Diseño 5 / 19 M. Carro (UPM) Diseño 6 / 19 Operaciones bloqueantes Detienen un proceso de forma no interrumpible Normalmente procesos separados para operaciones bloqueantes Datos recogidos disponibles mediante recurso compartido Posible excepción: cadencia clara de uso Ejemplo particular: temporizadores Usualmente un proceso temporizador por cada temporización Avisa final temporización mediante acceso compartido. Operaciones simultáneas Un proceso tiene que realizar varias cosas simultáneamente? Nos hemos equivocado: necesitamos más procesos e interacciones M. Carro (UPM) Diseño 7 / 19 M. Carro (UPM) Diseño 8 / 19

Operaciones no reentrantes Si hay operaciones externas que no permiten acceso reentrante: Poner todos los accesos en el mismo proceso El método más sencillo: secuencializa Pero no permitiría concurrencia entre ellos Realizar accesos desde POST de op. recurso (acabaría dentro de un objeto protegido / sevidor de paso de mensajes) Pero bloquea acceso al recurso durante ejecución Accediendo desde distintos procesos y/o recursos Cuidar sincronización (evitar accesos indeseados) Legítimo, pero más frágil y difícil de verificar Consultas al estado del recurso Generalmente inseguras: sirven para monitorizar, fallan para tomar decisiones desde fuera recurso Protección expĺıcita recurso: Reduce concurrencia Encapsular zona protegida como operación única? Parte del proceso pasa a recurso recurso poco general Sincronización cuidada: delicada M. Carro (UPM) Diseño 9 / 19 M. Carro (UPM) Diseño 10 / 19 Vivacidad No se suele tratar a este nivel Depende de técnica de implementación Pero el diseño debe permitir correcta vivacidad Operaciones del recurso Dependen de lo que los procesos necesiten Diseño exacto: postergado hasta saber qué misión tiene cada recurso y proceso Si sólo dotamos de concurrencia a un TAD secuencial: Operaciones normalmente definidas Pero cuidado con operaciones consultoras M. Carro (UPM) Diseño 11 / 19 M. Carro (UPM) Diseño 12 / 19

Recursos dependiente del núm. procesos Algunos procesos sólo tienen una ocurrencia Algunos procesos tendrán varias instancias Otros tienen 1 instancia en un caso particular, k en general (sin pervertir el problema) A menudo considerar k (aunque sólo se implemente para k = 1) lleva a soluciones más elegantes Y, por supuesto, más escalables Máquina expendedora 16 productos (0 al 15 T Prod); saldo inicial 0 Tras introducir moneda: hay cambio actualiza y visualiza el saldo; si no, devuelve moneda Al pulsar devolución: devolver saldo y dejarlo a 0 Al seleccionar producto: Saldo suficiente servir producto, devolver la cantidad restante (saldo a 0) Saldo insuficiente informar de la cantidad que falta, olvidar selección M. Carro (UPM) Diseño 13 / 19 M. Carro (UPM) Diseño 14 / 19 Máquina expendedora: interfaz procedure Maq. Detectar Moneda ( Valor : out I n t e g e r ) ; Bloquea hasta i n t r o d u c c i o n moneda ( de v a l o r v ) function Maq. Hay Cambio return Boolean ; Maq. HayCambio <=> se puede devolver dinero procedure Maq. Detectar Devolucion ; Bloquea hasta que se pulsa e l botón de devoluci ón procedure Maq. Devolver ( Cantidad : in I n t e g e r ) ; Devuelve a l c l i e n t e l a cantidad e s p e c i f i c a d a f u n c t i n Maq. Precio ( Producto : T Prod ) return I n t e g e r ; Devuelve e l p r e c i o de un producto procedure Maq. Detectar Seleccion ( Producto : out T Prod ) ; Bloquea hasta producto seleccionado ; l o devuelve procedure Maq. S e r v i r ( Producto : in T Prod ) ; Sirve una unidad del producto procedure Maq. Mostrar ( Cantidad : in I n t e g e r ) ; Muestra una cantidad en e l d i s p l a y Editor interactivo Documento en edición en memoria Acepta contínuamente pulsaciones (ordenes) usuario y las ejecuta completamente (aunque tarden tiempo) Refresca pantalla cuando no hay ordenes a procesar, pero sigue aceptando órdenes durante el refresco No refresca si no es necesario M. Carro (UPM) Diseño 15 / 19 M. Carro (UPM) Diseño 16 / 19

Abstracciones para el editor function Leer Comando return T Comando ; Lee comando del e x t e r i o r procedure Ejecutar Comando (Cmd : in T Comando ; Doc : in out T Doc ) ; Modifica e l documento Doc de acuerdo con e l comando Cmd. procedure E x t r a e P a n t a l l a ( Doc : in T Doc ; Vis : out T Doc ) ; Copia l a parte v i s i b l e del documento. procedure M o s t r a r P a n t a l l a ( Pant : in T Doc ) ; Muestra documento en p a n t a l l a Sistema de supervisión y registro Cada UAD explora una entrada externa, con pausa entre exploraciones Si valor leído excede ĺımite, envía mensaje a UCR Periódicamente, UCR pide a UADs la última medida Cadencia de exploración más alta que la de peticiones de la UCR Todas las mediciones se almacenan en disco (lento), asociadas a la UAD UAD1 UAD2 UADn Unidad Central de Registro M. Carro (UPM) Diseño 17 / 19 M. Carro (UPM) Diseño 18 / 19 Sistema de supervisión y registro (Cont.) Cuestiones (casi) abiertas: Interfaz (razonable) con sensores y disco Implementación de la pausa entre lecturas Decidir: Número procesos, recursos, código procesos Especificación recurso Probar: Desacoplamiento cadencias UCR/UADs No interbloqueo peticiones No retraso (si posible) por acceso a disco M. Carro (UPM) Diseño 19 / 19