La parte del sistema operativo que administra la memoria se llama
administrador de memoria. Su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aqullas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberarlo cuando terminen, as como administrar el intercambio entre la memoria principal y el disco, en los casos que la memoria principal no pueda albergar a todos los procesos.
MEMORIA VIRTUAL Anteriormente los programas eran demasiados grandes para caber en la memoria disponible. La solucin adoptada fue dividir el programa en partes, llamadas capas. La capa 0 se ejecutara primero. Al terminar llamara a la otra capa. Algunos sistemas por capas eran muy complejos y permitan que varias capas estuvieran dentro de la memoria al mismo tiempo. Las capas se mantenan en el disco y se intercambiaban con la memoria por medio del sistema operativo. Aunque el trabajo real del intercambio de capas entre el disco y la memoria era hecho por el sistema, el trabajo de dividir el programa en partes deba ser realizado por el programador. El trabajo de dividir en partes pequeas o mdulos provocaba molestias y prdida de tiempo. No paso mucho tiempo antes de que alguien descubriera una forma de encargarle el trabajo a la computadora. El mtodo diseado (Fotheringham, 1961) se conoce como la memoria virtual. La idea fundamental detrs de la memoria virtual es que el tamao combinado del programa, los datos y la pila puede exceder la cantidad de memoria fsica disponible para l. El sistema operativo mantiene aqullas partes del programa que se utilicen en cada momento en la memoria principal y el resto en el disco. Por ejemplo, un programa de un 1M de puede ejecutar en una mquina de 256K, si se eligen con cuidado los 256K del programa que deben permanecer en la memoria cada instante; las partes del programa se intercambia entre el disco y la memoria conforme sea necesario. La memoria virtual tambin sirve en un sistema de multiprogramacin. Por ejemplo, ocho programas de 1M se pueden asignar en una particin de 256K de una memoria de 2M, como si cada programa operara teniendo su propia mquina particular de 256K. De hecho la memoria virtual y la multiprogramacin se complementan. Mientras que un programa espera a que parte de l sea intercambiado, espera una E/S y no puede ejecutarse, de forma que la CPU puede asignar a otro proceso.
PAGINACIN En cualquier computadora, existe un conjunto de direcciones de memoria que pueden producir los programas. Cuando un programa utiliza una instruccin como MOVER REG, 1000 copia el contenido de la direccin de memoria 1000 a REG (o viceversa, segn la computadora). Las direcciones se pueden generar mediante ndices, registro de bases, registro de segmento y otras formas. Estas direcciones generadas por los programas se llaman direcciones virtuales, y conforman el hueco de direcciones virtuales. Al utilizar la memoria virtual, las direcciones virtuales no pasan en forma directa al bus de memoria, sino que va a una unidad de administracin de la memoria (MMU), un chip o conjunto de chips que asocian las direcciones virtuales con las direcciones de la memoria fsica.
Tarjeta de la CPU La CPU enva las direcciones virtuales a la MMU CPU Unidad de admn. Memoria (MMU)
Bus
La MMU enva las direcciones fsicas a la memoria La posicin y funcin de las MMU
El hueco de direcciones virtuales se divide en unidades llamadas pginas. Las unidades correspondientes en la memoria fsica se llaman marcos para pginas. Las pginas y los marcos tienen siempre el mismo tamao. Los tamaos de 512 bytes a 8K son de uso comn.
SEGMENTACIN Qu es la segmentacin? Es dividir el espacio de direcciones de un solo proceso en bloques que puedan ser colocados en reas no contiguas de memoria. Para qu sirve la segmentacin? Para reducir el tamao medio de los procesos. La extensin de la fragmentacin externa y sus impactos negativos en cuanto a memoria desaprovechada debera reducirse en sistemas en donde el tamao medio de sus peticiones de asignacin se ms pequeo. Entidad lgica es un segmento, proporciona dinmica y formas sofisticadas de proteccin y comparticin. Memoria Controlador del disco La segmentacin posee algunos propiedades de los esquemas de gestin de memoria contigua (con respecto a los segmentos individuales) y no contiguos (con respecto al espacio de direcciones de un proceso).
ADMINISTRACIN DE MEMORIA VIRTUAL Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar paginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria). La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, sta en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente.
ESTRATEGIAS DE ADMINISTRACIN ESTRATEGIAS DE COLOCACIN EN ALMACENAMIENTO 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 colocar 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 ms grande posible. ESTRATEGIAS DE ALMACENAMIENTO DE MEMORIA VIRTUAL Estrategias de obtencin: Determina cuando se debe transferir una pgina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencin por demanda esperan a que un proceso en ejecucin haga referencia a una pgina o a un segmento antes de traer la pgina o el segmento de almacenamiento primario. Los esquemas de obtencin anticipada intentan determinar por adelantado a cuales paginas o segmentos har referencia un proceso. Estrategias de colocacin: Determinan en qu lugar del almacenamiento primario se debe colocar una pgina o un segmento entrante. Una pgina entrante se puede colocar en cualquier marco de pgina disponible. Estrategias de reemplazo: Sirven para decidir cual pgina o segmento se debe desplazar para dar espacio a una pgina o segmento entrante cuando est completamente ocupado el almacenamiento primario.
TECNICAS DE REEMPLAZO DE PGINA ESTRATEGIAS DE REEMPLAZO DE PGINA
Las rutinas de administracin de almacenamiento del Sistema operativo deben decidir que pgina del almacenamiento primario se debe desplazar para dejar espacio a una pgina entrante (Ah71). Principio de Optimalidad: Para obtener un rendimiento ptimo, la pgina que se debe reemplazar es aquella que tardar ms tiempo en ser utilizada. Esta estrategia ptima de reemplazo se denomina OPT o MIN. Reemplazo de Pginas aleatorio: Es una tcnica sencilla. Todas las pginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podra seleccionar cualquier pgina para ser reemplazada, incluyendo la siguiente pgina la que se har referencia. Las decisiones de reemplazo aleatorio se de pginas se pueden tomar rpidamente y con un nmero significativo de marcos de pgina. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar. Reemplazo de pginas de primeras entradas-primeras salidas (PEPS): Cada pgina se registra en el instante que entr en el almacenamiento primario. Cuando se necesita reemplazar una pgina, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo. Anomalas PEPS: Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo de pginas PEPS, ciertos patrones de referencia a pgina originan ms fallas de pginas cuando aumenta el nmero de marcos de pgina asignados a un proceso. Este fenmeno se denomina Anomala PEPS o anomala Belady. La columna de la izquierda indica el patrn de referencias a pginas de un proceso. La primera tabla muestra como dicho patrn a referencia de pginas hace que las pginas se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de pginas a proceso. La segunda tabla muestra cmo se comporta ste proceso en las mismas circunstancias, pero con cuatro marcos de pginas asignados, a la izquierda de cada tabla se indica si la nueva referencia a una pgina ocasiona o no una falla de pagina. Cuando el proceso se ejecuta en cuatro pginas, experimenta una falla de pgina ms que cuando se ejecuta con tres. Reemplazo de pginas de la menos reciente utilizada: Se selecciona para su reemplazo, a aquella pgina que no se ha sido utilizada durante mayor tiempo. La estrategia se basa en que la heurstica de localidad segn en el cual el pasado reciente es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada pgina con el instante en que .se hace referencia a ella. Por el trabajo adicional que requiere no se usa a menudo en los sistemas actuales; lo que se hace es utilizar estrategias que ese aproximen a la LRU y que no ocasionen grandes costos. Reemplazo de pginas de la menos frecuentemente utilizada (LFU): La pgina por remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha hecho referencia con menos frecuencia. Al parecer estos esquemas de reemplazo de pginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisin el futuro. Reemplazo de pginas de la no utilizada recientemente (NUR): Como es deseable reemplazar una pgina que no estaba en el almacenamiento primario, la estrategia NUR se lleva a la prctica con la adicin dedos bits de hardware por pgina. Esos bits son:
Bit de Referencia = O si no se ha hecho referencia a la pgina = 1 se ha hecho regencia a la pgina, Bit de Modificacin = O si la pgina no ha sido modificada = 1 si la pgina ha sido modificada.
El bit de modificacin se denomina a menudo Bit sucio. La estrategia NUR trabaja: Inicialmente, los bits de referencias de todas las pginas valen cero. Cuando ocurre una referencia a una pgina, su bit de referencia toma el nmero uno. Cuando se va a reemplazar una pgina a la que no se ha hecho referencia .Si una pgina no ha sido objeto de una referencia se comprueba si ha sido modificada. Si lo ha sido se reemplaza. Pues requiere menos trabajo que el reemplazo de una pgina modificada, la cual debe escribirse en el almacenamiento secundario. De otro modo hay que reemplazar una pgina modificada. Los bits de referencia de las pginas activas cambiarn a 1 casi de inmediato. Segn se ha descrito el esquema NUR origina la existencia de cuatro grupos de pginas: Grupo 1 sin referencia no modificado Grupo 2 sin referencia modificado Grupo 3 con referencia no modificado Grupo 4 con referencia modificado Las pginas de los dos primeros grupos se reemplazarn primero, y las de los ltimos grupos, al final. Las pginas de un grupo se seleccionan aleatoriamente para ser reemplazadas. Obsrvese que el grupo 2 parece describir una situaci6n irreal en la que las pginas han sido modificadas, pero no se ha hecho referencia a ellas; sin embargo, esto es una consecuencia simple de la reiniciacin peridica de los bits de referencia (pero no de los bits de modificaci6n) y es perfectamente razonable. Modificaciones de PEPS; reemplazo de pginas por reloj y reemplazo de pginas con segunda oportunidad: La estrategia PEPS puede decidir reemplazar una pgina muy utilizada que ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando slo aquellas pginas cuyos bits de referencia valgan O. La variante de PEPS denominada "con segunde oportunidad" examina el bit de referencia de la pgina ms antigua; si este bit vale O, se selecciona de inmediato la pgina para ser reemplazada. Si el bit de referencia vale 1, se le asigna el valor O y la pgina se pasa al final de la lista y se considera en esencia como una pgina nueva; gradualmente dicha pgina se desplaza hacia el principio de la lista, donde ser seleccionada para reemplazo slo si su bit de referencia sigue valiendo O. En esencia, esto da a la pgina una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la pgina llegue al principio de la lista. La variacin 'z' del reloj" del algoritmo de la segunda oportunidad dispone las pginas en una lista circular, 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. Cuando el bit de referencia de una pgina toma el valor O, el apuntador se mueve al siguiente elemento de la lista (simulando el movirl1iento de esta pgina al final de la lista PEPS).
PGINACION POR DEMANDA Las pginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pgina al almacenamiento secundario al primado hasta que un proceso en ejecucin haga explcitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. Los resultados de la teora de la computabilidad, especfica mente el problema de la detencin (Mi67) (He77), indican que no se puede predecir con precisin la trayectoria de ejecucin que seguir un programa. As pues, cualquier intento de cargar pginas con anticipacin a su uso puede hacer que se carguen las pginas equivocadas. La paginacin por demanda garantiza que las nicas pginas que se transfieren al almacenamiento principal son aqullas que requieren los procesos. El trabajo extra requerido para decidir cules pginas se deben transferir al almacenamiento principal es mnimo. Las estrategias de obtencin anticipada de pginas G pueden requerir mucho tiempo de ejecucin adicional.
PAGINACIN ANTICIPADA En la paginacin anticipada, el sistema operativo intenta predecir las pginas que necesitar un proceso y entonces carga dichas cuando hay espacio disponible. Mientras el proceso se ejecuta con sus pginas actuales, el sistema carga las dems pginas que estarn disponibles cuando las requiera el proceso.
LIBERACIN DE PGINA Los programas que ya no requieran pginas especficas debern desechar tales pginas de sus conjuntos de trabajo. Por lo regular hay un tiempo durante el cual permanecen en el almacenamiento principal la pginas que ya no se requieran. Cuando es evidente que ya no ser necesaria una pgina, un usuario podr dar una orden de "liberacin voluntaria de pgina" para liberar el marco de pgina. Esto eliminara el retraso que implica dejar que el proceso deseche poco a poco la pgina de su conjunto de trabajo. TAMAO DE PGINA El tamao ser de acuerdo a las aplicaciones deseadas para un sistema en particular. Los factores que determinan los tamaos son: Cuanto menor sea el tamao de la pgina, ms pginas y marcos de pgina habr y mayores tendrn que ser la tabla. Dependiendo del tamao de la informacin se determina si se usan pginas pequeas o grandes. Cuanto menor sea la pgina, menor ser la fragmentacin interna.