La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Unidad 2: Comunicación entre Procesos (1ra parte)"— Transcripción de la presentación:

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

2 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.

3 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.

4 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.

5 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.

6 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.

7 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.

8 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.

9 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.

10 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.

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

12 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 (b) Proceso 1.

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

14 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.

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

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

17 Mutexes Implementación de mutex_lock y mutex_unlock

18 Monitores (1) Ejemplo de un monitor

19 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)

20 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)

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

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

23 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 Stallings W., “Sistemas Operativos”, 5ta. Edición. Prentice-Hall. 2004

24 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

25 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)

26 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


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

Presentaciones similares


Anuncios Google