You are on page 1of 5

La memoria es uno de los principales recursos en una computadora ya que es el espacio donde

pueden ser almacenados de manera fija o temporal los datos que se estn manipulando, dentro
de la memoria existe cierta jerarqua (debido a la memoria de mas alta velocidad tiene un precio
elevado y un tamao reducido) que va desde los registros hasta las unidades extrables pasando
por la memoria principal y cach, para poder dar un buen uso de la jerarqua de memoria es
necesario tener en cada momento la informacin adecuada en el nivel adecuado, es decir que la
informacin ha de migrar de un nivel a otro, la demanda puede darse bajo demanda explcita
(cuando la informacin se va requiriendo en determinado momento como en la memoria RAM) o
de forma automtica (se maneja en la memoria cach y virtual ). La eficiencia la podemos medir
con el uso de dos parmetros el de la Tasa de Aciertos (hit radio Hr) y Tiempo Medio de Acceso
Efectivo (Tef).
La parte del SO encargada de trabajar y manipular a la memoria es el Gestor de memoria, sirve de
puente entre las peticiones de las aplicaciones y los mecanismos que suministra el hardware de
GM, el SO con ayuda del hardware de gestin de memoria del procesador reparte la memoria
existente, proporcionando un espacio de memoria independiente para cada proceso evitando la
interferencia con cualquier otro. Es por ello la necesidad de ciertas polticas o reglas que
prevengan o corrijan ciertos problemas; En la Reubicacin la memoria se encuentra muchas veces
compartida por varios procesos, lo que se busca es poder cargar y descargar los procesos activos
en la memoria principal para poder maximizar el uso del procesador; Para la Proteccin cada
proceso debe protegerse contra interferencias no deseadas de otros procesos (tanto accidental
como intencionada) es decir que un proceso no puede utilizar memoria reservada para cierto
proceso sin pedir permiso; La Comparticin es una ventaja aadida a la proteccin ya que un
conjunto de procesos pueden pertenecer a alguna aplicacin o tarea en comn y pueden
compartir entre ellos cierta seccin de la memoria. Comnmente la memoria esta dividida en dos
particiones una para el SO y otra apara los procesos de usuario, usualmente el SO es situado en la
zona baja de la memoria y es ah donde es preferentemente se encuentra el vector de
interrupciones, el esquema de asignacin contigua de memoria es similar a la implementacin de
una cola ya que cada proceso esta contenido en una nica seccin contigua de memoria donde se
tiene prioridad al primero en entrar.
Mientras que la Paginacin permite que el espacio de direcciones fsicas de un proceso no sea
contiguo, nos ayuda a evitar el problema de encajar fragmentos de tamao variable en el almacn
de respaldo, resulta mas eficiente pues en este esquema se toma en cuenta que al momento de la
descarga de algn proceso el almacn de respaldo debe tener la memoria suficiente para
almacenarlo de lo contrario se podra perder, actualmente la mayora de los SO utilizan
mecanismos de paginacin de diversos tipos.
Algunos tipos de Paginacin son los siguientes:
Mtodo Bsico: Implica descomponer la memoria fsica en una serie de bloques de tamao fijo
(marcos) y descomponer la lgica en bloques del mismo tamao (paginas). Es decir cuando se
ejecuta algn proceso las paginas se cargan desde el almacn de respaldo en los marcos.
El tamao de la pgina esta definido por el hardware y a su vez este lo podemos calcular elevando
2 a la n potencia (variando entre 512 bytes y 16 MB por pgina). Ya que el SO esta gestionando la
memoria fsica debe tener en cuenta que marcos estn disponibles, cual es el numero total de
marcos, etc. Toda esta informacin se contiene dentro de una estructura de datos que se le
denomina Tabla de Marcos (tiene una entrada por cada marco fsico que nos indica si esta libre o
asignado). Y como ultimo punto el SO debe ser consiente de que los procesos de usuario operan
en el espacio de usuario y que todas las direcciones lgicas se deben convertir con el fin de
obtener direcciones fsicas.
Soporte Hardware: La implementacin hardware de la tabla de pginas se puede hacer de varias
maneras; en el caso ms simple la tabla de pginas se implementa como un conjunto de registros
dedicados, cada acceso a la memoria debe pasar a travs del mapa de paginacin, por lo cual la
eficiencia es una de las consideraciones principales de implementacin. Las instrucciones para
cargar o modificar los registros son privilegiadas
Memoria Virtual
La memoria virtual es una tcnica que nos permite mapear un espacio lgico de direcciones de
gran tamao sobre una memoria fsica de menor tamao, nos permite ejecutar procesos muy
grandes e incrementar el grado de multiprogramacin, aumentando as la tasa de utilizacin del
CPU. Como caractersticas interesantes podemos resaltar que varios procesos pueden compartir
las bibliotecas del sistema y la memoria, tambin se permite ejecutar procesos aunque sus
requisitos totales excedan de la memoria fsica total disponible total (decimos que dicho procesos
se ejecuta en memoria virtual).
La Memoria Virtual se implementa mediante un mecanismo de paginacin bajo demanda (en este
tipo de paginacin nunca se carga un pagina en memoria hasta que se haga referencia a esa
pagina), podemos usar la paginacin bajo demanda para reducir el numero de marcos asignados a
un proceso. Como dato curioso la memoria virtual fue presentada por primera vez en la
computadora Atlas [KILB62].
La paginacin en la memoria virtual surge como un intento de disolver los problemas de
restricciones a la hora de atender los requisitos que debe cumplir el gestor de memoria del SO. El
mapa de memoria de cada proceso se considera dividido en pginas y un marco de pgina
contendr en determinado instante una pgina de memoria de proceso. Ya que solo algunas
paginas de un proceso pueden estar en memoria principal, se necesita un bit en cada entrada de la
tabla para indicar si la tabla correspondiente esta presente o no, adems cuando un proceso se
esta ejecutando al menos una parte de su tabla de pginas debe estar en memoria principal,
incluyendo la entrada de la tabal de pginas para la pgina actualmente en ejecucin.
Buffer de Traduccin Adelantada
Cada referencia a memoria virtual puede generar dos accesos a memoria: uno para obtener la
entrada de la tabla de pginas correspondiente y otro para obtener el dato deseado. Un problema
derivado es que se puede doblar el tiempo de acceso a la memoria y como solucin a este
problema se hace uso de una cache especial para las entradas de tablas de pgina denominado
buffer de traduccin adelantada (TLB, Translation Lookaside Buffer), la memoria cache
implementada funciona de la misma manera que la cache original y contiene las entradas de
tablas de pagina usadas recientemente, es as que si damos una direccin virtual el procesador
examinara primero la TLB; puesto que la TLB solo contiene algunas de las entradas de la tabla de
paginas completa, cada entrada dentro de la TLB debe incluir el numero de pagina, adems de la
entrada completa a la tabal de pginas, el procesador estar equipado con hardware que permita
consultar simultneamente varias entradas de la TLB para determinar si hay coincidencia en el
numero de pagina , a esta tcnica se le conoce como correspondencia asociativa.
El tamao de pgina en la memoria virtual esta definido por varias condiciones como la
fragmentacin interna (entre menor sea el tamao de la pgina, menor ser la cantidad de
fragmentacin interna); la fragmentacin externa es que a medida que se cargan procesos en
memoria y no se eliminan, el espacio de memoria libre se descompone en una serie de fragmentos
de pequeo tamao, el problema se da cuando hay un espacio de memoria total suficiente para
satisfacer la solicitud, pero los espacios disponibles no son continuos si no que estn en distintos
sectores, esto provoca que tengamos un gran bloque de memoria desperdiciado en pequeos
agujeros, esto sucede me manera cotidiana en el trabajo de los procesos y la asignacin de la
memoria ya que aproximadamente un tercio de la memoria no puede ser utilizable, a esta
propiedad se le conoce como Regla del 50%, una solucin a este tipo de fragmentacin es las
Compactacin; Tambin existe la fragmentacin interna, se da del mismo modo que la externa ,
una tcnica usada para evitar este tipo de problema consiste en descomponer la memoria fsica en
bloques de tamao fijo y asignar la memoria en unidades basadas en el tamao del bloque, es
decir que la fragmentacin interna es la memoria que es interna a una particin que no esta
siendo utilizada. Para optimizar el uso de la memoria principal es muy recomendable reducir la
fragmentacin interna y cuanto menor sea la pgina, mayor ser el nmero de pginas que se
necesiten por proceso, el diseo del tamao de pgina esta relacionado con el tamao de la
memoria fsica principal.
La paginacin bajo demanda puede afectar significativamente el rendimiento de un sistema
informtico, esto lo sabemos al calcular el tiempo de acceso efectivo a una memoria con
paginacin bajo demanda, en la mayora de sistemas informticos el tiempo de acceso a memoria
va de 10 a 200 nanosegundos, esto es bueno mientras no exista algn fallo de pgina ya que si
esto sucede debemos leer primero la pagina relevante desde el disco duro y luego acceder a la
memoria deseada.
Una forma de calcular con formula es la siguiente donde p es la probabilidad de que se produzca
un fallo de pgina (O<=P<=1) y ma es el tiempo de acceso a memoria:
Tiempo de acceso efectivo= (1-p) x ma + p x (tiempo de falla de pgina).
Otro aspecto relevante es la gestin y el uso global del espacio de intercambio, las operaciones de
E/S de disco son dirigidas al espacio de intercambio son generalmente mas rpidas a las
correspondientes al sistema de archivos, por que el espacio de intercambios se asigna en bloques
mucho mayores y no se utilizan mecanismos de bsqueda de archivos ni mtodos de asignacin
indirectos.

La segmentacin permite al programador contemplar la memoria como si constara de varios
espacios de direcciones o segmentos, con la memoria principal no hay necesidad de preocuparnos
de las limitaciones de memoria impuestas por la memoria principal. Los Segmentos pueden ser
de distintos tamaos, incluso en la forma dinmica, podemos citar algunas ventajas como:
Simplificar el manejo de estructuras de datos crecientes, si no contamos con segmentos
dinmicos es necesario determinar cuan larga puede llegar a ser la estructura. Con la
memoria virtual segmentada cada estructura de datos se le puede asignar a su propio
segmento y el SO expandir o reducir el segmento cuando lo necesite.
Permite modificar y recompilar los programas independientes, sin que sea necesario
recompilar o volver a montar el conjunto de programas por completo.
Es posible realizar la Comparticin entre procesos.
Podemos implementar la proteccin.
Paginacin y Segmentacin Combinadas.
La paginacin que es transparente al programador, elimina la fragmentacin externa y as
podemos aprovechar la memoria de una manera ms eficiente, mientras que la segmentacin
que es visible para el programador tiene la capacidad adicional de manejar estructuras de
datos que pueden crecer, la modularidad y el soporte de la comparticin y proteccin. En un
sistema con paginacin y segmentacin combinadas, el espacio de direcciones de un usuario
se divide en varios segmentos segn el criterio de programador y cada segmento se vuelve a
dividir en varias pginas de tamao fijo, que tienen la misma longitud que un marco de
memoria principal. Dada una direccin virtual, el procesador emplea la parte de nmero de
segmento como ndice en la tabla de segmentos del proceso para encontrar la tabla de
pginas de dicho segmento, entonces la parte de nmero de pgina de la direccin virtual se
usara como ndice en la tabla de pginas para localizar el nmero de marco correspondiente,
este se combina con la parte de desplazamiento de la direccin virtual para generar la
direccin real deseada.
Tablas de Paginas Hash
Una tcnica comn para gestionar los espacios de direcciones superiores a 32 bits consiste en
utilizar una tabla hash de pginas, donde le valor hash es el nmero de pagina virtual, cada
entrada de la tabla hash contiene una lista enlazada de elementos que tienen como valor hash
una misma ubicacin, cada elemento esta compuesto de tres campos (el nmero de pgina
virtual, el valor del marco de pgina mapeado y un punto del siguiente elemento de la lista
enlazada), el algoritmo funciona a manera de que al nmero de pgina virtual de la direccin
virtual se le aplica una funcin hash para obtener un valor que se utiliza como ndice para la
tabal hash, el nmero de pgina virtual se compara con el primer campo del primer elemento
de la lista enlazada y si hay una correspondencia se utiliza el marco de pagina correspondiente
para formar la direccin fsica deseada.
Tablas de Pginas Invertidas
Estas se identifican por que en su diseo hay una entrada por marco de pgina de la memoria
real, no por cada pgina del espacio de direcciones virtuales. Aunque las tablas de paginas
invertidas ahorren enormes cantidades de espacio, o al menos cuando el espacio de
direcciones virtual es mucho mas grande que la memoria fsica tiene una importante
desventaja y es que la traduccin virtual a fsica se vuelve mucho mas difcil.

You might also like