Optimización de Memoria en Sistemas Operativos: Virtualización y Algoritmos de Reemplazo
Clasificado en Informática
Escrito el en español con un tamaño de 3,29 KB
Optimización de Memoria en Sistemas Operativos
Para que un proceso se ejecute, se requiere ubicarlo en memoria principal junto con los datos que direcciona.
Multiprogramación y Optimización
Para optimizar el uso del computador, se requiere tener varios procesos en memoria principal (grado de multiprogramación). Estos procesos incluyen:
- El código y los datos de un programa en ejecución.
- Las rutinas del Sistema Operativo.
Puede ser que la memoria principal no tenga capacidad suficiente para todos los procesos, por lo que es necesaria una gestión de memoria.
Memoria Virtual
La memoria virtual permite la separación de la memoria de usuario lógica y la memoria física.
- Solo una parte del programa está en memoria.
- El espacio de direcciones lógicas puede ser mucho mayor que el espacio de direcciones físicas.
- Permite optimizar el uso de la memoria por los procesos y facilita la compartición de memoria.
Dirección Lógica vs. Dirección Física
- Dirección física: La que llega al chip de memoria.
- Dirección lógica (virtual): La dirección que genera el proceso.
El dispositivo que traduce direcciones lógicas a físicas es la MMU (Memory Management Unit).
Fragmentación
La fragmentación se refiere a la memoria desaprovechada.
Fragmentación Interna
Fragmentación interna: se debe a la diferencia de tamaño entre la partición de memoria y el objeto residente dentro de ella.
- Se produce siempre que se trabaje con bloques de memoria de tamaño fijo.
- Si el tamaño del objeto no coincide con el de la partición, queda una zona que no se puede aprovechar.
Fragmentación Externa
Fragmentación externa: se debe al desaprovechamiento de memoria entre bloques. Se evita compactando bloques vacíos.
Algoritmos de Reemplazo
El objetivo de los algoritmos de reemplazo es que la frecuencia de fallos de página sea lo más baja posible.
Evaluamos un algoritmo ejecutándolo con una serie específica de referencias y calculando el número de fallos de página, conociendo el número de marcos que tenemos.
Tipos de Algoritmos Básicos
FIFO (First-In, First-Out)
- Se sustituye la página que lleva más tiempo en memoria.
- Fácil de implementar (cola FIFO de páginas).
- Problema: al no tener en cuenta la historia del uso de una página dada, FIFO puede prescindir de páginas a las que se accede con frecuencia.
- Cuando la página ya existe, los marcos de página no cambian.
LRU (Least Recently Used)
Se asocia a cada página el instante en que se usó por última vez, y en caso de reemplazo se escoge la página que tiene más tiempo sin usarse.
- Implementación: Contadores (marca de tiempo de cada página) o Pila.
- Requiere hardware adicional y es costoso.
- Los sistemas reales implementan aproximaciones a la LRU.
- Cuando la página ya existe, sustituye a la página que lleva más tiempo sin usarse. En la tabla, la página más antigua siempre está en la posición más baja.