3.1 Politica y Filosofia.

Filosofia:

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 procesos y datos que actualmente se están utilizando.
Sea cual sea es 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 las estrategias de
administración del almacenamiento determinan el comportamiento de la administración de memoria cuando
se siguen ciertas políticas:

· ¿Cuándo se toma un nuevo programa para colocarlo en memoria?
· ¿Se toma el programa cuando el sistema lo solicita
específicamente o se intenta anticiparse alas particiones del
sistema?
· ¿En que lugar del almacenamiento principal se coloca el
programa por ejecutar?
· ¿Se colocan los programas lo más cerca unos de otros en los
espacios disponibles de la memoria principal para reducir al
mínimo el desperdicio de espacio, o se colocan los programas
lo más rápido posible para reducir al mínimo el tiempo de
ejecución?
· Si se necesita colocar un nuevo programa en el almacenamiento
principal y éste está lleno, ¿Cuál de los otros programas se
desaloja?

Se han realizado sistemas que utilizan cada una de estas estrategias de administración.
Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder
hacer referencia de ellos. Los que no se necesitan de inmediato pueden guardarse en el almacenamiento
secundario.
Unix permite procesos múltiples y en un proceso puede generar otro fácilmente. La planificación del
procesador usa un algoritmo basado en prioridades. La administración de memoria es un algoritmo de
regiones variables con intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por
velocidad ni complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeño de memoria.
Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX
intercambiaba el contenido en memoria de los procesos.

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 política 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 mas 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 (Sortest remaining time scheduling – Tiempo restante más corto): En SJF una vez que un proceso
comienza su ejecución continua 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 esta en función del tiempo de servicio sino también
del tiempo que ha esperado para ser atendido.

 Referenciarlos directamente. “memoria primaria” o “memoria real” de un sistema ha sido y es uno de los factores mas importantes en el diseño de los S. 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. Los programas y datos deben estar en el almacenamiento principal para:  Poderlos ejecutar. pero el acceso a la informacion contenida en ella es de mas rapido acceso. Los metodos mas comunes para poner en practica el almacenamiento visrual son: . Cuando no existe memoria virtual no hay diferenciacion entre el espacio de direcciones y la memoria real. pero su costo es a su vez mayor. Los términos “memoria” y “almacenamiento” se consideran equivalentes. Por lo general esta memoria es de mayor costo que la memoria secundaria. el espacio de direcciones que puede ser usado en los programas tiene identico tamano al espacio de memoria real posible. La organización y administración de la “memoria principal”. O. 3. el espacio de direcciones disponibles para los programas es aquel determinado por el tamano de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual sera mayor que el de la memoria real).3.3 Organizacion de Memoria Virtual Mediante un esquema se ejecutan programas que no se encuentran totalmente en memoria principal. un programa puede tener un tamaño mayor a la memoria fisica disponible. Por lo tanto. Solo la memoria cache es mas rapida que la principal.2 Memoria Real. Si se utiliza memoria virtual.

Paginación ¿Qué es la paginación? El termino memoria virtual se asocia normalmente con sistemas que emplean paginación. .  Una combinación de ambas técnicas. la entrada incluye también el número de marco para esa pagina. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas. La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación.O actuales. las direcciones logicas deben hacerse corresponder con las direcciones fisicas. las direcciones disponibles en memoria principal se denominan Direcciones Fisicas (F). se necesita un bit en cada entrada de la tabla para indicar si la pagina perteneciente esta presente en la memoria principal o no. La memoria virtual ha llegado a ser un componente esencial de la mayoría de los S. se pueden mantener más procesos en la memoria.  Técnicas de “segmentación”. Puesto que solo algunas de las páginas de un proceso pueden estar en la memoria principal. mediante una aplicacion m: L ----> F . Y como en un instante dado. Si el bit indica que la pagina esta en la memoria. en la memoria solo se tienen unos pocos fragmentos de un proceso dado.  Paginacion. este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física. Cada proceso tiene su propia tabla de paginas y cuando carga todas sus paginas en la o memoria principal. Por otra parte. la cual se denomina Mapeo de Memoria (Mapping). aunque también se puede usar memoria virtual basada en la segmentación.  Segmentacion Conceptos Basicos:  Las direcciones referidas por un proceso se denominan Direcciones Virtuales o Logicas (L). Los métodos más comunes de implementación son mediante:  Técnicas de “paginación”.  En el momento de ejecucion de los programas.

Si no ha habido cambios. cuando todos los segmentos se encuentran en la memoria principal. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M). Organización En el estudio de la segmentación simple. así como su longitud. Las referencias a la memoria constan de una dirección de la forma (numero de segmento. Se presta a la comparición entre procesos. 4. 3. Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado: 1. Segmentación Implicaciones de la memoria virtual La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Simplifica la gestión de estructuras de datos crecientes. . sin que sea necesario recopilar o volver a montar el conjunto de programas por completo. para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargo en la memoria principal. Cada entrada de la tabla contiene la dirección de comienzo del segmento correspondiente de la memoria principal. la tabla de segmentos del proceso se crea y se carga en la memoria. no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente. 2. Con memoria virtual segmentada. Permite modificar y recopilar los programas independientemente. es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Los segmentos pueden ser de distintos tamaños. se llego a la conclusión de que cada proceso tiene su propia tabla de segmento y que.O expandirá o reducirá el segmento cuando se necesite. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido. desplazamiento). Se presta a la protección. incluso de forma dinámica. a la estructura de datos se le puede asignar a su propio segmento y el S. La misma estructura se necesitara al hablar de un esquema de memoria virtual basado en la segmentación donde las entradas de la tabla de segmentos pasan a ser mas complejas. el programador o el administrador del sistema podrán asignar los permisos de acceso de la forma adecuada. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada.

combinan la paginación y la segmentación. Para el caso combinado. Para la paginación y segmentación puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la dirección real.'g'. el segmento `A' puede estar formado por las paginas reales `a'. si se hizo referencia a una dirección que cae dentro de ellas. Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargo por última vez en la memoria principal.4.'p' y `x'. Si el bit indica que el segmento esta en la memoria. .3. aunque la mayoría de los sistemas operativos modernos implantan esquemas combinados. la entrada incluye también la dirección de comienzo y la longitud del segmento. cada proceso tiene una tabla de segmentos. Por ejemplo.Puesto que solo algunos de los segmentos de un proceso estarán en la memoria principal.'w' y `z'. nuevamente se vera como se traduce una dirección virtual en una localidad de memoria real. El segmento `B' puede estar compuesto de las paginas `f'. La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la división lógica de los programas (segmentos) con la granularidad de las páginas. Si no ha habido cambios. Por cada segmento se tiene una dirección a una tabla de páginas. se consulta TP para encontrar la tabla de segmentos de ese proceso. Es decir. se puede decir que se tiene un direccionamiento `tridimensional'. un proceso estará repartido en la memoria real en pequeñas unidades (paginas) cuya liga son los segmentos. Otro aspecto importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM. Cuando un proceso hace alguna referencia a memoria. Para comprender este esquema.'j'. no será necesario escribir en el disco el segmento cuando llegue el momento de reemplazarlo en el espacio que ocupa actualmente Sistema de paginación / segmentación La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos. Por cada renglón de esa tabla se tiene un número de proceso y una dirección a una tabla de segmentos. se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente esta presente en la memoria principal. De esta forma. El sistema debe contar con una tabla de procesos (TP) (Ver figura 3. Se usan más comúnmente dos estrategias: cargado de páginas por demanda y cargado de páginas anticipada. En cada tabla de segmentos de proceso (TSP) se tienen los números de los segmentos que componen a ese proceso.'b'. La estrategia de cargado por demanda consiste en que las páginas solamente son llevadas a RAM si fueron solicitadas. Cada tabla de páginas tiene las direcciones de las páginas que componen a un solo segmento. es decir. es decir.1). También es factible así el compartir segmentos a medida que las partes necesitadas de los mismos se van reverenciando (paginas).'c'.

Reemplazo de páginas de primeras entradas-primeras salidas (PEPS) . Estrategias de Colocación Determinan en que lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Esta estrategia óptima de reemplazo se denomina OPT o MIN. Reemplazo de Páginas aleatorio Es una técnica sencilla. Los esquemas de obtención anticipada intentan determinar por adelantado a cuales páginas o segmentos hará referencia un proceso. Estrategias de Reemplazo Sirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una pagina o segmento entrante cuando esta completamente ocupado el almacenamiento primario. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar. la pagina que se debe reemplazar es aquella que tardara mas tiempo en ser utilizada. Esta estrategia podría seleccionar cualquier página para ser reemplazada. incluyendo la siguiente página la que se hará referencia. Una página entrante se puede colocar en cualquier marco de página disponible. Las decisiones de reemplazo aleatorio se de paginas se pueden tomar rápidamente y con un numero significativo de marcos de pagina. Principio de Optimalizad Para obtener un rendimiento optimo. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o un segmento antes de traer la página o el segmento de almacenamiento primario. Técnicas de reemplazo de pagina Las rutinas de administración de almacenamiento del Sistema operativo deben decidir que pagina del almacenamiento primario se debe desplazar para dejar espacio a una pagina entrante.4.1 Estrategias de Administración Estrategias de Obtención Determinan cuando se debe de transferir una página o un segmento de almacenamiento secundario al primario. Todas las páginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo.Administración de Memoria 3.

Reemplazo de páginas de la menos frecuentemente utilizada (LFU) La pagina por remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha hecho referencia con menos frecuencia. experimenta una falla de página más que cuando se ejecuta con tres. La variante de PEPS denominada "con segunde oportunidad" examina el bit de referencia de la pagina mas antigua. lo que se hace es utilizar estrategias que ese aproximen a la LRU y que no ocasionen grandes costos. a la izquierda de cada tabla se indica si la nueva referencia a una pagina ocasiona o no una falla de pagina. La segunda tabla muestra como se comporta este proceso en las mismas circunstancias. donde será seleccionada para reemplazo solo si su bit de referencia sigue valiendo O. Al parecer estos esquemas de reemplazo de páginas corren cierto riesgo de tomar decisiones equivocadas. ciertos patrones de referencia a pagina originan mas fallas de paginas cuando aumenta el numero de marcos de pagina asignados a un proceso. Por el trabajo adicional que requiere no se usa a menudo en los sistemas actuales. Cuando se necesita reemplazar una pagina. reemplazo de paginas por reloj y reemplazo de paginas con segunda oportunidad La estrategia PEPS puede decidir reemplazar una pagina muy utilizada que ha permanecido en memoria durante mucho tiempo. La columna de la izquierda indica el patrón de referencias a páginas de un proceso.Cada pagina se registra en el instante que entro en el almacenamiento primario. Este fenómeno se denomina Anomalía PEPS o anomalía Belady. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro. pero con cuatro marcos de paginas asignados. si este bit vale O. Esta posibilidad se puede evitar reemplazando solo aquellas paginas cuyos bits de referencia valgan O. En esencia. Anomalías PEPS Belady. a aquella pagina que no se ha sido utilizada durante mayor tiempo. se selecciona de inmediato la pagina para ser reemplazada. Modificaciones de PEPS. La primera tabla muestra como dicho patrón a referencia de páginas hace que las páginas se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de páginas a proceso. Reemplazo de páginas de la menos reciente utilizada Se selecciona para su reemplazo. gradualmente dicha pagina se desplaza hacia el principio de la lista.se hace referencia a ella. de modo que LRU exige que se marque cada pagina con el instante en que . Cuando el proceso se ejecuta en cuatro páginas. se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo. Si el bit de referencia vale 1. se le asigna el valor O y la pagina se pasa al final de la lista y se considera en esencia como una pagina nueva. Nelson y Shelder descubrieron que al utilizar el reemplazo de paginas PEPS. La estrategia se basa en que la heurística de localidad según en el cual el pasado reciente es un buen indicador del futuro cercano. esto da a la página una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la .

Cuando el bit de referencia de una página toma el valor O.pagina llegue al principio de la lista. en lugar de en una lista lineal. Un apuntador a la lista se desplaza alrededor de la lista circular en la misma forma que gira la manecilla de un reloj. . La variación 'z' del reloj" del algoritmo de la segunda oportunidad dispone las paginas en una lista circular. el apuntador se mueve al siguiente elemento de la lista (simulando el movirl1iento de esta pagina al final de la lista PEPS).