Informática Industrial Presentación de la Asignatura. Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid



Documentos relacionados
Tema 1. Conceptos fundamentales de los Sistemas Operativos

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

Concurrencia. Primitivas IPC con bloqueo

4. Programación Paralela

Unidad 1: Conceptos generales de Sistemas Operativos.

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

La Tecnología líder en Simulación

Procesos. Planificación del Procesador.

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

Elementos requeridos para crearlos (ejemplo: el compilador)

Unidad II: Administración de Procesos y del procesador

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 4. Gestión de entrada/salida

Tema 11. Soporte del Sistema Operativo REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS MULTIPROGRAMACIÓN.

Introducción. Definición de los presupuestos

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

SEMANA 12 SEGURIDAD EN UNA RED

Sistemas Operativos. Curso 2016 Procesos

Unidad 1. Fundamentos en Gestión de Riesgos

M.T.I. Arturo López Saldiña

Concurrencia entre Procesos.

Planificación, Gestión y Desarrollo de Proyectos

Concurrencia: Exclusión mutua y Sincronización

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

SEGURIDAD Y PROTECCION DE FICHEROS

SISTEMAS OPERATIVOS AVANZADOS

CDI Exclusión mutua a nivel alto. conceptos

Sistemas de Gestión de Calidad. Control documental

ERP GESTION LOGÍSTICA

Unidad 1: Conceptos generales de Sistemas Operativos.

Capítulo 1 Introducción a la Computación

Introducción a las redes de computadores

Las 10 preguntas más habituales sobre los Sistemas de Captación de Datos en planta

DE VIDA PARA EL DESARROLLO DE SISTEMAS

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

MANUAL COPIAS DE SEGURIDAD

Procesos. Bibliografía. Threads y procesos. Definiciones

IAP TÉCNICAS DE AUDITORÍA APOYADAS EN ORDENADOR (TAAO)

Introducción. Componentes de un SI. Sistema de Información:

Introducción a los Sistemas Operativos

CÓMO TRABAJA TU SISTEMA OPERATIVO?

Unidad 2: Gestión de Procesos

Capitulo V Administración de memoria

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

UNIVERSIDAD DE SALAMANCA

Determinación del nivel de influencia

Arquitectura de sistema de alta disponibilidad

Capítulo IV. INTERBLOQUEO E INANICIÓN

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

Mantenimiento de Sistemas de Información

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Análisis y gestión de riesgo

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Requerimientos principales de un sistema operativo

Enfoque del Marco Lógico (EML)

Mensajes. Interbloqueo

I. E. S. Cristóbal de Monroy. DEPARTAMENTO: Informática. MATERIA: Sistemas Operativos en Red. NIVEL: 2º Sistemas Microinformáticos y Redes

3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE

ESPACIOS DE COMUNICACIÓN VIRTUAL

Plan de estudios ISTQB: Nivel Fundamentos

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Gestión de procesos DEFINICIONES DE PROCESOS

Unidad III. Software para la administración de proyectos.

Estructuras de Sistemas Operativos

Grado en Ingeniería Informática

Gestión de Configuración del Software

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Aseguramiento que el software crítico se construye fiable y seguro

Soporte Técnico de Software HP

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Universidad de Colima Facultad de Ingeniería Mecánica y Eléctrica. Base de Datos I. Maestra: Martha E. Evangelista Salazar

Curso TURGALICIA SISTEMA DE GESTIÓN DE SEGURIDAD Y SALUD EN EL TRABAJO OHSAS 18001:2.007

Arquitectura de Aplicaciones

LiLa Portal Guía para profesores

SISTEMAS Y MANUALES DE LA CALIDAD

MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL

Sistemas de archivos distribuidos. Alvaro Ospina Sanjuan

Instalación de Sistemas de Automatización y Datos


MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Hardware y Estructuras de Control. Memoria Virtual. Ejecución de un Programa. Ejecución de un Programa

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Módulo 7: Los activos de Seguridad de la Información

Recomendaciones relativas a la continuidad del negocio 1

Tema 2: Implementación del núcleo de un Sistema Operativo

Implantación aplicación Concerto en ANAV para la planificación de modificaciones de diseño

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

POLÍTICA DE CONTINUIDAD DEL NEGOCIO (BCP,DRP)

Transcripción:

Informática Industrial Presentación de la Asignatura Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Presentación de la Asignatura. Informática Industrial. Curso 2014/15 Profesorado Horario Objetivos Programa Método y Criterios de Evaluación Exámenes Bibliografía Conocimientos Previos Recomendados Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Profesorado Dpto. Ingeniería de Sistemas y Automática Eusebio de la Fuente e-mail: efuente@eii.uva.es Rogelio Mazaeda Echevarría rogelio@cta.uva.es Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Tutorías. Eusebio de la Fuente López L 11:00-13:00 Sede Mendizábal M 10:00-12:00 Sede Mendizábal J 10:00-12:00 Sede Mendizábal Rogelio Mazaeda Echevarría L 09:00-13:00 Sede Mergelina M 09:00-13:00 Sede Mergelina X 11:00-12:00 Sede Mendizábal V 09:00-12:30 Sede Mergelina Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Horario Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Objetivos Conocer la programación orientada a objeto. Ser capaz de realizar programas en el lenguaje C++. Conocer los principios y modelos fundamentales de la programación concurrente. Ser capaz de implementar programas concurrentes sencillos utilizando el lenguaje de programación C++. Conocer los conceptos fundamentales de los sistemas de tiempo real. Entender cómo se aplican los conceptos de programación concurrente y tiempo real en controladores industriales. Comprender las diferentes arquitecturas y formas de utilización del ordenador y la informática las aplicaciones industriales. Conocer las implicaciones de la seguridad y la tolerancia a fallos aplicada a la informática industrial. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Programa Teoría Bloque 1. Programación concurrente y Sistemas de Tiempo Real 1. Programación en C++ y estructuras de datos. 2. Introducción a los sistemas en tiempo real. 3. Programación concurrente. 4. Comunicación y Sincronización de Procesos. 5. Capacidades de tiempo real Bloque 2. El computador en control y supervisión de la producción. 6. El computador en la automatización de la producción 7. Aplicaciones de control distribuido y supervisión. 8. La seguridad y la tolerancia a fallos en sist informáticos industriales. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Programa básico de prácticas 1. Programación en lenguaje C++ de estructuras de datos. 2. Programación Concurrente. Comunicación entre procesos (IPC): colas de mensajes, semáforos, memoria compartida... Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Laboratorios: Laboratorios. Distribución por grupos Laboratorio ISA 1 (1ª planta): grupos 1L y 2L Laboratorio ISA 2 (3ª planta): grupo 3L Grupos: Grupo 1L De A a GAL Grupo 2L De GAM a M Grupo 3L De N a Z laboratorio ISA 1 (1ª planta) laboratorio ISA 1 (1ª planta) laboratorio ISA 2 (3ª planta) Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Método y Criterios de Evaluación El 50 % de la nota en un examen final. El examen constará de: Cuestiones cortas a responder en no más de cinco líneas. Problemas cortos. Cuestiones sobre programación. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Método y Criterios de Evaluación El 50% restante se otorgará en base a la evaluación de las prácticas. Prácticas. Se entregará una memoria y el código de cada práctica antes de la fecha indicada. Los trabajos se revisarán personalmente con el profesor para la evaluación definitiva de la práctica. La evaluación de las prácticas se realizará teniendo en cuenta: Informe de la práctica: 25% de la nota. Funcionamiento y desempeño de la práctica: 50% de la nota. Estructura y legibilidad del código: 25% de la nota. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Método y Criterios de Evaluación 50% exámen + 50% prácticas Para superar la asignatura, se deberán aprobar ambas partes. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Exámenes Ordinario viernes, 23 de enero de 2015 a las 9:00 Extraordinario: martes, 30 de junio de 2015 a las 9:00 Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

Conocimientos Previos Fundamentos de informática: principios de programación y de Sistemas Operativos Fundamentos de Automática: sistemas dinámicos, realimentación, estabilidad y diseño de controladores. Sistemas de Producción y Fabricación: conceptos de automatización industrial. Informática Industrial Grado en Ingeniería en Electrónica Industrial y Automática Univ.de Valladolid.

TEMA 1 Introducción. Hoja de ruta para el estudio de la informática en la industria Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Indice 1. Importancia de la informática en la industria. 2. Retos que presenta el estudio de la Informática Industrial. 3. Diferentes dimensiones al enfrentar el estudio de la Informática Industrial. 1. Implicaciones desde teoría de control automático. 2. Necesidad de concurrencia y tiempo real. 3. Sistemas industriales programables. 4. Comunicaciones Industriales. 5. Seguridad.

Importancia de la Informática Industrial Integración mecánica 1770 Integración eléctrica 1870 Integración informática 1970 Máquina de vapor, regulador de Watts Invención de la dinamo. accionadores eléctricos, Irrupción de la electrónica Microprocesadores, Redes de ordenadores

Importancia de la Informática Industrial Papel de la II: Vinculado al concepto de automatización en su sentido más amplio: Sustitución (total o parcial) de la labor humana en los procesos industriales involucrados.

Informática Industrial. Retos. Retos: Objeto de estudio amplio y dinámico Diferentes posibles campos de aplicación de la informática industrial. Programas a diferentes niveles en el control de la industria Programas empotrados conformando el producto CAD/CAM/CAE (ciclo de vida del producto)

Informática Industrial. Retos. Retos: Objeto de estudio amplio y dinámico Diferentes posibles campos de aplicación de la informática industrial. Programas a diferentes niveles en el control de la industria Programas empotrados conformando el producto CAD/CAM/CAE (ciclo de vida del producto) Cómo abordar ese estudio?

Informática Industrial. Retos. Cómo abordar ese estudio? CAD/CAM/CAE (ciclo de vida del producto) Es un tema demasiado específico que debe ser abordado a profundidad en las respectivas disciplinas particulares: Ingeniería eléctrica. Ingeniería electrónica. Ingeniería mecánica. Ingeniería química. Ingeniería de control.

Informática Industrial. Retos. Cómo abordar ese estudio? Apelar a elementos comunes básicos Programas a diferentes niveles en el control de la industria Necesitan lidiar con el mundo físico. Presencia del control por realimentación. Aplicaciones distribuidas. Programas empotrados conformando el producto

Informática Industrial. Pirámide industrial. Retos: Cómo encontrar relato coherente? Diferentes necesidades a diferentes niveles. Niveles: Nivel ERP: Gerencia y planificación económica a largo plazo. Nivel MES: Planificación operativa de la producción. Nivel de Control y de campo: dispositivo de medición, actuadores, controladores (CDD, PLC, DCS, SCADAS). ISA-95

Informática Industrial. Pirámide industrial. Retos: Cómo encontrar relato coherente? Diferentes necesidades a diferentes niveles. Las aplicaciones informáticas a cualquier nivel (sobre todo de MES hacia abajo) se benefician de programación concurrente y de sistemas de tipo real. Las periodicidades y los deadlines son más exigentes en los niveles inferiores. ISA-95

Informática Industrial. Pirámide industrial. Retos: Cómo encontrar relato coherente? Diferentes necesidades a diferentes niveles. ISA-95 ISA-95 caracteriza los diferentes tipos de industria: Control continuo: típico de la industria de procesos. Ej: regulación de variables continuas como temperatura, presión, etc. Control discreto: típico de proceso de fabricación discreta de unidades contables. Ej: fabricación automóviles, semiconductores. Control batch: Se da en la industria de procesos. Combina elementos de producción continua con decisiones discretas.

Informática Industrial. Pirámide industrial. Retos: Cómo encontrar relato coherente? Diferentes necesidades a diferentes niveles. ISA-95 ISA-95 caracteriza los diferentes tipos de industria: Control continuo: típico de la industria de procesos. Ej: regulación de variables continuas como temperatura, presión, etc. Control discreto: típico de la fabricación discreta de unidades contables. Ej: fabricación automóviles, semiconductores. Control batch: En la industria de procesos. Combina elementos de producción continua con decisiones discretas.

Informática Industrial. Sistemas reactivos. El controlador industrial por computador como sistema reactivo: lee desde sensores, aplica algoritmo de control y envía a actuadores. La planta física y su control por ordenador como sistemas reactivos colocados frente a frente.

Informática Industrial. Sistemas reactivos. El control de variables continuas por ordenador se realiza tradicionalmente muestreando la señales continuas a intervalos regulares y cuantificando la señal muestreada para codificar en la palabra finita del ordenador.

Informática Industrial. Sistemas reactivos. Teoría de sistemas muestreados bien asentada (transformada Z) Elección de tiempo de muestreo: teorema de Shannon Posible problemas: surgimiento de alias de las señal original, perturbaciones en la periodicidad del muestreo o jitter

Informática Industrial. Sistemas reactivos. Control de sistemas discretos Se utilizan varios formalismos (máquinas de estado finitas, redes de Petri, grafcets) Evitar bloqueos, garantizar seguridad, Ej: A partir de la lectura de los sensores (1y2) activar/detener cintas transportadoras (act1 y act2) y colocar la cinta común en el posición correspondiente (act3). Minimizar cambios de act3.

Informática Industrial. Sistemas reactivos. En realidad se la situación híbrida (continua, discreta) La presencia del control por ordenador (elemento discreto) es en gran medida responsable que la planta en su conjunto tenga naturaleza híbrida.

Informática Industrial. Computador. El computador digital es un sistema discreto, que avanza al ritmo impuesto por reloj interno, con una memoria formada por palabras de longitud finita. La arquitectura Von Neumann es predominante: la memoria almacena instrucciones de programa y datos. La ejecución de un proceso en memoria se realiza de forma secuencial Sistemas Operativos Multitarea: varios procesos en memoria simultáneamente. Algoritmos de planificación: determina que proceso se ejecuta en la CPU. S.O. se ocupa del cambio de contexto de un proceso a otro.

Informática Industrial. Computador. El computador digital es un sistema discreto, que avanza al ritmo impuesto por un reloj interno, con una memoria formada por palabras de longitud finita. La arquitectura Von Neumann es predominante: la memoria almacena instrucciones de programa y datos. La ejecución de un proceso en memoria se realiza de forma secuencial Sistemas Operativos Multitarea: varios procesos en memoria simultáneamente. Algoritmos de planificación: determina que proceso se ejecuta en la CPU. S.O. se ocupa del cambio de contexto de un proceso a otro.

Informática Industrial. Computador. Los procesos son, en general, independientes. Cada uno tiene acceso sólo a sus propios datos: espacio de direcciones (de memoria virtual) propio. Existen aplicaciones informáticas que se construyen a partir de varios procesos que colaboran. Estas aplicaciones concurrentes son más complejas de diseñar puesto que la colaboración implica la necesidad de sincronizar el funcionamiento de los diferentes procesos y comunicarlos entre sí. Además de los procesos, existen los hilos de ejecución secuencial (threads). El cambio de contexto en los hilos es menos costoso. Los hilos tienen memoria compartida.

Informática Industrial. Computador. En la realidad física los diferentes eventos pueden ocurrir simultáneamente. Es natural el utilizar la programación concurrente para lidiar con plantas físicas. El control de plantas reales implica la necesidad de que el programa informático no sólo brinde las salidas adecuadas. También se exige que lo haga cumpliendo con plazos definidos en tiempo físico real. Los sistemas operativos de tiempo real planifican las tareas concurrentes buscando cumplir los plazos (deadlines) de cada una de ellas.

Informática Industrial. Computador. Tanto las plantas a controlar como los computadores digitales existen distribuidas geográficamente El uso de los sistemas distribuidos y las redes informáticas es una necesidad El uso de redes en el control de plantas incorpora una latencia y un grado de incertidumbre añadidos que lo hacen más complejo.

Sistemas programables Estudio de sistemas programables industriales. Dispositivos de campo inteligentes. PLC (autómatas programables). Sistemas de Control distribuido (DCS). Sistemas SCADA (Sistemas de supervisión y Control). SCADA PLC

Sistemas programables Estándares: IEC 61131-3 IEC 61499, entre otros.

Informática Industrial. Estándares. RETOS: Cómo lidiar con la diversidad de productos comerciales en una disciplina que cambia tan rápidamente? Hacer uso de estándares. Escoger aquellos estándares exitosos. Preferir productos comerciales que soporten soluciones estándar. Mercado más abierto y competitivo (más para escoger). Reutilizas el conocimiento.

Informática Industrial. Fiabilidad y Seguridad. Requerimientos: Elementos de Seguridad y tolerancia a fallos en sistemas programados es clave. Cada vez con mayor frecuencia los sistemas programados se utilizan en misiones críticas para la seguridad. Entender las implicaciones.

Seguridad funcional Necesidad de verificación de los programas. Lenguajes de Variabilidad Total (FVL) como el C/C++, son más flexibles, pero más proclives a los errores. Se tiende a utilizar un subconjunto seguro de lenguajes de Bloques Funcionales (FB), que han sido probados: lenguajes de variabilidad limitada (LVL). Estándar de seguridad funcional IEC 61508.

Bibliografía González-Sánchez, J.L. Sistemas en Tiempo Real. UVA. Molina, et al, Using Industrial Standards in PLC programming Learning. (2007). Gambier, A. Real Time Control Systems: A Tutorial. Burns. A. y Wellings, A. Sistemas de Tiempo Real y Lenguajes de Programación. Addison Wesley, 2002. Stalling, W. Comunicaciones y redes de computadores. Prentice Hall, 2004. Tanenbaum, A. Sistemas distribuidos: principios y paradigmas. Pearson, 2008. Aström, H.J. y Witternmark, B. Sistemas controlados por ordenador. Paraninfo, 1988. Phillips, C.L. y Nagle, H. Sistemas de Control Digital: análisis y diseño. Gustavo Gili, México, 1993. Smith, J.B. Functional Safety: a straightforward guide to IEC 61508 and related standards. ISA, 2004.

TEMA 2 Introducción a los Sistemas operativos de tiempo real Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Sistemas operativos de Tiempo Real Introducción Sistemas operativos de tiempo real (SOTR) Sistemas operativos Características de los SOTR

Introducción

Sistemas operativos de Tiempo Real Cualquier sistema de procesamiento que tenga que responder a estímulos de entrada generados externamente dentro de un periodo especificado y finito Un sistema de tiempo real es un sistema informático que Interacciona repetidamente con su entorno físico Responde a los estímulos que recibe del mismo dentro de un plazo de tiempo determinado Un sistema de tiempo real (STR) es aquel en el cual los resultados son correctos, no sólo si la computación es correcta, sino también el tiempo en el cual se producen los resultados

Sistemas operativos de Tiempo Real Si no se verifican las restricciones de tiempo, se dice que se ha producido un fallo en el sistema Así pues, es fundamental garantizar las restricciones de tiempo, lo cual implica que el sistema sea predecible. Ejemplo: robot que coge los productos que discurren por una cinta transportadora. Sistema de tiempo real no es sinónimo de sistema rápido. Ejecución a una velocidad que permita cumplir las especificaciones de tiempo. Aunque las velocidades de proceso aumenten los STR seguirán existiendo. Sistemas de tiempo real 47

Dónde se utilizan los STR Sistemas de control de procesos Sistemas de control de vuelo Sistemas de control de automóviles Sistemas de defensa Sistemas de vigilancia intensiva Sistemas multimedia Electrónica de consumo Sistemas de telecomunicación, etc. Sistemas de tiempo real 48

Clasificación de los STR Críticos (hard real time systems): los plazos de respuesta deben respetarse en todas las circunstancias, una sola respuesta tardía a un suceso puede tener consecuencias fatales (sistemas de control de centrales nucleares o de aeronaves) No críticos (soft real time systems): se puede tolerar retrasos ocasionales en la respuesta a un suceso (sistema multimedia) Sistemas de tiempo real 49

Estructura de un STR referencias Sistema de control Indicadores Acciones Medidas Entradas externas Sistema controlado Salidas externas Sistemas de tiempo real 50

Estructura de un STR El sistema de control (STR) actúa sobre el sistema controlado para conseguir un comportamiento definido Es muy común emplear un esquema realimentado En función de las medidas opera un algoritmo de control Ese algoritmo de control determina las acciones impuestas al sistema controlado Un aspecto de suma importancia son los tiempos en los que se lleva a cabo cada acción Sistemas de tiempo real 51

Sistemas de tiempo real Dos tipos de sistemas de control de tiempo real: 1.Sistemas empotrados (embedded systems) Sistemas de control dedicados El computador no es visible pues está integrado en algún elemento del equipo. Empleo limitado de recursos Los dispositivos de entrada y salida son especialespara cada sistema. No hay teclado ni pantalla normales aeronaves, robots industriales, sistemas control automóviles,... 2.Sistemas de Control Industriales Sistemas de control distribuido (DCS), controladores lógicos programables PLC Organizados jerárquicamente, sistemas de control distribuidos Industria de procesos, industria de fabricación Sistemas de tiempo real 52

Fiabilidad Fiabilidad y seguridad Es la probabilidad de proporcionar el servicio especificado Medida de fiabilidad: la media de tiempo entre averías (mean time to failure) MTTF=1/ λ Si MTTF > 10 9 hablamos de sistemas ultrafiables Seguridad Los sistemas críticos deben ser ultrafiables Sistemas de tiempo real 53

Fiabilidad y seguridad Los requisitos de fiabilidad y seguridad en los STR son mayores que en el resto Ejemplo: entre el 80 y el 90% de los sistemas de defensa, su control se realiza mediante software Según Hecht y Hecht (1986), los sistemas software complejos, por cada millón de líneas de código contienen una media de 20.000 errores El 90% de esos errores pueden ser detectados con sistemas de comprobación 200 errores de los restantes se detectan durante el primer año. Los 1800 restantes permanecen sin detectar Sistemas de tiempo real 54

Dependencia del tiempo Tiempos en los cuales se deben llevar a cabo determinadas acciones Tiempos de terminación de cada acción Responder a situaciones transitorias en las que no se pueden garantizar todos los plazos El comportamiento del sistema debe ser DETERMINISTA Sistemas de tiempo real 55

Aspectos temporales Instante de activación Límite (Deadline) Plazo máximo de respuesta Inicio Fin Tiempo de respuesta El tiempo de respuesta puede variar Sistemas de tiempo real 56

Sistemas operativos

Qué es un Sistema Operativo? Un programa que actúa como intermediario entre el usuario y el hardware de la computadora. Objetivos del Sistema Operativo: Ejecutar programas del usuario y resolver los problemas del usuario de manera fácil y sencilla. Hace que la computadora sea fácil de usar. Utiliza el hardware de la computadora de forma eficiente.

Qué es un Sistema Operativo? Sistema de software que provee a los usuarios de un entorno eficiente par la ejecución de sus programas. Usuarios Software de aplicaciones Software del Sistema Sistema Operativo Hardware

Componentes del sistema informático Sistema Informático de propósito general Hardware - proveé los componentes básicos de cómputo (CPU, memoria, dispositivos de E/S). Sistema Operativo - controla y coordina el uso del hardware entre los varios programas de aplicación para los diferentes usuarios. Programas de Aplicación - define las formas en que los recursos del sistema son utilizados para resolver los problemas de cómputo de los usuarios (compiladores, bases de datos, juegos de video, programas de negocios). Usuarios (gente, máquinas, otras computadoras).

Componentes del sistema informático S.O. Aplicaciones del usuario lenguaje de Soporte Gestión de ficheros Utilidades SW Subsist. E/S Despachador Gestión de INT Planificador HW CPU E/S

Tipos de sistemas operativos Multiusuario. Multitarea. Multiusuario y multitarea.

S.O. multiusuario Permite el acceso o la operación de diversos usuarios, cada uno con su propio área de trabajo y sin que los procesos de cada uno interfieran entre si. El S.O. deberá asignar los recursos a todos los usuarios de forma que éstos consideren que disponen del sistema total. Usuario Usuario Usuario Programa Programa Programa Datos Datos Datos Sistema operativo multi-usuario Hardware

S.O. multitarea El mismo usuario puede tener varias tareas o procesos que se comunican entre sí utilizando canales de comunicación gestionados por el S.O.: intercambio de datos entre tareas (memoria compartida y cola de mensajes) sincronización entre tareas (semáforos y señales). Usuario Tarea 1 Tarea 1 Tarea 1 Datos 1 Datos 1 Datos 1 Datos comunes Sistema operativo multi-tarea Hardware

S.O. multiusuario y multitarea Tiene las características de ambos sistemas. En el caso de STR, pueden ser sistemas multitarea, es decir, pueden disponer de canales de comunicación entre tareas pero de forma que se cumplan aquellas tareas de mayor prioridad para garantizar que se cumplen las restricciones temporales. La CPU es uno de los recursos que hay que gestionar. Se gestiona de acuerdo a un esquema de prioridades. El planificador decide la asignación a tareas. Un STR multitarea tiene que soportar el reparto de recursos y además, el cumplimiento de las restricciones temporales.

Objetivos del S.O. Gestión de tareas: (Scheduling) asignación de tiempo de procesador a las tareas. Decide que tarea pasa a ejecutarse. Gestión de memoria: control de asignación de memoria. Gestión de recursos: Controla otros recursos compartidos diferentes a memoria y tiempo de procesador. Almacena la información asociada a los recursos compartidos por parte de las tareas. Gestión y comunicación entre tareas. Suministra los mecanismos que dan soporte a la comunicación segura entre tareas y a la sincronización de sus actividades. Creación de tareas y mantenimiento de la información asociada a tareas, así como la eliminación de esta información. Una tarea puede crearse por invocación de otra tarea

Características de los sistemas operativos de tiempo real

No se trata de que los SOTR sean sistemas rápidos sino de que sean fiables. debe satisfacer las restricciones temporales explícitas de modo que si no se cumpliesen, se darían en el sistema consecuencias de riesgo severo incluso el fallo total diseñar el SOTR pensando más en el peor caso que en optimizar el rendimiento medio. atender con una alta prioridad a las señales externas (interrupciones) provenientes del sistema, ya que pueden informarnos de un cambio de estado en el sistema. minimizar todo aquello que conlleve un alto precio en el tiempo de la CPU

Sistema operativo mínimo S.O. Software de aplicación SW HW Kernel o núcleo CPU E/S

Requisitos actuales de los SOTR Determinismo tendencia que tiene el sistema a realizar una determinada acción en un tiempo predefinido. El minimizar el tiempo de respuesta a interrupciones garantiza un mayor nivel de determinismo. Capacidad para responder a eventos rápidamente distinguiendo entre sucesos síncronos y asíncronos. Necesita una rutina de interrupciones para dar una respuesta inmediata a los sucesos asíncronos. Requiere que el desalojo y realojamiento de procesos de la CPU se haga con rapidez. Control del sistema por parte del usuario de modo que los usuarios puedan conmutar entre distintos modos de ejecución. Por ejemplo, un operario que acciona un botón de emergencia de una máquina.

Requisitos actuales de los SOTR Gestión de prioridades En los sistemas operativos tradicionales la prioridad es dinámica, el propio sistema operativo va incrementando o decrementando la prioridad conforme pasa el tiempo. En los SOTR la prioridad debe ser estática con prioridades determinadas, al menos para varios procesos especialmente críticos. Las interrupciones procedentes del exterior tienen una prioridad fija, que no depende de tiempos de espera o ejecución. Además, se ha de analizar si la tarea se realiza según los plazos (seguimiento preventivo y predictivo) y cómo interfiere con las demás Fiabilidad en caso de fallo hardware ha de haber una solución de tipo software. Deben estar contempladas todas las respuestas que daríamos a cada uno de los posibles fallos que se pudiesen dar.

Requisitos actuales de los SOTR Gestión de Memoria ha de ser más estricta que en los sistemas operativos tradicionales. Cuanta mayor facilidad se trata de dar al usuario mayor va a ser el kernel. En los SOTR el kernel debe ser lo menor posible. Comunicación entre tareas debe ser muy rápida. Suele ser explícita, la tiene que hacer el usuario. Código Reentrante se refiere a la posibilidad de que dos procesos puedan emplear un mismo código de programa, sin tener que tener una copia del mismo para cada uno y sin que haya problemas de interferencias entre ellos al manejar el mismo código.

Requisitos actuales de los SOTR Tamaño reducido de código conviene que el repertorio de rutinas empleado sea lo menor posible, a costa de mayor coste de programación por parte del usuario, de modo que se minimice el número de primitivas y el kernel. SOTR distribuidos Se trata de minimizar los tiempos de respuesta por parte de la red: buses de campo, redes industriales, han de minimizar el tiempo desde que se recoge algo en un sensor hasta que llega a un actuador para ejecutar la orden que corresponda, pasando por el gestor de la red. Otros problemas son considerar que puede haber sobrecarga en la red y problemas de sincronización de los relojes de los distintos elementos del sistema distribuido.

TEMA 3 Programación Concurrente Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Capítulo 3: Programación Concurrente Concurrencia. Concepto de proceso. Estados. BCP. Cambio de contexto. Creación y terminación de procesos Relación entre procesos. Procesos cooperativos

Concurrencia La concurrencia consiste en que haya más de un proceso ejecutándose simultáneamente. Es el concepto clave en la multiprogramación, en los sistemas multiprocesador y en los sistemas distribuidos. La concurrencia comprende un gran número de cuestiones de diseño como la comunicación entre procesos, compartimiento de recursos y sincronización de procesos. El acceso de forma concurrente a datos compartidos puede originar inconsistencia en los datos. La entrada de un proceso puede depender de la salida de otro, o el proceso puede necesitar el acceso a un mismo recurso y debe hacerlo de una manera controlada. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Concurrencia. Modelos. Multiprogramación en un único procesador Multiprocesador Sistemas distribuidos

Concurrencia. Una CPU

Concurrencia. Multiprocesador.

Concepto de proceso Un proceso es un programa en ejecución, es una entidad activa; Un proceso necesita recursos para poder ejecutarse: memoria, dispositivos de E/S, la CPU, etc. Un proceso comprende: contador de programa,registros procesador código datos (variables globales, memoria dinámica) pila (parámetros y variables locales de subrutinas) En relación con los procesos, un s.o. : intercala la ejecución de los procesos según unos criterios asigna recursos a los procesos (prioridad, evita interbloqueo...) crea procesos y soporta la comunicación Informática Industrial. Grado Ing.Elect.Indust.Automática.

Estados de un proceso A medida que un proceso se ejecuta cambia de estados Modelo sencillo de dos estados en ejecución : Las instrucciones están siendo ejecutadas. en espera : el proceso está esperando a que ocurra algo para ejecutarse. Debe guardarse una información relativa a cada proceso que incluye el estado actual y posición en memoria. cola expedir CPU interrumpir Informática Industrial. Grado Ing.Elect.Indust.Automática.

Estados de un proceso Modelo de cinco estados nuevo (new): El proceso está siendo creado. El S.O. crea las estructuras de datos para administrar el proceso y se le asigna un identificador y un espacio de direcciones. en ejecución (running) : Las instrucciones están siendo ejecutadas. en espera (waiting): El proceso está esperando que ocurra algún suceso. listo (ready): El proceso está esperando que se le asigne a un procesador. terminado (terminated): El proceso ha terminado su ejecución. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Diagrama de estados de un proceso modelo procesos de cinco estados Nuevo Admitir listo pasar ejecutar ejecución liberar terminado fin de plazo Ocurre suceso Espera suceso bloqueado Informática Industrial. Grado Ing.Elect.Indust.Automática.

Bloque de control de proceso (BCP) Para cada proceso, el S.O. debe guardar su estado y cualquier otra información que debe mantenerse mientras no está en ejecución. Bloque de control de proceso: estado actual (preparado, en espera...) registros de la CPU (contador de programa, otros registros) información del planificador (id, prioridad, etc.) apuntadores a las zonas de memoria del proceso info. de contabilidad (tiempo CPU consumido, etc.) info. de E/S (dispositivos por los que espera, ficheros abiertos,etc.) etc. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Bloque de control de proceso(bcp) puntero estado del proceso número del proceso contador de programa registros limites memoria lista de ficheros abiertos Informática Industrial. Grado Ing.Elect.Indust.Automática.

Colas de planificación El S.O. organiza los BCP en colas de espera por el procesador o por los dispositivos de E/S. Cola de trabajos Conjunto de todos los procesos del sistema. Cola de proc. listos Conjunto de procesos cargados en la memoria principal,listos para su ejecución. Cola de dispositivo conjunto de procesos esperando a un dispositivo de E/S. Los procesos pasan de unas colas a otras. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Cola de proc. listos y varias colas de disp. E/S cola de listos pasar a ejecutar CPU fin de plazo ocurre suceso 1 Esperar suceso 1 Esperar suceso 2 ocurre suceso 2 ocurre suceso n Esperar suceso n Informática Industrial. Grado Ing.Elect.Indust.Automática.

Cambio de contexto El cambio de contexto es la operación que consiste en desalojar a un proceso de la CPU y reanudar otro. El sistema debe guardar el estado del proceso expulsado y cargar el estado guardado del proceso que se admite. La conmutación de contexto es un gasto extra; el sistema no realiza ningún trabajo útil mientras conmuta. Los tiempos de conmutación dependen en buena medida del apoyo del hardware. El hardware a veces tiene instrucciones para facilitar el cambio de contexto (ej. PUSHA = guardar todos los registros) Informática Industrial. Grado Ing.Elect.Indust.Automática.

Cambio de Contexto

Creación de procesos El s.o. cuando crea un proceso: 1. asigna un identificador al proceso y lo refleja en la tabla de procesos 2. asigna memoria al proceso y BCP 3. inicializa el BCP: contador programa, punteros pilas sistema, estado proceso, prioridad, recursos. 4. se coloca el proceso en la cola de listos o listos suspendidos. 5. puede que haya que actualizar otras estructuras de datos p.e. archivos para contabilidad. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Creación de procesos Un proceso se crea mediante una llamada al sistema. El proceso creador se denomina padre, y el creado, hijo. Los hijos pueden a su vez crear otros procesos, formando un árbol de procesos Ejecución: Padre e hijos se ejecutan concurrentemente. El padre espera a que algunos de los hijos o todos terminen. Espacio de direcciones: El proceso hijo es un duplicado del proceso padre. Se carga un programa en el proceso hijo. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Terminación de procesos Un proceso termina cuando finaliza la ejecución de su último enunciado y le pide al sistema operativo que lo elimine invocando una llamada al sistema específica (ej:exit). También si se genera una excepción y el S.O. decide abortarlo Podría existir una llamada al sistema para abortar otro proceso Informática Industrial. Grado Ing.Elect.Indust.Automática.

Relaciones de comunicación entre procesos Tipos de procesos Independientes Cooperantes Un proceso es independiente si no puede afectar ni ser afectado por la ejecución de otro proceso. Un proceso es cooperante si puede afectar o ser afectado por la ejecución de otro proceso Ventajas de la cooperación entre procesos Compartir información Aceleración de los cálculos Modularidad Comodidad Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problemas clásicos de comunicación y sincronización El problema de la sección crítica El problema del productor-consumidor El problema de los lectores-escritores Comunicación cliente-servidor

Problema del productor-consumidor Paradigma de procesos cooperativos, el proceso productor produce información que es consumida por un proceso consumidor. Ej.un programa de impresión produce caracteres que son consumidos por el controlador de la impresora. buffer ilimitado no establece limitación en el tamaño del buffer. buffer limitado supone que existe un tamaño determinado para el buffer. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problema del productor-consumidor Buffer limitado Solución con Memoria Compartida Productor while(cierto) { sig_prod = Produce( ); while(cont == n) { /*No hace nada. Espera*/ } buffer[ent] = sig_prod; ent ++; /* ent = (ent+1) % n; buffer circular*/ cont ++; } Consumidor while(cierto) { while(cont==0) { /*No hace nada. Espera*/ } sig_cons = buffer[sal]; sal ++; /* sal = (sal+1) % n; buffer circular*/ cont --; Consume(sig_cons); } buffer sig_ sig_ cons prod 0 1 sal ent n-1 Aunque ambas rutinas son correctas por separado puede haber problemas al ejecutarlas concurrentemente Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problema del productor-consumidor Buffer limitado Solución con Memoria Compartida Para mantener la consistencia de los datos se requieren mecanismos que aseguren una ejecución ordenada de los procesos cooperativos. Consideremos la solución con memoria compartida al problema del productor-consumidor. En el código la variable cont, es inicializada al comienzo a 0 y modificada cada vez que se añade o retira un elemento del buffer. El orden en que se ejecuten las lecturas y escrituras sobre la variable cont es crítico. El compartimiento de recursos globales puede traer muchos problemas. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problema del productor-consumidor Buffer limitado Solución con Memoria Compartida La solución para evitar los problemas presentados es proporcionar algún mecanismo de exclusión mutua. Es decir, algún procedimiento que garantice que cuando un proceso esta accediendo a una variable compartida, el otro proceso estará excluido de hacer lo mismo. Informática Industrial. Grado Ing.Elect.Indust.Automática.

TEMA 4 Comunicación y Sincronización de Procesos Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Capítulo 4: Comunicación y Sincronización de Procesos Introducción El problema de la sección crítica Semáforos Problemas clásicos de sincronización Informática Industrial. Grado Ing.Elect.Indust.Automática.

Introducción Hemos considerado la solución con memoria compartida al problema del productor-consumidor y hemos visto que el orden en que se ejecutaban las lecturas y escrituras sobre la variable compartida cont es crítico. Para mantener la consistencia de los datos se requieren mecanismos que aseguren una ejecución ordenada de los procesos cooperativos. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Introducción Estas situaciones donde dos o más procesos están leyendo o escribiendo algunos datos compartidos y el resultado final depende de la secuencia de ejecución se denominan condiciones de competencia. En este contexto hay que contemplar dos asuntos: Cómo garantizar que dos procesos no interfieren cuando acceden a un recurso común Cómo secuenciar los procesos cuando existe dependencia entre ellos. Veremos que la exigencia básica de la concurrencia es la posibilidad de hacer cumplir la exclusión mutua: excluir a los demás procesos de realizar ciertas acciones cuando es otro el que tiene permiso Informática Industrial. Grado Ing.Elect.Indust.Automática.

Introducción La solución para evitar las condiciones de competencia es proporcionar algún mecanismo de exclusión mutua. Es decir, algún procedimiento que garantice que cuando un proceso esta accediendo a una variable compartida, el otro proceso estará excluido de hacer lo mismo. La parte del programa donde se accede a variables compartidas se denomina sección crítica. Se pueden evitar las condiciones de competencia si se controla la ejecución de forma que no puedan estar dos procesos en sus secciones críticas simultáneamente Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problemas clásicos de comunicación y sincronización El problema de la sección crítica El problema del productor-consumidor El problema de los lectores-escritores Comunicación cliente-servidor Informática Industrial. Grado Ing.Elect.Indust.Automática.

El problema de la sección crítica Sistema compuesto por n procesos Cada uno tiene un fragmento de código: sección crítica Sólo uno de los procesos en cada instante puede ejecutar en la sección crítica Cuando un proceso está ejecutando en la sección crítica, ningún otro puede hacerlo Informática Industrial. Grado Ing.Elect.Indust.Automática.

El problema de la sección crítica n procesos que compiten por el uso de datos compartidos Cada proceso tiene su segmento de código en el que se accede a los datos compartidos (sección crítica). Problema asegurar que cuando un proceso está ejecutando su sección crítica no se permita que otro proceso pueda ejecutar su sección crítica. Estructura del proceso P i repeat sección de entrada sección crítica sección de salida sección restante Informática Industrial. Grado Ing.Elect.Indust.Automática.

Solución al problema de la sección crítica 1. Dos procesos no pueden estar al mismo tiempo en sus regiones críticas 2. Ningún proceso deberá esperar indefinidamente para entrar en su región crítica. 3. Ningún proceso que no esté en su región crítica puede bloquear otros procesos 4. No puede hacerse ninguna suposición sobre la velocidad relativa de los procesos. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Primeras tentativas para resolver el problema Consideremos 2 procesos, P 0 y P 1 La estructura general del proceso P i repeat sección de entrada sección crítica sección de salida sección restante Los procesos pueden compartir variables comunes para sincronizar sus acciones. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Alternancia estricta PROCESO 0... while (turno!=0) { /*No hace nada. Espera*/ } SeccionCritica (); turno=1; SeccionNoCritica ();... PROCESO 1... while (turno!=1) { /*No hace nada. Espera*/ } SeccionCritica (); turno=0; SeccionNoCritica ();... Informática Industrial. Grado Ing.Elect.Indust.Automática.

Alternancia estricta La variable turno, indica a que proceso le toca entrar en la región crítica. Al proceso que no le toca se mantiene en un ciclo para detectar cuando conmuta la variable turno y por tanto le corresponde entrar en la r.c. Este chequeo continuo de una variable se denomina espera activa. Inconvenientes de la alternancia estricta: Los procesos deben alternarse de forma estricta en el uso de sus secciones críticas. No es un buen enfoque cuando un proceso es mucho más rápido que el otro. Se viola la condición 3 mencionada: un proceso está bloqueado por otro que no está en su región crítica. Si un proceso falla el otro se queda bloqueado. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Segundo intento # define FALSO 0 # define CIERTO 1 # define N 2 /* Número de procesos*/ int señalbloqueo[n]; PROCESO 0... /* arreglo global compartido por los dos procesos*/ PROCESO 1... while (señalbloqueo[1]) { while (señalbloqueo[0]) { /*No hace nada. Espera*/ /*No hace nada. Espera*/ } señalbloqueo[0]=cierto; SeccionCritica (); señalbloqueo[0]=falso; SeccionNoCritica ();... Informática Industrial. Grado Ing.Elect.Indust.Automática. } señalbloqueo[1]=cierto; SeccionCritica (); señalbloqueo[1]=falso; SeccionNoCritica ();...

Segundo intento No ralentiza el proceso rápido esperando al proceso lento. Si falla un proceso sólo se queda bloqueado el otro proceso si el fallo ha ocurrido en la sección crítica. Inconveniente: P0 ejecuta el while y encuentra señal[1] a falso. P1 ejecuta el while y encuentra señal[0] a falso. P0 pone señal[0] a cierto y entra en su sección crítica. P1 pone señal[1] a cierto y entra en su sección crítica. Ambos procesos se encuentran en su sección crítica!!! El problema aparece porque un proceso puede cambiar su señal después de que el otro proceso ha verificado esta. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Tercer intento # define FALSO 0 # define CIERTO 1 # define N 2 /* Número de procesos*/ int señalbloqueo[n]; PROCESO 0... señalbloqueo[0]=cierto; while (señalbloqueo[1]) { /* arreglo global compartido por los dos procesos*/ PROCESO 1... señalbloqueo[1]=cierto; while (señalbloqueo[0]) { /*No hace nada. Espera*/ /*No hace nada. Espera*/ } } SeccionCritica (); señalbloqueo[0]=falso; SeccionNoCritica ();... SeccionCritica (); señalbloqueo[1]=falso; SeccionNoCritica ();... Garantiza la exclusión mutua pero puede haber interbloqueo Informática Industrial. Grado Ing.Elect.Indust.Automática.

Algoritmo de Peterson # define FALSO 0 # define CIERTO 1 # define N 2 /* Número de procesos*/ PROCESO 0... Informática Industrial. Grado Ing.Elect.Indust.Automática. señal[0]=cierto; turno=1; while (señal[1] && turno==1) { /*No hace nada. Espera.*/ } SeccionCritica (); señal[0]=falso; SeccionNoCritica ();... PROCESO 1... señal[1]=cierto; turno=0; while (señal[0] && turno==0) { /*No hace nada. Espera.*/ } SeccionCritica (); señal[1]=falso; SeccionNoCritica ();..

Algoritmo de Peterson La variable global señal indica el interés de cada proceso por acceder a su región crítica y la variable turno resuelve los conflictos de simultaneidad. El algoritmo de Peterson constituye una solución sencilla al problema de exclusión mutua. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Excl. Mutua. Soluciones por Hardware. Una forma de lograr la exclusión mutua podría ser inhabilitar las interrupciones. Pero cuidado, las interrupciones son fundamentales, son el corazón del software y hardware. si son inhabilitadas durante demasiado tiempo, el sistema fallará en la respuesta a los sucesos de hardware y la conmutación entre tareas no funcionará cuando existe más de un procesador en el sistema no se garantiza la exclusión mutua puesto que el otro procesador no está interrumpido. al código de usuario no se le debe permitir desactivar las interrupciones. El desactivar las interrupciones una solución razonable para la exclusión mutua sólo en las siguientes condiciones: para secciones de código cortas sobre sistemas monoprocesador para el mismo sistema operativo Informática Industrial. Grado Ing.Elect.Indust.Automática.

Semáforos Un semáforo es una variable entera a la que se puede acceder sólo a través de dos operaciones atómicas: semdown y semup. Para subir el semáforo en una unidad los procesos emplean semup(s) Para bajar una unidad el semáforo emplean semdown(s) semdown(s) { s--; while(s<0) { /* No hace nada. Espera*/ } } semup(s) { s++; } Informática Industrial. Grado Ing.Elect.Indust.Automática.

Semáforos Por tanto, los semáforos son variables enteras que permiten sólo tres operaciones: Inicialización con un valor no negativo. Decremento en una unidad llamando a semdown. Si el semáforo no es positivo al llamar a semdown se bloquea el proceso. Incremento en una unidad llamando a semup Informática Industrial. Grado Ing.Elect.Indust.Automática.

Implementación de un semáforo struct semaforo { int cont; struct proceso *cola; }; struct semaforo s; semdown(s) { InhabilitarInterrupciones; s.cont --; if ( s.cont< 0 ) { PoneProcesoEnCola( s.cola ) ; semup(s) { InhabilitarInterrupciones; s.cont++; if ( s.cont< = 0 ) { proc = SacaProcesoDeCola( s.cola ) ; } /* Bloquea proceso que llamó a semdown */ BloqueaProceso( ); } HabilitarInterrupciones; } /*pone al proceso extraído de la cola de bloqueados en la cola de listos*/ DespertarProceso( proc ); } HabilitarInterrupciones; Informática Industrial. Grado Ing.Elect.Indust.Automática.

Ejemplo: Sección crítica de n Procesos Variables semáforo mutex, inicialmente mutex=1; Proceso P i repeat semdown(mutex); sección critica semup(mutex); sección no critica until false; Informática Industrial. Grado Ing.Elect.Indust.Automática.

Semáforo para sincronización Ejecutar el bloque de código B del proceso 2 después del bloque A del proceso 1. Usar semáforo sinc inicializado a 0 Código P 1 P 2 A semdown(sinc) semup(sinc) B Informática Industrial. Grado Ing.Elect.Indust.Automática.

Interbloqueo e inanición Interbloqueo dos o más procesos esperan indefinidamente un suceso que puede ser causado sólo por uno de los procesos que esperan. Sean S y Q dos semáforos inicializados a 1 P 0 P 1 semdown(s); semdown(q); semdown(q); semdown(s); semup(s); semup(q); semup(q) semup(s); Inanición Un proceso espera indefinidamente dentro de la cola de un semáforo. Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problemas clásicos de sincronización Productor consumidor con buffer acotado Problema de los lectores-escritores El problema cliente-servidor Informática Industrial. Grado Ing.Elect.Indust.Automática.

Productor Consumidor buffer acotado #define N 100 semaforo mutex=1; semaforo vacios=n; semaforo llenos=0; /*capacidad del buffer*/ /*gestiona acceso a región critica*/ /*cuenta el numero de espacios vacíos en buffer*/ /*cuenta el numero de espacios llenos en el buffer*/ void Productor(void) { int elemento; while(true) /*bucle infinito*/ { ProducirElemento(elemento);/*generar algo para ponerlo en el buffer*/ semdown(vacios); /*disminuye el contador de espacios vacíos*/ semdown(mutex); /*entra en la región critica*/ IntroducirElemento(elemento);/*coloca el nuevo elemento en el buffer*/ semup(mutex); /*sale de la región critica*/ semup(llenos); /*incrementa el contador de espacios llenos*/ } } void Consumidor(void) { int elemento; while(true) /*bucle infinito*/ { semdown(llenos); /*disminuye el contador de espacios llenos*/ semdown(mutex); /*entra en la región critica*/ ExtraerElemento(elemento); /*saca un elemento del buffer*/ semup(mutex); /*sale de la región critica*/ semup(vacios); /*incrementa el contador de espacios llenos*/ ConsumirElemento(elemento); /*hacer algo con el elemento*/ } } Informática Industrial. Grado Ing.Elect.Indust.Automática.

Problema de los lectores escritores /*************una solución al problema cuando los lectores tienen prioridad*************** */ semaforo mutex=1; /*garantiza la mutua exclusión al actualizar num_lectores*/ semaforo escribe=1; /* evita otro proceso (lector o escritor) cuando hay un escritor */ int num_lectores=0; /*numero de procesos que están leyendo*/ void Escritor() { CalculaNvosValores(); /*región no crítica*/ semdown(escribe); /*evita que entre otro escritor o lector en r.c.*/ EscribeElemento(); /*actualiza los datos*/ semup(escribe); /*da paso a otro escritor o lectores*/ } void Lector() { semdown(mutex); /*evita problemas con el contador num_lectores*/ num_lectores ++; /*ahora hay un lector más*/ if(num_lectores == 1) semdown(escribe); /*si este es el primer lector espera a que termine el escritor si no hay escritor bloquea su entrada*/ semup(mutex); /*libera el acceso exclusivo a num_lectores*/ LeeElemento(); /*Accede a leer los datos*/ semdown(mutex); /*entrar en la región critica*/ num_lectores --; /*ya hay un lector menos*/ if(num_lectores == 0) semup(escribe); /*si no hay ningún lector se da permiso a escritor*/ semup(mutex); /*salir de la región critica*/ UtilizaElemento(); /*región no crítica*/ }

Cliente - Servidor Ver programas C cliente-servidor con memoria compartida en prácticas Informática Industrial. Grado Ing.Elect.Indust.Automática.

TEMA 5. El computador en la automatización de la Producción

TEMA 5. El computador en la automatización de la producción Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

El computador en la automatización de la producción Introducción a automatización industrial Diseño asistido por computador Ingeniería asistida por computador Fabricación asistida por computador Fabricación integrada por computador La pirámide de la automatización

Introducción Automatización Industrial La automatización Industrial implica el uso de sistemas informáticos y electromecánicos para para llevar a cabo procesos que se autocomprueban y autocorrigen. Abarca la instrumentación industrial (sensores, los buses de campo) los sistemas de control y supervisión, los sistemas de transmisión y recolección de datos y las aplicaciones de software en tiempo real para supervisar, controlar las operaciones de plantas o procesos industriales