Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Cap 6.1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

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.

Espero que le sea de mucha ayuda…

2
Índice
Temas Pág.
Condiciones Necesarias Para el Bloqueo…………………………………………..4-5

Métodos para resolver bloqueos..........................................................................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

La secuencia de eventos necesarios para utilizar un recurso es la siguiente:

 Solicitar el recurso.
 Utilizar el recurso.
 Liberar el recurso.

Si el recurso no está disponible cuando se lo solicita:

 El proceso solicitante debe esperar.


 En algunos S. O. el proceso se bloquea automáticamente y se despierta cuando
dicho recurso está disponible.
 En otros S. O. la solicitud falla y el proceso debe esperar para luego intentar
nuevamente.
 Un bloqueo se puede definir formalmente como sigue:

Un conjunto de procesos se bloquea si cada proceso del conjunto espera un evento


que solo puede ser provocado por otro proceso del conjunto:

Ya que todos los procesos están esperando:

 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.

Las condiciones necesarias para el bloqueo son:

 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).

Métodos para resolver bloqueos


Existen cuatro áreas de interés relacionadas con los interbloqueos que pueden
resumirse como prevención, técnicas para evitarlos, detección y recuperación de los
mismos.

En la prevención del interbloqueo interesa ajustar el sistema para eliminar toda


posibilidad de que ocurra un bloqueo mutuo. La prevención suele funcionar pero sus
métodos ocasionan, en general, un aprovechamiento pobre de los recursos. No
obstante, estos métodos se utilizan con frecuencia.

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).

Los métodos de detección del interbloqueo es utilizan en sistemas que permiten la


ocurrencia de los mismos, ya sea de manera voluntaria o involuntaria. Su objetivo es
determinar si ha ocurrido un bloqueo mutuo y saber exactamente cuáles son los
procesos y recursos implicados en él.

Los métodos de recuperación están íntimamente ligados a los de detección. Sirven


para eliminar los interbloqueos detectados en un sistema para poder seguir trabajando
y para que los procesos implicados puedan terminar su ejecución y liberen sus
recursos. La recuperación es un problema complejo, en el mejor de los casos, los
sistemas se recuperan de un bloqueo mutuo eliminando completamente uno o varios
de los procesos implicados. Después, se inician de nuevo los procesos eliminados,
perdiéndose la mayor parte o todo el trabajo previo realizado por el proceso.

Prevención de un bloqueo

La estrategia básica de la prevención del interbloqueo consiste, a grandes rasgos, en


diseñar su sistema de manera que esté excluida, a priori, la posibilidad de interbloqueo.

Havender llegó a la conclusión de que si falta alguna de las cuatro condiciones


necesarias no puede haber un interbloqueo. Este autor sugiere las siguientes
estrategias para negar varias de esas condiciones:

 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.

 Circulo vicioso de espera


La condición del círculo vicioso de espera puede prevenirse definiendo una
ordenación lineal de los tipos de recursos. Si a un proceso se le han asignado
recursos de tipo R, entonces sólo podrá realizar peticiones posteriores sobre los
recursos de los tipos siguientes a R en la ordenación.
Como en la retención y espera, la prevención del círculo vicioso de espera
puede ser ineficiente, retardando procesos y denegando accesos a recursos
innecesariamente.

 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

En este análisis se supone implícitamente que si un proceso solicita recursos, los


solicita todos al mismo tiempo:
En la mayoría de los sistemas los recursos se solicitan uno a la vez.
El S. O. debe poder:
 Decidir si el otorgamiento de un recurso es seguro o no.
 Asignarlo solo en caso de que sea seguro.
 El objetivo es evitar el bloqueo haciendo la elección correcta todo el tiempo, pero
para evitar los bloqueos se requiere de cierta información de antemano.
 Trayectorias de Recursos
Los principales algoritmos para evitar los bloqueos se basan en el concepto
de estados seguros.

El S. O. debe decidir si lo otorga o no.

Si lo otorga, el sistema entrará a una región insegura y se bloqueará en algún


momento.

Para evitar el bloqueo, hay que suspender a “B” hasta que “A” haya solicitado y
liberado el plotter.

 Estados Seguros e Inseguros


Un estado actual está conformado por “E”, “A”, “C” y “R”:

“E”: vector de recursos en existencia.

“A”: vector de recursos disponibles.

“C”: matriz de asignación actual.

“R”: matriz de solicitudes.

Un estado es seguro si:

 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.

No se puede garantizar que terminen los tres 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:

 No implica la existencia, ni siquiera eventual, de bloqueo.


 Sí implica que alguna secuencia infortunada de eventos dé como resultado un
bloqueo.
La diferencia entre estado seguro e inseguro es que:

A partir de un estado seguro, el sistema puede garantizar la conclusión de todos los


procesos.

A partir de un estado inseguro, no existe tal garantía.

Ejemplo de una transición de estado seguro a un estado inseguro. Ejemplo de una


transición de estado seguro a un estado inseguro.

8
Dado un estado actual seguro, ello no implica que vayan a ser seguros todos los
estados futuros.

 El Algoritmo del Banquero (de Dijkstra) Para Solo Un Recurso


Es un algoritmo de planificación que puede evitar los bloqueos.

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.

Un estado inseguro no tiene que llevar a un bloqueo.

El algoritmo del banquero consiste en:

 Estudiar cada solicitud al ocurrir ésta.


 Ver si su otorgamiento conduce a un estado seguro:
 En caso positivo, se otorga la solicitud.
 En caso negativo, se la pospone.

 Para ver si un estado es seguro:


 Verifica si tiene los recursos suficientes para satisfacer a otro cliente:
o En caso afirmativo, se supone que los préstamos se pagarán.
o Se verifica al siguiente cliente cercano al límite y así sucesivamente.

 Si en cierto momento se vuelven a pagar todos los créditos, el estado es seguro


y la solicitud original debe ser aprobada.

 El Algoritmo del Banquero (de Dijkstra) Para Varios Recursos

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:

 “E”: vector de recursos existentes.


 “P”: vector de recursos poseídos.
 “A”: vector de recursos disponibles.

El algoritmo para determinar si un estado es seguro es el siguiente:

1- Se busca un renglón “R” cuyas necesidades de recursos no satisfechas sean


menores o iguales que “A”:
 Si no existe tal renglón, el sistema se bloqueará en algún momento y ningún
proceso podrá concluirse.
2- Supongamos que el proceso del renglón elegido solicita todos los recursos que
necesita y concluye:
 Se señala el proceso como concluido y se añaden sus recursos al vector “A”.
3- Se repiten los pasos 1 y 2:
 Hasta que todos los procesos queden señalados como concluidos, en cuyo
caso, el estado inicial era seguro, o
 Hasta que ocurra un bloqueo, en cuyo caso, no lo era.

 Asignación de Recursos por el Algoritmo del Banquero

Se permiten las condiciones de “exclusión mutua”, “espera por” y “no


apropiatividad”:

Los procesos reclaman uso exclusivo de los recursos que requieren.

Los procesos mantienen los recursos mientras piden y esperan por otros recursos
adicionales, pero no pueden apropiarse de un proceso que mantenga esos
recursos.

Las peticiones son de un recurso a la vez.

El S. O. puede conceder o negar cada una de las peticiones; si se niega una


petición:

 El proceso retiene los recursos que ya tiene asignados.


 Espera un tiempo finito hasta que le sea atendida la petición.
 El S. O. concede peticiones que den como resultado solo estados seguros.
 Dado que el sistema se mantiene siempre en estado seguro, todas las
peticiones serán atendidas en un tiempo finito.

 Debilidades del Algoritmo del Banquero

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 la población de usuarios se mantenga constante, lo cual es


irrazonable.

 Requiere que el S. O. garantice que todas las peticiones serán concedidas en un


tiempo finito, pero en la realidad se requieren mayores garantías.

 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.

 Generalmente no es utilizado en S. O. reales.

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.

El S. O. no intenta evitar los bloqueos, sino que:

 Intenta detectar cuando han ocurrido.


 Acciona para recuperarse después del hecho.

La detección del bloqueo es el proceso de:

 Determinar si de hecho existe o no un bloqueo.


 Identificar cuáles son los procesos y recursos implicados en el bloqueo.

11
 Gráficas de Asignación de Recursos

 Una gráfica dirigida indica las asignaciones y peticiones de recursos.

 Los cuadros representan procesos.

 Los círculos grandes indican clases de recursos idénticos.

 Los círculos pequeños, dibujados dentro de los grandes, representan el


número de recursos idénticos dentro de cada clase.

 Reducción de Gráficas de Asignación de Recursos

Si las peticiones de recursos de un proceso pueden ser concedidas, se dice que


una gráfica puede ser reducida por ese proceso.

La reducción de una gráfica por un proceso determinado se muestra retirando:

 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

 Cuándo Buscar los Bloqueos

Una posibilidad es cada vez que se solicita un recurso, pero esto podría
sobrecargar al sistema.

Otra posibilidad es verificar cada “k” minutos.

Otro criterio es verificar cuando el uso de la cpu baje de cierto valor fijo:

 Si se bloquean suficientes procesos:


 Existirán pocos procesos en ejecución.
 La CPU estará inactiva con más frecuencia.
Recuperación de Bloqueos
Para romper el bloqueo de un sistema hay que anular una o más de las condiciones
necesarias para el bloqueo.

Normalmente, varios procesos perderán algo o todo lo realizado hasta el momento.

Los principales factores que dificultan la recuperación del bloqueo son los siguientes:

 Puede no estar claro si el sistema se ha bloqueado o no.


 Muchos sistemas tienen limitaciones para suspender un proceso por tiempo
indefinido y reanudarlo más tarde:
o Ej.: Los procesos de tiempo real, que deben funcionar continuamente, no

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:

 Retirando forzosamente (cancelando) a un proceso.


 Reclamando sus recursos.
 Permitiendo que los procesos restantes puedan finalizar.

Los procesos pueden ser retirados (cancelados) de acuerdo a un orden de prioridades,


existiendo las siguientes dificultades:

 Pueden no existir las prioridades de los procesos bloqueados.


 Las prioridades instantáneas (en un momento dado), pueden ser incorrectas o
confusas debido a consideraciones especiales, por ej.: procesos de baja
prioridad que tienen prioridad alta momentáneamente debido a un tiempo tope
inminente.
 La decisión óptima puede requerir un gran esfuerzo.

Algunas formas de recuperación ante bloqueos son:

 Recuperación mediante la apropiación.


 Recuperación mediante rollback.
 Recuperación mediante la eliminación de procesos.

 Recuperación Mediante la Apropiación


En ciertos casos podría ser posible tomar un recurso temporalmente de su
poseedor y dárselo a otro proceso, por ej:

 Retirar una impresora de un proceso para dedicarla a otro proceso.


 Retomar luego el primer proceso reasignándola al mismo.
La recuperación de recursos de esta forma depende en gran medida de la
naturaleza del recurso.

La elección del proceso a suspender depende mucho:

 De cuáles procesos poseen recursos que pueden ser tomados con facilidad.
 De las posibilidades de recuperación luego de la apropiación.

 Recuperación Mediante Rollback


En los S. O. donde es posible que ocurran bloqueos se puede hacer que los
procesos sean verificados periódicamente:

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.

Al detectarse un bloqueo es fácil ver cuáles son los recursos necesarios.

Para la recuperación, un proceso que posee un recurso necesario regresa hasta


cierto instante en el tiempo anterior a la adquisición:

 Inicializa alguno de sus anteriores puntos de verificación.


 El proceso regresa a un momento anterior en el que no poseía el recurso.
 El recurso se asigna ahora a uno de los procesos bloqueados.
 Si el proceso que volvió a iniciar intenta adquirir de nuevo el recurso, tendrá que
esperar hasta que esté disponible.

 Recuperación Mediante la Eliminación de Procesos

 Es la forma más sencilla de romper un bloqueo.


 Una posibilidad es eliminar un proceso del ciclo: si el bloqueo no se rompe, se
puede intentar con otro proceso del ciclo, hasta romper dicho ciclo.
 Otra posibilidad es eliminar un proceso que no esté en el ciclo, para poder liberar
sus recursos: debe elegirse un proceso que posea recursos necesarios por
algún proceso del ciclo.
 Siempre que sea posible, es mejor eliminar un proceso que pueda volver a
iniciar su ejecución sin efectos dañinos:
o Es preferible eliminar un proceso de compilación que un proceso de
actualización de una base de datos:
 La compilación se puede repetir sin problemas.
 La actualización de una base de datos no siempre se puede repetir
directamente.
Administración de memoria
La parte del sistema operativo que administra la memoria se llama administrador de la
memoria. Para ello existen diferentes esquemas de administración de memoria desde
los más simples hasta los más elaborados entre los cuales se ubican:

 Administración de la memoria sin intercambio o paginación.


Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que
desplazan los procesos de la memoria principal al disco y viceversa durante la
ejecución (intercambio y paginación) y aquellos que no.

15
 Monopogramación sin intercambio o paginación.

Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el


usuario carga toda la memoria con un programa, esto implica que cada proceso debe
contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.

 Multiprogramación y uso de la memoria.

La multiprogramación facilita la programación de una aplicación al dividirla en dos o


más procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos
de dispositivos E/S.

Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado


por la fórmula:

Uso de la CPU = 1 - pn

 Multiprogramación con particiones fijas

El objetivo en todo esto es tener más de un proceso en memoria a la vez, solución


posible sería dividir la memoria en n partes al inicio de una sesión de uso de la
máquina, pero aun así se obtiene el desperdicio de particiones grandes con una tarea
pequeña, la respuesta puede ser tener particiones pequeñas también.

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

En un sistema por lotes la organización de la memoria en particiones fijas es adecuado


pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya
que existen más usuarios de los que puede albergar la memoria, por lo que es
conveniente albergar el exceso de los procesos en disco., por supuesto para ser
ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de
procesos de disco a memoria y viceversa se le llama intercambio.
 Multiprogramación con particiones variables.

Mediante un algoritmo de administración de memoria las particiones variables varían de


forma dinámica durante el uso de la máquina, evitando desperdicio de memoria

Otros métodos de administración de memoria que tenemos son:

 La administración de memoria con mapa de bits

La memoria se divide en unidades de asignación, a cada asignación le corresponden

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.

 La administración de memoria con listas ligadas

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.

 La administración de memoria con el sistema de los asociados

Basado en el sistema binario o utiliza para las direcciones.

Memoria Virtual

El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la


idea es que el tamaño combinado de la pila, programa y datos puede exceder la
memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del
programa que se deben permanecer en memoria y el resto lo deja en disco, las partes
entre el disco y la memoria se intercambian de modo que se vayan necesitando.

 Paginación

El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme


llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco
disponible en memoria. Cuando las tablas de páginas son muy grandes se puede
utilizar un esquema de paginación de varios niveles para que las páginas se paginen a
sí mismas.

Existen distintos niveles de paginación y a su vez distintos modelos de computadoras


han trabajado con ellas.

Paginación de nivel 1: PDP-11

Paginación de 2 niveles: la VAX

Paginación de 3 niveles: la SPARC


Paginación de 4 niveles: la 68030

 Memoria asociativa

En los algoritmos de paginación las tablas de páginas se mantienen en la memoria


debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el
rendimiento.

 Algoritmos de reemplazo de páginas.

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.

 Algoritmo de reemplazo de páginas optimo

Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.

Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en


la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras
páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con
el número de instrucciones ejecutadas antes de la primera referencia a esa página, el
algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a
utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo
de página lo más posible, el único problema de este algoritmo es que es irrealizable. Al
momento del fallo de página el S.O. no tiene forma de saber a qué página se hace
referencia.

 Algoritmo de página de uso no muy reciente.

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

Clase 0: No se ha hecho referencia ni ha sido modificada

Clase 1: No se ha hecho referencia pero ha sido modificada

Clase 2: Se ha hecho referencia pero no ha sido modificada

Clase 3: Se ha hecho referencia y ha sido modificada

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.

 Algoritmo de reemplazo " primero en entrar, primero en salir FIFO"

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.

 Algoritmo de reemplazo de páginas de la segunda oportunidad

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.

 Algoritmo de reemplazo de páginas del reloj

Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas


en una lista circular con la forma de un reloj, una manecilla apunta hacia la más
antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la
manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar
en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición
y el bit se limpia, esto continua hasta encontrar una página con R=0.

 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.

Bit que se activa si se hace referencia a la página en cuestión

Bit que se activa si se modifica la página

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.

Las condiciones para un bloqueo son 4:

 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).

Hay métodos para resolver bloqueos.

 En la prevención del interbloqueo interesa ajustar el sistema para eliminar toda


posibilidad de que ocurra un bloqueo mutuo.
 Omitiendo los procesos se supone que si un proceso solicita recursos, los
solicita todos al mismo tiempo.

La detección del bloqueo es el proceso de:

 Determinar si de hecho existe o no un bloqueo.


 Identificar cuáles son los procesos y recursos implicados en el bloqueo.

Los sistemas de administración de memoria se pueden clasificar en dos tipos.

 Monopogramación sin intercambio o paginación.

Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante,


el usuario carga toda la memoria con un programa

 Multiprogramación y uso de la memoria.

Facilita la programación de una aplicación al dividirla en dos o más procesos.

20
Bibliografía
 http://lsi.vc.ehu.es
 http://mishelljuni2000.blogspot.com
 Libro Sistema Operativo.pdf
 http://html.rincondelvago.com

21

También podría gustarte