Unidad 2: Comunicación entre Procesos (1ra parte)

Slides:



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

Capitulo 7: Procesamiento batch y el Job Entry Subsystem (JES)
Construcción de Sistemas Distribuidos Rogelio Ferreira Escutia
“Fundamentos de Sistemas Distribuidos”
Tabla de Contenido Concurrencia.
1 LA UTILIZACION DE LAS TIC EN LAS PYMES GALLEGAS AÑO Resumen. 24 de Junio de 2005.
TEMA 1 Introducción a la Programación Concurrente
Presentación general del curso
Diseño de Sistemas Operativos Ing. Ángel Caffa
CLASE 4 EL ENSAMBLADOR.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Planificación con Prioridades Fijas
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Universidad Nacional Autónoma de Honduras
INTRODUCCIÓN A JAVA.
PROTOCOLOS Y ESTANDARES DE RED
Trascendencia de este curso Curso Introducción a la Computación 1
INTERPROCESS COMMUNICATIONS-1 Cátedra: Sistemas Operativos UTN-FRSF
Compartir Informacion Compartir Hardware y Software
Introducción a los protocolos de enrutamiento dinámico
sisOpe Presentación Curso 13/14
Sistemas Operativos Distribuidos
Aspectos Avanzados de la Tecnología de Objetos
Administración de Archivos: Seguridad (Material adicional)
Administración de Memoria
Administración de Memoria
Unidad 2: Comunicación entre Procesos
Sistemas Operativos I Unidad 2: Procesos.
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 7: Proceso de Ingeniería.
Administración de Memoria
Unidad 2: Procesos e Hilos (Threads)
Unidad 2: Administración de Procesos en sistemas tipo UNIX
Sistemas Operativos ISI, III Nivel, 4hs. UTN FRD ISI, III Nivel, Sistemas Operativos, Lic. Guillermo Cherencio.
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Introducción a los SSOO Sebastián Sánchez Prieto.
Elemento Lógico (Software)
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
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.
sisOpe Presentación Curso 14/15
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
PROGRAMACION CONCURRENTE
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
EL SISTEMA OPERATIVO.
Características de un sistema operativo
Introducción a los Sistemas Operativos
SISTEMAS OPERATIVOS.
Sincronización de Procesos
Sistemas Concurrentes I.T. Informática de Sistemas Curso
Tema 9.6: Sincronización de Procesos
Sistemas Operativos Ingeniería en Computación M.C. J Jesús Arellano Pimentel Ciclo Escolar B.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
ICC243 Sistemas Operativos
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
Sistemas Operativos.
INTRODUCCION A SISTEMAS OPERATIVOS
Metodología de la programación
SISTEMAS OPERATIVOS Por Martín Arosemena.
Unidad 2 – Gestión de Procesos
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
UTFSM - Sistemas Operativos
Elementos y tipos de sistemas operativos
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
1 Unidad I.2.- Objetivos de los Sistemas Distribuidos Ing. Luis Armando García Eliseo © Agosto 2011.
Estructura del sistema operativo
1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Presentación general.
Transcripción de la presentación:

Unidad 2: Comunicación entre Procesos (1ra parte) Sistemas Operativos I Unidad 2: Comunicación entre Procesos (1ra parte)

Contenidos Conceptos de proceso. Estados de un proceso. Modelo de cinco estados de procesos. Control de procesos. Modos de ejecución. Creación de procesos. Administración de procesos en Unix/Linux. Procesos e hilos. Creación y ejecución de procesos. Propuesta de proyecto anual. Control 1. Comunicación entre procesos: Concurrencia. Exclusión mutua. Semáforos. Mensajes. Taller 2: Comunicación entre procesos. Control 2. Clase de recapitulación. Prueba de Cátedra 1.

Objetivos y Metodología Estudiar y comprender los procesos, sus estados, la comunicación y administración de éstos. Metodología: Clases expositivas mezclando teoría y ejercicios. Se realizarán talleres en los que el estudiante deberá programar algoritmos básicos en los que se utilicen procesos, estados y su comunicación.

Concurrencia Los temas fundamentales de diseño de sistemas operativos están relacionados con la gestión de procesos: Multiprogramación: Es la gestión de varios procesos dentro de un sistema monoprocesador. La mayoría de los computadores personales, estaciones de trabajo, sistemas monoprocesador y sistemas operativos actuales de estas máquinas, tales como Windows y Linux dan soporte a la multiprogramación, incorporándola para obtener sistemas monoprocesador compartidos. Multiproceso: Es la gestión de varios procesos dentro de un sistema multiprocesador. Recientemente, el multiproceso ha empezado a ganar espacio en los servidores y las estaciones de trabajo que demandan altas prestaciones. Windows NT es un ejemplo de un sistema operativo diseñado para estos entornos. Proceso distribuido: Es la gestión de varios procesos que se ejecutan en sistemas de computadores múltiples y remotas.

Concurrencia (2) La concurrencia es el punto clave de los tres campos anteriores y fundamentales para el diseño de sistemas operativos. La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos, cómo se comparten y cómo se realiza la competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos. Estas cuestiones no solo surgen en entornos de multiprocesadores y proceso distribuido, sino incluso en sistemas multiprogramados con un solo procesador.

Contextos para la concurrencia La concurrencia puede presentarse en tres contextos diferentes: Varias aplicaciones: La multiprogramación se creó para permitir que el tiempo de procesador de la máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliación de los principios del diseño modular y la programación estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Las mismas ventajas de estructuración son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos.

Comunicación entre procesos Los procesos necesitan comunicarse con otros para compartir espacio de memoria, variables, etc. Por ejemplo: En una tubería (pipeline), la salida del primer proceso debe pasar como entrada al segundo proceso. Es necesario que la comunicación sea, preferentemente, de una manera bien estructurada, sin usar interrupciones. Aparecen tres aspectos: ¿Cómo puede un proceso pasar información a otro? ¿Cómo se asegura que dos ó mas procesos no se interfieren mutuamente cuando realizan actividades críticas? Secuencia apropiada de acciones cuando existen dependencias: Si el proceso A produce datos que el proceso B utiliza, B debe esperar hasta que A haya producido algún dato antes de comenzar a emplearlos.

Comunicación …(2) Es importante mencionar que dos de los aspectos anteriores son válidos también para los hilos: Pasar información es fácil para los hilos, ya que ellos comparten el mismo espacio de direcciones. Para comunicar hilos ubicados en espacios de direcciones diferentes se tienen que aplicar los conceptos de comunicación entre procesos. Sin embargo, el mantener su individualidad y secuencia propia aplica a los hilos por igual que a los procesos. Existen los mismos problemas y se aplican las mismas soluciones. La discusión de estos problemas se realizará en el contexto de los procesos, pero debe mantenerse la idea de que las mismas soluciones se aplican también a los hilos.

Condiciones de competencia (Race Conditions) En algunos SO, los procesos que cooperan para resolver tareas tienen que competir (ó concursar ó correr) por los recursos, lo que crea el concepto de Condiciones de Competencia (Race Conditions). La figura muestra a dos procesos, A y B, que necesitan imprimir sus respectivos archivos y acceden a la carpeta compartida del demonio (daemon) que la hace: spooler.

Secciones y Regiones Críticas ¿Cómo evitar las condiciones de carrera? Hay cuatro condiciones que permiten suministrar exclusión mutua: No debe haber dos procesos que se encuentren simultáneamente en una región crítica. No se debe asumir ningún criterio respecto a las velocidades de ejecución de los procesos ni respecto al número de CPUs. Ningún proceso ejecutándose en su región crítica puede bloquear a algún otro proceso. Ningún proceso puede realizar una espera indefinida dentro de su región crítica.

Exclusión mutua mediante regiones críticas La figura muestra como manejar la exclusión mutua utilizando regiones críticas:

Exclusión mutua con espera ocupada Se propone como solución al problema de la región crítica. Consiste en emplear una variable que actúe como bandera ó indicador para permitir el acceso de un proceso a su región crítica. Proceso 0. (b) Proceso 1.

Exclusión mutua con espera ocupada: Solución de Peterson Peterson ofreció esta solución para obtener exclusión mutua:

Instrucción TSL Los computadores Intel x86 poseen una instrucción privilegiada llamada TSL (Test and Set Lock) que solamente puede ejecutarse en modo núcleo, la cual permite entrar y salir de regiones críticas.

Dormir y despertar El problema del Productor - Consumidor puede alcanzar condiciones de concurso fatales:

Semáforos Una solución simple al problema del Productor – Consumidor es utilizar semáforos:

Mutexes Implementación de mutex_lock y mutex_unlock

Monitores (1) Ejemplo de un monitor

Monitores (2) El problema del productor - consumidor bosquejado con monitores: Sólo un procedimiento monitor activo en un instante de tiempo. El búfer posee N zonas de memoria (slots)

Solución al problema del producer-consumer en Java (parte 1) Solución en Java (1) Solución al problema del producer-consumer en Java (parte 1)

Solution to producer-consumer problem in Java (part 2) Solución en Java (2) Solution to producer-consumer problem in Java (part 2)

The producer-consumer problem with N messages Pasando Mensajes The producer-consumer problem with N messages

Fuentes de información Tanenbaum A., “Sistemas Operativos Modernos”, Prentice Hall, 1994 Tanenbaum A., “Sistemas Operativos: diseño e implementación” Prentice-Hall, 1998 Tanenbaum A., “Sistemas Operativos Distribuidos”, Prentice Hall, 2003 Carretero, J. García, F. Pérez, F. “Sistemas Operativos: Una visión aplicada” Mc Graw Hill. 2001. Stallings W., “Sistemas Operativos”, 5ta. Edición. Prentice-Hall. 2004

Textos en biblioteca de la sede Documento No. Año Título Autor 11486 2001 Sistemas operativos. Stallings, William. 9137 2003 Sistemas operativos modernos. Tanenbaum, Andrew S. 8443 1998 Sistemas operativos: Diseño e implementación. 6980 4684 1996 Sistemas operativos distribuidos. 3137 1993

Referencias en Internet Comunicación entre procesos (IPC) Wiki - Comunicación entre procesos Administración de procesos Comunicación entre procesos – PIPES Comunicación entre procesos David Luis la Red Martínez “SISTEMAS OPERATIVOS” Domingo Mery “Sistemas Operativos” Jorge Alfonso Briones García “Sistemas Operativos Distribuidos (material adicional)” Sistemas operativos (SIMULACIONES Y ANIMACIONES)

Textos en Internet (inglés) Andrew S. Tanenbaum “Modern Operating Systems” Andrew S. Tanenbaum “Distributed Systems: Principles and Paradigms” George Coulouris, Jean Dollimore and Tim Kindberg “Distributed Systems: Concepts and Design”, 3ra edición (4ta edición 2005) Avi Silberschatz, Peter Baer Galvin & Greg Gagne “Operating System Concepts” Minix 3 Operating System