Tipos de gestión de memoria
Cuando se arranca el ordenador, se van cargando en memoria varias cosas.
Funciones BIOS
Sistema Operativo Residente
El resto de memoria queda disponible para los procesos que se quieran ejecutar. El SO debe encontrar formas adecuadas de gestionar ese espacio para conseguir sacar el máximo partido al ordenador. Si fuese un ordenador primitivo con un sistema operativo como MS-DOS no habría más que meter en ese hueco de memoria el proceso que se quiere ejecutar y descargarlo cuando se ejecute, ya que no hay opciones de hacer multi-tarea ni manejar procesos concurrentes.
Los ordenadores actuales, como se ha visto en el apartado anterior, son capaces de manejar la concurrencia de procesos repartiendo tiempo de CPU entre ellos. Pero para ello, deben estar bien ordenados en la memoria; no se pueden meter todos juntos sin control ya que unos podrían interferir con otros dando resultados inesperados. La memoria entonces se debe dividir y las particiones deben cumplir deseablemente tres cosas:
Protección -> Respecto a la ejecución de otros procesos
Reasignación -> El proceso que se alberga debe ser 'agnóstico' de la dirección de memoria donde está guardado
Compartición -> Se puede habilitar un lugar común de la memoria donde varios procesos pueden leer y escribir para comunicarse
Para conseguirlas, haremos uso de la memoria lógica (también llamada virtual) y del particionamiento de la misma.
La memoria lógica es crear una ilusión a cada uno de los procesos para que les parezca que todo el espacio de direcciones está disponible en exclusiva para él.
El particionamiento es la forma de trocear la memoria para que los trozos contengan procesos. Ideas de particionamiento.
Particiones fijas.
El SO prepara por adelantado varios tamaños de particiones. Los procesos van entrando en las que caben. Suele tener mucha fragmentación interna
Particiones variables.
Cada vez que llega un proceso, el SO le asigna un espacio de direcciones y toma nota de él en una tabla para mantenerlo. Cuando acaba el proceso, el hueco que deja se intenta aprovechar para el siguiente proceso si cabe. Suele tener mucha fragmentación externa
Paginación.
Es la más avanzada y hace uso claro de la memoria lógica. Divide el proceso que se quiere cargar en memoria en pequeños trozos de un tamaño determinado (4kb usualmente) a los que llama páginas (hace como que el proceso se carga en la memoria lógica y se trocea teniendo ya cada trozo una dirección lógica). Los mete en los frames de la memoria física y mantiene en una tabla ese mapeo realizado. Con este proceso se soluciona la fragmentación externa y se minimiza la interna ya que los procesos pueden usar memoria física no contigua al estar direccionada frame a frame.
Última actualización