O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Taller interbloqueo

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Taller interbloqueo

  1. 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 INTERBLOQUEODEFINA INTERBLOQUEO:Es un bloqueo permanente de un conjunto de procesos que compiten por el recurso del sistema o secomunican unos con los otros, con diferencia de otros problemas concurrentes de procesos no existesolució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 ELINTERBLOQUEO: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, recursosasignados con anterioridad, pueden solicitar nuevos recursos.3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados adejar 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 deresultados y la integridad de la base de datos. Puede no existir interbloqueo con solo estas trescondiciones. 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 dedos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de lacadena.DETERMINE UNA ESTRATEGIA PARA LA PREVENCIÓN DECADA CAUSA DEL INTERBLOQUEO:Una estrategia para prevenir los Interbloqueos seria los métodos indirectos los cuales consisten enimpedir que una de las tres primeras condiciones dichas anteriormente aparezca para que se genere elinterbloqueo.DETERMINE LAS ESTRATEGIAS PARA LA DETECCIÓN DELINTERBLOQUEO:las estrategias de detección de interbloqueo, no limitan el acceso a recursos ni restringen las accionesdel proceso. La detección del interbloqueo, se generan los recursos que los procesos que necesitansiempre que sea posible.
  2. 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 INTERBLOQUEOLa detección del interbloqueo es el proceso de determinar si existe un interbloqueo y si se identificalos 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 unaverificación para observar si existe algún ciclo.DETERMINE EN DETALLE LA ESTRATEGIA INTEGRADA DEL INTERBLOQUEO DESILBERSCHATZ Y GALVÁN:Esta estrategia consiste en usar distintas estrategias y una estrategias es agrupar los recursos en clasesy cada clase cumple una función específica; estas clases en el orden que se describen abajo asi es quese 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 YSUS DIFERENTES SOLUCIONES:Cinco filósofos que vivían juntos. La vida de cada filósofo consistía principalmente en pensar y comery, tras años de pensar, todos los filósofos se habían puesto de acuerdo en que la única comida quecontribuí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 deespaguetis, cinco platos, uno para cada filósofo y cinco tenedores. Un filósofo que quisiera comer iríaa su lugar asignado en la mesa y, usando los dos tenedores de cada lado del plato, cogería losespaguetis y se los comería. El problema es lo siguiente : inventar un ritual (algoritmo) que permitacomer a los filósofos. El algoritmo debe satisfacer la exclusión mutua (dos filósofos no puedenemplear el mismo tenedor a la vez), además de evitar el interbloqueo y la inanición (en este caso, esteultimo termino tiene un significado literal además del algorítmico).Este problema, propuesto por Dijkstra, puede no parecer importante o relevante por si mismo. Sinembargo, sirve para ilustrar los problemas básicos del interbloqueo y la inanición. Es más, intentardesarrollar una solución revela muchas de las dificultades de la programación concurrente. Además, elproblema de la cena de los filósofos puede verse como un caso representativo de los problemasrelacionados con la coordinación sobre recursos compartidos, que se produce cuando una aplicación
  3. 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 INTERBLOQUEOincluye hilos de ejecución concurrentes. Por consiguiente, este problema es un caso de pruebaestá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 , ydespué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 almismo tiempo, todos se sientan, todos toman el tenedor de su izquierda y todos intentan tomar el otrotenedor 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 massaludable), 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 4cuatro filósofos a la vez al comedor. Con un máximo de 4 filósofos sentados, al menos uno de losfilósofos tendrá acceso a los dos tenedores. En esta figura se muestra con semáforos. Esta soluciónesta 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. 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 ENUNIX SON LOS TUBOS, LOS MENSAJES Y LA MEMORIACOMPARTIDA; 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 eltubo, la solicitud de escritura se ejecuta inmediatamente si hay suficiente espacio; de otro modo, elproceso se bloquea. De la misma manera, un proceso lector se bloquea si intenta leer mas bytes de losque tiene disponible en ese momento. El sistema operativo es el encargado de la exclusión mutua, esdecir, 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 porprocesos 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 alsistema msgsnd y msgrcv para que los procesos puedan enviarse mensajes. Cada proceso tieneasociada 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 comocriterio de selección. El receptor puede recuperar los mensajes tanto en orden FIFO como por el tipoasociado. Un proceso se suspenderá cuando intente leer de una cola vacía. Si un proceso intenta leerun 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 bloquecomún de memoria virtual compartido por varios procesos. Los procesos pueden leer y escribir en lamemoria compartida usando las mismas instrucciones que la maquina que emplea para leer y escribir
  5. 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 INTERBLOQUEOen otras partes de su espacio de direcciones virtual. Los permisos de un proceso son solo lectura olectura-escritura, según el proceso. Las limitaciones de exclusión mutua no forman parte del serviciode 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 PARAPROVOCAR ACCIONES EN OTROS PROCESOS; DESCRIBA LAFORMA 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 yseguido de esto ejecute alguna acción

×