Hiperpaginación
# Hiperpaginación

En el área de los sistemas operativos, se le denomina hiperpaginación (en inglés: thrashing) a la situación en la que se utiliza una creciente cantidad de recursos para hacer una cantidad de trabajo cada vez menor. A menudo, se refiere a cuando se cargan y descargan sucesiva y constantemente partes de la imagen de un proceso desde y hacia la memoria principal y la memoria virtual o espacio de intercambio. En un estado normal, esto permite que un proceso bloqueado y no listo para correr deje lugar en memoria principal a otro proceso listo. Cuando se produce hiperpaginación, los ciclos del procesador se utilizan en llevar y traer páginas (o segmentos, según sea el caso) y el rendimiento general del sistema se degrada notablemente.

En el libro de Fundamentos de Sistemas Operativos se define a la Hiperpaginación como un fenómeno que se puede presentar debido a varias razones, por ejemplo, bajo un esquema de reemplazo local un proceso tiene asignadas pocas páginas para poder llevar a cabo su trabajo y esto lleva a que genere fallos de página con tal frecuencia que le es imposible llevar a cabo su trabajo. Por otra parte en un esquema de reemplazo global es cuando hay demasiados procesos en ejecución en el sistema haciendo que los constantes fallos y reemplazos hagan imposible a todos los procesos involucrados avanzar.

El término fue utilizado por primera vez durante la época en que los sistemas operativos funcionaban sobre cintas magnéticas para describir el sonido que las cintas hacían cuando se leían y escribían datos a alta velocidad. Gran cantidad de computadoras personales de baja gama no poseen suficiente memoria RAM para los patrones de uso actuales.

Las formas de evitar la hiperpaginación fueron un área importante de investigación en los años 70 y se desarrollaron varios algoritmos complejos pero efectivos. Los mismos se basan en la idea de intentar adivinar qué páginas serán utilizadas próximamente, basados en su historia reciente y utilizando como hipótesis el principio de cercanía de referencias. Estos son los denominados algoritmos de reemplazo de páginas.

Una estrategia que puede utilizar el sistema operativo una vez presente esta situación sería la de reducir el nivel de multiprogramación, ya que la paginación se produjo debido a que los requisitos de memoria de los procesos que se encuentran en ejecución no pueden ser satisfechos con la memoria física disponible, el sistema puede seleccionar al azar uno o más procesos para suspenderlos por completo hasta que el sistema vuelva a la normalidad, seleccionando , por ejemplo, el proceso con menor prioridad, el que este causando más fallos o el que este ocupando más memoria.

Desde un punto de vista más práctico, se puede evitar la hiperpaginación:

* Aumentando la cantidad de memoria RAM (generalmente la mejor solución a largo plazo).
* Disminuyendo la cantidad de aplicaciones en ejecución en la computadora.
* Ajustando el tamaño de la partición de intercambio.
