You are on page 1of 8

ADMINISTRACION DE LA MEMORIA

La memoria es un recurso muy importante que se debe administrar. Parafraseando la ley de Parkinson, "los programas se expanden hasta llenar la memoria disponible para contenerlos". La mayora de las computadoras tienen una jerarqua de memoria; la memoria cach y la memoria principal (RAM). La parte del sistema operativo que administra la jerarqua de memoria se denomina administrador de memoria. Su trabajo consiste en mantenerse al tanto de qu partes de la memoria est en uso y cules no lo estn, asignar memoria a los procesos cuando la necesitan y recuperarla cuando terminan, y controlar el intercambio entre la memoria principal y el disco cuando la primera es demasiado pequea p ara contener todos los procesos. En sistemas operativos existen administradores de memoria desde muy sencillos hasta los ms complicados.

ADMINISTRACIN BSICA DE MEMORIA Los sistemas de administracin de memoria se pueden dividir en dos clases, los que trasladan procesos entre la memoria y el disco durante la ejecucin(intercambio y pa ginacin) y los que no lo hacen. Estos ltimos son ms sencillos y se estudiar en este apartado. Monoprogramacin sin intercambio ni paginacin Este sistema es el ms sencillo posible; porque una vez que el programa se carga en la memoria, se queda ah hasta terminar. Aqu notamos que algunos sistemas operativos solo permiten un proceso a la vez en la memoria. Multiprogramacin con particiones fijas Se refiere a mltiples procesos a la vez , obteniendo el mayor aprovechamiento de la CPU. La forma ms fcil de lograr la multiprogramacin consiste simplemente en dividir la memoria en n particiones, posiblemente desiguales. Es la divisin de la memoria libre en varias partes (de igual o distinto tamao) .Esta divisin puede, por ejemplo, efectuarse manualmente cuando se inicia el sistema. Este sistema, con particiones fijas establecidas por el operador en la maana yque no se modificaban

posteriormente, fue utilizado por OS/360 en microcomputadoras de IBM durante muchos aos. Se le llamaba MFT(multiprogramacin con un nmero fijo de tareas, u OS/MFT). Este sistema es fcilde entender e igualmente sencillo de implementar: los trabajos entrantes se ponenen cola hasta que es t disponible una particin apropiada. En ese momento, eltrabajo se carga en esa particin y se ejecuta hasta terminar. Hoy da son pocoslos sistemas operativos que dan soporte a este modelo, si es que todava existealguno. Relocalizacin La reubicacin hace referencia al hecho de poder localizar a los programas parasu ejecucin en diferentes zonas de memoria El esquema anterior le brinda a lacomputadora la habilidad de cargar varios programas a la memoriasimultneamente en cualquier parte de la memoria qu e se encuentre disponible enese momento.  El programador no puede saber memoriacuando ste es ejecutado .  Un proceso puede ser (a menudo) relocalizado en memoria principal debidoal intercambio (swapping).  El intercambio le permite al OS, tener un pool ms grande de procesoslisto para-ejecutar (ready-to-execute).  Referencias de memoria en cdigo (para instrucciones y datos), debetraducirse a la direccin de memoria fsica real . dnde el programa se pondr en

Proteccin  Los procesos no deben estar habil itados para referenciar localizaciones dememoria de otro proceso, sin el permiso correspondiente.  Es imposible verificar direcciones en tiempo de compilacin en

programas,debido a que el programa puede ser relocalizado .  Las direcciones de memoria deben ser chequeadas, en tiempo deejecucin, por el Hardware .

INTERCAMBIO La estrategia ms sencilla, llamada intercambio, consiste en traer a la memoriacada proceso en su totalidad, ejecutarlo durante un tiempo, y despus

colocarlootra vez en el disco. La otra estrategia, llamada memoria virtual, permite a losprogramas ejecutarse aunque slo estn parcialmente en la memoria principal. Si el intercambio crea mltiples agujeros en la memoria, es posible combinarlostodos para formar uno grande desplazando todos los procesos hacia abajo hastadonde sea posible. Esta tcnica se conoce como compactacin de memoria , ypocas veces se practica porque requiere mucho tiempo de CPU.

Administracin de memoria con mapas de bits Con un mapa de bits, la memoria se divide en un idades de asignacin, tal vez slode unas cuantas palabras o quiz de varios kilobytes. A cada unidad deasignacin corresponde un bit del mapa de bits, que es 0 si la unidad est libre y 1si est ocupada (o viceversa). Un mapa de bits es una forma sencill a para llevar un registro de las palabras de lamemoria en una cantidad fija de memoria, puesto que el tamao del mapa slodepende del tamao de la memoria y el tamao de la unidad de asignacin.

Administracin de memoria con listas enlazadas Otra forma de contabilizar la memoria es mantener una lista enlazada desegmentos de memoria libres y asignados, donde un segmento es un proceso obien un agujero entre dos procesos.

MEMORIA VIRTUAL Hace muchos aos las personas enfrentaron por primera vez program as que erandemasiado grandes para caber en la memoria disponible. La solucin quenormalmente se adoptaba era dividir el programa en fragmentos,

llamadossuperposiciones. La superposicin O era la primera que se ejecutaba. Al terminar,esta superposicin llam aba a otra. Algunos sistemas de superposicin eran muycomplejos, pues permitan varias superposiciones en la memoria a la vez. Lassuperposiciones se mantenan en disco y el sistema operativo las

intercambiabacon la memoria dinmicamente, segn fuera necesa rio. El mtodo que se invent (Fotheringham, 1961) se conoce ahora como memoriavirtual. La idea en

que se basa la memoria virtual es que el tamao combinado delprograma, los datos y la pila puede exceder la cantidad de memoria fsicadisponible para l. El sistema operativo mantiene en la memoria principal laspartes del programa que actualmente se estn usando, y el resto en el disco. La memoria virtual tambin puede funcionar en un sistema de multiprogramacin,manteniendo segmentos de muchos programas en la memoria a la vez.

Paginacin  Es un esquema de gestin de memoria en el que la asignacin de memoriano es contigua.  El espacio de direcciones virtuales de un proceso est dividido en bloquesde tamao fijo llamados pginas .  La direccin virtual consta de un nmero de pgina virtual y undesplazamiento .  La traduccin de direcciones se lleva a cabo con la ayuda de la tabla delmapa de pginas (TDP) .  La TDP se construye en tiempo de carga del proceso en memoria . Cuando se usa memoria virtual, las direcciones v irtuales no pasan directamente albus de memoria; en vez de ello, se envan a una unidad de administracin dememoria (MMU), un chip o coleccin de chips que transforma las

direccionesvirtuales en direcciones de memoria fsica. El espacio de direcciones virt ual se divide en unidades llamadas pginas. Lasunidades correspondientes en la memoria fsica se denominan marcos de pgina.Las pginas y los marcos de pgina siempre tienen exactamente el mismotamao. Tablas de pginas El propsito de la tabla de pgin as es transformar pginas virtuales en marcos depgina. En trminos matemticos, la tabla de pgina es una funcin, con elnmero de pgina virtual como argumento y el nmero de marco fsico comoresultado. Usando el resultado de esta funcin, el campo de p gina virtual de unadireccin virtual se puede sustituir por un campo de marco de pgina, formandoas una direccin de memoria fsica.

Tablas de pginas multinivel El secreto del mtodo de tabla de pginas multinivel es evitar mantener todas lastablas de pginas en la memoria todo el tiempo, en particular, las tablas que no senecesiten no deben estar ah. TLB ---- Buffers de consulta para traduccin El dispositivo, llamado TLB (buffer de consulta para traduccin, en ingls,Translation Lookaside Buffer) o tambin memoria asociativa, generalmente, el TLBest dentro de la MMU y consiste en un pequeo nmero de entradas64. Cadaentrada contiene informacin acerca de una pgina; en particular, el nmero depgina virtual, un bit que se enciende cuando la pgin a se modifica, el cdigo deproteccin (permisos de leer/escribir/ejecutar) y el marco de pgina fsico en elque se encuentra la pgina. Estos campos tienen una correspondencia uno a unocon los campos de la tabla de pginas. Otro bit indica si la entrada es vlida (siest en uso) o no. Tablas de pginas invertidas En este diseo, hay una entrada por marco de pgina de la memoria real, no por cada pgina del espacio de direcciones virtual.

ALGORITMOS DE SUSTITUCIN DEPGINAS Cuando ocurre una falla de pg ina, el sistema operativo tiene que escoger lapgina que sacar de la memoria para que pueda entrar la nueva pgina. El algoritmo de sustitucin de pginas ptimo Cada pgina puede rotularse con el nmero de instrucciones que se ejecutarnantes de que se haga referencia a esa pgina. El algoritmo de reemplazo depginas ptimo simplemente dice que se debe eliminar la pgina que tenga elrtulo ms alto. El algoritmo de sustitucin de pginas no usadas recientemente El algoritmo NRU (no utilizada recientem ente) elimina una pgina al azar de laclase no vaca que tiene el nmero ms bajo. El atractivo principal de NRU es quees

fcil de entender, eficiente de implementar y tiene un rendimiento que, si bienciertamente no es ptimo, a menudo es adecuado.

El algoritmo de sustitucin de pginas de primera que entra, primera quesale (FIFO) El sistema operativo mantiene una lista de todas las pginas que estn en lamemoria, siendo la pgina que est a la cabeza de la lista la ms vieja, y la delfinal, la ms reciente. Cuando hay una falla de pgina, se elimina la pgina queest a la cabeza de la lista y se agrega la nueva pgina al final. El algoritmo de sustitucin de pginas de segunda oportunidad Lo que hace el algoritmo de segunda oportunidad es buscar una pgina vieja a laque no se, haya hecho referencia en el intervalo de reloj anterior. Si se ha hechoreferencia a todas las pginas, este algoritmo pasa a ser FIFO puro.

El algoritmo de sustitucin de pginas por reloj Un enfoque mejor consiste en mantener todas las pginas en una lista circular conforma de reloj. Una manecilla apunta a la pgina ms vieja. Cuando ocurre unafalla de pgina, se inspecciona la pgina a la que apunta la manecilla. Si su bit Res O, se desaloja la pgina, se inserta la n ueva pgina en el reloj en su lugar, y lamanecilla avanza una posicin. Si R es 1, se pone en O y la manecilla se avanza ala siguiente pgina. Este proceso se repite hasta encontrar una pgina con R = 0.No resulta sorprendente que este algoritmo se llame d e reloj. La nica diferenciarespecto al de segunda oportunidad es la implementacin. El algoritmo de sustitucin de pginas menos recientemente usadas (LRU) Las pginas que hace mucho no se usan probablemente seguirn sin usarsedurante largo tiempo. Est a idea sugiere un algoritmo factible: cuando ocurra unafalla de pgina, se desalojar la pgina que haya estado ms tiempo sin usarse.Esta estrategia se denomina paginacin LRN (menos recientemente utilizada).

ASPECTOS DE DISEO DE LOS SISTEMAS CON PAGIN ACIN

Para disear un sistema no basta saber los aspectos mecnicos del funcionamiento, sino necesitamos saber mucho ms si queremos lograr que funcione bien. A continuacin examinaremos algunos aspectos que los diseadores de sistemas operativos deben ten er en cuenta si desean obtener un buen rendimiento de un sistema de paginacin.

El modelo de conjunto de trabajo (Denning, 1980). Si todo el conjunto de trabajo est en la memoria, el procesoejecutar sin causar muchas fallas hasta que pase a otra fase de su ejecucin. Sedice que un programa q causa fallas de pgina repetidamente despus de unascuantas instrucciones se est "sacudiendo (thrashing). Est diseado para reducir considerablemente la tasa de fallas de pgina. La carga de las pginas antes dedejar que los procesos se ejecuten tambin se denomina prepaginacin. La informacin relativa al conjunto de trabajo puede servir para mejorar el rendimiento del algoritmo del reloj. Normalmente, cuando la manecilla apunta a una pgina cuyo bit R es O, esa pgina se desaloja. La mejora consiste en verificar si esa pgina forma parte del conjunto de trabajo del proceso en curso. Si lo es, se le perdona la vida. Este algoritmo se conoce como wsclock. Polticas de asignacin local vs. Global En general, los algoritmos globales funcionan mejor, sobre todo cuando el tamao del conjunto de trabajo puede variar durante la vida de un proceso. Si se emplea un algoritmo local y el conjunto de trabajo crece, habr thrashing, incluso si hay muchos marcos de pgina libr es. Si el conjunto de trabajo se reduce, los algoritmos locales desperdician memoria. Si se emplea un algoritmo global, elsistema debe decidir continuamente cuntos marcos de pgina habr de asignar acada proceso. Una forma de vigilar el tamao del conjunt o de trabajo es examinar los bits de maduracin, pero este enfoque no necesariamente evita el thrashing.

SEGMENTACIN La segmentacin ayuda a manejar estructuras de datos que cambian de tamao durante la ejecucin, y simplifica la vinculacin y la comparticin. Adems, cuando se usan segmentos es ms fcil proporcionar distintos niveles de proteccin a

los diferentes segmentos. En algunos casos se combina la segmentacin con la paginacin para crear una memoria virtual bidimensional. El sistema MULTICS y el Pentium de Intel apoyan la segmentacin con paginacin .Los segmentos se transfieren del almacenamiento secundario al primario como unidades completas.La traduccin dinmica de direcciones utiliza una tabla de mapa de segmentos.

You might also like