Definiciones
Memoria RAM. Lugar de almacenamiento volátil donde se guardan instrucciones y datos.
Dirección de memoria física. Un número que determina de forma unívoca un byte en donde podemos leer o almacenar información. ¿Cuántas direcciones hay? Pues ya sabemos que la memoria se comunica por el FSB con el procesador (en concreto hablamos del bus de direcciones). Así que dependerá del número de bits que es capaz de manejar el bus. Un bus de 20 bits será capaz de direccionar 2^20 = 1 millón de bytes (1Mbyte). Date cuenta que no hemos hablado de la CPU; si la CPU tiene 16 bits o 32 bits no cambia ese máximo.
Dirección de memoria lógica. Cada proceso tiene todo un espacio de direcciones limpio para él; como si no hubiese otros procesos ejecutándose.
Página. Es un 'trozo' contiguo de memoria lógica. (Suelen ser unos 4Kb).
Frame. Es un 'trozo' contiguo de memoria física. Tiene el mismo tamaño que la página
Tabla de páginas. Es propia de cada proceso, como la memoria lógica. Relaciona páginas con frames. También da más información valiosa (si se ha tocado esa página, si es de usuario o de kernel,...)
Supervisor de páginas. Es parte del SO. Crea y mantiene las tablas de páginas. Es el encargado de hacer 'swapping'.
Swapping. Es un mecanismo que salta cuando un proceso solicita una página que no está cargada en un frame de la memoria física, sino que está guardada en disco. Si hay sitio suficiente en memoria, se carga y se refresca la tabla de páginas con el frame donde se cargó. Si no hay sitio, se debe elegir un proceso que está en memoria y que no se está ejecutando; se descarga de memoria RAM al disco para liberra espacio a la RAM. El supervisor elige el proceso a descargar por algún algoritmo predefinido. Luego se carga la página solicitada en alguno de los frames libres y se actualiza la tabla.
MMU. Memory Management Unit. Unidad hardware que ayuda a traducir direcciones lógicas en direcciones físicas y mantiene las tablas de páginas con ayuda del supervisor de páginas.
Fragmentación. Es el desaprovechamiento de la memoria que se asume al no coincidir exactamente un proceso que se quiere ejecutar con el espacio dispuesto para él. Puede ser:
Interna: Los procesos suelen ser muy pequeños para los espacios de memoria que el SO dispuso para ellos. Como no se pueden compartir espacios, el resto queda desaprovechado
Externa: Los procesos suelen ser muy grandes para los espacios de memoria que el SO dispuso para ellos. Como no caben en muchos de ellos, se quedan sin ser aprovechados
Última actualización