UTFSM Sistemas Operativos AYUDANTA 5 EXERCISES Procesos concurrentes

  • Slides: 14
Download presentation
UTFSM - Sistemas Operativos AYUDANTÍA 5: EXERCISES

UTFSM - Sistemas Operativos AYUDANTÍA 5: EXERCISES

Procesos concurrentes � Supongamos el siguiente código para la ejecución concurrente de los procesos

Procesos concurrentes � Supongamos el siguiente código para la ejecución concurrente de los procesos Proceso_A y Proceso_B: � ¿Qué función cumple cada uno de los semáforos? � ¿En qué orden se ejecutan las secciones de los procesos indicadas por A 1, A 2, B 1, B 2? Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 2

Trenes Una línea férrea une dos ciudades A y B, donde existe una sección

Trenes Una línea férrea une dos ciudades A y B, donde existe una sección del tramo que tiene una única vía, tal como se indica en la figura: � Existen trenes que viajan de A a B y de B a A. En la sección de vía única del tramo se deben coordinar los trenes para que en determinado instante sólo existan trenes viajando en un único sentido. � �Especifique en pseudo-código los procesos existentes y cómo se coordinan. �Ayuda: La solución debe tener un sólo semáforo. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 3

Verdadero/falso � Soportar Interrupciones vectorizadas significa contar con una arquitectura que tenga un registro

Verdadero/falso � Soportar Interrupciones vectorizadas significa contar con una arquitectura que tenga un registro especial (Status) que el sistema operativo debe leer para conocer la causa de la interrupción. En un sistema de interrupciones vectorizadas, la causa de la interrupción esta determinada por la dirección en el vector de interrupciones a la cual es transferido el control del programa � Los registros de trabajo del procesador constituyen la memoria mas rápida de un sistema computacional. Verdadero API (Application Program Interface) es sinónimo de Llamada al Sistema (System Call). Las llamadas al sistema son propias de cada sistema operativo. La API es una biblioteca con llamadas estándares que permite a las aplicaciones abstraer de como se generan las llamadas al sistema a través de interrupciones por software y de como se transfieren los parámetros y resultados entre el espacio de direcciones de los procesos y el núcleo, y viceversa. � Toda llamada al sistema se ejecuta en modo kernel. Verdadero � Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 4

Verdadero/falso � Multiprogramación es sinónimo de Multiprocesamiento. Multiprogramación es la ejecución (pseudo‐) concurrente de

Verdadero/falso � Multiprogramación es sinónimo de Multiprocesamiento. Multiprogramación es la ejecución (pseudo‐) concurrente de varias aplicaciones, no siendo necesaria la existencia de múltiples procesadores. En cambio, el Multiprocesamiento requiere de la existencia de varios procesadores. � En términos generales, un sistema de IPC (Comunicación entre Procesos) basado en paso de mensajes es mas eficiente que uno basado en memoria compartida. Al contrario. Paso de mensajes requiere la intervención del kernel. Usar memoria compartida solo requiere el apoyo del kernel durante la creación � En un sistema operativo de un procesador, la utilización de threads no mejora ningún tiempo. Solo permite dar mayor orden lógico a los desarrolladores de aplicaciones. Al contrario. La utilización de threads permite crear más rápido y con menos recursos instancias de ejecución concurrente, siendo la sincronización y comunicación entre threads más ágil que entre los procesos. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 5

Verdadero/falso La planificación con prioridades puede producir espera indefinida en los procesos, problema que

Verdadero/falso La planificación con prioridades puede producir espera indefinida en los procesos, problema que puede ser solucionado implementando una política con expropiación (preemptible) sobre los procesos. Es cierto que la planificación con prioridades puede producir postergación indefinida, pero este problema se soluciona mediante una técnica de envejecimiento (aging), donde los procesos aumentan su prioridad en la medida que esperan. � El problema de la solución de Peterson a la exclusión mutua es que produce “espera ocupada”; este problema es solucionado con el uso de instrucciones de maquina especiales , como por ejemplo Test. And. Set. La solución de Peterson es por software y produce espera ocupada, pero así lo producen también las soluciones basadas sólo en hardware, como por ejemplo Test. And. Set. La solución a este problema requiere de una integración con la gestión de los procesos. � Un semáforo es más que una variable de tipo entera, dado que se requiere una integración con la gestión de procesos y asociar una cola de espera a los procesos bloqueados. Verdadero � Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 6

Mate � Suponga que existen varios tomadores de mate (matero), donde cada uno posee

Mate � Suponga que existen varios tomadores de mate (matero), donde cada uno posee su propio vaso, pero que comparten entre todos un recipiente con un máximo de 10 cargas. Si bien es cierto que el recipiente tiene varias cargas, en el momento en que un matero se sirve mate hace uso exclusivo de éste y los demás deben esperar hasta quede libre. Para evitar que las cargas disponibles en el recipiente se agoten, existe un reponedor que va cargando el recipiente en la medida que exista espacio para ello. La acción de reponer una carga también hace uso exclusivo del recipiente por parte del reponedor. � Hacer pseudocódigo del matero y del reponedor. � Sincronizar ambas tareas. � Funciona esta solución para N reponedores? Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 7

Test And Set � Implemente Wait() y Signal() usando la instrucción Test. And. Set().

Test And Set � Implemente Wait() y Signal() usando la instrucción Test. And. Set(). Debe tener la menor cantidad de busy wait posible. �Ayuda: ○ P() y V() es lo mismo que Wait() y Signal(). ○ Para minimizar busy wait se deben “suspender” los procesos. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 8

Test And Set � Solución anterior (para efectos de los que no estuvieron en

Test And Set � Solución anterior (para efectos de los que no estuvieron en la ayudantía). Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 9

Monitores (explicación) � Solo 1 objeto puede usar los métodos del monitor a la

Monitores (explicación) � Solo 1 objeto puede usar los métodos del monitor a la vez. � Hay variables especiales, condiciones, que tienen wait() y signal(). �Al esperar (wait) una condición el thread no ocupa el monitor, queda suspendido. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 10

Monitores � Implementar un semáforo como monitor. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com

Monitores � Implementar un semáforo como monitor. Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 11

Compilando un monitor � Imagínese un compilador que toma una clase especificada como monitor

Compilando un monitor � Imagínese un compilador que toma una clase especificada como monitor y al compilarla la transforma en una clase normal, pero con semáforos. �Cómo compilaría el siguiente monitor? Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 12

Clase monitor sin compilar Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 13

Clase monitor sin compilar Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 13

Clase compilada Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 14

Clase compilada Ayudantía Sistemas Operativos http: //villaseca. wordpress. com 14