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

Tamaño: px
Comenzar la demostración a partir de la página:

Download "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"

Transcripción

1 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 Tipo abstracto de datos (Dijkstra) Especificación de comportamiento: sem N Init(sem, n) sem := n Wait(sem) AWAIT sem>0 sem := sem-1 Signal(sem) sem := sem + 1 Código entre : acción atómica Init(sem, n): sólo inicialización valores AWAIT Cond suspende tarea hasta cumplimiento de Cond Wait(sem): suspende hasta que sem > 0, entonces decrementa Signal(sem): incrementa sem M. Carro (UPM) 1 / 20 M. Carro (UPM) 2 / 20 Exclusión mutua con semáforos X :=...; Compartida Init (Mutex, 1); Nadie en sección crítica X := X + X ; S.C. Wait: Signal: Invariante: Mutex = 0 algún proceso en sección crítica Puede decrementar si sección crítica está libre Suspende en otro caso Siempre puede incrementar Puede rearrancar alguna tarea suspendida Clases e implementación Binarios (sem {0, 1}): exclusión mutua Generales (sem N ): sincronización más avanzada binarios: Signal cuando ya tiene un valor 1 efecto indefinido No son parte nativa de Ada Implementación (entre las librerías de la asignatura) como tipos en el paquete Semaphores (semaphores.{ads,adb}): Tipo Semaphore : define un tipo paramétrico (para establecer el máximo valor del semáforo) (Sub)Tipo Bin Semaphore : binarios (Sub)Tipo Gen Semaphore : generales M. Carro (UPM) 3 / 20 M. Carro (UPM) 4 / 20

2 en Ada Paquete Semaphores Un interfaz de semáforos Establecimiento del máximo valor del semáforo en la declaración de variable: Sem: Semaphores.Semaphore (Max => 5); Inicializados al máximo valor por defecto Subtipos para semáforos binarios y generales: subtype Bin Semaphore is Semaphore (Max => 1); subtype Gen Semaphore is Semaphore (Max => Natural Last); Importante: la tarea madre o una de las tareas hijas debe inicializarlo con el valor deseado si éste no coincide con el máximo: Init (Sem, N) en Ada Un interfaz de semáforos Sólo diferencias sintácticas con el esquema ya visto: X : Natural := 1; V a r i a b l e compartida Semáforo b i n a r i o i n i c i a l i z a d o a 1 Mutex : Semaphores. Bin Semaphore ; task type Add ; task body Add i s begin Entrada en sección c r í t i c a X := X + X ; Sección c r í t i c a Salida de sección c r í t i c a end Add ; M. Carro (UPM) 5 / 20 M. Carro (UPM) 6 / 20 generales: sincronización condicional Operaciones externas, procesos, recursos Binarios: exclusión mutua (ya sabíamos hacerla) Generales: misma definición (excepto que sem N ), más potencia Ejemplo: aparcamiento 1 entrada / 1 salida Entrada Barrera_Entrada Entrar Aparcamiento Salir Barrera_Salida Salida Abrir_Entrada Aparcamiento Abrir_Salida Barreras / detectores de entrada y salida Permitir entrar coches (si hay sitio) Descontar los que vayan saliendo procedure Barrera Entrada: detecta coche a la entrada; bloqueante procedure Abrir Entrada: abre la barrera de entrada procedure Barrera Salida: detecta coche a la salida; bloqueante procedure Abrir Salida: abre barrera saluda Aparcamiento: depende de la implementación M. Carro (UPM) 7 / 20 M. Carro (UPM) 8 / 20

3 Aparcamiento: solución 0 Programamos controlador barreras aparcamiento Aparcamiento: solución 1 Con un semáforo binario N C := N C 1; Espacio := False ; loop Tarea s a l i d a N C:= N C 1; loop Tarea entrada Espacio : = False ; M. Carro (UPM) 9 / 20 M. Carro (UPM) 10 / 20 Solución 1: protección de N C Solución 2 Recurso compartido: número coches aparcados Acceso en exclusión mutua Pero: aparcamiento lleno espera activa Llevar mutex fuera de bucle principal? Encapsular sólo N C := N C + 1? No encapsular Espacio := True? Hay espacio Mutex, No Lleno : Bin Semaphore ; N C := N C 1; i f N C = MAX 1 then Signal ( No Lleno ) ; Wait ( No Lleno ) ; i f N C < Max then Signal ( No Lleno ) ; M. Carro (UPM) 11 / 20 M. Carro (UPM) 12 / 20

4 Solución 2: fuego cruzado Solución 3 Mutex: protege sección crítica No Lleno: sincroniza (sincronización condicional) No Lleno = 0 N C = MAX ( bloqueo si aparcamiento lleno) No Lleno = 0 sii ha entrado el último coche No obvio pero no hace espera activa Intercambiar Wait(No Lleno) y Wait(Mutex)? Huecos : Semaphore (Max ) ; Signal ( Huecos ) ; Wait(Huecos) permite paso si hay espacio Signal(Huecos) libera espacio El poder de los semáforos? Codificar con Peterson Wait ( Huecos ) ; Repetir análisis suponiendo que hay dos (o más) entradas M. Carro (UPM) 13 / 20 M. Carro (UPM) 14 / 20 desde la lejanía Algo truculentos y de bajo nivel Pero ampliamente disponibles (POSIX, API Win32) Sincronización condicional ad-hoc Linealización siempre posible, pero a veces no clara Mezclada con exclusión mutua Para implementar abstracciones de nivel superior Cola acotada s leen y escriben lleno: productor espera vacío: consumidor espera Poner(Item) Tomar(Item) M. Carro (UPM) 15 / 20 M. Carro (UPM) 16 / 20

5 Solución 1: sólo exclusión mutua Solucion 2 B u f f e r : T i p o B u f f e r ; loop << I n s e r t a en b u f f e r >> Precondiciones secuenciales vs. Precondiciones concurrencia loop << Quita de b u f f e r >> U t i l i z a r ( Un Dato ) ; B u f f e r : T i p o B u f f e r ; Vacios : Semaphore ( Max ) ; Llenos : Semaphore ( Max ) ; I n i t ( Llenos, 0 ) ; loop Wait ( Vacios ) ; <<I n s e r t a en b u f f e r >> Signal ( Llenos ) ; con dos misiones diferentes Esencialmente, aparcamiento simétrico Pero: estructura de datos separada de semáforo loop Wait ( Llenos ) ; <<Quita de b u f f e r >> Signal ( Vacios ) ; Consumir ( Un Dato ) ; M. Carro (UPM) 17 / 20 M. Carro (UPM) 18 / 20 de un dato Ejercicio: buffer par/impar Dato : Tipo Dato ; Lleno : Bin Semaphore ; con I n i t ( Lleno, 0 ) Vacio : Bin Semaphore ; loop Wait ( Vacio ) ; Dato := Un Dato ; Signal ( Lleno ) ; Establecer invariantes loop Wait ( Lleno ) ; Este Dato := Dato ; Signal ( Vacio ) ; Consumir ( Este Dato ) ; Por qué es más simple que el buffer general? de números pares e impares (en cualquier orden) es: Uno necesita números pares Otro necesita números impares Poner(Item) Usar un buffer de un dato Tomar_Par(Item) Tomar_Impar(Item) Pares Impares M. Carro (UPM) 19 / 20 M. Carro (UPM) 20 / 20

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen

Más detalles

Secciones críticas y exclusión mutua

Secciones 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 detalles

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor.

Paso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor. Paso de mensajes Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons

Más detalles

Tema 3: Concurrencia de procesos

Tema 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 detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Diseño de sistemas concurrentes

Diseño de sistemas concurrentes 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

Más detalles

Concurrencia. Primitivas IPC con bloqueo

Concurrencia. Primitivas IPC con bloqueo Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

Más detalles

Práctica 8: Barreras

Práctica 8: Barreras Arquitectura y Tecnología de Computadores 14 de febrero de 2014 Objetivos Aprender a utilizar las variables condición y las barreras de la biblioteca Pthreads. Diseñar e implementar una barrera: Barrera

Más detalles

Concurrencia entre Procesos.

Concurrencia 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 detalles

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00

Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Sistemas Operativos Temas 4, 5 y 6 Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Índice Tema 4: Herramientas de Sincronización de Alto Nivel. Regiones Críticas. Monitores.

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas 8 Comunicación y sincronización basada en variables compartidas...2 8.1 Exclusión mutua y condición de sincronización....2 8.2

Más detalles

El problema de los Filósofos

El problema de los Filósofos El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM

Más detalles

TEMA 5. PROGRAMACIÓN CONCURRENTE.

TEMA 5. PROGRAMACIÓN CONCURRENTE. TEMA 5. PROGRAMACIÓN CONCURRENTE. 5.1. Ejecución concurrente. 5.2. Representación de procesos. 5.3. Tareas en Ada. 5.4. Ejemplo. 5.5. Comunicación y sincronización con variables comunes. 5.6. Comunicación

Más detalles

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS SOLUCIONES A ALGUNOS DE LOS EJERCICIOS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. Con las tres llamadas create, suspend, y resume, la estructura del programa sería la siguiente: process recoger;

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

Gestión del tiempo en Ada

Gestión del tiempo en Ada dit UPM Gestión del tiempo en Ada Juan Antonio de la Puente DIT/UPM El tiempo en Ada La gestión del tiempo en Ada está integrada en el lenguaje y en el modelo de tareas relojes relojes de tiempo de ejecución

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Programación Concurrente y Paralela. P(S) ; sección crítica P(S);

Programación Concurrente y Paralela. P(S) ; sección crítica P(S); 2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles

Más detalles

I.3. Interacción entre Procesos Concurrentes.

I.3. Interacción entre Procesos Concurrentes. PROGRAMACION CONCURRENTE I.3. Interacción entre Procesos Concurrentes. J.M. Drake 1 Interacción entre Procesos Concurrentes Modelos de interacción entre procesos. Problemas de sincronización y exclusión

Más detalles

Sistemas Operativos Práctica 4

Sistemas Operativos Práctica 4 Sistemas Operativos Práctica 4 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que

Más detalles

Tema 2 Descripción de VHDL (2/2)

Tema 2 Descripción de VHDL (2/2) TECNOLOGÍA DE COMPUTADORES Tema 2 Descripción de VHDL (2/2) Agustín Álvarez Marquina Tipos de sentencias en VHDL Sentencias concurrentes PROCESS Asignación de señal BLOCK Llamadas a procedimientos Llamadas

Más detalles

Seminario de Programación en Ada

Seminario de Programación en Ada Seminario de Programación en Ada Bloque II Programación de tiempo real GRUPO DE COMPUTADORES Y TIEMPO REAL Michael González, J. Javier Gutiérrez, Héctor Pérez 19 Programación de Tiempo Real El Ada soporta

Más detalles

Comunicación y Sincronización con Monitores Resumen del Tema

Comunicación y Sincronización con Monitores Resumen del Tema Notas de clase de Programación Concurrente Comunicación y Sincronización con Monitores Resumen del Tema Dpto de Lenguajes y Ciencias de la Computación Universidad de Málaga María del Mar Gallardo Melgarejo

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

Cada examen debe superarse con al menos un 4 para hacer media.

Cada examen debe superarse con al menos un 4 para hacer media. Concurrencia Pau Arlandis Martínez Sobre las normas Profesores Ángel Herranz 2309 Julio Mariño 2308 Cada lunes se entregará un problema que debe resolverse antes del jueves. Únicamente sirven para practicar

Más detalles

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

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de 1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? 1.1.1. El sistema operativo como máquina extendida 1.1.2. El sistema operativo como gestor de recursos 1.2. Historia de los sistemas operativos /* solo

Más detalles

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index. Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.

Más detalles

SISTEMAS INFORMÁTICOS DE TIEMPO REAL

SISTEMAS INFORMÁTICOS DE TIEMPO REAL SISTEMAS INFORMÁTICOS DE TIEMPO REAL Sistemas operativos de tiempo real Manuel Agustín Ortiz López Área de Arquitectura y Tecnología de Computadores Departamento de Arquitectura de Computadores, Electrónica

Más detalles

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

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS

Más detalles

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

Tema 3.- Predicados y sentencias condicionales

Tema 3.- Predicados y sentencias condicionales UNIVERSIDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO PROGRAMACIÓN DECLARATIVA INGENIERÍA INFORMÁTICA ESPECIALIDAD DE COMPUTACIÓN CUARTO CURSO PRIMER

Más detalles

2 Control de procesos y sincronización

2 Control de procesos y sincronización 2 Control de procesos y sincronización En los sistemas multiprogramados se define el proceso como entidad representante de la ejecución de un programa en un determinado contexto. Aunque hoy en día se ha

Más detalles

Artefactos de diseño en UML usando StarUML

Artefactos de diseño en UML usando StarUML Introducción Este es un segundo laboratorio de introducción a StarUML en el crearemos algunos artefactos de diseño. Objetivos El objetivo de este laboratorio es el siguiente: Utilizar la herramienta StarUML

Más detalles

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González. Programación Básica Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 5 Universidad de Guanajuato, DCI, Campus León 1 / 31 Universidad

Más detalles

Secretos de la Programación Concurrente

Secretos de la Programación Concurrente Secretos de la Programación Concurrente Stuart Perez, Luis Castro Autómatas y Compiladores, Escuela de Ciencias de la Computación e Informática, San Pedro de Montes de Oca, Costa Rica jstuartp@gmail.com

Más detalles

Comunicación y sincronización de procesos

Comunicación y sincronización de procesos Sistemas Operativos I Tema 4 Comunicación y sincronización de procesos Equipo de Sistemas Operativos DISCA / DSIC UPV Comunicación y sincronización de procesos Objetivos Presentar dos alternativas básicas

Más detalles

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013 TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Ingeniería Técnica en Informática de Sistemas Segundo curso Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba

Más detalles

Técnicas de implementación con objetos protegidos

Técnicas de implementación con objetos protegidos Técnicas de implementación con objetos protegidos Lecturas: Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative

Más detalles

Adquisición y Presentación de Señales Biomédicas Utilizando Objetos de Sincronización entre Procesos Bajo Windows 98

Adquisición y Presentación de Señales Biomédicas Utilizando Objetos de Sincronización entre Procesos Bajo Windows 98 Adquisición y Presentación de Señales Biomédicas Utilizando Objetos de Sincronización entre Procesos Bajo Windows 98 M. Hernández S 1., C. Ramírez R. 2 RESUMEN En este artículo, se describe el desarrollo

Más detalles

EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN

EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN EXÁMENES RESUELTOS SISTEMAS OPERATIVOS INFORMÁTICA SISTEMAS Y GESTIÓN DELEGACIÓN DE ALUMNOS CENTRO ASOCIADO DE BALEARES EXÁMENES SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS I Mayo 2000 INFORMÁTICA DE SISTEMAS

Más detalles

Programación SQL. Lucio Salgado Diciembre 2008

Programación SQL. Lucio Salgado Diciembre 2008 Programación SQL Lucio Salgado Diciembre 2008 1 Gestionadores de Bases de Datos (DBMS) Es el software que permite administrar bases de datos, a través de ella el usuario puede usar los datos con mucha

Más detalles

Introducción a las sentencias de control

Introducción a las sentencias de control INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Concurrencia y Distribución

Concurrencia y Distribución Concurrencia y Distribución Dr. Arno Formella Universidad de Vigo Departamento de Informática Área de Lenguajes y Sistemas Informáticos E-32004 Ourense http://www.ei.uvigo.es/ formella Email: formella@ei.uvigo.es

Más detalles

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 01-II 1. DATOS GENERALES SÍLABO UNIDAD DIDÁCTICA : LENGUAJES Y HERRAMIENTAS DE DESARROLLO DE SOFTWARE MÓDULO : DESARROLLO DE SOFTWARE

Más detalles

Si bien Pascal-FC no trae algunas de las características de Pascal como:

Si bien Pascal-FC no trae algunas de las características de Pascal como: PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

Más detalles

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato Objetos de VHDL! Un objeto en VHDL es un elemento que contiene un valor de tipo específico de dato Objetos que se pueden manipular en VHDL y sus tipos -3 clases principales de objetos: SEÑALES: similares

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 TEMARIO MODULO I. EL LENGUAJE C# 5 Introducción al desarrollo de soluciones informáticas. El Framework.NET. o Descripción de la plataforma. o Las especificaciones

Más detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.4 Sincronización basada en memoria compartida: Regiones críticas J.M. Drake 1 Regiones críticas Son bloques de código que al ser declarados como regiones críticas respecto de

Más detalles

SISTEMAS OPERATIVOS AVANZADOS

SISTEMAS OPERATIVOS AVANZADOS SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3

Más detalles

CURSORES EN SQL SERVER

CURSORES EN SQL SERVER Año del Centenario de Machu Picchu para el mundo CURSORES EN SQL SERVER Curso: IMPLEMENTACION DE BASE DE DATOS VII Ciclo Integrantes: Vásquez Paredes, Pablo Bustamante Auccasi, Janett Córdova Farfán, Carlos

Más detalles

Cuando el lenguaje si importa

Cuando el lenguaje si importa Cuando el lenguaje si importa de software financiero J. Daniel Garcia Grupo ARCOS Universidad Carlos III de Madrid 11 de mayo de 2016 cbed J. Daniel Garcia ARCOS@UC3M (josedaniel.garcia@uc3m.es) Twitter

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

PROGRAMACION CONCURRENTE Y DISTRIBUIDA PROGRAMACION CONCURRENTE Y DISTRIBUIDA V.2 Redes de Petri: Análisis y validación. J.M. Drake 1 Capacidad de modelado y capacidad de análisis El éxito de un método de modelado es consecuencia de su capacidad

Más detalles

Asignatura: Programación Avanzada de Autómatas. Documento: Ejercicios de diseño de sistemas secuenciales.

Asignatura: Programación Avanzada de Autómatas. Documento: Ejercicios de diseño de sistemas secuenciales. Asignatura: Programación Avanzada de Autómatas. Documento: Ejercicios de diseño de sistemas secuenciales. Ejercicio 2: Ciclo Automático de Transportador Power&Fee. Figura 1: Imagen de transportador Power

Más detalles

PROGRAMACIÓN CONCURRENTE

PROGRAMACIÓN CONCURRENTE PROGRAMACIÓN CONCURRENTE 1 INTRODUCCIÓN 2 EXCLUSIÓN MUTUA 3 BLOQUEO MEDIANTE EL USO DE VARIABLES COMPARTIDAS 3.4 ALGORITMO DE PETERSON 3.5 ALGORITMO DE DEKKER 4 SEMÁFOROS 4.1 EXCLUSION MUTUA CON SEMÁFOROS

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

Más detalles

SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III

SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III SISTEMAS OPERATIVOS PROCESOS CONCURRENTES UNIDAD III Mas Publicaciones Sala de Prensa - Noticias Testimonios Página de Inicio 1 Karen Suzely Sandoval Diaz ID: UB6571SSE13056 INDICE No. Página INTRODUCCIÓN...

Más detalles

Unidad 2: Gestión de Procesos

Unidad 2: Gestión de Procesos Unidad 2: Gestión de Procesos Tema 4, Procesos: 4.1 El concepto de proceso. 4.2 Planificación de procesos. 4.3 Procesos cooperativos. 4.4 Hilos (threads). Informática (Segovia) 1 4.1 El concepto de proceso.

Más detalles

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación)

Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Resolución de Problemas y Algoritmos Clase 6: Repetición (continuación) Dr. http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca,

Más detalles

Tema: USO DE MEMORIAS RAM Y ROM

Tema: USO DE MEMORIAS RAM Y ROM Tema: USO DE MEMORIAS RAM Y ROM Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Perifericos Lugar de Ejecución: Fundamentos Generales. Edificio 3 Objetivo general genespecífico Usar

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Recursos compartidos con paso de mensajes (EN CONSTRUCCIÓN: NO IMPRIMIR)

Recursos compartidos con paso de mensajes (EN CONSTRUCCIÓN: NO IMPRIMIR) Recursos compartidos con paso de mensajes (EN CONSTRUCCIÓN: NO IMPRIMIR) Julio Mariño Universidad Politécnica de Madrid Babel research group http://babel.upm.es/teaching/ concurrencia Concurrencia, mayo

Más detalles

Práctica 6. Diseño Lógico Digital mediante VHDL

Práctica 6. Diseño Lógico Digital mediante VHDL Práctica 6. Diseño Lógico Digital mediante VHDL 6.1. Objetivos Aprender a diseñar circuitos lógicos digitales mediante el uso de lenguajes de descripción de hardware como VHDL. 6.2. Introducción al VHDL

Más detalles

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

Programación Concurrente Recopilación de teoría referente a la materia UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller 2011 Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente,

Más detalles

Tipos de comunicación La comunicación puede ser:

Tipos de comunicación La comunicación puede ser: Unidad 3. Procesos concurrentes 3.3 Semáforos (informática) Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos

Más detalles

Fundamentos de programación

Fundamentos de programación Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador

Más detalles

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura UNIVERSIDAD DEL CARIBE UNICARIBE Escuela de Informática Programa de Asignatura Nombre de la asignatura : Sistema Operativo II Carga académica : 4 créditos Modalidad : Semi-presencial Clave : INF-223 Pre-requisito

Más detalles

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre

ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Concurrencia CURSO ACADÉMICO - SEMESTRE 2015-16 - Segundo semestre GA_10II_105000018_2S_2015-16 Datos Descriptivos Nombre de la Asignatura Titulación Centro

Más detalles

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END;

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END; 18 de marzo de 2002 1 1. Declaraciones Variables y constantes Cursores Excepciones 2. Instrucciones Asignación Control de flujo Bucles 3. Manejadores de excepciones 4. Anidamiento de bloques 5. Tipos de

Más detalles

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6

SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6 SALIDAS ANALÓGICAS A. Arquitectura de la salida analógica B. Uso del DAQmx Write VI C. VI, AO Multipuntos (Buffered) D. Generación del Buffer Finito E. Generación del Buffer Continuo Página 1 de 8 A. ARQUITECTURA

Más detalles

Otras formas de Sincronización en Java

Otras formas de Sincronización en Java 75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Otras formas de Sincronización en Java java.util.concurrent Class Exchanger

Más detalles

Solución - Examen Marzo de 2003

Solución - Examen Marzo de 2003 Solución - Examen Marzo de 2003 Problema 1 Se debe responder a las cuestiones aquí planteadas de manera concisa (no más de 15 renglones por pregunta. En todos los casos debe justificar su respuesta. Pregunta1

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados

Más detalles

ESCUELA SUPERIOR DE INFORMATICA SISTEMAS OPERATIVOS PROBLEMAS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS

ESCUELA SUPERIOR DE INFORMATICA SISTEMAS OPERATIVOS PROBLEMAS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS ESCUELA SUPERIOR DE INFORMATICA SISTEMAS OPERATIVOS PROBLEMAS DE SINCRONIZACION Y COMUNICACION ENTRE PROCESOS 1. En lugar de utilizar señales, resolver el problema de la sincronización entre procesos que

Más detalles

3. PROGRAMACION CONCURRENTE

3. PROGRAMACION CONCURRENTE 3. PROGRAMACION CONCURRENTE INTRODUCCION Actualmente observamos que el paradigma orientado a objetos, solo podemos ejecutar un equipo a la vez como máximo en cambio con la introducción de las hebras concurrentes(programación

Más detalles

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4 I IDENTIFICACION Nombre de la asignatura : Sistemas de Computación Código : 503429 Nivel (semestre de la carrera) : 7 Carrera : Ingeniería Civil Informática Nº de créditos : 4 Duración : Un semestre Pre-requisitos

Más detalles

Aznar Bellver, Jerónimo. Valoración inmobiliaria: métodos y aplicaciones. : Editorial de la Universidad Politécnica de Valencia,.

Aznar Bellver, Jerónimo. Valoración inmobiliaria: métodos y aplicaciones. : Editorial de la Universidad Politécnica de Valencia,. : Editorial de la Universidad Politécnica de Valencia,. p 2 http://site.ebrary.com/id/10637906?ppg=2 : Editorial de la Universidad Politécnica de Valencia,. p 3 http://site.ebrary.com/id/10637906?ppg=3

Más detalles

TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES.

TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES. TEMA 4. EXCEPCIONES Y MANEJO DE EXCEPCIONES. 4.1. Introducción. 4.2. Tratamiento de excepciones. 4.2.1. Excepciones en lenguajes tradicionales. 4.2.2. Tratamiento de excepciones moderno. 4.3. Tratamiento

Más detalles

Tema 4.- Pilas y Colas

Tema 4.- Pilas y Colas Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente

Más detalles

La resolución de un problema

La resolución de un problema CAP. 2. ALGORITMOS Y PROGRAMAS 2.1. Solución de problemas por computadora La resolución de problemas por computadora, es importante para que las personas o usuarios aprendan a programar de manera general,

Más detalles

ABSTRACCIONES DE UN SISTEMA DIGITAL

ABSTRACCIONES DE UN SISTEMA DIGITAL ABSTRACCIONES DE UN SISTEMA DIGITAL T O P D O W N FUNCIONAL ARQUITECTURAL FÍSICO Algoritmos y funciones que indican la relación E/S Componentes funcionales interconectados que definen la arquitectura Materialización

Más detalles

Diseño de una calculadora

Diseño de una calculadora DEPARTAMENTO DE TECNOLOGÍA ELECTRÓNICA ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Diseño de una calculadora Sistemas Digitales Avanzados 1. Introducción y objetivos El propósito general de esta

Más detalles

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes VHDL Carlos Andrés Luna Vázquez Lección 5 Sentencias concurrentes Índice Introducción Niveles de abstracción del modelado con HDL Estilos descriptivos del modelado con HDL Ventajas y limitaciones de los

Más detalles

Parte I: Elementos del lenguaje Ada

Parte I: Elementos del lenguaje Ada Parte I: Elementos del lenguaje Ada 1. Introducción a los computadores y su programación 2. Elementos básicos del lenguaje 3. Modularidad y programación orientada a objetos 4. Estructuras de datos dinámicas

Más detalles

Programación Concurrente (Ingeniería Técnica Informática de Sistemas)

Programación Concurrente (Ingeniería Técnica Informática de Sistemas) Universidad Nacional de Educación a Distancia Guía Didáctica Programación Concurrente (Ingeniería Técnica Informática de Sistemas) Equipo docente: David Fernández Amorós . c 2008 David Fernández Amorós.

Más detalles

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER Electrónica Digital Departamento de Electrónica VHDL Bioingeniería Facultad de Ingeniería - UNER VHDL VHSIC Hardware Design Language VHSIC Very High Speed Integrated Circuits Verilog Handel C Celóxica

Más detalles

Parte II: Estructuras de datos y algoritmos

Parte II: Estructuras de datos y algoritmos Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO

Más detalles

Excepciones. dit. Juan Antonio de la Puente DIT/UPM UPM

Excepciones. dit. Juan Antonio de la Puente DIT/UPM UPM dit UPM Excepciones Juan Antonio de la Puente DIT/UPM Transparencias basadas en el capítulo 6 del libro de A. Burns y A. Wellings Real Time Systems and Programming Languuages, 3ª edición (2001) Objetivos

Más detalles

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

COLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD

Más detalles