SlideShare a Scribd company logo
1 of 5
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                                     SISTEMAS OPERATIVOS
                                       DECANATURA DE INGENIERÍA
                                    Ciencias de la Computación                       DOCENTE
                                     e Ingeniería de Sistemas                        OSCAR W. MENDOZA M.
                                     TALLER INTERBLOQUEO




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.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                                        SISTEMAS OPERATIVOS
                                        DECANATURA DE INGENIERÍA
                                     Ciencias de la Computación                         DOCENTE
                                      e Ingeniería de Sistemas                          OSCAR W. MENDOZA M.
                                      TALLER INTERBLOQUEO


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
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                                       SISTEMAS OPERATIVOS
                                         DECANATURA DE INGENIERÍA
                                      Ciencias de la Computación                       DOCENTE
                                       e Ingeniería de Sistemas                        OSCAR W. MENDOZA M.
                                       TALLER INTERBLOQUEO


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)
{
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                                      SISTEMAS OPERATIVOS
                                         DECANATURA DE INGENIERÍA
                                      Ciencias de la Computación                      DOCENTE
                                       e Ingeniería de Sistemas                       OSCAR W. MENDOZA M.
                                       TALLER INTERBLOQUEO


   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
memoria compartida usando las mismas instrucciones que la maquina que emplea para leer y escribir
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES
                                                                                     SISTEMAS OPERATIVOS
                                       DECANATURA DE INGENIERÍA
                                    Ciencias de la Computación                       DOCENTE
                                     e Ingeniería de Sistemas                        OSCAR W. MENDOZA M.
                                     TALLER INTERBLOQUEO


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

More Related Content

Viewers also liked

Accessibilité - Tourisme & Handicap
Accessibilité - Tourisme & HandicapAccessibilité - Tourisme & Handicap
Accessibilité - Tourisme & Handicapcelinevenica
 
Table ronde j.frignet jm.bluet y.basiron
Table ronde j.frignet jm.bluet y.basironTable ronde j.frignet jm.bluet y.basiron
Table ronde j.frignet jm.bluet y.basironAlliancePalmeDurable
 
Réforme du droit des obligations
Réforme du droit des obligationsRéforme du droit des obligations
Réforme du droit des obligationsNicolas Dhuin
 
Beaute de l'antarctique
Beaute de l'antarctiqueBeaute de l'antarctique
Beaute de l'antarctiqueMarilena Tun
 
Tratado de extradicion ven y usa mesicic3 ven anexo36
Tratado de extradicion ven y usa  mesicic3 ven anexo36Tratado de extradicion ven y usa  mesicic3 ven anexo36
Tratado de extradicion ven y usa mesicic3 ven anexo36Solo Clic Vzla
 
Roadbook Quinzaine de l'Innovation - le rapport complet
Roadbook Quinzaine de l'Innovation - le rapport completRoadbook Quinzaine de l'Innovation - le rapport complet
Roadbook Quinzaine de l'Innovation - le rapport completPatrick Hollenfeltz
 
Lettre éCo Citoyen Prg Quotidien à Distance
Lettre éCo Citoyen Prg   Quotidien à DistanceLettre éCo Citoyen Prg   Quotidien à Distance
Lettre éCo Citoyen Prg Quotidien à DistanceAfet
 
Conférence 20 déc 2007
Conférence 20 déc 2007Conférence 20 déc 2007
Conférence 20 déc 2007ccfi
 
Hacemos Um
Hacemos UmHacemos Um
Hacemos UmJNR
 
Powerpoint scenario v2
Powerpoint scenario v2Powerpoint scenario v2
Powerpoint scenario v2FORM.AT.ION
 
Paris panorama
Paris panoramaParis panorama
Paris panoramaIgal Assaf
 
Guia3 once_derechos de autor
Guia3 once_derechos de autorGuia3 once_derechos de autor
Guia3 once_derechos de autorCiuad de Asis
 

Viewers also liked (20)

Accessibilité - Tourisme & Handicap
Accessibilité - Tourisme & HandicapAccessibilité - Tourisme & Handicap
Accessibilité - Tourisme & Handicap
 
Table ronde j.frignet jm.bluet y.basiron
Table ronde j.frignet jm.bluet y.basironTable ronde j.frignet jm.bluet y.basiron
Table ronde j.frignet jm.bluet y.basiron
 
Roadbook URBANZEN
Roadbook URBANZENRoadbook URBANZEN
Roadbook URBANZEN
 
Prueba
PruebaPrueba
Prueba
 
Réforme du droit des obligations
Réforme du droit des obligationsRéforme du droit des obligations
Réforme du droit des obligations
 
Beaute de l'antarctique
Beaute de l'antarctiqueBeaute de l'antarctique
Beaute de l'antarctique
 
Conte du-pot-chinois
Conte du-pot-chinoisConte du-pot-chinois
Conte du-pot-chinois
 
Tratado de extradicion ven y usa mesicic3 ven anexo36
Tratado de extradicion ven y usa  mesicic3 ven anexo36Tratado de extradicion ven y usa  mesicic3 ven anexo36
Tratado de extradicion ven y usa mesicic3 ven anexo36
 
Roadbook Quinzaine de l'Innovation - le rapport complet
Roadbook Quinzaine de l'Innovation - le rapport completRoadbook Quinzaine de l'Innovation - le rapport complet
Roadbook Quinzaine de l'Innovation - le rapport complet
 
Lettre éCo Citoyen Prg Quotidien à Distance
Lettre éCo Citoyen Prg   Quotidien à DistanceLettre éCo Citoyen Prg   Quotidien à Distance
Lettre éCo Citoyen Prg Quotidien à Distance
 
3 temas
3 temas3 temas
3 temas
 
Conférence 20 déc 2007
Conférence 20 déc 2007Conférence 20 déc 2007
Conférence 20 déc 2007
 
Rhiya
RhiyaRhiya
Rhiya
 
Hacemos Um
Hacemos UmHacemos Um
Hacemos Um
 
Stage créateurs entreprises cci du cher 2013
Stage créateurs entreprises cci du cher 2013Stage créateurs entreprises cci du cher 2013
Stage créateurs entreprises cci du cher 2013
 
Mauçapémasos le village
Mauçapémasos le villageMauçapémasos le village
Mauçapémasos le village
 
Powerpoint scenario v2
Powerpoint scenario v2Powerpoint scenario v2
Powerpoint scenario v2
 
CV REVISEE
CV REVISEECV REVISEE
CV REVISEE
 
Paris panorama
Paris panoramaParis panorama
Paris panorama
 
Guia3 once_derechos de autor
Guia3 once_derechos de autorGuia3 once_derechos de autor
Guia3 once_derechos de autor
 

Similar to Taller interbloqueo

Taller Interbloqueo
Taller InterbloqueoTaller Interbloqueo
Taller Interbloqueoxcarlos91
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4Inteligencia artificial-y-sistemas-expertos-1195485415209453-4
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4Viri Alejo
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Andrea
 
Inteligencia Artificial y Sistemas Expertos
Inteligencia Artificial y Sistemas ExpertosInteligencia Artificial y Sistemas Expertos
Inteligencia Artificial y Sistemas ExpertosCarlosPalacios
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativosCrisel777
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos Cristhian Rosales
 
Problemas basicos de comunicación
Problemas basicos de comunicaciónProblemas basicos de comunicación
Problemas basicos de comunicaciónAlex Acosta
 
Utp 2015-2_sirn_s9_logica difusa
 Utp 2015-2_sirn_s9_logica difusa Utp 2015-2_sirn_s9_logica difusa
Utp 2015-2_sirn_s9_logica difusajcbp_peru
 
Taller Concurrencia Y Exclusion Mutua 1
Taller Concurrencia Y Exclusion Mutua 1Taller Concurrencia Y Exclusion Mutua 1
Taller Concurrencia Y Exclusion Mutua 1xcarlos91
 
Taller 1 introduccion ingenieria de sistemas
Taller 1 introduccion ingenieria de sistemasTaller 1 introduccion ingenieria de sistemas
Taller 1 introduccion ingenieria de sistemasjeffer-bernal
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacintoAreli996
 

Similar to Taller interbloqueo (20)

Taller Interbloqueo
Taller InterbloqueoTaller Interbloqueo
Taller Interbloqueo
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4Inteligencia artificial-y-sistemas-expertos-1195485415209453-4
Inteligencia artificial-y-sistemas-expertos-1195485415209453-4
 
Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.Taller concurrencia y exclusión mutua.
Taller concurrencia y exclusión mutua.
 
Inteligencia Artificial y Sistemas Expertos
Inteligencia Artificial y Sistemas ExpertosInteligencia Artificial y Sistemas Expertos
Inteligencia Artificial y Sistemas Expertos
 
2° unidad sistemas operativos
2° unidad sistemas operativos2° unidad sistemas operativos
2° unidad sistemas operativos
 
Sincronización de Procesos
Sincronización de Procesos Sincronización de Procesos
Sincronización de Procesos
 
Tgs
TgsTgs
Tgs
 
Lógica Difusa
Lógica DifusaLógica Difusa
Lógica Difusa
 
Lógica Difusa
Lógica DifusaLógica Difusa
Lógica Difusa
 
Tareas
Tareas Tareas
Tareas
 
Problemas basicos de comunicación
Problemas basicos de comunicaciónProblemas basicos de comunicación
Problemas basicos de comunicación
 
Utp 2015-2_sirn_s9_logica difusa
 Utp 2015-2_sirn_s9_logica difusa Utp 2015-2_sirn_s9_logica difusa
Utp 2015-2_sirn_s9_logica difusa
 
Portafolio 2
Portafolio 2Portafolio 2
Portafolio 2
 
Taller Concurrencia Y Exclusion Mutua 1
Taller Concurrencia Y Exclusion Mutua 1Taller Concurrencia Y Exclusion Mutua 1
Taller Concurrencia Y Exclusion Mutua 1
 
Taller 1 introduccion ingenieria de sistemas
Taller 1 introduccion ingenieria de sistemasTaller 1 introduccion ingenieria de sistemas
Taller 1 introduccion ingenieria de sistemas
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
deadlok- interbloqueos
deadlok- interbloqueosdeadlok- interbloqueos
deadlok- interbloqueos
 
UNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADORUNIDAD II ADMINISTRADOR DE PROCESADOR
UNIDAD II ADMINISTRADOR DE PROCESADOR
 
INTRODUCCIÓN AL ENFOQUE DE SISTEMAS
INTRODUCCIÓN AL ENFOQUE DE SISTEMASINTRODUCCIÓN AL ENFOQUE DE SISTEMAS
INTRODUCCIÓN AL ENFOQUE DE SISTEMAS
 

More from Camilo Andres Palencia Sanchez (7)

Correccion segundo parcial
Correccion segundo parcialCorreccion segundo parcial
Correccion segundo parcial
 
Correcion parcial 1 corte
Correcion parcial 1 corteCorrecion parcial 1 corte
Correcion parcial 1 corte
 
Modelos de transicion
Modelos de transicionModelos de transicion
Modelos de transicion
 
Modelos de transicion
Modelos de transicionModelos de transicion
Modelos de transicion
 
Caracteristicas de un ensayo
Caracteristicas de un ensayoCaracteristicas de un ensayo
Caracteristicas de un ensayo
 
Metodos de estudio
Metodos de estudioMetodos de estudio
Metodos de estudio
 
Metodos de estudio
Metodos de estudioMetodos de estudio
Metodos de estudio
 

Taller interbloqueo

  • 1. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Ciencias de la Computación DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER INTERBLOQUEO 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.
  • 2. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Ciencias de la Computación DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER INTERBLOQUEO 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
  • 3. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Ciencias de la Computación DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER INTERBLOQUEO 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) {
  • 4. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Ciencias de la Computación DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER INTERBLOQUEO 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 memoria compartida usando las mismas instrucciones que la maquina que emplea para leer y escribir
  • 5. ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES SISTEMAS OPERATIVOS DECANATURA DE INGENIERÍA Ciencias de la Computación DOCENTE e Ingeniería de Sistemas OSCAR W. MENDOZA M. TALLER INTERBLOQUEO 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