CONTROL DE MEMORIA.
Con este método, el SO controla el tiempo del procesador y los recursos de I/O. El tercer
recurso es la memoria. En un sistema multiprogramado, la memoria correspondiente al usuario
debe subdividirse para acomodar múltiples procesos. Esta tarea la realiza el SO y se conoce
como control de memoria, y resulta vital ya que una eficiente distribución permitirá disponer
más tareas en memoria y necesitar menos accesos a dispositivos I/O, generalmente lentos, y
que obligarían al procesador a permanecer en espera frecuentemente.
PARTICION.
El SO ocupa una porción fija de memoria principal. El resto está repartido para uso de los
distintos procesos. El esquema más simple para repartir la memoria disponible es utilizar
particiones de tamaño fijo. De todos modos, aunque las particiones son de tamaño fijo, no
todas son de igual tamaño. Cuando un proceso es cargado en memoria, se coloca en la
partición disponible más pequeña que lo pueda contener.
Buffer de Traducción Rápida
En principio, toda referencia a memoria virtual puede ocasionar dos accesos a la memoria
física: uno para captar el elemento de la tabla de páginas apropiada, y otro para captar el dato
deseado, por lo que en principio se duplicaría el tiempo de acceso a memoria. Para resolver
este problema, la mayoría de los esquemas de memoria virtual utilizan una caché especial para
los elementos de la tabla de páginas, llamada buffer de traducción rápida (TLB: Translation
Lookaside Buffer), que contiene los elementos de la tabla de páginas accedidos más
recientemente. Debido al principio de localización de referencias, este esquema mejora el
rendimiento del sistema.
El mecanismo de memoria virtual interactúa con la caché del sistema.
Primero, el sistema de memoria consulta el TLB para comprobar si el descriptor de la tabla de
páginas está incluido en él. Si es así, se genera la dirección física. Si no, se accede al elemento
correspondiente de la tabla de páginas. Una vez obtenida la dirección real, se consulta la caché
para comprobar si el bloque que contiene la palabra está presente. Si es así, se envía a la CPU.
Si no, se busca en memoria principal. Deberán actualizarse también, en caso necesario, la TLB y
la caché.
SEGMENTACION.
La segmentación es otra forma de subdividir la memoria direccionable. Mientras la paginación
es transparente al programador, la segmentación es generalmente visible, y permite organizar
programas y datos, a la vez que asociar privilegios y atributos de protección a los datos e
instrucciones. La segmentación permite al programador ver la memoria organizada en
múltiples espacios de direcciones, o segmentos. Los segmentos son de tamaño variable.
Pueden existir varios segmentos de programa para varios tipos de programa, al igual que
57