Tabla de Contenido Concurrencia.

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

el 1, el 4 y el 9 tres cuadrados perfectos autosuficientes
22 3 ¿Qué creen que es? Les doy pistas: Se devora y no se gasta No necesita luz eléctrica Se puede compartir Se lleva a todas partes, facilito Si no.
Capitulo 7: Procesamiento batch y el Job Entry Subsystem (JES)
GESTION DE PROCESOS.
Simulación por Eventos Discretos
Paso 1 Portada YO SOY EUROPEO Comisión Europea.
Curso de Java Java – Redes Rogelio Ferreira Escutia.
INTELIGENCIA ARTIFICIAL
Concurrencia Exclusión mutua y sincronización
Complejidad Computacional
Colas con Servidores en Paralelo
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
Configuración de Control
Storage Networking y el almacenamiento sobre internet: iSCSI
Cuestiones y problemas
Introducción Características de la nueva API E/S antes de Java 1.4 ¿Por qué NIO? E/S orientada a bloques El patrón Reactor Canales y Buffers Lectura y.
ANALISIS DE IMÁGENES A PARTIR DE LA PRESENTACIÓN DE ALGUNAS IMÁGENES, PEDIR A LOS NIÑOS QUE OBSERVEN LAS ILUSTRACIONES Y QUE DESCRIBAN EN SU CUADERNO LAS.
Teoría de Sistemas Operativos Memoria
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
Introduccion a UML Wilson Peláez Hernández
CLASE 4 EL ENSAMBLADOR.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Base de Datos Distribuidas Bases de Datos II Universidad Argentina J. F. Kennedy - Año 2008 Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Pssw.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
INTRODUCCIÓN A JAVA.
03 Estudio del mercado El estudio del mercado trata de averiguar la respuesta del mercado ante un producto o servicio, con el fin de plantear la estrategia.
PROTOCOLOS Y ESTANDARES DE RED
Proyecto ProMéxico Plasmas mayo SECCIONES NOTICIAS PROYECTOS UNIDAD ACTÚA EVENTUALES secciones ProMéxico.
Informática Educativa Bogotá 2011 – Universidad de Santander UDES
INTELIGENCIA ARTIFICIAL
TRABAJO DE SISTEMAS OPERATIVOS
Sintaxis básica del lenguaje
Comité Nacional de Información Bogotá, Julio 21 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
Comité Nacional de Información Bogotá, Julio 27 de 2011 Consejo Nacional de Operación de Gas Natural 1 ESTADISTICAS NACIONALES DE OFERTA Y DEMANDA DE GAS.
INTRODUCCIÓN A LA PROGRAMACIÓN
Comunicación y sincronización entre procesos
CULENDARIO 2007 Para los Patanes.
Números enteros.
Comunicación y sincronización de procesos Comunicación por tuberías.
¿Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No.
Aspectos básicos de networking: Clase 5
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Parte 2. Uso de las funciones 1. 2 Uso de funciones explicado en base al tipo de funciones que leen una información y entregan una respuesta.
Sincronización de procesos
© 2007 Cisco Systems, Inc. Todos los derechos reservados.Cisco Public 1 Protocolos de enrutamiento de estado de enlace Conceptos y protocolos de enrutamiento.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL CURSO: GESTION DE LA CALIDAD ING.ELIZABETH FERG 1.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Concurrencia: Exclusión Mútua y Sincronización
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Unidad III Administración de procesos
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Profesor: Rodrigo Sanhueza Figueroa
Sistemas Concurrentes: Paso de mensajes
Comunicación entre Procesos por pase de mensajes Universidad Simón Bolívar Departamento de Computación y T.I Sistemas de operación III CI-4822 Prof. Yudith.
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
SISTEMAS OPERATIVOS.
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Introducción a los Sistemas Operativos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Unidad 2 – Gestión de Procesos
Gestión de Procesos Hilos.
Interfaz de programación de aplicación 5R1221. Las API’s API es la abreviatura de Aplication Programming Interface. Un API no es más que una serie de.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Transcripción de la presentación:

Comunicación entre procesos SISTEMAS OPERATIVOS Comunicación entre procesos Mg. Samuel Oporto Díaz Lima, 11 de junio 2005

Tabla de Contenido Concurrencia. Problemas clásicos de comunicación y sincronización. Mecanismos de comunicación.

CONCURRENCIA

Procesos concurrentes Modelos Multiprogramación en un único procesador Multiprocesador Multicomputador (proceso distribuido) Razones Compartir recursos físicos Compartir recursos lógicos Acelerar los cálculos Modularidad Comodidad

Sistema multiprogramado con una CPU

Sistema con multiprocesador

Tipos de procesos concurrentes Independientes Cooperantes Interacción entre procesos Compiten por recursos Comparten recursos

PROBLEMAS CLASICOS DE COMUNICACION

Prob. 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 1 2 3 4

Problema de la sección crítica 1 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

Solución al problema de la sección crítica Estructura general de cualquier mecanismo utilizado para resolver el problema de la sección crítica: Entrada en la sección crítica Código de la sección crítica Salida de la sección crítica Requisitos que debe ofrecer cualquier solución para resolver el problema de la sección crítica: Exclusión mutua Progreso Espera limitada

Problema del productor-consumidor 2 Existe una fuente de datos que se coloca en una cola para que sea consumido por otro proceso El productor puede generar sus datos en cualquier momento El consumidor puede coger un dato solamente cuando hay alguno No se puede consumir un dato hasta que se termine su producción. producer: consumer: forever forever produce(item) take(item) place(item) consume(item)

Problema del productor-consumidor

El problema de los lectores-escritores 3 Varios procesos comparten datos. Los procesos lectores sólo leen los datos. Los procesos escritores leen y escriben. Varios lectores pueden acceder simultáneamente a los datos compartidos. Se debe evitar que accedan simultáneamente un proceso escritor y cualquier otro proceso.

Comunicación cliente-servidor 4 Comunicación cliente-servidor

MECANISMOS DE COMUNICACION

Mecanismos de comunicación Tuberías (pipes, FIFOS) Variables compartidas Paso de mensajes. POSIX es el acrónimo de Portable operating system interface, Unix based (Sistema operativo portable basado en UNIX). Una familia de estándares de llamadas al sistema definidos por el IEEE y especificados formalmente en el IEEE 1003, intenta estandarizar las interfaces de los sistemas operativos para que las aplicaciones se ejecuten en distintas plataformas.

Tuberías (POSIX) Mecanismo de comunicación y sincronización 1 Mecanismo de comunicación y sincronización Sin nombre: pipes Con nombre: FIFOS Sólo puede utilizarse entre los procesos hijos del proceso que creó el pipe int pipe(int fildes[2]); Identificación: dos descriptores de archivo Para lectura Para escritura Flujo de datos: unidireccional Mecanismo con capacidad de almacenamiento

Comunicación unidireccional con tuberías

Comunicación bidireccional con tuberías

Tuberías read(fildes[0], buffer, n) Pipe vacío se bloquea el lector Pipe con p bytes Si p ³ n devuelve n Si p < n devuelve p Si pipe vacío y no hay escritores devuelve 0 write(fildes[1], buffer, n) Pipe lleno se bloquea el escritor Si no hay lectores se recibe la señal SIGPIPE Lecturas y escrituras atómicas (cuidado con tamaños grandes)

Tuberías con nombre en POSIX (FIFOS) Igual que los pipes Mecanismo de comunicación y sincronización con nombre Misma máquina Servicios int mkfifo(char *name, mode_t mode); Crea un FIFO con nombre name int open(char *name, int flag); Abre un FIFO (para lectura, escritura o ambas) Bloquea hasta que haya algún proceso en el otro extremo Lectura y escritura mediante read() y write() Igual semántica que los pipes Cierre de un FIFO mediante close() Borrado de un FIFO mediante unlink()

Memoria compartida 2 Declaración independiente de variables

Paso de mensajes Permite resolver: Primitivas básicas: Exclusión mutua 3 Permite resolver: Exclusión mutua Sincronizar un proceso que recibe un mensaje y otro que lo envía Comunicación de datos entre espacios de memoria diferentes (mismo computador, diferentes computadores) Primitivas básicas: send(destino, mensaje) envía un mensaje al proceso destino receive(destino, mensaje) recibe un mensaje del proceso destino

Paso de mensajes Múltiples soluciones Aspectos de diseño Tamaño del mensaje Flujo de datos (unidireccional, bidireccional) Nombrado  Directo  Indirecto (puertos, colas) Sincronización (síncrono, asíncrono) Almacenamiento

Uso de colas y puertos

Bibliografía http://es.wikipedia.org/wiki/POSIX