Está en la página 1de 29

INSTITUTO TECNOLOGICO SUPERIOR DE ALVARADO

INGENIERA EN SISTEMAS COMPUTACIONALES

Materia: SISTEMAS OPERATIVOS Semestre-Grupo: CURSO DE VERANO Tema: ADMINISTRACION DE MEMORIA Docente: I.S.C. GABRIELA HERNANDEZ CRUZ Alumnos: MARA YUVINDIA HERNNDEZ ECHAVARRA, [096Z0067] Fecha: 10/ JULIO/2013 Lugar: H. Y G. ALVARADO, VERACRUZ

OBJETIVO
El alumno conocer las tcnicas de administracin de memoria.

INTRODUCCION
La parte del S. O. que administra la memoria se llama administrador de la memoria: Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando estos la necesitan. Libera espacio de memoria asignada a procesos que han terminado. La memoria principal es un recurso costoso, por lo que su uso debe optimizarse.

3.1 POLTICA Y FILOSOFA.


FILOSOFA: La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando. Sea cual sea el esquema de organizacin del almacenamiento que se adopte para un sistema especfico, es necesario decidir qu estrategias se deben utilizar para obtener un rendimiento ptimo. Las estrategias de administracin del

almacenamiento determinan el comportamiento de la administracin de memoria cuando se siguen ciertas polticas. Se han realizado sistemas que utilizan cada una de estas estrategias de administracin. 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. Por ejemplo el caso de Unix permite procesos mltiples y un proceso puede generar otro fcilmente. La planificacin del procesador usa un algoritmo basado en prioridades. La administracin 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 pequeo 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. POLTICAS. Organizacin de la memoria.- Forma de considerar este almacenamiento: Se coloca un solo programa de usuario o varios? Si se encuentran varios programas de usuario:

Se les concede la misma cantidad de espacio o particiones de diferente tamao? Se usa un esquema rgido de nmero y tamao de particiones o un esquema dinmico y adaptable? Se requiere que los trabajos funcionen en una particin especfica o en cualquiera donde quepan? Se requerir o no que cada trabajo sea colocado en un bloque contiguo de memoria? Independiente del esquema de organizacin hay que decidir las estrategias que se usarn para optimizar el rendimiento. Las estrategias de administracin deben considerar: Cmo se consigue un nuevo programa para colocar en la memoria: cuando el sistema lo pide o intenta anticiparse a las peticiones? Dnde se colocar el programa que se ejecutar a continuacin: se prioriza el tiempo de carga o la optimizacin en el uso de la memoria? Con qu criterio se desplazarn programas?

3.2 MEMORIA REAL.


Cantidad de memoria principal con que cuenta un equipo Memoria secundaria auxiliar.- la soportada generalmente en discos. Para que un programa pueda ser ejecutado, l y sus datos deben estar en memoria principal. Para mejorar el rendimiento del CPU se pueden repartir sus servicios entre varios programas que necesitan estar cargados simultneamente en memoria compartindola. La memoria real o principal se considera el recurso central, ya que tanto el cpu como los dispositivos e/s la acceden para leer o grabar. Hay 2 parmetros relacionados con la velocidad de r/w en memoria real: Tiempo de acceso.- Tiempo que transcurre del inicio al fin de una operacin r/w.

Tiempo de ciclo de memoria.- Retraso que impone el hardware entre una operacin y otra.

3.2.1 ADMINISTRACIN DE ALMACENAMIENTO.


Direccionamiento La memoria se puede ver como una sucesin de bytes, cada uno con su direccin y se puede acceder a ellos indicando dicha direccin.

Asignacin de direcciones En qu direcciones cargar los datos y programas? El programador disea su programa sin saber dnde se cargar. Simplemente definir una sentencia de inicio que marcar el comienzo de sus instrucciones y a partir de ella describir el resto del programa. El compilador traducir a lenguaje mquina y asignar a las instrucciones y variables un desplazamiento respecto a la sentencia inicial (cero relativo). Esta operacin se llama asignacin de direcciones relativas. Cuando el programa se enlaza, el linker lo colocar en memoria asignando el cero relativo a una direccin real y el resto de direcciones basadas en los desplazamientos (Transformacin de direcciones relativas a absolutas o reales)

3.2.2 JERARQUA.
Nivel 0: Registros Nivel 1: Memoria cach Nivel 2: Memoria principal Nivel 3: Disco duro (con el mecanismo de memoria virtual) Registro.- memoria de alta velocidad y poca capacidad, integrada en el cpu, que permite guardar y acceder a valores muy usados, generalmente en operaciones matemticas. Estn en la cumbre de la jerarqua de memoria, y son la manera ms rpida que tiene el sistema de almacenar datos. Se miden generalmente por el nmero de bits que almacenan; "registro de 8 bits" o "registro de 32 bits". Se implementan en un banco de registros Los CPUs tienen adems otros registros usados con un propsito especifico, como el contador de programa. Memoria cach.- tipo especial de memoria que se sita entre el cpu y la RAM para almacenar datos que se usan frecuentemente. Agiliza la transmisin de datos entre el CPU y la memoria principal. Es de acceso directo y mucho ms rpida que la RAM. Memoria principal.- Son circuitos integrados capaces de almacenar informacin digital, a los que tiene acceso el CPU. Poseen una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. Hay dos tipos: ROM (Read Only Memory) "Memoria de solo lectura" que almacenan cdigos de programa grabados de fbrica. (BIOS) RAM (Random Access Memory) "Memoria de acceso aleatorio", almacena datos que pueden ser escritos y borrados atendiendo a los procesos de computacin. "Aleatorio" indica que sus localidades pueden ser accedidas directamente, dando rapidez a los procesos. El CPU direcciona las posiciones de la RAM para poder acceder a los datos almacenados en ellas y para colocar los resultados de las operaciones.

Memoria secundaria.- dispositivo encargado de almacenar informacin de forma permanente. Los programas y datos deben estar en memoria principal para poder ejecutarse o ser referenciados. Los programas y datos que no son necesarios de inmediato pueden mantenerse en memoria secundaria.

3.2.3 ESTRATEGIA DE ADMINISTRACIN DE MEMORIA.


Estn dirigidas a la obtencin del mejor uso posible del recurso de la memoria principal. Se dividen en las siguientes categoras: estrategias de bsqueda.- establecen cundo obtener el siguiente fragmento de programa o de datos para su insercin en la memoria principal. bsqueda por demanda.- el siguiente fragmento de programa o de datos se carga a memoria principal cuando algn programa en ejecucin lo referencia. bsqueda anticipada.- puede producir un mejor rendimiento del sistema ya que no espera a que se efecte la peticin, sino que trata de anticiparse a sta. estrategias de colocacin.- determinan el lugar de la memoria dnde se colocar (cargar) un programa nuevo. estrategias de reposicin.- determinan cul fragmento de programa o datos liberar para dar lugar a los programas nuevos.

3.2.4 ASIGNACIN CONTIGUA VS NO CONTIGUA.


asignacin contigua.- cada programa ocupa un bloque contiguo de localidades de memoria. asignacin no contigua.- un programa se divide en varios bloques o segmentos que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es ms compleja pero ms eficiente que la asignacin continua. Asignacin Contigua de Memoria de Un Solo Usuario

El tamao de los programas est limitado por la cantidad de memoria principal, pero se puede superar este lmite con tcnicas de recubrimientos. Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde la memoria secundaria ocupando las reas de memoria liberadas por la seccin que ya no se necesita. La administracin manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento Proteccin en los sistemas de un solo usuario El usuario tiene un completo control sobre la totalidad de la memoria principal: La memoria se divide en porciones que contienen el S. O., el programa del usuario y una porcin sin usar. El programa del usuario podra destruir reas del S. O. que podran: bloquear el sistema o producir salidas errneas. El S. O. debe estar protegido contra el proceso usuario por medio de un registro de lmites o registro frontera:

Contiene la direccin de la instruccin ms alta usada por el S. O. Si se intenta ingresar al S. O. la instruccin es interceptada y el proceso finaliza.

3.2.5 MULTIPROGRAMACIN DE PARTICIN FIJA, PARTICIN VARIABLE, CON INTERCAMBIO DE ALMACENAMIENTO.


Multiprogramacin de Particin Fija Los sistemas de un usuario desperdician gran cantidad de recursos

computacionales debido a que cuando ocurre una peticin de e/s el CPU normalmente no puede continuar el proceso hasta que concluya la operacin de e/s requerida. Los perifricos de e/s frenan la ejecucin de los procesos ya que

comparativamente el CPU es ms rpido que los dispositivos de e/s. Los sistemas de multiprogramacin permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema: Un trabajo en espera de e / s ceder el CPU a otro trabajo que est listo para efectuar cmputos. Existe paralelismo entre el procesamiento y la e/s. Se incrementa el uso del CPU y la capacidad global de ejecucin del sistema. Es necesario que varios trabajos residan a la vez en la memoria principal. Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas Las particiones de la memoria principal: Son de tamao fijo. Se maneja una lista para cada particin. Alojan un proceso cada una. El CPU se cambia rpidamente entre los procesos creando la ilusin de simultaneidad. El S. O. resulta de implementacin relativamente sencilla pero no se optimiza el uso de la memoria. Est condicionada a saber con anticipacin las necesidades de memoria de un programa y su orden de llegada

Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables Se usa una sola lista para todas las particiones y el sistema operativo determinar qu programa cargar y en qu particin. Se producen programas relocalizables que puedan ser ejecutados en cualquier particin disponible de tamao suficiente para aceptarlos. Mejoran el uso de la memoria. Confieren ms flexibilidad en el armado de la carga de procesos. Proteccin en los Sistemas de Multiprogramacin Si se usa asignacin contigua de memoria la proteccin suele implementarse con varios registros de lmites. Los extremos superior e inferior de una particin pueden ser: Delineados con dos registros. Indicando el lmite inferior o superior y el tamao de la particin o regin. Fragmentacin en la Multiprogramacin de Particin Fija La fragmentacin de memoria ocurre en todos los sistemas independientemente de su organizacin de memoria. En los S. O. de multiprogramacin de particin fija la fragmentacin se produce cuando: Los trabajos del usuario no llenan completamente sus particiones designadas. Una particin permanece sin usar porque es demasiado pequea para alojar un trabajo que est en espera.

Considerando una memoria dividida en 3 particiones de 128 K, 128 K y 256 K respectivamente: Fragmentacin interna.- si un programa necesita 100 K de memoria y hay una particin de 128K se desaprovechan 28 K al interior de la particin. Fragmentacin externa.- Puede haber un programa de 130 K en una particin de 256 y otro de 100k en una de 128 K, presentndose una peticin de un programa de 140K que no podr ser cargado en la particin libre, habiendo en total, suficiente memoria.

Multiprogramacin de Particin Variable Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria. No hay lmites fijos de memoria, es decir que la particin de un trabajo es su propio tamao. Se consideran esquemas de asignacin contigua, dado que un programa debe ocupar posiciones adyacentes de memoria. Los procesos que terminan dejan disponibles espacios de memoria principal llamados agujeros: Pueden ser usados por otros trabajos que cuando finalizan dejan otros agujeros menores. En sucesivos pasos los agujeros son cada vez ms numerosos pero ms pequeos, por lo que se genera un desperdicio de memoria principal.

Combinacin de agujeros (reas libres) Consiste en fusionar agujeros adyacentes para formar uno sencillo ms grande. Se puede hacer cuando un trabajo termina y la memoria que libera tiene lmites con otros agujeros. Compactacin de Memoria Puede ocurrir que los agujeros (reas libres) separados distribuidos por todo la memoria principal constituyan una cantidad importante de memoria: Podra ser suficiente (el total global disponible) para alojar a procesos formados en espera de memoria. Podra no ser suficiente ningn rea libre individual. Principales desventajas de la compactacin Consume recursos del sistema El sistema debe detener todo mientras efecta la compactacin, lo que puede afectar los tiempos de respuesta. Implica la relocalizacin (reubicacin) de los procesos que se encuentran en la memoria.

Una alta carga de trabajo significa mayor frecuencia de compactacin que aumenta el uso de recursos. Estrategias de Colocacin de la memoria Se usan para determinar el lugar de la memoria donde sern colocados los programas y datos que van llegando y se les clasifica de la siguiente manera: Estrategia de mejor ajuste: Un trabajo nuevo es colocado en el agujero en el cual quepa de forma ms ajustada. Debe dejarse el menor espacio sin usar. Estrategia de primer ajuste: Un trabajo nuevo es colocado en el primer agujero disponible con tamao suficiente para alojarlo. Estrategia de peor ajuste: Consiste en colocar un programa en el agujero ms grande posible. El agujero restante es grande como para poder alojar a un nuevo programa. Multiprogramacin con Intercambio de Memoria Los programas de usuario no requieren estar en memoria principal hasta su finalizacin. Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar: Cede la memoria y el CPU al siguiente trabajo. La totalidad de la memoria se dedica a un trabajo durante un breve perodo de tiempo. Los trabajos son intercambiados, dndose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminacin. Es un esquema razonable y eficiente para un nmero relativamente reducido de procesos. Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin. El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio: Manteniendo al mismo tiempo varias imgenes de usuario o imgenes de memoria en la memoria principal. (swap in)

Retirando una imagen de usuario de la memoria principal solo cuando es necesaria su memoria para una nueva imagen. (swap out) Incrementando la cantidad de memoria principal disponible en el sistema. Las imgenes de usuario (imgenes de memoria) retiradas de la memoria principal se graban en la memoria secundaria.

3.3 ORGANIZACIN DE MEMORIA VIRTUAL.


Memoria virtual.- capacidad de direccionar un espacio de memoria mucho mayor que el disponible en la memoria primaria. Los mtodos ms comunes de implementacin son mediante: Tcnicas de paginacin. Tcnicas de segmentacin. Combinacin de ambas. Las direcciones generadas por los programas en su ejecucin no son necesariamente, las contenidas en la memoria primaria (real), ya que las direcciones virtuales suelen seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro de la memoria primaria.

3.3.1 Evolucin de las organizaciones de almacenamiento.


Real: Sistemas dedicados a un usuario. Real: Sistemas de multiprogramacin en memoria real: Multiprogramacin en particin fija: Absoluta. Relocalizable (reubicable). Multiprogramacin en particin variable. Virtual: Multiprogramacin en memoria virtual: Paginacin pura. Segmentacin pura.

Combinacin paginacin / segmentacin.

Conceptos Bsicos de Memoria Virtual La clave del concepto de memoria virtual est en la disociacin de: Las direcciones a las que hace referencia un programa. Las direcciones disponibles en la memoria real (primaria). Los principales conceptos son los siguientes: Direcciones virtuales: las referidas por un proceso en ejecucin. Direcciones reales: las disponibles dentro de la memoria primaria. Espacio de direcciones virtuales (v) de un proceso: nmero de direcciones virtuales que puede referenciar el proceso. Espacio de direcciones reales (r) de una computadora: nmero de direcciones reales disponibles en la computadora. Los procesos hacen referencia a direcciones virtuales pero stas deben ejecutarse en la memoria real: Las direcciones virtuales deben ser transformadas dentro de las direcciones reales, mientras el proceso est en ejecucin. La traduccin de direcciones deber hacerse rpidamente para no degradar al sistema. Existen varios medios para asociar las direcciones virtuales con las: La traduccin dinmica de direcciones (dat) convierte las direcciones virtuales en reales al ejecutarse el proceso. Las direcciones contiguas dentro del espacio de direcciones virtuales de un proceso no tienen por qu ser contiguas dentro de la memoria real, a esto se denomina contigidad artificial

3.3.2 PAGINACIN.
La necesidad de asignar memoria en cantidades contiguas para cada programa es el mayor inconveniente para un buen aprovechamiento de la misma. La paginacin es una tcnica de gestin que permite asignar la memoria de forma discontinua. La memoria fsica se divide en trozos de tamao fijo llamados frames y la lgica en bloques de igual tamao llamados pginas. El sistema operativo mantiene una tabla de pginas donde relaciona cada pgina cargada en memoria con el frame que la contenga o sea su direccin inicial en memoria real. Cada direccin que genera el CPU ser interceptada y dividida en dos componentes, un nmero de pgina (p) y un desplazamiento en la pgina (d). Usando p como ndice, el gestor de memoria recorre la tabla de pginas hasta localizar dicha pgina, y a continuacin sumar d a la direccin de carga correspondiente obteniendo la direccin real. El tratamiento anterior exige que se realice por hardware. Cada programa se divide en pginas, y stas se cargan en frames libres que no tienen que ser contiguos. Administracin de la memoria. La paginacin es una forma de reasignar direcciones dinmicamente. El sistema analiza cada nuevo trabajo que se disponga a entrar para conocer el nmero de pginas que ocupa y buscar en su lista de frames libres un nmero igual de ellos. Si existen, cargar en ellos las pginas del programa y construir la correspondiente tabla de pginas actualizando la lista de frames libres. Cada trabajo en memoria tendr su propia tabla de pginas apuntadas por el pcb. As se logra evitar la fragmentacin externa ya que cualquier frame libre es asignable a un trabajo que lo necesite. Seguir existiendo fragmentacin interna porque generalmente los trabajos no ocupan el total de la pgina. Esta fragmentacin se reduce si la pgina tiene un tamao pequeo, pero se necesita una tabla de pginas mayor.

Rendimiento. Memoria Cach. Registros asociativos. Para agilizar la conversin de direcciones el sistema mantiene en memoria la tabla de pginas de los trabajos activos y usa un registro especial llamado registro base, para indicar la direccin de la tabla de pginas del proceso en ejecucin. As cuando se conmute de un trabajo a otro se restaura la direccin de la tabla de pginas correspondiente. Para transformar cada direccin lgica generada por el cpu en su direccin real, el sistema accede en primer lugar a la tabla de pgina correspondiente y despus a la direccin real. As cada direccin provoca dos accesos a memoria y se duplican los tiempos de ejecucin. Se mejora el uso de la memoria pero los procesos son ms largos. Para resolver esto se recurre a memorias pequeas de muy alta velocidad donde se puedan mantener las entradas a las tablas de pginas ms usadas. Esta memoria (cach) es similar a la principal pero con menor tiempo de acceso y con eso se reduce el retraso producido por la paginacin. En sistemas pequeos, con tablas de pginas de pocas entradas se usa un conjunto de registros hardware para contener dichas tablas (registros asociativos). Pginas compartidas. La paginacin permite que varios procesos compartan pginas en memoria. Esto es bueno para los sistemas de tiempo compartido. Imaginemos un sistema con 20 usuarios que usan un editor de textos, en el sistema se cargar una sola vez el programa correspondiente y ste ser usado por todos ellos aunque los datos sean propios de cada uno. Cada usuario contendr en su tabla de pginas las entradas correspondientes al editor, apuntando todas ellas a los mismos frames y a distintos para los datos. Es comn usar pginas compartidas, su contenido debe permanecer inalterado y tener cdigo reentrante (durante la ejecucin no se altera ningn valor interno). Si el contenido de las pginas compartidas no debe modificarse, deben protegerse contra todo intento de escritura. Se necesita un sistema de proteccin de pginas en memoria que controle las direcciones a las que se puede acceder y el modo en que se hace dicho acceso. Para ello se aaden a las entradas de la tabla de

pginas una serie de bits de proteccin (direccin de la pagina), el esquema de proteccin se complementa con otro bit por entrada de la tabla de pginas llamado bit de validez.

3.3.3 SEGMENTACIN.
La segmentacin es una tcnica distinta de gestin de memoria que pretende acercarse ms al punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un programa principal desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc.). Desde este punto de vista, un programa es un conjunto de componentes lgicos de tamao variable o un conjunto de segmentos, es decir, el espacio lgico de direcciones se considera como un conjunto de segmentos, cada uno definido por su tamao y un nmero. La segmentacin de un programa la realiza el compilador y en ella cada direccin lgica se expresar mediante dos valores: nmero de segmento y desplazamiento dentro del segmento. Hardware de segmentacin. Puesto que la memoria fsica se direcciona linealmente, ser necesario transformar cada direccin lgica en una direccin real. Esta conversin la realiza un dispositivo especial de hardware consultando la tabla de segmentos correspondiente. Rendimiento. Reduce la fragmentacin interna de la memoria provocada por la paginacin, ya que asigna a cada programa la cantidad de memoria que requiere. La carga de un programa en memoria exige la bsqueda de los huecos adecuados a sus segmentos y puesto que stos son de tamao variable, se ajustarn lo ms posible a las necesidades, producindose huecos pequeos. En este caso se produce fragmentacin externa.

La eficacia de la segmentacin requiere, de igual forma que la paginacin, el uso de memorias cach para lograr unos tiempos de acceso adecuados. De igual forma que en la paginacin, se pueden compartir segmentos entre varios procesos.

3.3.4 SISTEMAS DE PAGINACIN-SEGMENTACIN.


Tanto la paginacin como la segmentacin, tienen ventajas e inconvenientes, y parece lgico intentar combinar ambas tcnicas para aprovechar sus

caractersticas positivas. En todo sistema se define, por su arquitectura, un espacio mximo de direcciones lgicas, tamao mximo de cualquier programa que quiera ejecutarse, e implica un nmero de pginas. Por esto, algunos sistemas usan una tcnica de paginacin segmentada consistente en segmentar la tabla de pginas

adecundola al tamao del programa. Para ello, mantiene una tabla de segmentos cuyas entradas indican la direccin de inicio de cada tabla de pginas y su tamao. Se usa un hardware especial. Otros sistemas optan por paginar los segmentos, es decir, usan segmentos cuyo tamao es un nmero entero de pginas. Esta tcnica se denomina segmentacin paginada. La tabla de segmentos de la segmentacin pura cambia de contenido y sus entradas ya no apuntan al inicio del segmento correspondiente indicando su tamao, sino que apuntan a una tabla de pginas del segmento indicando su longitud. De esta forma se evita la fragmentacin externa propia de la segmentacin, pues cualquier hueco ser de una pgina como mnimo, y por tanto usable para cualquier segmento que lo necesite.

3.4 ADMINISTRACIN DE MEMORIA VIRTUAL.


Los sistemas de gestin de la memoria vistos hasta ahora estn sujetos a la exigencia de que un programa, para ejecutarse, debe de estar cargado en memoria principal en su totalidad. Sin embargo, no todas las partes del programa se ejecutan a la vez. El programador disea rutinas que slo se ejecutan en determinadas circunstancias. Por ejemplo, las rutinas de error. As, no parece necesario que todo el programa est cargado en memoria para poder ser procesado. La memoria virtual es una tcnica de gestin que, combinando hardware y software, permite la ejecucin de programas parcialmente cargados en memoria real. Esta forma de trabajar aporta ventajas importantes: Si los programas se pueden ejecutar por partes, la memoria lgica puede ser mayor que la real disponible. Puesto que cada programa ocupa menos memoria real, se puede elevar el ndice de multiprogramacin, y por tanto, la eficiencia del sistema. Al cargar menos cantidad de cada programa, se necesitan menos operaciones de entrada/salida para las operaciones de carga e intercambio de los mismos.

3.4.1 ESTRATEGIAS DE ADMINISTRACIN.


Las diferentes partes de un programa se van cargando en memoria a medida que se necesitan, y por ello, esta tcnica debe considerar tres aspectos importantes: Carga. Las porciones del programa se cargan cuando se necesiten (demanda) o se cargan por adelantado (anticipacin). Colocacin. Los sistemas de memoria virtual que utilicen segmentacin deben decidir, al cargar un nuevo segmento, si lo hacen en el hueco ms adecuado (best fit) o bien en el primero posible (first fit). Reemplazo. Lo normal ser que toda la memoria real est ocupada, y cuando se necesite cargar una nueva parte de un programa habr que reemplazar alguna de las existentes. Es importante definir la seleccin de la parte a reemplazar.

Esta tcnica es difcil de llevar a la prctica. Los sistemas que la usan son complejos, pero a la vez, deben ser muy eficientes. De lo contrario, la ejecucin de los programas puede empeorar notablemente.

3.4.2 TCNICAS DE REEMPLAZO DE PGINAS.


La tcnica de peticin de pginas permite reducir la memoria ocupada por cada programa durante su proceso. Todos los sistemas que usan la tcnica de memoria virtual sobre utilizan en mayor o menor medida la memoria fsica para obtener un mejor rendimiento. Para ello, deben hacerse algo ms complejos: Supongamos que uno de esos programas intenta acceder a una direccin cuya pgina no est en memoria. El hardware la intercepta y cede el control al sistema operativo que, despus de comprobar que es una direccin legal, la trata como una falta de pgina. Buscar un hueco en memoria. En este punto al analizar la lista de frames libres comprueba que no hay hueco disponible y, como responsable de la gestin de la memoria, debe resolver la situacin sin afectar al programa. Una posible solucin es sacar de memoria algn programa cargado y usar los frames que deja libres, pero esto lleva consigo una sobrecarga importante en la operacin de intercambio (swap). La solucin adoptada, generalmente, es sustituir alguna de las pginas cargadas (reemplazar pginas). Para ello, la rutina del sistema que gestiona la interrupcin de falta de pgina deber trabajar de la siguiente manera: Encontrar la pgina solicitada en el almacenamiento secundario. Encontrar un frame libre. Si existe, usarlo. Si no existe, usar un algoritmo de reemplazamiento para seleccionar la pgina a reemplazar. Salvar la pgina reemplazada en el almacenamiento secundario,

actualizando las tablas afectadas.

Llevar la pgina solicitada al frame libre y actualizar las tablas correspondientes.

Algoritmos de reemplazamiento. El algoritmo ptimo ser aquel que seleccione la pgina que vaya a tardar ms en ser usada para sustituirla. Cuando se produce una falta de pgina, la memoria est ocupada por un grupo de pginas y una de ellas, la que provoc la falta, va a ser usada inmediatamente y, por tanto, no debe ser sustituida. De las otras, algunas se necesitarn al cabo de unas pocas instrucciones, otras al cabo de algunas ms. Es evidente que la mejor solucin es reemplazar la que tarde ms instrucciones en ser necesitada, ya que su ausencia tardar ms en hacerse sentir y durante ese intervalo pueden acabar otros procesos con la consiguiente liberacin de frames. La dificultad de esta solucin radica en la imposibilidad de prever el comportamiento futuro de los procesos, pero como en otras muchas situaciones de la vida cotidiana, se puede prever, en cierta medida dicho comportamiento, partiendo de la experiencia del pasado (heurstica), de las referencias a memoria que hasta el momento han realizado los procesos. Los algoritmos que se han ideado para controlar el reemplazamiento parten del uso pasado de las pginas para aproximarse a la solucin ptima. Su idoneidad quedar definida por dos factores: nmero de faltas de pgina que provoca y el costo de su uso (la sobrecarga que produce en el sistema). Un factor que condiciona el nmero de faltas de pgina es el nmero de frames disponibles en el hardware. En general, a ms frames menos faltas. Algoritmo FIFO (First In First Out). Es el ms sencillo. Cuando se necesite sustituir una pgina, se elegir aquella que lleve ms tiempo en memoria (primera en llegar, primera en salir). Para controlar el tiempo de permanencia en memoria de las pginas, este algoritmo usa una lista de llegada a memoria de las mismas. La primera de la fila ser aquella que lleve ms tiempo cargada y, segn el criterio FIFO, ser la primera en ser sustituida.

Un criterio de seleccin tan simple es fcil de programar y a la vez producir poca sobrecarga en el sistema, pero su eficacia es relativa. No es improbable que la razn por la que una pgina lleve ms tiempo en memoria sea su mayor uso, y en ese caso, este algoritmo sustituir la pgina menos adecuada. Pensemos en un sistema de tiempo compartido con varios usuarios usando un editor de textos, compartiendo pginas del mismo. Normalmente sern stas las ms antiguas en memoria y, aunque su uso es muy alto, el criterio FIFO las reemplazar provocando inmediatamente una sucesin de falta de pginas. Es inadecuado para sistemas de tiempo compartido, pero puede ser til en entornos batch. Algoritmo LRU(Least Recently Used). Es una buena aproximacin a la solucin ptima, considerando que aquellas pginas muy usadas en el pasado reciente lo sern tambin en el futuro. En el mismo sentido, las pginas poco usadas en el pasado seguirn sindolo en el futuro, y se deber sustituir aquella que haya sido menos usada recientemente. En este caso, emplear el tiempo de uso es un criterio que refleja mucho mejor el comportamiento de los procesos en su uso de la memoria. Ponerlo en prctica es relativamente difcil, ya que el sistema debe contabilizar, de alguna forma, el tiempo en el que se produce cada referencia a memoria para poder clasificar las pginas segn su uso. Este control se puede realizar de varias maneras: Contadores de hardware. Incorpora un contador de referencias a memoria y aade un campo a las entradas de la tabla de pginas que pueda almacenar el valor del contador. Para resolver una falta de pgina, el sistema busca el valor del contador menor. Matrices de hardware. Si la computadora dispone de N frames, el hardware debe mantener una matriz de N*N bits puestos inicialmente a 0. Al accederse a una pgina K, el hardware pone a 1 todos los bits de la fila K y a 0 todos los bits de la columna K. La pgina menos usada recientemente es aquella cuya fila tenga el menor valor binario.

Pilas (stack). Mantiene una pila de los nmeros de las pginas usadas. Cada vez que se usa una pgina, su nmero se coloca al principio de la pila. La pgina menos recientemente usada ser la del fondo de la pila.

En todas estas opciones del algoritmo LRU se exige disponer de un hardware especial, y por ello, su aplicacin se limita a aquellas computadoras que dispongan de los elementos necesarios. Otros algoritmos. Dado lo difcil del LRU, se han tratado de encontrar algoritmos ms sencillos. Bit de referencia.- asociado a cada entrada de la tabla de pginas. Cada vez que se usa una pgina, el hardware activa el bit correspondiente (valor 1). Conforme se van usando las distintas pginas cargadas en memoria se activan sus bits de referencia y aquellas cuyos bits estn en 0, sern candidatas a ser reemplazadas. Los bits de referencia se restauran cada cierto tiempo (puesta a 0). Algoritmo menos frecuentemente usado (LFU-Least Frequently Used).Asocia un contador a cada pgina, a intervalos regulares, se produce una interrupcin que pasa el control al sistema y ste aade al contador de cada pgina el valor del bit de referencia, poniendo despus a 0 todos los mencionados bits de referencia. Se sustituir la pgina cuyo valor del contador sea menor. En ocasiones, algunos algoritmos se complementan usando un bit de modificacin por cada pgina, indicando si el contenido de la misma ha variado (1) o no (0) desde que se carg en memoria. Se deben sustituir preferentemente aquellas pginas que no se hayan modificado, pues as se evita tener que salvar su contenido en el almacenamiento secundario, con el consiguiente ahorro en operaciones de entrada/salida. Criterios de reemplazamiento de pginas. Cualquiera de los algoritmos analizados puede ayudar a seleccionar la pgina a sustituir.

Asignacin de memoria. En el diseo de un sistema operativo se debe afrontar otro aspecto importante de la gestin de la memoria como lo es determinar cuntos frames asignar a cada proceso activo. La propia arquitectura de una computadora impone unos mnimos de asignacin por proceso, por tanto, el propio sistema debe asegurar a todo proceso un nmero mnimo de pginas en memoria (mnimo estructural). Si por cualquier razn un proceso se queda con menos frames de los indicados, el sistema deber suspenderlo y sacarlo (swap-out). Aunque el nmero de frames asignados a un proceso podr reducirse hasta ese mnimo, cualquier proceso generalmente usa un nmero mayor. Suponiendo que por su prioridad un proceso no pueda robarle frames a otros procesos, deber sustituir una de sus pginas activas provocando, casi inmediatamente, otra falta de pgina, y as sucesivamente. Esta situacin es la hiperpaginacin donde se consume ms tiempo paginando que procesando. Localidad de los procesos. Para evitar situaciones como las descritas, es necesario asignar a cada proceso el nmero de frames que necesite en cada momento de su ejecucin. El problema radica en cmo conocer ese nmero. Afortunadamente, el comportamiento de los procesos permite afrontar el problema, ya que todo programa est compuesto por varias partes o subrutinas de forma que su ejecucin se realiza por fases, una detrs de otra. En cualquier momento el proceso direcciona slo una pequea parte de sus pginas. Este comportamiento se conoce con el nombre de localidad de referencias de los procesos, y con su ayuda, podemos conocer el nmero mnimo de frames que requiere un proceso para evitar una situacin de hiperpaginacin. Frecuencia de falta de pgina. Una forma de controlar la asignacin de memoria y evitar situaciones no deseadas se basa en el control de la frecuencia con que un proceso produce faltas de pgina. Puesto que la hiperpaginacin se caracteriza por un gran nmero de dichas faltas, el objetivo es mantener la frecuencia de las mismas entre unos lmites preestablecidos.

Si la frecuencia de faltas de pgina de un proceso sobrepasa el lmite superior, el sistema le asignar ms frames, y si cae por debajo del lmite inferior, indica que al proceso se le pueden reducir el nmero de frames asignados. La gestin de la memoria debe posibilitar tambin compartir pginas entre procesos y, para ello, dichas pginas debern llevar un indicativo que les asegure un tratamiento especial.

3.4.3 PAGINACIN POR DEMANDA.


Este es el esquema de carga ms comn cuando se usa la tcnica de memoria virtual. Su funcionamiento es similar al de un sistema de paginacin con intercambio. Ahora el algoritmo de intercambio no llevar a memoria todo el programa, sino que slo cargar aquellas pginas que se le pidan. Cuando el CPU genere una direccin que pertenezca a una pgina que no se encuentre en memoria <<falta de pginas>>, la buscar, y a continuacin, la traer a memoria desde el correspondiente dispositivo de memoria secundaria. El tratamiento de las faltas de pgina introduce un retraso adicional en la ejecucin de los programas y afecta por tanto al rendimiento general del sistema. El diseo del software necesario debe ser especialmente cuidadoso en este aspecto.

3.4.4 PAGINACIN ANTICIPADA.


El S. O. intenta predecir las pginas que un proceso va a necesitar y a continuacin precarga estas pginas cuando hay espacio disponible. Mientras el proceso ejecuta sus pginas actuales, el sistema carga pginas nuevas que estarn disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucin de un proceso se puede reducir.

3.4.5 LIBERACIN DE PGINA.


Un proceso usuario puede emitir una liberacin voluntaria de pgina para liberar el frame cuando ya no necesite esa pgina. Se puede eliminar el desperdicio y acelerar la ejecucin. El inconveniente es que la incorporacin de mandatos de liberacin de pginas dentro de los programas de usuario puede ser peligrosa y retrasar el desarrollo de aplicaciones. Los compiladores y S. O. deberan detectar automticamente situaciones de liberacin de pgina mucho antes de lo que es posible con estrategias de conjuntos de trabajo.

3.4.6 TAMAO DE PGINA.


Decidir el tamao adecuado no es sencillo puesto que hay que equilibrar diversos factores: Generalmente la memoria real se divide en frames de tamao fijo. Los interrogantes tienen que ver con el tamao de las pginas, si todas las pginas tendrn igual tamao, si en caso de usar pginas de diferente tamao las pginas mayores deben ser o no mltiplos enteros de las menores, etc. Algunas consideraciones para determinar el tamao de pgina son las siguientes: Cuanto ms pequeo sea el tamao de una pgina, ms pginas y frames habr y mayores sern las tablas de pginas: El desperdicio de memoria debido al tamao excesivo de las tablas de pgina se llama fragmentacin de tablas. Esto indica la necesidad de pginas ms grandes. Con pginas grandes se paginarn hacia la memoria primaria grandes cantidades de informacin que nunca llegara a ser referenciada. Esto indica la necesidad de pginas ms pequeas. Debido a que las transferencias de e/s del disco (paginacin) consumen bastante tiempo, se debe minimizar la paginacin que un proceso requiera: Esto indica la necesidad de pginas grandes.

Los programas tienden a mostrar la propiedad de localidad de referencia y esta localidad tiende a ser pequea: Esto indica la necesidad de pginas pequeas. Los procedimientos y datos rara vez comprenden un nmero entero de pginas, por lo que los sistemas de paginacin experimentan una fragmentacin interna: El desperdicio promedio es de pgina no usada por grupo de pginas, que estar en la ltima pgina del grupo. Esto indica la necesidad de pginas pequeas. Faltas de pgina. A mayor tamao de pgina se producirn menos faltas de pgina, reducindose la sobrecarga que conllevan. Esto indica la necesidad de pginas grandes

CONCLUSION
La parte del sistema operativo que se encarga del manejo de la memoria se denomina administrador de la memoria. Su labor consiste en llevar un registro de qu partes de la memoria se estn utilizando y qu partes no, con el fin de asignar espacio a los procesos cuando estos hagan requerimientos, liberarlo cuando terminen, as como administrar el intercambio entre la memoria principal y el disco, en el caso en que esta no pueda albergar a todos los procesos. Tambin facilita los mecanismos de proteccin para que un proceso no invada el espacio de otros procesos.

REFERENCIAS
http://sistemasoperativos.angelfire.com/html/3.4.html