Cap 6.1
Cap 6.1
Cap 6.1
Introducción
En éste capítulo llevare acabo el tema sobre los bloqueos, un bloqueo no es más que
un estado de los procesos, que indica que el mismo está inutilizado y albergado en la
memoria secundaria.
Las condiciones para un bloqueo, métodos para resolver bloqueos, la detección del
bloqueo, recuperación de los bloqueos, la administración de memoria, y muchos otros
puntos relacionados con el tema.
2
Índice
Temas Pág.
Condiciones Necesarias Para el Bloqueo…………………………………………..4-5
Prevención de un bloqueo………………………………………………………………5-7
Omisión de procesos……………………………………………………………………..7-11
Detección de Bloqueos……..…………………………………………………………..11-13
Recuperación de Bloqueos……………………………………………………..……..13-15
Administración de memoria………...………………………………………………….15-17
Memoria Virtual………………………………………………………………..…………17-19
Conclusión……………………………………………………………….……………….20
Bibliografía…………………………………………………………………………………21
3
Bloqueos
Condiciones Necesarias Para el Bloqueo
Solicitar el recurso.
Utilizar el recurso.
Liberar el recurso.
Ninguno realizará un evento que pueda despertar a los demás miembros del
conjunto.
Todos los procesos esperarán por siempre.
Generalmente el evento que espera cada proceso es la liberación de cierto recurso que
posee por el momento otro miembro del conjunto:
Cada miembro del conjunto de procesos bloqueados espera un recurso poseído por
un proceso bloqueado.
Ninguno de los procesos bloqueados puede continuar su ejecución, ni liberar
recursos, ni puede ser despertado.
Los procesos reclaman control exclusivo de los recursos que piden (condición de
exclusión mutua).
Los procesos mantienen los recursos que ya les han sido asignados mientras
esperan por recursos adicionales (condición de espera por).
Los recursos no pueden ser extraídos de los procesos que los tienen hasta su
completa utilización (condición de no apropiatividad).
4
Existe una cadena circular de procesos en la que cada uno mantiene a uno o más
recursos que son requeridos por el siguiente proceso de la cadena (condición de
espera circular).
Las técnicas que tienen como objetivo evitar el interbloqueo imponen condiciones
menos atractivas que en la prevención, para tratar de obtener un aprovechamiento de
los recursos. No elimina como las técnicas de prevención todas las posibilidades de
que se produzca un bloqueo mutuo, pero se esquiva cuanto está a punto de suceder
(algoritmo del banquero de Dijkstra).
Prevención de un bloqueo
Cada proceso deberá pedir todos sus recursos al mismo tiempo y no podrá
seguir la ejecución hasta haberlos recibido todos.
5
Si a un proceso que tiene recursos se le niegan los demás, ese proceso deberá
liberar sus recursos y, en caso necesario, pedirlos de nuevo junto con los
recursos adicionales.
Se impondrá un ordenamiento lineal de los tipos de recursos en todos los
procesos; es decir, si a un proceso le han sido asignados recursos de un tipo
específico, en lo sucesivo sólo podrá pedir aquellos recursos que siguen en el
ordenamiento.
Como vemos Havender presenta tres estrategias y no cuatro. Cada una de ellas, está
diseñada para negar una de las condiciones necesarias. La primera de estas
condiciones, esto es, que los procesos exijan el uso exclusivo de los recursos que
requieren, es una condición que no es deseable impedir, porque específicamente
queremos permitir la existencia de recursos no compartibles o dedicados.
Exclusión mutua
Si ningún recurso se puede asignar de forma exclusiva, no se producirá
interbloqueo. Sin embargo, existen recursos para los que no es posible negar la
condición de exclusión mutua. No obstante, es posible eliminar esta condición en
algunos procesos. Por ejemplo, una impresora es un recurso no compatible pues
si se permite que dos procesos escriban en la impresora al mismo tiempo, la
salida resulta caótica.
Retención y espera
La condición de retención y espera 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.
No apropiación
La condición de no apropiación puede prevenirse de varias formas. Primero, si a
un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho
proceso deberá liberar sus recursos anteriores y solicitarlos de nuevo, cuando
6
sea necesario, junto con el recurso adicional. Por otra parte, si un proceso
solicita un recurso que actualmente está retenido por otro proceso, el sistema
operativo debe expulsar al segundo proceso y exigirle que libere sus recursos.
Omisión de procesos
Para evitar el bloqueo, hay que suspender a “B” hasta que “A” haya solicitado y
liberado el plotter.
No está bloqueado.
Existe una forma de satisfacer todas las solicitudes pendientes, mediante la
ejecución de los procesos en cierto orden.
7
El estado es seguro ya que existe una sucesión de asignaciones que permiten
terminar a todos los procesos.
Si el proceso “A” pide y se le otorga una unidad, puede producirse un bloqueo de tres
vías si cada uno de los procesos necesita al menos otra unidad del recurso antes de
liberar ninguna.
Un estado inseguro:
8
Dado un estado actual seguro, ello no implica que vayan a ser seguros todos los
estados futuros.
En la analogía:
Los clientes son los procesos, las unidades de crédito son los recursos del
sistema y el banquero es el S. O.
El banquero sabe que no todos los clientes necesitaran su crédito máximo
otorgado en forma inmediata, por ello reserva menos unidades (recursos) de las
totales necesarias para dar servicio a los clientes.
Acá también los procesos deben establecer sus necesidades totales de recursos
antes de su ejecución y dada una matriz de recursos asignados, el S. O. debe poder
calcular en cualquier momento la matriz de recursos necesarios.
9
Se dispone de:
Los procesos mantienen los recursos mientras piden y esperan por otros recursos
adicionales, pero no pueden apropiarse de un proceso que mantenga esos
recursos.
10
Requiere que exista un número fijo de recursos asignables, pero generalmente
no se puede contar con que el número de recursos se mantenga siempre
constante.
Requiere que los procesos reintegren los recursos en un tiempo finito, pero en la
realidad se requieren mayores garantías.
Requiere que los procesos indiquen sus necesidades máximas de recursos por
adelantado, lo cual generalmente no ocurre.
Detección de Bloqueos
La detección del interbloqueo es el proceso de determinar si realmente existe un
interbloqueo e identificar los procesos y recursos implicados en él. 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.
Este método está basado en suponer que un interbloqueo no ser presente y que los
recursos del sistema que han sido asignados, se liberarán en el momento que otro
proceso lo requiera.
11
Gráficas de Asignación de Recursos
Las flechas que van de los recursos al proceso (los recursos asignados al
proceso).
Las flechas que van del proceso al recurso (las peticiones actuales del proceso).
12
Si una gráfica puede ser reducida por todos sus procesos, entonces no hay
interbloqueo.
Si una gráfica no puede ser reducida por todos sus procesos, entonces los
procesos “irreducibles” constituyen la serie de procesos interbloqueados de la
gráfica
Una posibilidad es cada vez que se solicita un recurso, pero esto podría
sobrecargar al sistema.
Otro criterio es verificar cuando el uso de la cpu baje de cierto valor fijo:
Los principales factores que dificultan la recuperación del bloqueo son los siguientes:
13
son fáciles de suspender y reanudar.
o
Los procedimientos de suspensión / reanudación implican una sobrecarga
considerable.
La sobrecarga de recuperación está en función de la magnitud del bloqueo
(algunos, decenas o centenas de procesos involucrados).
Generalmente la recuperación suele realizarse:
De cuáles procesos poseen recursos que pueden ser tomados con facilidad.
De las posibilidades de recuperación luego de la apropiación.
14
Su estado se graba en un archivo de modo que pueda volver a iniciar más tarde.
El punto de verificación o de control contiene:
o La imagen de la memoria.
o El estado de los recursos, es decir, el detalle de los recursos asignados al
proceso en ese instante.
Los puntos de verificación grabados durante un proceso se mantienen sin ser
regrabados.
15
Monopogramación sin intercambio o paginación.
Uso de la CPU = 1 - pn
Las tareas que van llegando se forman hasta que una partición adecuada está
disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta
terminar.
Intercambio
16
un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro
de las palabras de la memoria en una cantidad fija de memoria.
Otra forma de mantener un registro en memoria es mediante una lista ligada donde
cada entrada de la lista específica un hueco o un proceso.
Memoria Virtual
Paginación
Memoria asociativa
17
Cuando ocurre un fallo de página el sistema operativo debe elegir una página para
retirarla de la memoria y hacer un espacio para la página por recuperar. Si la página
por eliminar fue modificada mientras estaba en memoria, debe escribirla en el disco
para mantener actualizada la copia del disco, si por el contrario la página no ha sido
modificada la copia del disco ya está actualizada por lo que no es necesario volver a
escribir, la página por leer sólo escribe encima de la página por retirar.
Aunque es posible elegir una página al azar para el reemplazo relacionado con un fallo
de página, el rendimiento del sistema es mucho mejor si se elige una página de poco
uso.
En un fallo de página, el sistema operativo inspecciona todas las páginas y las divide
en cuatro categorías según los valores actuales de los bits R y M
El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página
modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo
es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser
el óptimo si es adecuado en muchos casos.
El sistema operativo tiene una lista de todas las páginas que se encuentran en
18
memoria, siendo la primera página la más antigua y la última la más reciente, en un
fallo de página, se elimina la primera página y se añade la nueva al final de la lista.
Una modificación simple del FIFO que evita deshacerse de una página de uso
frecuente inspecciona el bit R de la página más antigua, busca una página antigua sin
referencias durante el anterior intervalo de tiempo.
Segmentación
La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que
cada segmento constituye un espacio independiente de direcciones, los distintos
segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.
Una memoria segmentada tiene otras ventajas como hacer más sencilla la
administración de las estructuras de datos que crecen o se reducen, si cada
procedimiento ocupa un segmento independiente con la posición inicial cero el ligado
independiente de los procesos compilados es mucho más sencillo.
19
Conclusión
En éste capítulo pude desarrollar el tema que abarca los Bloqueos. Entre los cuales
pude ver algunas cosas, que son importante y debemos tener muy encuenta:
Un bloqueo no es más que un estado de los procesos, que indica que el mismo está
inutilizado y albergado en la memoria secundaria.
Los procesos reclaman control exclusivo de los recursos que piden (condición de
exclusión mutua).
Los procesos mantienen los recursos que ya les han sido asignados mientras
esperan por recursos adicionales (condición de espera por).
Los recursos no pueden ser extraídos de los procesos que los tienen hasta su
completa utilización (condición de no apropiatividad).
Existe una cadena circular de procesos en la que cada uno mantiene a uno o
más recursos que son requeridos por el siguiente proceso de la cadena
(condición de espera circular).
20
Bibliografía
http://lsi.vc.ehu.es
http://mishelljuni2000.blogspot.com
Libro Sistema Operativo.pdf
http://html.rincondelvago.com
21