3.1 POLÍTICA Y FILOSOFÍA

-Filosofía 
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica. Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los datos y procesos que actualmente se están utilizando. Sea cual sea el esquema de organización del almacenamiento que se adopte para un sistema específico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento óptimo.

-Políticas


FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO.


Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos.

SJF (Shortest Job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.

SRT (Shortest remaining time scheduling ? Tiempo restante más cortó. En SJF una vez que un proceso comienza su ejecución continúa hasta terminar. En SRT, un proceso en ejecución puede ser desposeído por uno nuevo de menor tiempo de ejecución.

HRN: (highest response ratio next? Prioridad de la tasa de respuesta más alta): Política no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo está en función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido

3.2 MEMORIA REAL

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor. Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real). La organización y administración de la “memoria principal”, “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores más importantes en el diseño de los S. O.


Los términos “memoria” y “almacenamiento” se consideran equivalentes.
Los programas y datos deben estar en el almacenamiento principal para:
  • Poderlos ejecutar.
  • Referenciarlos directamente

3.3 ORGANIZACIÓN DE MEMORIA VIRTUAL

-Memoria Virtual

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los Sistemas Operativos actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso, se pueden mantener más procesos en la memoria. La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. La memoria virtual combina la RAM del equipo con espacio temporal en el disco duro. Cuando queda poca RAM, la memoria virtual mueve datos de la RAM a un espacio llamado archivo de paginación. Al mover datos al archivo de paginación y desde él, se libera RAM para que el equipo pueda completar la tarea.


-Evaluación de las Organizaciones de Almacenamiento.

Almacenamiento virtual “significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación”. Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el sistema “Atlas”.

Los métodos más comunes de implementación son mediante:

  • Técnicas de “Paginación”.
  • Técnicas de “Segmentación”.
  • Una combinación de ambas técnicas.


-Implicaciones de la memoria Virtual.

La segmentación permite al programador contemplar la memoria como si constara de varios
espacios de direcciones o segmentos. Los segmentos pueden ser distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

3.4 ADMINISTRACION DE MEMORIA VIRTUAL



La clave del concepto de memoria (almacenamiento) virtual está en la separación:
  • De las direcciones a las que hace referencia un programa.
  • De las direcciones disponibles en la memoria real (almacenamiento primario).
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
La memoria virtual es una técnica de administración de memoria desarrollada para sistemas
multitareas. Esta técnica virtualizada memoria principal (RAM) a partir de un disco duro
(almacenamiento secundario), permitiendo al sistema operativo brindarle a un programa y a sí mismo un espacio de direcciones de memoria mayores a la memoria física o real.













Paginación y Segmentación
Un proceso puede ser dividido en partes (ya sea en páginas o segmentos) que no necesitan estar localizados continuamente en la memoria principal. Esto quiere decir que todas las partes de un proceso no necesitan ser cargadas en la memoria principal durante la ejecución. Esto quiere decir, que podemos utilizar la memoria virtual para porciones de un programa que no son utilizadas actualmente y que otro programa que necesite memoria principal pueda accesar a ésta.
ejemplo:                     

                                      


Ventajas de la Paginación
  • Fácil asignación de memoria
  • La memoria proviene de una lista «libre» de partes de cierto tamaño, asignar una página simplemente significa retirarla de la lista y la fragmentación externa no es un problema
  • Fácil intercambio de bloques de un programa
  • Todos los bloques son del mismo tamaño y las páginas son un múltiplo conveniente del tamaño del bloque del disco
Inconvenientes de la Paginación
  • Puede existir fragmentación interna ya que los procesos pueden no usar memoria en algunas páginas
  • El almacenamiento de cada tabla de referencias puede ser significante
  • Hay gastos altos de memoria para las referencias


Estrategias de Administración
Existen varias formas de gestionar la memoria virtual, a continuación mencionamos las más
importantes:
- Estrategias de mejor ajuste
- Estrategias de primer ajuste
- Estrategias de peor ajuste
- Estrategias de Obtención
- Estrategias de Colocación
- Estrategias de Reemplazo

Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocará en el espacio vació del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar.

Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el almacenamiento principal en el primer vació disponibles lo bastante grande para contenerlo.

Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento primario en el espacio vació donde peor se ajusta es decir en el espacio más grande posible.

Estrategias de obtención: Determina cuando se debe transferir una página o un segmento de
almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o a un segmento antes de traer la página o el segmento de almacenamiento primario. Los esquemas de obtención anticipada intentan determinar por adelantado a cuales paginas o segmentos hará referencia un proceso.

Estrategias de colocación: Determinan en qué lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Una página entrante se puede colocar en cualquier marco de página disponible.

Estrategias de reemplazo: Sirven para decidir cuál página o segmento se debe desplazar para dar espacio a una página o segmento entrante cuando está completamente ocupado el
almacenamiento primario.