You are on page 1of 22

Integrantes del trabajo:

Muoz Asca, Gerardo Antonio


Samanez Rivera, Andy
Pimentel Bernal, Yumilka

Sistemas Operativos Ciclo VII
Ingeniera Informtica y de Sistemas
Universidad San Pedro Filial Huacho

1. Introduccin
En la memoria fsica de un computador coexisten el sistema operativo, las rutinas
de enlace dinmico y los programas de usuario. En los sistemas operativos
modernos la gestin de memoria resuelve aspectos como:

La carga de programas y su ubicacin. Hay que establecer la
correspondencia entre las direcciones lgicas del programa y su ubicacin
fsica en memoria.
La presencia simultnea de ms de un programa en memoria.
La posibilidad de cargar rutinas en tiempo de ejecucin (rutinas de enlace
dinmico1).
La comparticin de espacios de memoria por varios programas.
La ejecucin de programas que no caben completos en memoria.
La gestin eficiente del espacio de memoria libre.

A lo largo de la historia, los sistemas operativos han ido introduciendo conceptos y
mecanismos hasta llegar a ofrecer las caractersticas comentadas. Como el
camino ha sido largo y son muchos los aspectos que se combinan hoy en da,
conviene revisarlas polticas de gestin de memoria teniendo en cuenta las
propiedades fundamentales que pueden ofrecer:

Numero de programas que pueden haber en memoria.
Si los programas pueden salir y entrar de memoria durante su ejecucin.
Si un programa debe ocupar posiciones consecutivas de memoria.
Si un programa debe estar cargado entero para ejecutarse.


No todas las combinaciones de estas propiedades tienen sentido. Las polticas de
gestin que se encuentran en los sistemas operativos a lo largo de la historia, a
medida que se van eliminando restricciones, son las siguientes:

Programa nico, permanente, contiguo y entero: monitor residente.
Varios programas, permanentes, contiguos y enteros: particionado fijo
(MFT) variable (MVT).
Programas no permanentes (swapping).
Programas no contiguos: paginacin y segmentacin.
Programas no contiguos y no enteros: enlace dinmico y memoria virtual.




2. Antecedentes

La memoria fsica es un conjunto de celdas referenciales por medio de una
direccin lineal (Por ejemplo, de la 00000h a la FFFFFh)
Para que un programa se ejecute, su cdigo y sus datos necesitan estar
cargados en memoria (al menos en parte).
En un sistema multitarea, la memoria se debe repartir entre los diferentes
procesos.
Las rutinas del sistema operativo tambin debern residir en memoria, en
todo o en parte.
Puede ser que la memoria principal no tenga capacidad suficiente para
todos los procesos en ejecucin.

3. Objetivos del sistema de gestin de memoria

En un sistema con multiprogramacin, el sistema operativo debe encargarse
de realizar un reparto transparente, eficiente y seguro de los distintos recursos
de la mquina entre los diversos procesos, de forma que cada uno de ellos
crea que tiene una mquina para l solo. Esto es, el sistema operativo debe
permitir que los programadores desarrollen sus aplicaciones sin verse
afectados por la posible coexistencia de su programa con otros durante su
ejecucin.

En el caso del procesador esta multiplexacin se logra almacenando en el
bloque de control de cada proceso el contenido de los registros del procesador
correspondientes a dicho proceso, salvndolos y restaurndolos durante la
ejecucin del mismo.

En el caso de la memoria, el sistema operativo, con el apoyo del hardware de
gestin de memoria del procesador, debe repartir el almacenamiento existente
proporcionando un espacio de memoria independiente para cada proceso y
evitando la posible interferencia voluntaria o involuntaria de cualquier otro
proceso.

Sea cual sea la poltica de gestin de memoria empleada en un determinado
sistema, se pueden destacar las siguientes caractersticas como objetivos
deseables del sistema de gestin de memoria:

Ofrecer a cada proceso un espacio lgico propio.
Proporcionar proteccin entre los procesos.
Permitir que los procesos compartan memoria.
Dar soporte a las distintas regiones del proceso.
Maximizar el rendimiento del sistema.
Proporcionar a los procesos mapas de memoria muy grandes.

4. Sistemas Primitivos

Los sistemas operativos de los primeros computadores (o, ms recientemente,
los sistemas operativos para los primeros ordenadores personales)
almacenaban los programas de la manera ms simple en cuanto a soporte
hardware (enteros y en posiciones fsicas contiguas), y en cuanto a
necesidades de gestin (permanentes).
Estas primeras polticas de gestin de memoria, que hoy en da nicamente
pueden encontrarse en sistemas empotrados, son interesantes porque
introducen conceptos y mecanismos a partir de los cuales se evoluciona hacia
conceptos ms elaborados.

4.1. Monitor Residente

La primera forma de trabajo consista en cargar un nico programa en
memoria. El encargado de hacerlo era el monitor residente, que actuaba
como una especie de sistema operativo primitivo. La memoria se divida en
dos partes, sistema operativo (monitor) y programa de usuario.

Funcionamiento:

Carga

Antes de comenzar la ejecucin, el operador del sistema deba
agrupar tareas que fueran similares. Esto se deba a que los
sistemas de cmputo no contaban con una gran cantidad de
memoria, ni tampoco podan cargar rutinas de forma dinmica, por lo
cual todas las rutinas deban ser cargadas en un momento inicial,
anterior a la ejecucin. Al agrupar tareas similares, el operador poda
cargar todas las rutinas (la idea es que la mayora fueran
compartidas) que necesitaran las tareas y todos los datos de entrada
de todas las tareas en la memoria principal.


Ejecucin

El monitor residente se encargaba de comenzar la ejecucin de la
siguiente tarea, enlazndola con las rutinas compartidas y no
compartidas que necesitaba utilizar, iniciando as la nueva ejecucin.

Evolucin

Los monitores residentes fueron reemplazados por los monitores de
inicio, luego por los cargadores de inicio, luego por los BIOS, y
finalmente por los ncleos de sistemas operativos

Se utilizaba un denominado registro barrera para proteccin









Los direccionamientos pueden ser absolutos. El cargador conoce el tamao
del programa y lo carga a partir de una direccin fija. Apesar de ser un
precursor de los sistemas modernos, no puede afirmarse que el monitor
residente realice una administracin de memoria como la definimos hoy en
da.


4.2. Particiones

El sistema operativo es capaz de gestionar la coexistencia de varios
programas en memoria asignando a cada uno un espacio contiguo
(particin). El particionado puede ser fijo o variable.

Como soporte hardware para proteccin requiere dos registros:

Registro lmite inferior (base).
Registro lmite superior o registro longitud

Se requiere reubicacin en tiempo de carga. El cargador puede establecer
direcciones absolutas (reubicacin esttica), o establecer direcciones
relativas a un registro base (reubicacin dinmica). En particionado
variable se requiere obligatoriamente reubicacin dinmica, como veremos.

4.2.1. Particionado Fijo

Obviamente el primer tipo de particionamiento y el ms sencillo. La
memoria se divide en un conjunto de particiones de tamaos
preestablecidos. Este mecanismo se denomina histricamente MFT
(multiprogramacin con un nmero fijo de tareas).














En cada particin se ubica un nico programa. Las particiones pueden
ser iguales o de diferentes tamaos. En este ltimo caso se aprovecha
mejor la memoria, al poder almacenar un programa en la particin que
mejor se ajuste a su tamao.

Dos consecuencias de este mecanismo son las siguientes:

El nmero de programas est limitado (grado fijo de
multiprogramacin).
Produce fragmentacin interna en cada particin (trozo de la
particin desocupada).

Los programas se encolan para poder ser cargados en memoria.
Existen dos alternativas:

Una cola por cada particin. Un programa se encola en la cola
que le corresponde por su tamao. Tiene el inconveniente de
que puede dejar fuera a un programa habiendo memoria libre
para cargarlo.

Cola nica. Cuando un programa encuentra ocupada la particin
que corresponde a su tamao cabe la posibilidad de asignarle
una particin libre de tamao mayor, permitiendo incrementar el
grado de multiprogramacin a costa de introducir fragmentacin
interna. El sistema puede utilizar heursticos que maximicen el
grado de multiprogramacin minimizando la fragmentacin,
consistentes en alterar la disciplina de la cola buscando en ella
los programas que se adapten mejor a los huecos disponibles,
para minimizar la fragmentacin interna.




4.2.2. Particionada Variable

Como ya sabemos, MFT presenta problemas de fragmentacin interna.
La alternativa es el particionado variable de la memoria, que se
denomina MVT (multiprogramacin con un nmero variable de tareas).
Ya es conocido que el particionado variable introduce fragmentacin
externa al ir quedando huecos entre particiones a medida que finalizan
programas. En estos huecos slo se pueden ubicar programas de
menor tamao que el hueco, que cuando acaben dejarn un hueco
an menor, y as sucesivamente. La necesidad de compactar implica
reubicar dinmicamente el programa, requiriendo el soporte adecuado
para ello.
La carga de programas se gestiona mediante una nica cola. La
memoria libre se representa bien con una lista de huecos, bien
mediante un mapa de bits, aunque en este caso es conveniente definir
una unidad de asignacin de memoria mayor que el byte para
mantener el tamao del mapa en unas dimensiones razonables.

5. Swapping

Es un mecanismo para mover programas entre memoria principal y secundaria,
normalmente disco (dispositivo se swap). Con swapping, los procesos pueden
salir/entrar de/a memoria durante su tiempo de ejecucin. Normalmente, un
proceso abandona la memoria para dejar espacio a otro.
La funcin del sistema operativo que gestiona el intercambio entre disco y
memoria se denomina intercambiador o swapper. La operacin de escribir el
programa en disco se conoce como swap-out, mientras que leer el programa
de disco se denomina swap-in.



El swapping aporta las siguientes ventajas:

Permite influir en la gestin de procesos para controlar el grado de
multiprogramacin (planificacin a medio plazo).
Proporciona flexibilidad en la gestin de la memoria, permitiendo una
utilizacin ms eficiente del espacio.
Para soportar swapping se requiere espacio para el intercambio en
almacenamiento secundario, generalmente disco.
Se puede utilizar un dispositivo especfico independiente, una particin
del disco, o incluso compartir la misma del sistema de ficheros.

El direccionamiento de los programas debe ser relativo a un registro base
(reubicacin dinmica). El swapper establece el nuevo valor del registro base
para un proceso cada vez que lo carga en memoria. El sacar un programa de
memoria est motivado por la necesidad de obtener espacio libre,
generalmente para ejecutar otro programa (quizs uno ms prioritario). El
swapper debe seleccionar cuidadosamente qu programas van a salir. Ya que,
el swapping condiciona la planificacin de procesos, algunos de los criterios a
aplicar para seleccionar el proceso a sacar estn relacionados con los
parmetros de la planificacin.

Los criterios suelen ser:

El estado del proceso. Los programas bloqueados no plantean una
necesidad inmediata de proceso.
La prioridad del proceso.
El tamao del programa. Los programas mayores liberan ms espacio al
salir de memoria, pero ser ms costoso cargarlos de nuevo.
El tiempo que el programa lleva en memoria.



6. Paginacin y Segmentacin

Paginacin

Es una tcnica de manejo de memoria, en la cual el espacio de memoria se
divide en secciones fsicas de igual tamao, denominadas marcos de pgina
los programas se dividen en unidades lgicas, denominadas pginas, que
tienen el mismo tamao que los marcos de pginas de esta forma, se puede
cargar una pgina de informacin en cualquier marco de pgina.
Las pginas sirven como unidad de almacenamiento de informacin y de
transferencia entre memoria principal y memoria auxiliar o secundaria cada
marco se identifica por la direccin de marco, que est en la posicin fsica de
la primera palabra en el marco de pgina.

Para tener el control de las pginas, debe mantenerse una tabla en memoria
que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los
procesos hasta ahora, los mtodos que hemos visto de la administracin de la
memoria principal, nos han dejado con un problema: fragmentacin, (huecos
en la memoria que no pueden usarse debido a lo pequeo de su espacio) lo
que nos provoca un desperdicio de memoria principal.

Una posible solucin para la fragmentacin externa es permitir que espacio de
direcciones lgicas lleve a cabo un proceso en direcciones no contiguas, as
permitiendo al proceso ubicarse en cualquier espacio de memoria fsica que
est disponible, aunque est dividida.

Veamos un ejemplo:

En la siguiente tabla muestra una posible configuracin de la memoria en un
momento dado, con pginas de 4Kb. La forma en que se lleg a este estado
puede haber sido la siguiente:

Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente
3, 2, 2 y 3 pginas.
















Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente
3, 2, 2 y 3 pginas.

El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
El programa B se carga en memoria (se le asignan los marcos 3 y 4)
El programa C se carga en memoria (se le asignan los marcos 5 y 6)
El programa B termina, liberando sus pginas
El programa D se carga en memoria (se le asignan los marcos 3 y 4 que
usaba el proceso B y el marco 7 que permaneca libre)

De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:






Sistemas de Paginacin / Segmentacin

Ofrecen las ventajas de las dos tcnicas de organizacin del almacenamiento
virtual.

El tamao de los segmentos es mltiplo del de las pginas.

No es necesario que todas las pginas de un segmento se encuentren
al mismo tiempo en el almacenamiento primario.

Las pginas de almacenamiento virtual, que son contiguas en este
almacenamiento, no necesitan ser contiguas en el almacenamiento real.

El direccionamiento es tridimensional con una direccin de
almacenamiento virtual v = (s,p,d):

s es el nmero del segmento.
p es el nmero de pgina.
d es el desplazamiento en la pgina donde se encuentra asignado el
elemento deseado.





















7. Enlace dinmico

La necesidad de ejecutar programas de tamao mayor que la memoria fsica
disponible ha originado a lo largo de la historia la introduccin de sofisticados
mecanismos de gestin de la ubicacin de programas en memoria. Un primer
enfoque es el de dividir en programa en varios mdulos, denominados overlays
o solapamientos, a partir de su estructura y cargar dinmicamente slo
aquellos que se necesiten. La carga de un solapamiento la realiza una rutina
de enlace, que se encarga tambin de seleccionar el(los) solapamiento(s)
reemplazado(s), si se requiere espacio para la carga. Tradicionalmente, el
programador determinaba qu rutinas constituan los solapamientos, construa
la rutina de enlace y las tablas de rutinas de los solapamientos, y elaboraba el
programa de forma que las llamadas a las rutinas de los solapamientos se
llamasen a travs de la rutina de enlace. Tambin eran suyos los criterios de
reemplazo de los solapamientos.

El enfoque alternativo al problema es la memoria virtual, ms general y
completamente transparente al programador, al que dedicaremos la siguiente
Seccin.

Sin embargo, una evolucin de los overlays ha quedado en los sistemas de
hoy en da para cubrir un objetivo diferente del originalmente asignado a
aquellos: las rutinas de enlace dinmico.

Una librera de enlace dinmico es un conjunto de rutinas agrupadas en
mdulos que se cargan dinmicamente en el momento de la llamada, como
ocurra en los overlays, pero de forma transparente al programa. El sistema
operativo proporciona como soporte una llamada al sistema donde se
especifica como parmetro la rutina de enlace dinmico a ejecutar. Cuando en
un programa aparece una llamada a una rutina de este tipo, el montador, en
vez de enlazar estticamente a la rutina en el cdigo ejecutable, enlaza a la
llamada al sistema. Cuando esta llamada al sistema se ejecuta, comprueba si
el mdulo que contiene la rutina especificada como parmetro est cargado en
memoria. Si no lo est, lo carga y establece la referencia (indirecta) desde el
programa. A esto se le llama montaje dinmico o en tiempo de ejecucin.



Se requiere una tabla que especifique el estado de cada mdulo de enlace
dinmico (cargado o no) y la direccin de memoria donde se carga. En
principio, hay que destinar un espacio de memoria especfico para los mdulos
de enlace dinmico, y proporcionar una poltica de reemplazo, pero cuando se
combina con memoria virtual, que es lo habitual hoy en da, el reemplazo se
realiza pgina a pgina de forma integrada en el propio mecanismo de
memoria virtual.

Aunque esta tcnica se podra utilizar con el mismo objetivo de los overlays,
actualmente, ya que todos los sistemas tienen soporte de memoria virtual, el
enlace dinmico se utiliza por otros motivos:

Los ficheros ejecutables de los programas almacenados en disco son
ms pequeos. Esto tiene cierta importancia si se tiene en cuenta que
hoy en da los programas hacen un amplio uso de rutinas que consumen
un gran volumen de espacio, como por ejemplo las rutinas de
tratamiento grfico.

Las rutinas de enlace dinmico cargadas en memoria se comparten por
varios programas, lo que permite ahorrar espacio tambin en memoria.

El tiempo de carga de los programas, y por lo tanto su latencia, es
menor.

Facilita la actualizacin de las aplicaciones. La instalacin de una nueva
aplicacin aporta nuevas versiones de las libreras de enlace dinmico
(por ejemplo, rutinas de tratamiento grfico ms elaborado) que
sustituyen a las versiones antiguas, de lo que se benefician otras
aplicaciones que usan dichas rutinas



8. Memoria Virtual

La memoria virtual es una tcnica de gestin de la memoria que permite que el
sistema operativo disponga, tanto para el software de usuario como para s
mismo, de mayor cantidad de memoria que est disponible fsicamente. La
mayora de los ordenadores tienen cuatro tipos de memoria: registros en la
CPU, la memoria cach (tanto dentro como fuera del CPU), la memoria RAM y
el disco duro. En ese orden, van de menor capacidad y mayor velocidad a
mayor capacidad y menor velocidad.

Reduce la latencia en la ejecucin de los programas, al no tener stos
que cargarse completamente para comenzar a ejecutarse.

Permite gestionar ms eficientemente la memoria fsica. Cualquier
espacio libre, incluso una nica pgina, puede ser aprovechado para
cargar un nuevo programa y comenzar a ejecutarlo. Por otra parte, si
una pgina de un programa no se referencia durante la ejecucin, no
habr que cargarla.

Al aumentar el grado de multiprogramacin a costa de reducir el nmero
de pginas cargadas de cada programa, permite incrementar la
eficiencia de la CPU en sistemas multiprogramados.

Ahora la independencia de los programas con respecto a la mquina es
completa. Adems del direccionamiento virtual que aporta la paginacin,
la cantidad de memoria fsica disponible para ejecutar el programa slo
es relevante para la velocidad de ejecucin del programa.


8.1. Soporte hardware

Adems del soporte hardware para la traduccin de direcciones de los
sistemas paginados, la memoria virtual requiere mecanismos de hardware
adicional:

Espacio para paginacin en un dispositivo de almacenamiento
secundario (disco).
Bit de validez, V. Para cada entrada de la tabla de pginas es necesario
un bit que indique si la pgina correspondiente est cargada en memoria o
no.
Trap de fallo de pgina. Cuando la pgina referenciada no est cargada
en memoria, el mecanismo de interrupciones produce el salto a la rutina de
tratamiento del fallo de pgina (que promover la carga de la pgina en
memoria). A diferencia de una interrupcin normal, el fallo de pgina puede
ocurrir en cualquier referencia a memoria durante la ejecucin de la
instruccin, por lo que la arquitectura debe proporcionar los mecanismos
adecuados para establecer un estado del procesador consistente antes de
saltar a la rutina de tratamiento.

8.2. Carga de programas y reubicacin

El cargador carga la tabla de pginas del programa y una o ms pginas,
estableciendo las direcciones de las pginas cargadas en las entradas de
la tabla de pginas y los valores de los bits de validez. Almacena tambin
las direcciones de disco donde se encuentran las pginas no cargadas en
memoria. Como en paginacin, la reubicacin se hace independientemente
para cada pgina, cuando stas se cargan tras un fallo de pgina.

Bsicamente, hay dos estrategias para cargar las pginas de un programa:

Cargar slo la primera pgina de cdigo y dejar que el resto se
cargue por fallo de pgina (paginacin por demanda).
Cargar un cierto nmero de pginas o todas, dependiendo de la
memoria disponible y del tamao del programa (prepaginacin).


8.3. Gestin

El proceso de direccionamiento en un sistema de memoria virtual combina
el mecanismo hardware de traduccin de direcciones siguiendo el
mecanismo habitual de paginacin pura o combinada, con la intervencin
del sistema operativo cuanto se produce un fallo de pgina. En la
referencia a memoria se comprueba el estado del bit de validez. Si est
activado, la pgina est cargada y el proceso de traduccin hardware
acaba proporcionando la direccin fsica; en caso contrario, el trap de fallo
de pgina aborta la ejecucin de la instruccin en curso9 y provoca el salto
a la rutina de tratamiento del fallo de pgina, que ejecuta los siguientes
pasos:

Si la direccin generada por el programa no es correcta10, se aborta la
ejecucin del programa. Si se trata de una direccin correcta, se busca un
marco de pgina libre en memoria donde cargar la pgina referenciada. Si
no hay marcos libres, se consigue uno expulsando una pgina de memoria.
La eleccin de sta (pgina vctima) se realiza mediante un algoritmo de
reemplazo. El reemplazo de una pgina, que se estudiar ms adelante,
implica escribir en disco la pgina vctima si sta hubiera sido modificada.

Se programa la lectura de la pgina referenciada en el dispositivo de
paginacin. En los sistemas multiprogramados se produce un cambio de
contexto: el proceso que ha provocado el fallo de pgina pasa a estado
bloqueado y se planifica otro proceso.

Mientras el programa est bloqueado, se lee por acceso directo a memoria
en el dispositivo de paginacin en donde la pgina buscada se carga en el
marco libre seleccionado.

Finalizada la carga, se actualiza la entrada de la tabla de pginas y el bit
de validez asociado. El proceso bloqueado por fallo de pgina pasa a
preparado para ejecucin. Dependiendo de la poltica de planificacin de
procesos, el proceso puede tener la oportunidad de entrar a ejecucin.



8.4. Reemplazo de Pginas

Como hemos visto, cuando se produce un fallo de pgina y no hay marcos
libres es necesario liberar uno de los marcos de pgina ocupados para
poder cargar la pgina referenciada. Los pasos a seguir son los siguientes:

Se selecciona la pgina vctima mediante un algoritmo de reemplazo
que ejecute una poltica de reemplazo determinada.

Si la pgina vctima haba sido modificada durante su estancia en
memoria, hay que escribirla en el dispositivo de paginacin (page-
out). Si no, esta operacin no es necesaria. Para la gestin de
pginas modificadas se asocia un bit de pgina modificada para
cada marco de pgina, que se activa cada vez que se accede a
memoria para escritura.
Se pone a cero el bit de validez correspondiente a la pgina vctima
en su tabla de pginas.

8.5. Polticas de reemplazo de pginas

Los criterios a seguir para implementar un algoritmo de reemplazo de
pginas son fundamentalmente dos:

Minimizar el nmero de fallos de pgina, como se ha razonado en el
apartado anterior. Explotar la localidad temporal de los programas
ser fundamental.

Sencillez de implementacin. Un algoritmo complejo, como
veremos, puede requerir intervencin adicional en los accesos a
memoria, lo que implicar o prdida de rendimiento, o un hardware
costoso, lo que a su vez redundar probablemente en prdida de
rendimiento.




8.5.1. Poltica ptima

Este algoritmo tiene como finalidad retirar la pgina que vaya a ser
referenciada ms tarde, por ejemplo si hay una pgina A que ser
usada dentro de 10000 instrucciones, y una pgina B que ser usada
dentro de 2800 instrucciones, se debera eliminar de la memoria la
pgina A. Como se puede deducir, para esto el sistema operativo
debera ver en cunto tiempo ser usada cada pgina en memoria y
elegir la que est ms distante. El problema de este mtodo es que
necesita conocimiento del futuro, por lo que es imposible su
implementacin. Es un algoritmo terico. Se utiliza a los efectos
comparativos con los algoritmos factibles de ser implementados para
ver cul se aproxima ms a ste.

Puntos fundamentales:

Es el que produce menos fallos de pginas para cualquier
cantidad de marcos.
Se reemplaza la pgina que va a tardar ms tiempo en ser
referenciada.
No puede implementarse pues implicara conocer de antemano
las pginas que va a referencia el proceso.
Aunque no puede implementarse se utiliza como referencia para
los dems algoritmos.




8.5.2. Poltica FIFO

En este mtodo, el sistema operativo slo tiene que guardar en orden
las pginas que fueron cargadas, de modo que al necesitar hacer
espacio pueda fcilmente elegir la primera pgina cargada. Se usa una
cola, al cargar una pgina nueva se ingresa en el ltimo lugar. Aunque
las colas FIFO son simples e intuitivas, no se comportan de manera
aceptable en la aplicacin prctica, por lo que es raro su uso en su
forma simple.

Presenta la anomala de Belady: para ciertos ejemplos concretos de
cadenas de referencias a memoria es posible que al aumentar el
nmero de marcos aumente el nmero de fallos de pgina

Ejemplo:



Solucin:


8.5.3. Poltica LRU

Reemplaza la pgina menos recientemente usada (Least
Recently Used)
Es como el ptimo pero con la cadena de referencias invertida
en el tiempo
Produce buenos resultados puesto que por el principio de
localidad temporal, pginas referenciadas recientemente es
probable que sean referenciadas prximamente
Se adapta muy bien a la localidad del programa

Dos posibles implementaciones:

Contadores: Se asocia a cada pgina un contador que
representa el instante en que fue referenciada, pudiendo
determinar la que hace ms tiempo que no se referencia por el
valor del contador
Lista: Cada pgina referenciada se coloca al nal de una lista,
la primera de la lista es la que hace ms tiempo que no se
referencia
Ninguna de las implementaciones es factible por la carga que
supondra manejar los contadores (o la lista) con cada
referencia a memoria





9. Conclusiones


En la memoria principal son ejecutados los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se
ejecuten los procesos.

La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de
que estn solas en el sistema y que pueden usar el espacio de direcciones
completo.

Las direcciones de memoria son de tres tipos: fsicas, lgicas y lineales.

El objetivo del intercambio es dar cabida a la ejecucin de ms
aplicaciones de las que pueden residir simultneamente en la memoria del
sistema.

La asignacin consiste en determinar cul espacio vaco en la memoria
principal es el ms indicado para ser asignado a un proceso.

Las estrategias ms comunes para asignar espacios vacos (huecos) son:
primer ajuste, mejor ajuste, peor ajuste.

La fragmentacin es la memoria que queda desperdiciada al usar los
mtodos de gestin de memoria tal como la asignacin.

La fragmentacin puede ser interna o externa.

La paginacin es una tcnica de gestin de memoria en la cual el espacio
de memoria se divide en secciones fsicas de igual tamao llamadas
marcos de pgina, las cuales sirven como unidad de almacenamiento de
informacin.

La segmentacin es un esquema de manejo de memoria mediante el cual
la estructura del programa refleja su divisin lgica; llevndose a cabo una
agrupacin lgica de la informacin en bloques de tamao variable
denominados segmentos.

You might also like