taller interbloqueo

7
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES DECANATURA DE INGENIERÍA Ciencias de la Computación e Ingeniería de Sistemas TALLER INTERBLOQUEO SISTEMAS OPERATIVOS DOCENTE OSCAR W. MENDOZA M. DEFINA INTERBLOQUEO: Es un bloqueo permanente de un conjunto de procesos que compiten por el recurso del sistema o se comunican unos con los otros, con diferencia de otros problemas concurrentes de procesos no existe solución eficaz para el caso en general. Todos los Interbloqueos suponen necesidades contrarias de recursos por parte de dos o mas procesos. DESCRIBA LAS CUATRO CONDICIONES PARA EL INTERBLOQUEO: 1- Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible. 2- Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita. Estos casos son muy necesarios, La exclusión mutua hace falta para asegurar la consistencia de resultados y la integridad de la base de datos. Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición: 4- Condición de espera circular (o círculo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.

Upload: camilo-andres-palencia-sanchez

Post on 01-Jul-2015

643 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Taller interbloqueo

ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALESDECANATURA DE INGENIERÍA

Ciencias de la Computacióne Ingeniería de SistemasTALLER INTERBLOQUEO

SISTEMAS OPERATIVOS

DOCENTEOSCAR W. MENDOZA M.

DEFINA INTERBLOQUEO:

Es un bloqueo permanente de un conjunto de procesos que compiten por el recurso del sistema o se comunican unos con los otros, con diferencia de otros problemas concurrentes de procesos no existe solución eficaz para el caso en general.Todos los Interbloqueos suponen necesidades contrarias de recursos por parte de dos o mas procesos.

DESCRIBA LAS CUATRO CONDICIONES PARA EL INTERBLOQUEO:

1-     Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible.

2-     Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.

3-     Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un  proceso. El proceso que los posee debe liberarlos en forma explicita.

Estos casos son muy necesarios, La exclusión mutua hace falta para asegurar la consistencia de resultados y la integridad de la base de datos. Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición:

4-     Condición de espera circular (o círculo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena.

DETERMINE UNA ESTRATEGIA PARA LA PREVENCIÓN DE CADA CAUSA DEL INTERBLOQUEO:

Una estrategia para prevenir los Interbloqueos seria los métodos indirectos los cuales consisten en impedir que una de las tres primeras condiciones dichas anteriormente aparezca para que se genere el interbloqueo.

DETERMINE LAS ESTRATEGIAS PARA LA DETECCIÓN DEL INTERBLOQUEO:

las estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las acciones del proceso. La detección del interbloqueo, se generan los recursos  que los procesos que necesitan siempre que sea posible.

Page 2: Taller interbloqueo

ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALESDECANATURA DE INGENIERÍA

Ciencias de la Computacióne Ingeniería de SistemasTALLER INTERBLOQUEO

SISTEMAS OPERATIVOS

DOCENTEOSCAR W. MENDOZA M.

La detección del interbloqueo es el proceso de determinar si existe un interbloqueo y si se identifica los procesos  y recursos que están en el.Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos. Cada vez que se solicita o se devuelve un recurso, se actualiza el estado de los recursos y se hace una verificación para observar si existe algún ciclo.

DETERMINE EN DETALLE LA ESTRATEGIA INTEGRADA DEL INTERBLOQUEO DE SILBERSCHATZ Y GALVÁN:

Esta estrategia consiste en usar distintas estrategias y una estrategias es agrupar los recursos en clases y cada clase cumple una función específica; estas clases en el orden que se describen abajo asi es que se ejecutan.

- Espacio intercambiable: Bloques de memoria en almacenamiento secundario para el intercambio de procesos.

-        Recursos de procesos: dispositivos asignables, como unidades de cintas y archivos.

-         Memoria principal: asignable a los procesos en páginas o segmentos.

-         Recursos internos: como canales de E / S.

DESCRIBA EL PROBLEMA DE LA CENA DE LOS FILÓSOFOS Y SUS DIFERENTES SOLUCIONES:

Cinco filósofos que vivían juntos. La vida de cada filósofo consistía principalmente en pensar y comer y, tras años de pensar, todos los filósofos se habían puesto de acuerdo en que la única comida que contribuía a sus esfuerzos eran los espaguetis.

Los preparativos de la comida eran simples : una mesa redonda en la que había una gran fuente de espaguetis, cinco platos, uno para cada filósofo y cinco tenedores. Un filósofo que quisiera comer iría a su lugar asignado en la mesa y, usando los dos tenedores de cada lado del plato, cogería los espaguetis y se los comería. El problema es lo siguiente : inventar un ritual (algoritmo) que permita comer a los filósofos. El algoritmo debe satisfacer la exclusión mutua (dos filósofos no pueden emplear el mismo tenedor a la vez), además de evitar el interbloqueo y la inanición (en este caso, este ultimo termino tiene un significado literal además del algorítmico).

Este problema, propuesto por Dijkstra, puede no parecer importante o relevante por si mismo. Sin embargo, sirve para ilustrar los problemas básicos del interbloqueo y la inanición. Es más, intentar desarrollar una solución revela muchas de las dificultades de la programación concurrente. Además, el problema de la cena de los filósofos puede verse como un caso representativo de los problemas relacionados con la coordinación  sobre recursos compartidos, que se produce cuando una aplicación

Page 3: Taller interbloqueo

ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALESDECANATURA DE INGENIERÍA

Ciencias de la Computacióne Ingeniería de SistemasTALLER INTERBLOQUEO

SISTEMAS OPERATIVOS

DOCENTEOSCAR W. MENDOZA M.

incluye hilos de ejecución concurrentes. Por consiguiente, este problema es un caso de prueba estándar para examinar soluciones a la sincronización.

Una primera solución al problema de la cena de los filósofos es: /* program cena_filósofos */semáforo tenedor[5] = {1};int i;void filosofo(int i){

while (cierto){

pensar ( );wait (tenedor [i]);wait (tenedor [(i + 1)mod 5];comer ( );signal (tenedor [(i + 1) mod 5]);wait (tenedor [1]);

}}void main ( ){

parbegin (filosofo (0), filosofo (1), filosofo (2), filosofo (3), filosofo (4));}  Sugiere una solución por medio de semáforos. Cada filosofo toma 1º el tenedor de su izquierda , y después el de su derecha. Cuando un filosofo termina de comer, devuelve los dos tenedores a la mesa. Esta solución, desafortunadamente, produce ínterbloqueo: si todos los filósofos están hambriento al mismo tiempo, todos se sientan, todos toman el tenedor de su izquierda y todos intentan tomar el otro tenedor que no estará. Esta solución es poco  decorosa, pues todos los filósofos pasan hambre.-Para superar el riesgo de ínter bloqueo se podrían adquirir 5 tenedores adicionales ( una solución mas saludable), o enseñar a los filósofos a comer espaguetis con un solo tenedor. Como otra solución posible , se podría considerar incorporar un sirviente que permita pasar solo a 4 cuatro filósofos a la vez al comedor. Con un máximo de 4 filósofos sentados, al menos uno de los filósofos tendrá acceso a los dos tenedores. En esta figura se muestra con semáforos. Esta solución esta libre de ínter bloqueo e inanición. /* program cena_filósofos */semáforo tenedor[5] = {1};semáforo habitación = {4};int i;void filosofo (int i){

Page 4: Taller interbloqueo

ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALESDECANATURA DE INGENIERÍA

Ciencias de la Computacióne Ingeniería de SistemasTALLER INTERBLOQUEO

SISTEMAS OPERATIVOS

DOCENTEOSCAR W. MENDOZA M.

while (cierto)pensar ( );wait (habitación);wait (tenedor [i]);wait (tenedor [(i + 1) mod 5]);comer ( );signal (tenedor [(i +1) mod 5]);wait (tenedor [i]);signal (habitación);

}void main ( ){

parbegin (filosofo (0), filosofo (1), filosofo (2), filosofo (3), filosofo (4));}

LOS MEDIOS PARA LA COMUNICACIÓN ENTRE PROCESOS EN UNIX SON LOS TUBOS, LOS MENSAJES Y LA MEMORIA COMPARTIDA; DESCRIBA CADA UNO DE ESTOS MEDIOS:

Tubos:Es un buffer circular que permite a dos procesos comunicarse según el modelo productor/consumidor.Cuando se crea un tubo, se le da un tamaño fijo en bytes. Cuando un proceso intenta escribir en el tubo, la solicitud de escritura se ejecuta inmediatamente si hay suficiente espacio; de otro modo, el proceso se bloquea. De la misma manera, un proceso lector se bloquea si intenta leer mas bytes de los que tiene disponible en ese momento. El sistema operativo es el encargado de la exclusión mutua, es decir, al tubo solo puede accederlo un proceso por vez.Hay dos tipos de tubos: con nombre y sin nombre. Los tubos sin nombre pueden ser compartidos por procesos afines y los tubos con nombre pueden ser compartidos por procesos no afines. Mensajes:Es un bloque de texto con un tipo asociado. UNIX proporciona las llamadas al sistema msgsnd y msgrcv para que los procesos puedan enviarse mensajes. Cada proceso tiene asociada una cola de mensajes, que funciona como un buzón de correos.El emisor del mensaje especifica el tipo de mensaje en cada envío y el receptor puede usarlo como criterio de selección. El receptor puede recuperar los mensajes tanto en orden FIFO como por el tipo asociado. Un proceso se suspenderá cuando intente leer de una cola vacía. Si un proceso intenta leer un mensaje de cierto tipo y falla, el proceso no se suspenderá. Memoria Compartida:Es la forma más rápida de comunicación entre procesos que brinda UNIX, se trata de un bloque común de memoria virtual compartido por varios procesos. Los procesos pueden leer y escribir en la

Page 5: Taller interbloqueo

ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALESDECANATURA DE INGENIERÍA

Ciencias de la Computacióne Ingeniería de SistemasTALLER INTERBLOQUEO

SISTEMAS OPERATIVOS

DOCENTEOSCAR W. MENDOZA M.

memoria compartida usando las mismas instrucciones que la maquina que emplea para leer y escribir en otras partes de su espacio de direcciones virtual. Los permisos de un proceso son solo lectura o lectura-escritura, según el proceso. Las limitaciones de exclusión mutua no forman parte del servicio de memoria compartida, sino que las debe proporcionar el proceso que hace uso del mismo.

EN UNIX LOS SEMÁFOROS Y LAS SEÑALES SE UTILIZAN PARA PROVOCAR ACCIONES EN OTROS PROCESOS; DESCRIBA LA FORMA COMO LO HACE CADA UNO DE ELLOS:

Semáforos : Generan operaciones .

Señal: La señal consiste en enviar una señal a una tabla de procesos para que este se actualice y seguido de esto ejecute alguna acción