SlideShare una empresa de Scribd logo
1 de 55
CONCURRENCIA INTERBLOQUEO E
INANICION
 Este capítulo continúa el estudio de la
concurrencia, considerando dos problemas que
importunan todos los intentos de realizar
procesamiento concurrente: Interbloqueo e
Inanición.
 Comienza con una exposición de los principios
básicos del interbloqueo y de un problema afín, la
inanición.
PRINCIPIOS DEL
INTERBLOQUEO
 El Interbloqueo se
puede definir como el
bloque permanente de
un conjunto de
procesos que compiten
por los recursos del
sistema, todos los
interbloqueos suponen
necesidades
contradictorias de
recursos, por parte de
dos o más procesos.
 Un ejemplo clásico de
interbloqueo es el
interbloqueo de tráfico
 Ahora se describe una situación de
interbloqueo, en la que intervienen procesos
y recursos informáticos, al siguiente gráfico
se le asigna la siguiente forma:
 Proceso P Proceso Q
Obtener A Obtener B
Obtener B Obtener A
Liberar A Liberar B
Liberar B Liberar A
El que se produzca
interbloqueo o no,
depende de la
dinámica de la
ejecución, por
ejemplo; supóngase
que p no necesitara
ambos recursos en
el mismo instante y
tuviera la siguiente
forma:
Proceso P
Obtener A
Liberar A
Obtener B
Liberar B
En este caso no se produce interbloqueo
 Dos Categorías de Recursos:
*Reutilizable
*Consumible
◦ Que son los Recursos Reutilizables?
*Pueden ser usados con seguridad por un proceso,
no se agota con el uso.
*Obtienen unidades de recursos que liberan
posteriormente para que otros procesos lo utilicen.
Ejemplos:
*Procesadores
*Canales de E/S
*MP, MS
*Archivos, Bases de Datos
◦ Ejemplo Ilustrativo:
• Dos procesos compiten por el acceso exclusivo a un
archivo D del disco y a una unidad de cinta C. Guiarse
por la tabla 6.4, el interbloqueo se produce si un
proceso pide un recurso y retiene otro.
p0p1q0q1p2q2
Esta es la forma para que se produzca un interbloqueo en
un sistema multiprogramado
◦ Estrategias para resolver interbloqueos:
*Restricciones en el diseño del sistema
en el orden que se solicitan los recursos.
 Que son los Recursos Reutilizables?
*Puede ser creado (producido)
*Puede ser destruido (consumido)
*No existe límite de recursos
consumibles
*Proceso Productor que no está
bloqueado libera cualquier número de
recursos consumidos
Ejemplos
*Interrupciones
*Señales
*Buffer de E/S
 Elementos Claves
*Prevención y predicciónrevisar condiciones
de interbloqueo.
Condiciones de interbloqueo
Deben darse tres condiciones para que pueda
producirse un interbloqueo, las cuales son:
1.- Exclusión Mutua: solo un proceso
puede usar un recurso cada vez.
Hace falta para asegurar consistencia
de resultados y la integridad de BD
2.- Retención y Espera: un proceso
puede retener unos recursos asignados
mientras espera que se le asignen otros
3.- No Apropiación: ningún proceso
puede ser forzado a abandonar un recurso
que retenga; la apropiación no puede
aplicar arbitrariamente.
Puede existir interbloqueos con estas tres
condiciones pero puede haber una cuarta que
produzca un interbloqueo.
4.-Círculos Viciosos de Espera:
Cadena cerrada de procesos, retiene al
menos un recurso que necesita el
siguiente proceso de la cadena.
TABLA DE RECURSOS CONSUMIBLES
ELEMENTOS CLAVES
 Tener en cuenta.
*Las tres primeras condiciones son necesarias
pero no suficientes para el interbloqueo
*Consecuencia potencial de las tres anteriores
es la cuarta
*Se produce espera irresoluble. Un círculo de
espera irresoluble es la definición de
interbloqueo
La estrategia de prevención del interbloqueo
consiste a grandes rasgos en diseñar un
sistema de manera que este excluida la
posibilidad de interbloqueo, existen dos
métodos:
*Indirectos: Impiden la aparición de las tres
condiciones antes mencionadas.
*Directos: Evitan la aparición del círculo vicioso
de espera
La 1era de las condiciones no puede anularse. Si
el acceso a un recurso necesita exclusión mutua,
el S.O. debe soportarla. Se puede producir
interbloqueo si más de un proceso necesita
permiso de escritura
Puede prevenirse exigiendo que todos los
procesos soliciten todos los recursos que
necesiten a un mismo tiempo y bloqueando el
proceso hasta que todos los recursos puedan
concederse simultáneamente. En primer lugar
un proceso puede estar suspendido durante
mucho tiempo, esperando que se concedan
todas las solicitudes de recursos. En segundo
lugar, los recursos asignados a un proceso
pueden permanecer sin usarse durante mucho
tiempo.
Puede prevenirse de varias formas. Primero, si
un proceso que retiene ciertos recursos se le
deniega una nueva solicitud, deberá liberar sus
recursos anteriores y solicitarlos de nuevo.
Segundo, si un proceso solicita un recurso que
actualmente está retenido por otro proceso, el
S.O. Puede expulsar al segundo proceso y
exigirle que libere sus recursos, y se evitará el
interbloqueo solo si no hay dos procesos que
posean la misma prioridad.
Puede prevenirse definiendo una ordenación
lineal de los tipos de recursos.
La prevención del círculo vicioso de espera puede
ser ineficiente, retardando procesos y denegando
accesos a recursos innecesariamente.
Negar la asignación de recursos se denomina
algoritmo del banquero. Comienza
definiendo los conceptos de estado y de estado
seguro. En un sistema con número fijo de
procesos y un numero fijo de sus recursos, un
proceso tendrá cero o más recursos asignados.
El estado de sistema es la asignación de
recursos a los procesos y estará formado por
los dos vectores; Recursos y Disponible y las
dos matrices Demanda y Asignación.
Con la predicción del interbloqueo se pueden
alcanzar las tres condiciones necesarias, pero se
realiza elecciones acertadas para asegurar que
nunca se llega al punto de interbloqueo. La
predicción permite más concurrencia que la
prevención
El control de interbloqueo se puede hacer tantas
veces como la solicitudes de recursos.
Este algoritmo tiene dos ventajas: conduce a
una pronta detección y el algoritmo es
relativamente simple.
Las comprobaciones de este algoritmo
consumen un tiempo de procesador
considerable.
RECUPERACION
Detectado el interbloqueo, hace falta alguna estrategia de
recuperación. Las técnicas siguientes son posibles
enfoques, en orden creciente de sofisticación:
1.-Abortar todos los procesos interbloqueados esto es se
crea o no una de las soluciones más comunes
2.-Retroceder cada proceso interbloqueado hasta
algún punto de control definido previamente y volver a
ejecutar todos los procesos. Es necesario que haya
disponibles unos mecanismos de retroceso y reinicio del
sistema.
3.-Abortar sucesivamente procesos interbloqueados
hasta que deje de haber interbloqueo
4.-Apropiarse de recurso sucesivamente hasta que deje
de haber interbloqueo
UNA ESTRATEGIA
INTEGRADA DE
INTERBLOQUEO
En lugar de intentar diseñar un servicio del S.O.
Que emplee solo una de las estrategias, puede
ser más eficiente usar diferentes estrategias en
diferentes situaciones.
Agrupar los recursos en un número de clases
diferentes.
Usar la estrategia de ordenación lineal definida
anteriormente para la prevención de círculos
viciosos de espera e impedir el interbloqueo entre
clases de recursos.
Dentro de cada clase de recursos, emplear el
algoritmo más apropiado para dicha clase.
Espacio intercambiable: Bloques de memoria en
almacenamiento secundario para el intercambio de
procesos.
Puede aplicarse la prevención de interbloqueos pidiendo
que todos los recursos sean asignados de una vez como
en la estrategia de prevención, retención y espera.
Recursos de Procesos:dispositivos asignables, como
unidades de cinta y archivos.
Que los procesos declaren por anticipado los recursos
de esta clase que necesitarán.
Memoria Principal: Asignable a los procesos en páginas
o segmentos.
Cuando se expulsa un proceso, simplemente
este es trasladado a la memoria
secundaria,liberando espacio para resolver el
interbloqueo.
Recursos Internos: Como canales de entrada y
salida.
Puede usarse la prevención por ordenación de
recursos
*Tubos
*Mensajes
*Memoria compartida
*Semáforos
*Señales
*Contribuciones mas significativas de UNIX.
*Connota de una cola de FIFO
*Se creas tamaño fijo de bytes
*Si un proceso intenta escribir en un tubo se
ejecuta si hay suficiente memoria, caso
contrario se bloquea.
TIPOS DE TUBOS:
-Con nombre: Procesos no afines
-Sin nombre: Solo procesos afines
*Bloqueo de texto con un tipo asociado
*Emisor específico, el tipo de mensaje en cada
envío.
*Ocupa el método FIFO.
*Suspende el proceso.
*Forma más rápida de comunicación entre
procesos.
*Bloque común de memoria virtual, compartido
por varios procesos.
*Permiso de procesos, solo lectura y escritura.
*Varía, núcleo ejecuta todas las operaciones
solicitadas.
*No se puede acceder hasta que el otro
proceso se acabe.
Consta de lo siguiente:
*Valor actual
*ID del último proceso, esperando
que el valor del semáforo sea cero.
*Número de procesos esperando
que el valor del semáforo sea
mayor que el actual
*Mecanismo de software que informa un proceso
del acontecimiento de un proceso asíncrono.
*Los procesos pueden enviarse señales unos a
otros.
*El método puede enviar señales internas.
Dados los mecanismos de concurrencia en UNIX
SVR4, Solaris soporta 4 primitivas de
sincronización de hilo
*Cierre de exclusión mutua
*Semáforos
*Cierre de múltiples lectores, un escritorio
*Variables de Condición.
Solaris implementa estas primitivas para los
hilos de núcleo dentro del núcleo, la primitiva
crea una estructura de datos que contiene
parámetros especificados.
Una vez que está creado el objeto de
sincronización, hay dos operaciones
fundamentales que se pueden realizar:
Entrar (adquirir y bloquear) y Salir
(desbloquear)
Nota: Todas las primas de sincronización
necesitan de la existencia de una instrucción
Hardware que permite comprobar y señalar
el valor de un objeto en una operación
atómica
 Cierre de Exclusión Mutua
Un cierre mutex impide que ejecute más de
un hilo cuando el cierre está activo, el hilo
que bloquea el mutex debe ser el que lo
desbloquea.
Las primitivas asociadas a un cierre mutex
son:
*mutex_enter()adquiere el cierre:
potencialmente se
bloque si ya está
adquirido
*mutex_exit()libera el cierre:
potencialmente desbloquea a
uno que espera
*mutex_tryenter()adquiere el cierre si
aun no está adquirido
 Semáforos
Semáforos enteros clásicos con la siguiente
primitiva:
*sema_p()disminuye el semáforo,
potencialmente bloquea el
hilo
*sema_v()incrementa el semáforo,
potencialmente
desbloquea un hilo que
espera
*sema_tryp()si no es necesario bloquearse,
disminuye el semáforo
 Cierre de Lectores/Escritores
Permite a múltiples hilos tener acceso a solo-lectura
simultáneamente o a un objeto protegido por el
cierre.
Las primas son:
*rw_enter()intenta adquirir un cierre como
lector o escritor
*rw_exit()Libera un cierre como lector o
escritor
*rw_tryenter() si no es necesario bloquear
se adquiere el cierre
*rw_downgrade()un hilo que ha adquirido
un cierre de escritura lo
convierte en cierre de lectura
*rw_tryupgrade()intenta convertir un cierre
de lectura en uno de escritura
 Variables de Condición
Se utiliza para esperar hasta que sea cierta
una determinada condición, las primitivas son:
*cv_wait() bloquea hasta que señalice la
condición
*cv_signal()despierta un hilo bloqueado en
cv_wait()
*cv_broadeast()despierta todos los hilos
bloqueados en cv_wait
Windows 2000 ofrece sincronización entre los hilos
como parte de la arquitectura de objetos, está
formado por los siguientes pasos para
sincronización de objetos
*Proceso
*Hilo
*Archivo
*Entrada de Consola
*Notificación de Cambio de Archivo
*Mutante
*Semáforo
*Suceso
*Temporizador
Concurrencia, interbloqueo e inanición en sistemas operativos

Más contenido relacionado

La actualidad más candente

Areas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidosAreas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidosOLy Jimenez
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoTecnologico de pinotepa
 
Concurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónConcurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónjhonfgarcia
 
Modulo 2 interbloqueos
Modulo 2 interbloqueosModulo 2 interbloqueos
Modulo 2 interbloqueosJOSE MENDOZA
 
Entidad relacion
Entidad relacionEntidad relacion
Entidad relacionadfc8
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativosAndy Lopez
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - SemáforosJuan Rojas
 
PelicanHPC Implementación fisica con dos nodos
PelicanHPC Implementación fisica con dos nodosPelicanHPC Implementación fisica con dos nodos
PelicanHPC Implementación fisica con dos nodosIvan Luis Jimenez
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosFranklin Parrales Bravo
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosFernando Morales
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?Software Guru
 
Gestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaGestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaVictorVillalobos
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.Carlos Solano
 

La actualidad más candente (20)

Areas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidosAreas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidos
 
Deteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un InterbloqueoDeteccion Y Recuperacion De Un Interbloqueo
Deteccion Y Recuperacion De Un Interbloqueo
 
Capitulo5
Capitulo5Capitulo5
Capitulo5
 
Concurrencia interbloqueo e inanición
Concurrencia interbloqueo e inaniciónConcurrencia interbloqueo e inanición
Concurrencia interbloqueo e inanición
 
Modulo 2 interbloqueos
Modulo 2 interbloqueosModulo 2 interbloqueos
Modulo 2 interbloqueos
 
El barbero-dormilón
El barbero-dormilónEl barbero-dormilón
El barbero-dormilón
 
Interbloqueos
InterbloqueosInterbloqueos
Interbloqueos
 
Entidad relacion
Entidad relacionEntidad relacion
Entidad relacion
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Interbloqueo sistemas operativos
Interbloqueo  sistemas operativosInterbloqueo  sistemas operativos
Interbloqueo sistemas operativos
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
PelicanHPC Implementación fisica con dos nodos
PelicanHPC Implementación fisica con dos nodosPelicanHPC Implementación fisica con dos nodos
PelicanHPC Implementación fisica con dos nodos
 
Algoritmo del baquero
Algoritmo del baqueroAlgoritmo del baquero
Algoritmo del baquero
 
SO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas OperativosSO Unidad 1: Introducción a los Sistemas Operativos
SO Unidad 1: Introducción a los Sistemas Operativos
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
5.1 ejemplos uml
5.1 ejemplos uml5.1 ejemplos uml
5.1 ejemplos uml
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativos
 
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
¿Cómo realizar entrevistas eficaces para obtener requisitos de software?
 
Gestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salidaGestion de dispositivos de entrada y salida
Gestion de dispositivos de entrada y salida
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 

Similar a Concurrencia, interbloqueo e inanición en sistemas operativos

Concepto de Interbloqueo (Deadlock).pdf
Concepto de Interbloqueo (Deadlock).pdfConcepto de Interbloqueo (Deadlock).pdf
Concepto de Interbloqueo (Deadlock).pdfABRAHAMALEMANGARCIA
 
Interbloqueosproyect ofinal
Interbloqueosproyect ofinalInterbloqueosproyect ofinal
Interbloqueosproyect ofinalfhavilap
 
Bloqueo muto
Bloqueo mutoBloqueo muto
Bloqueo mutomirian
 
Interbloqueosproyect ofinall
Interbloqueosproyect ofinallInterbloqueosproyect ofinall
Interbloqueosproyect ofinallfhavilap
 
Unidad 2 sistemas operativos 2011
Unidad 2  sistemas operativos 2011Unidad 2  sistemas operativos 2011
Unidad 2 sistemas operativos 2011Abimael hernandez
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacintoAreli996
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo Vero Mateus
 
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxInterbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxssuser948499
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1honeyjimenez
 

Similar a Concurrencia, interbloqueo e inanición en sistemas operativos (20)

Bloqueo mutuo
Bloqueo mutuoBloqueo mutuo
Bloqueo mutuo
 
Concepto de Interbloqueo (Deadlock).pdf
Concepto de Interbloqueo (Deadlock).pdfConcepto de Interbloqueo (Deadlock).pdf
Concepto de Interbloqueo (Deadlock).pdf
 
Interbloqueosproyect ofinal
Interbloqueosproyect ofinalInterbloqueosproyect ofinal
Interbloqueosproyect ofinal
 
Bloqueo muto
Bloqueo mutoBloqueo muto
Bloqueo muto
 
1modulo2seccion5
1modulo2seccion51modulo2seccion5
1modulo2seccion5
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Interbloqueosproyect ofinall
Interbloqueosproyect ofinallInterbloqueosproyect ofinall
Interbloqueosproyect ofinall
 
Interbloqueo
InterbloqueoInterbloqueo
Interbloqueo
 
Capitulo2
Capitulo2Capitulo2
Capitulo2
 
Sistoper Bloqueos Mutuos
Sistoper Bloqueos MutuosSistoper Bloqueos Mutuos
Sistoper Bloqueos Mutuos
 
Unidad 2 sistemas operativos 2011
Unidad 2  sistemas operativos 2011Unidad 2  sistemas operativos 2011
Unidad 2 sistemas operativos 2011
 
Proyecto1_BD2_Grupo3.pptx
Proyecto1_BD2_Grupo3.pptxProyecto1_BD2_Grupo3.pptx
Proyecto1_BD2_Grupo3.pptx
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
Windows
WindowsWindows
Windows
 
Unidad 2 jacinto
Unidad 2 jacintoUnidad 2 jacinto
Unidad 2 jacinto
 
Taller interbloqueo
Taller interbloqueo Taller interbloqueo
Taller interbloqueo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptxInterbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
Interbloqueo. Concurrencia Interbloqueo e Inanición(1).pptx
 
Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1Unidad 2 sist. oper. 1
Unidad 2 sist. oper. 1
 

Más de Ichinose 11

Mapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisMapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisIchinose 11
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Ichinose 11
 
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Ichinose 11
 
Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Ichinose 11
 
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Ichinose 11
 
Sistema compañeros
Sistema         compañerosSistema         compañeros
Sistema compañerosIchinose 11
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoriaIchinose 11
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesosIchinose 11
 

Más de Ichinose 11 (12)

Mapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solisMapa mental gilberto ramos itdo acosta_erik solis
Mapa mental gilberto ramos itdo acosta_erik solis
 
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n4 sistemas_operativos_gilberto_ramos_9-748-1883
 
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n3 sistemas_operativos_gilberto_ramos_9-748-1883
 
Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..Laboratorio#2 sistemas operativos gilberto ramos..
Laboratorio#2 sistemas operativos gilberto ramos..
 
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883 Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
Laboratorio n1 sistemas_operativos_gilberto_ramos_9-748-1883
 
Ubuntu touch
Ubuntu  touchUbuntu  touch
Ubuntu touch
 
Sistema compañeros
Sistema         compañerosSistema         compañeros
Sistema compañeros
 
Archivos 2016
Archivos 2016Archivos 2016
Archivos 2016
 
Presentacion memoria
Presentacion memoriaPresentacion memoria
Presentacion memoria
 
Memoria 3
Memoria 3Memoria 3
Memoria 3
 
Sincronización entre procesos
Sincronización entre procesosSincronización entre procesos
Sincronización entre procesos
 
02 hilos
02   hilos02   hilos
02 hilos
 

Último

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 

Último (8)

Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 

Concurrencia, interbloqueo e inanición en sistemas operativos

  • 2.  Este capítulo continúa el estudio de la concurrencia, considerando dos problemas que importunan todos los intentos de realizar procesamiento concurrente: Interbloqueo e Inanición.  Comienza con una exposición de los principios básicos del interbloqueo y de un problema afín, la inanición.
  • 4.  El Interbloqueo se puede definir como el bloque permanente de un conjunto de procesos que compiten por los recursos del sistema, todos los interbloqueos suponen necesidades contradictorias de recursos, por parte de dos o más procesos.  Un ejemplo clásico de interbloqueo es el interbloqueo de tráfico
  • 5.  Ahora se describe una situación de interbloqueo, en la que intervienen procesos y recursos informáticos, al siguiente gráfico se le asigna la siguiente forma:  Proceso P Proceso Q Obtener A Obtener B Obtener B Obtener A Liberar A Liberar B Liberar B Liberar A
  • 6.
  • 7. El que se produzca interbloqueo o no, depende de la dinámica de la ejecución, por ejemplo; supóngase que p no necesitara ambos recursos en el mismo instante y tuviera la siguiente forma: Proceso P Obtener A Liberar A Obtener B Liberar B En este caso no se produce interbloqueo
  • 8.  Dos Categorías de Recursos: *Reutilizable *Consumible
  • 9. ◦ Que son los Recursos Reutilizables? *Pueden ser usados con seguridad por un proceso, no se agota con el uso. *Obtienen unidades de recursos que liberan posteriormente para que otros procesos lo utilicen. Ejemplos: *Procesadores *Canales de E/S *MP, MS *Archivos, Bases de Datos
  • 10. ◦ Ejemplo Ilustrativo: • Dos procesos compiten por el acceso exclusivo a un archivo D del disco y a una unidad de cinta C. Guiarse por la tabla 6.4, el interbloqueo se produce si un proceso pide un recurso y retiene otro. p0p1q0q1p2q2 Esta es la forma para que se produzca un interbloqueo en un sistema multiprogramado
  • 11. ◦ Estrategias para resolver interbloqueos: *Restricciones en el diseño del sistema en el orden que se solicitan los recursos.
  • 12.  Que son los Recursos Reutilizables? *Puede ser creado (producido) *Puede ser destruido (consumido) *No existe límite de recursos consumibles *Proceso Productor que no está bloqueado libera cualquier número de recursos consumidos Ejemplos *Interrupciones *Señales *Buffer de E/S
  • 13.  Elementos Claves *Prevención y predicciónrevisar condiciones de interbloqueo. Condiciones de interbloqueo Deben darse tres condiciones para que pueda producirse un interbloqueo, las cuales son:
  • 14. 1.- Exclusión Mutua: solo un proceso puede usar un recurso cada vez. Hace falta para asegurar consistencia de resultados y la integridad de BD 2.- Retención y Espera: un proceso puede retener unos recursos asignados mientras espera que se le asignen otros 3.- No Apropiación: ningún proceso puede ser forzado a abandonar un recurso que retenga; la apropiación no puede aplicar arbitrariamente.
  • 15. Puede existir interbloqueos con estas tres condiciones pero puede haber una cuarta que produzca un interbloqueo. 4.-Círculos Viciosos de Espera: Cadena cerrada de procesos, retiene al menos un recurso que necesita el siguiente proceso de la cadena.
  • 16. TABLA DE RECURSOS CONSUMIBLES ELEMENTOS CLAVES
  • 17.  Tener en cuenta. *Las tres primeras condiciones son necesarias pero no suficientes para el interbloqueo *Consecuencia potencial de las tres anteriores es la cuarta *Se produce espera irresoluble. Un círculo de espera irresoluble es la definición de interbloqueo
  • 18.
  • 19.
  • 20. La estrategia de prevención del interbloqueo consiste a grandes rasgos en diseñar un sistema de manera que este excluida la posibilidad de interbloqueo, existen dos métodos: *Indirectos: Impiden la aparición de las tres condiciones antes mencionadas. *Directos: Evitan la aparición del círculo vicioso de espera
  • 21. La 1era de las condiciones no puede anularse. Si el acceso a un recurso necesita exclusión mutua, el S.O. debe soportarla. Se puede producir interbloqueo si más de un proceso necesita permiso de escritura
  • 22. Puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse simultáneamente. En primer lugar un proceso puede estar suspendido durante mucho tiempo, esperando que se concedan todas las solicitudes de recursos. En segundo lugar, los recursos asignados a un proceso pueden permanecer sin usarse durante mucho tiempo.
  • 23. Puede prevenirse de varias formas. Primero, si un proceso que retiene ciertos recursos se le deniega una nueva solicitud, deberá liberar sus recursos anteriores y solicitarlos de nuevo. Segundo, si un proceso solicita un recurso que actualmente está retenido por otro proceso, el S.O. Puede expulsar al segundo proceso y exigirle que libere sus recursos, y se evitará el interbloqueo solo si no hay dos procesos que posean la misma prioridad.
  • 24. Puede prevenirse definiendo una ordenación lineal de los tipos de recursos. La prevención del círculo vicioso de espera puede ser ineficiente, retardando procesos y denegando accesos a recursos innecesariamente.
  • 25. Negar la asignación de recursos se denomina algoritmo del banquero. Comienza definiendo los conceptos de estado y de estado seguro. En un sistema con número fijo de procesos y un numero fijo de sus recursos, un proceso tendrá cero o más recursos asignados. El estado de sistema es la asignación de recursos a los procesos y estará formado por los dos vectores; Recursos y Disponible y las dos matrices Demanda y Asignación.
  • 26.
  • 27. Con la predicción del interbloqueo se pueden alcanzar las tres condiciones necesarias, pero se realiza elecciones acertadas para asegurar que nunca se llega al punto de interbloqueo. La predicción permite más concurrencia que la prevención
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. El control de interbloqueo se puede hacer tantas veces como la solicitudes de recursos. Este algoritmo tiene dos ventajas: conduce a una pronta detección y el algoritmo es relativamente simple. Las comprobaciones de este algoritmo consumen un tiempo de procesador considerable.
  • 34.
  • 35. RECUPERACION Detectado el interbloqueo, hace falta alguna estrategia de recuperación. Las técnicas siguientes son posibles enfoques, en orden creciente de sofisticación: 1.-Abortar todos los procesos interbloqueados esto es se crea o no una de las soluciones más comunes 2.-Retroceder cada proceso interbloqueado hasta algún punto de control definido previamente y volver a ejecutar todos los procesos. Es necesario que haya disponibles unos mecanismos de retroceso y reinicio del sistema. 3.-Abortar sucesivamente procesos interbloqueados hasta que deje de haber interbloqueo 4.-Apropiarse de recurso sucesivamente hasta que deje de haber interbloqueo
  • 37. En lugar de intentar diseñar un servicio del S.O. Que emplee solo una de las estrategias, puede ser más eficiente usar diferentes estrategias en diferentes situaciones. Agrupar los recursos en un número de clases diferentes. Usar la estrategia de ordenación lineal definida anteriormente para la prevención de círculos viciosos de espera e impedir el interbloqueo entre clases de recursos. Dentro de cada clase de recursos, emplear el algoritmo más apropiado para dicha clase.
  • 38. Espacio intercambiable: Bloques de memoria en almacenamiento secundario para el intercambio de procesos. Puede aplicarse la prevención de interbloqueos pidiendo que todos los recursos sean asignados de una vez como en la estrategia de prevención, retención y espera. Recursos de Procesos:dispositivos asignables, como unidades de cinta y archivos. Que los procesos declaren por anticipado los recursos de esta clase que necesitarán. Memoria Principal: Asignable a los procesos en páginas o segmentos.
  • 39. Cuando se expulsa un proceso, simplemente este es trasladado a la memoria secundaria,liberando espacio para resolver el interbloqueo. Recursos Internos: Como canales de entrada y salida. Puede usarse la prevención por ordenación de recursos
  • 41. *Contribuciones mas significativas de UNIX. *Connota de una cola de FIFO *Se creas tamaño fijo de bytes *Si un proceso intenta escribir en un tubo se ejecuta si hay suficiente memoria, caso contrario se bloquea. TIPOS DE TUBOS: -Con nombre: Procesos no afines -Sin nombre: Solo procesos afines
  • 42. *Bloqueo de texto con un tipo asociado *Emisor específico, el tipo de mensaje en cada envío. *Ocupa el método FIFO. *Suspende el proceso.
  • 43. *Forma más rápida de comunicación entre procesos. *Bloque común de memoria virtual, compartido por varios procesos. *Permiso de procesos, solo lectura y escritura.
  • 44. *Varía, núcleo ejecuta todas las operaciones solicitadas. *No se puede acceder hasta que el otro proceso se acabe. Consta de lo siguiente: *Valor actual *ID del último proceso, esperando que el valor del semáforo sea cero. *Número de procesos esperando que el valor del semáforo sea mayor que el actual
  • 45. *Mecanismo de software que informa un proceso del acontecimiento de un proceso asíncrono. *Los procesos pueden enviarse señales unos a otros. *El método puede enviar señales internas.
  • 46.
  • 47. Dados los mecanismos de concurrencia en UNIX SVR4, Solaris soporta 4 primitivas de sincronización de hilo *Cierre de exclusión mutua *Semáforos *Cierre de múltiples lectores, un escritorio *Variables de Condición.
  • 48. Solaris implementa estas primitivas para los hilos de núcleo dentro del núcleo, la primitiva crea una estructura de datos que contiene parámetros especificados. Una vez que está creado el objeto de sincronización, hay dos operaciones fundamentales que se pueden realizar: Entrar (adquirir y bloquear) y Salir (desbloquear) Nota: Todas las primas de sincronización necesitan de la existencia de una instrucción Hardware que permite comprobar y señalar el valor de un objeto en una operación atómica
  • 49.  Cierre de Exclusión Mutua Un cierre mutex impide que ejecute más de un hilo cuando el cierre está activo, el hilo que bloquea el mutex debe ser el que lo desbloquea. Las primitivas asociadas a un cierre mutex son: *mutex_enter()adquiere el cierre: potencialmente se bloque si ya está adquirido *mutex_exit()libera el cierre: potencialmente desbloquea a uno que espera *mutex_tryenter()adquiere el cierre si aun no está adquirido
  • 50.  Semáforos Semáforos enteros clásicos con la siguiente primitiva: *sema_p()disminuye el semáforo, potencialmente bloquea el hilo *sema_v()incrementa el semáforo, potencialmente desbloquea un hilo que espera *sema_tryp()si no es necesario bloquearse, disminuye el semáforo
  • 51.  Cierre de Lectores/Escritores Permite a múltiples hilos tener acceso a solo-lectura simultáneamente o a un objeto protegido por el cierre. Las primas son: *rw_enter()intenta adquirir un cierre como lector o escritor *rw_exit()Libera un cierre como lector o escritor *rw_tryenter() si no es necesario bloquear se adquiere el cierre *rw_downgrade()un hilo que ha adquirido un cierre de escritura lo convierte en cierre de lectura *rw_tryupgrade()intenta convertir un cierre de lectura en uno de escritura
  • 52.  Variables de Condición Se utiliza para esperar hasta que sea cierta una determinada condición, las primitivas son: *cv_wait() bloquea hasta que señalice la condición *cv_signal()despierta un hilo bloqueado en cv_wait() *cv_broadeast()despierta todos los hilos bloqueados en cv_wait
  • 53.
  • 54. Windows 2000 ofrece sincronización entre los hilos como parte de la arquitectura de objetos, está formado por los siguientes pasos para sincronización de objetos *Proceso *Hilo *Archivo *Entrada de Consola *Notificación de Cambio de Archivo *Mutante *Semáforo *Suceso *Temporizador