1 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José...

26
1 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Sistemas Operativos I Unidad 2: Comunicación entre Procesos (1 ra parte)

Transcript of 1 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José...

Page 1: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

1 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Sistemas Operativos ISistemas Operativos I

Unidad 2:Comunicación entre Procesos

(1ra parte)

Page 2: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

2 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

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.• Clase de recapitulación.• Prueba de Cátedra 1.

Page 3: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

3 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Objetivos y MetodologíaObjetivos 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.

Page 4: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

4 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

ConcurrenciaConcurrencia

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

Page 5: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

5 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Concurrencia (2)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.

Page 6: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

6 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Contextos para la concurrenciaContextos 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.

Page 7: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

7 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Comunicación entre procesosComunicació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:1. ¿Cómo puede un proceso pasar información a otro?2. ¿Cómo se asegura que dos ó mas procesos no se

interfieren mutuamente cuando realizan actividades críticas?

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

Page 8: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

8 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Comunicación …(2)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.

Page 9: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

9 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Condiciones de competenciaCondiciones de competencia ((Race ConditionsRace 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.

Page 10: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

10 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Secciones y Regiones CríticasSecciones y Regiones Críticas

¿Cómo evitar las condiciones de carrera?Hay cuatro condiciones que permiten suministrar exclusión mutua:

1. No debe haber dos procesos que se encuentren simultáneamente en una región crítica.

2. No se debe asumir ningún criterio respecto a las velocidades de ejecución de los procesos ni respecto al número de CPUs.

3. Ningún proceso ejecutándose en su región crítica puede bloquear a algún otro proceso.

4. Ningún proceso puede realizar una espera indefinida dentro de su región crítica.

Page 11: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

11 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

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

utilizando regiones críticas:

Page 12: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

12 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Exclusión mutua con espera ocupadaExclusió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.(a) Proceso 0. (b) Proceso 1.

Page 13: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

13 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Exclusión mutua con espera ocupada: Exclusión mutua con espera ocupada: Solución de PetersonSolución de Peterson

Peterson ofreció esta solución para obtener exclusión mutua:

Page 14: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

14 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Instrucción TSLInstrucció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.

Page 15: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

15 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Dormir y despertarDormir y despertar• El problema del Productor - Consumidor puede

alcanzar condiciones de concurso fatales:

Page 16: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

16 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

SemáforosSemáforos

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

Page 17: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

17 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

MutexesMutexes

Implementación de mutex_lock y mutex_unlock

Page 18: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

18 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Monitores (1)Monitores (1)

Ejemplo de un monitor

Page 19: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

19 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Monitores (2)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)

Page 20: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

20 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Solución en Java (1)Solución en Java (1)

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

Page 21: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

21 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Solución en Java (2)Solución en Java (2)

Solution to producer-consumer problem in Java (part 2)

Page 22: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

22 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Pasando MensajesPasando Mensajes

The producer-consumer problem with N messages

Page 23: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

23 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Fuentes de informaciónFuentes 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

Page 24: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

24 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Textos en biblioteca de la sedeTextos 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.

Tanenbaum, Andrew S.

6980 1998 Sistemas operativos: Diseño e implementación.

Tanenbaum, Andrew S.

4684 1996 Sistemas operativos distribuidos. Tanenbaum, Andrew S.

3137 1993 Sistemas operativos modernos. Tanenbaum, Andrew S.

Page 25: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

25 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Referencias en InternetReferencias 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)

Page 26: 1  2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy Sistemas Operativos I Unidad 2: Comunicación.

26 2007 Universidad de Las Américas - Escuela de Ingeniería - Sistemas Operativos - Dr. Juan José Aranda Aboy

Textos en Internet (inglés)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