Requisito previo: memoria virtual
La hiperpaginación es una condición o una situación en la que el sistema dedica la mayor parte de su tiempo a atender las fallas de la página, pero el procesamiento real realizado es muy insignificante.
Causas de la paliza
Thrashing tiene un impacto en el rendimiento de ejecución del sistema operativo. Thrashing también causa serios problemas de rendimiento con el sistema operativo. Cuando el uso de la CPU es bajo, el mecanismo de programación de procesos intenta cargar varios procesos en la memoria al mismo tiempo, lo que aumenta el grado de programación múltiple.
En este caso, la cantidad de procesos en la memoria excede la cantidad de cuadros disponibles en la memoria. A cada proceso se le asigna un número determinado de fotogramas con los que trabajar.
Si un proceso de alta prioridad llega a la memoria y el marco no está vacío en ese momento, el otro proceso que ocupa el marco se moverá al almacenamiento secundario y el marco libre se asignará a un proceso de mayor prioridad.
También podemos argumentar que tan pronto como la memoria está llena, el procedimiento comienza a tomar mucho tiempo para intercambiar las páginas requeridas. Debido a que la mayoría de los procesos están esperando páginas, la utilización de la CPU vuelve a caer.
Como resultado, un alto nivel de programación múltiple y la falta de marcos son dos de las razones más comunes para la paliza en el sistema operativo.
El concepto básico implicado es que si a un proceso se le asignan muy pocos marcos, habrá demasiadas fallas de página y con demasiada frecuencia. Como resultado, la CPU no haría ningún trabajo útil y la utilización de la CPU se reduciría drásticamente. El planificador a largo plazo intentaría mejorar la utilización de la CPU cargando algunos procesos más en la memoria, aumentando así el grado de programación múltiple. Esto daría como resultado una mayor disminución en la utilización de la CPU, lo que desenstringría una reacción en string de fallas de página más altas seguidas de un aumento en el grado de programación múltiple, llamado Thrashing.
Modelo de localidad:
una localidad es un conjunto de páginas que se usan activamente juntas. El modelo de localidad establece que a medida que se ejecuta un proceso, se mueve de una localidad a otra. Un programa generalmente se compone de varias localidades diferentes que pueden superponerse.
Por ejemplo, cuando se llama a una función, define una nueva localidad donde se hacen referencias de memoria a las instrucciones de la llamada a la función, sus variables locales y globales, etc. De manera similar, cuando se sale de la función, el proceso sale de esta localidad.
Técnicas para manejar:
1. Modelo de conjunto de trabajo:
Este modelo se basa en el concepto mencionado anteriormente del modelo de localidad.
El principio básico establece que si asignamos suficientes marcos a un proceso para acomodar su localidad actual, solo fallará cada vez que se mueva a una nueva localidad. Pero si los marcos asignados son menores que el tamaño de la localidad actual, el proceso está destinado a thrash.
De acuerdo con este modelo, basado en el parámetro A, el conjunto de trabajo se define como el conjunto de páginas en las referencias de página ‘A’ más recientes. Por lo tanto, todas las páginas utilizadas activamente siempre terminarían siendo parte del conjunto de trabajo.
La precisión del conjunto de trabajo depende del valor del parámetro A. Si A es demasiado grande, los conjuntos de trabajo pueden superponerse. Por otro lado, para valores más pequeños de A, la localidad podría no estar cubierta por completo.
Si D es la demanda total de marcos y es el tamaño del conjunto de trabajo para el proceso i,
Ahora bien, si ‘m’ es el número de fotogramas disponibles en la memoria, hay 2 posibilidades:
- (i) D>m, es decir, la demanda total supera el número de fotogramas, entonces se producirá una paliza ya que algunos procesos no obtendrán suficientes fotogramas.
- (ii) D<=m, entonces no habría palizas.
2. Frecuencia de fallo de página:
Un enfoque más directo para manejar la hiperpaginación es el que utiliza el concepto de frecuencia de fallo de página.
El problema asociado con Thrashing es la alta tasa de fallas de página y, por lo tanto, el concepto aquí es controlar la tasa de fallas de página.
Si la tasa de errores de página es demasiado alta, indica que el proceso tiene muy pocos marcos asignados. Por el contrario, una tasa baja de errores de página indica que el proceso tiene demasiados marcos.
Se pueden establecer límites superior e inferior en la tasa de fallas de página deseada como se muestra en el diagrama.
Si la tasa de errores de página cae por debajo del límite inferior, los marcos se pueden eliminar del proceso. De manera similar, si la tasa de errores de página excede el límite superior, se pueden asignar más marcos al proceso.
En otras palabras, el estado gráfico del sistema debe limitarse a la región rectangular formada en el diagrama dado.
Aquí también, si la tasa de fallas de la página es alta sin marcos libres, entonces algunos de los procesos pueden suspenderse y los marcos asignados a ellos pueden reasignarse a otros procesos. Los procesos suspendidos se pueden reiniciar más tarde.