Cada proceso en su espacio
Varios procesos comparten la misma RAM sin pisarse. Al terminar sabrás cómo la MMU traduce y protege cada dirección.
Primero, la idea completa
Mira el video entero o salta a la parte que quieras repasar. Después, cada idea tiene su propia escena para tocarla.
Qué hace la administración de memoria
Todo proceso necesita estar en memoria para ejecutarse, y casi todos piden memoria dinámica mientras corren. El sistema operativo administra la memoria real de la computadora y le presenta a cada proceso un espacio de memoria lógico, con la garantía de que ningún otro proceso va a interferir con él, ni él con los demás.
El objetivo general es lograr un balance entre usabilidad y rendimiento: que quepan los procesos que el usuario quiere, sin que el sistema se vuelva lento.
02 · No solo la RAMLa jerarquía de memoria
"Memoria" no es solo la RAM: es toda una serie de dispositivos que guardan información y que el sistema debe administrar. Se ordenan en tres niveles:
- Interna o volátil (inboard): registros del procesador, caché y RAM. Está en la tarjeta madre, es la más rápida y la más cara, y se borra al apagar.
- Externa o persistente (offboard): discos duros y ópticos. Conserva los datos, es más lenta y más barata.
- Fuera de línea o extraíble (offline): cintas magnéticas, discos magneto-ópticos y discos de una sola escritura. Mucha capacidad a bajo precio, pero lectura y escritura lentas.
Toca cada nivel para comparar velocidad, costo y capacidad. Los tiempos son órdenes de magnitud típicos ampliación.
Funciones de la administración de memoria
- Relocalización: poder colocar la memoria lógica de un proceso en distintas partes de la memoria real, según convenga, sin que el proceso se entere ni el programador tenga que hacer nada.
- Protección y compartición: que ningún proceso afecte la memoria de otro, y a la vez permitir que compartan áreas de código (código reentrante) o de datos cuando lo piden de forma explícita. Esa debe ser la única manera de tocar la memoria de otro proceso.
- Asignación: dar memoria al cargar el proceso (para su código y sus datos estáticos), cuando la pide durante la ejecución, y recuperarla cuando la libera o cuando termina.
Carga estática
Los primeros sistemas eran de un solo usuario y no tenían hardware de protección. Se usaba la carga estática: el programador debía saber de antemano en qué dirección se cargaría su programa, porque usaba direcciones absolutas para leer datos y para saltar. Los ejecutables .COM de DOS son un ejemplo tardío: solo funcionaban con la versión de DOS para la que se escribieron, porque cada versión dejaba libre la memoria a partir de una dirección distinta.
El mismo programa, que salta a la instrucción 0120, cargado en dos lugares distintos. Compara la carga estática con la relativa a un registro base.
Registros base y límite
La carga dinámica cambió todo: los programas usan direcciones relativas y el hardware las traduce. En la unidad de administración de memoria (MMU) hay un registro base (o de relocalización) y un registro límite. En cada acceso a una dirección lógica, la MMU:
- verifica que la dirección sea menor que el límite, es decir, que no se salga del área del proceso;
- si está dentro, le suma el registro base para formar la dirección física.
Esos registros cambian con el proceso que tiene la CPU: en cada cambio de contexto se restauran junto con el resto de su estado. En los primeros procesadores de Intel se usaban varios registros de segmento como base: mov ax, [FF] equivale a mov ax, DS:[FF], y jump [5] a jump CS:[5].
El proceso tiene base 2000 y límite 1800. Mueve la dirección lógica y mira qué hace la MMU.
Antes de leer la respuesta
Las direcciones van en hexadecimal:
lee 0450. Usa run A para darle la CPU a un proceso, mapa para ver la memoria y ? para la lista de comandos.Tu turno: la MMU por dentro
Una memoria de 64 KB (de 0000 a FFFF). El sistema operativo ocupa de 0000 a 0FFF. El proceso A tiene base 2000 y límite 1800; el proceso B, base 6000 y límite 1000. Dale la CPU a uno, traduce direcciones y relocaliza procesos.
Comprueba lo que entendiste
Cada respuesta incorrecta explica por qué parece correcta y en qué falla.