0% encontró este documento útil (0 votos)
166 vistas14 páginas

Gestión Memoria

Este documento describe los diferentes métodos de gestión de memoria utilizados por los sistemas operativos, incluyendo la monoprogramación, multiprogramación, swapping y memoria virtual. Explica cómo la multiprogramación permite ejecutar múltiples procesos simultáneamente asignándoles particiones fijas o variables en memoria principal. También describe cómo la memoria virtual resuelve los problemas de tamaño de memoria al permitir que los procesos usen direcciones virtuales mapeadas a la memoria principal o secundaria.

Cargado por

Omar Ouahri
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
166 vistas14 páginas

Gestión Memoria

Este documento describe los diferentes métodos de gestión de memoria utilizados por los sistemas operativos, incluyendo la monoprogramación, multiprogramación, swapping y memoria virtual. Explica cómo la multiprogramación permite ejecutar múltiples procesos simultáneamente asignándoles particiones fijas o variables en memoria principal. También describe cómo la memoria virtual resuelve los problemas de tamaño de memoria al permitir que los procesos usen direcciones virtuales mapeadas a la memoria principal o secundaria.

Cargado por

Omar Ouahri
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

TEMA 17: SISTEMAS OPERATIVOS.

GESTIÓN DE MEMORIA

Contenido
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA..............................2
INTRODUCCIÓN.....................................................................................................2
1. GESTIÓN DE LA MEMORIA REAL...............................................................2
1.1 MONOPROGRAMACIÓN................................................................................2
1.2 MULTIPROGRAMACIÓN...............................................................................3
1.2.1 ALGUNOS PROBLEMAS DE LA MULTIPROGRAMACIÓN..................4
1.3 SWAPPING........................................................................................................4
1.4 GESTIÓN DE LA MEMORIA LIBRE..............................................................5
1.4.1 ESTRATEGIAS DE COLOCACIÓN EN LISTAS ENLAZADAS..............5
2. LA MEMORIA VIRTUAL................................................................................6
2.1 ESTRUCTURAS HARDWARE EMPLEADAS...............................................7
2.1.1 PAGINACIÓN................................................................................................7
2.1.2 SEGMENTACIÓN.........................................................................................8
2.1.3 SEGMENTACIÓN CON PAGINACIÓN......................................................9
2.1.4 PAGINACIÓN MULTINIVEL......................................................................9
Diferencias entre paginación y segmentación.........................................................10
2.2 GESTIÓN DEL ALMACENAMIENTO VIRTUAL.......................................10
1. LA GESTIÓN DE MEMORIA EN SISTEMAS OPERATIVOS LINUX Y
WINDOWS.............................................................................................................13

1
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE


MEMORIA

INTRODUCCIÓN

La memoria es uno de los principales recursos de la computadora y debe de


administrarse con mucho cuidado. Aunque actualmente la mayoría de los ordenadores
cuentan con una alta capacidad de memoria, de igual manera las aplicaciones tienen
también altos requerimientos de memoria, lo que sigue generando escasez de la misma.
El SO se encarga de su gestión y su labor consiste en llevar un registro de las partes
de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en
memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así
como administrar el intercambio entre la memoria principal y el disco en los casos en
los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen
necesidad de ella.
El propósito principal de una computadora es el de ejecutar programas, estos
programas, junto con la información que acceden deben de estar en la memoria
principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener
varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones
de administración tanto del procesador como de la memoria. La selección de uno de
ellos depende principalmente del diseño del hardware del sistema. A continuación se
observarán los puntos correspondientes a la administración de la memoria.

1. GESTIÓN DE LA MEMORIA REAL

Los programas deben cargarse, en principio, íntegramente en la memoria principal


para poder ser ejecutados, aunque más adelante se habla de la memoria virtual, que
resuelve este problema.
Los sistemas de administración de la memoria se pueden dividir en dos clases:
aquellos que mueven los procesos entre la memoria central y el disco durante la
elección (intercambio y paginación) y aquellos que no lo hacen. Los segundos son
más simples, el intercambio y la paginación son artimañas producidas principalmente
por la insuficiencia de la memoria central para contener a todos los programas al mismo
tiempo.

1.1 MONOPROGRAMACIÓN

Consiste en dividir la memoria en dos partes contiguas: una se le asigna a la parte


del sistema operativo que ha de residir en memoria de forma permanente (monitor
residente) y la otra se le asigna a los procesos de los usuarios.
La parte de sistema operativo que no constituye el monitor residente ha de
ejecutarse en la zona de procesos.

2
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

De esta forma solo se puede ejecutar un programa a la vez y entonces se hace un


mal uso del procesador y de la memoria, pues normalmente los usuarios no ocupan todo
el espacio disponible. Otro inconveniente es que no se puede ejecutar un programa más
grande que la memoria disponible.

1.2 MULTIPROGRAMACIÓN

En los sistemas multiprogramación existen varios procesos en ejecución de manera


simultánea y por tanto, la memoria principal debe reservar un espacio para cada uno de
ellos, lo que plantea ciertos problemas que el SO debe gestionar.
Sin embargo, la multiprogramación tiene grandes ventajas en el rendimiento y
permite que un proceso pueda ejecutarse mientras otro realiza una operación de
entrada/salida.
Hay dos formas de asignar memoria a los procesos: con particiones de longitud fija
o variable.
En las particiones de longitud fija se divide la memoria en n particiones de tamaño
fijo que no puede variarse una vez asignado. Su administración es relativamente simple,
pero presenta el problema de fragmentación interna, fenómeno que ocurre cuando un
proceso no ocupa toda la memoria asignada y sin embargo, el espacio libre no puede ser
utilizado por ningún otro proceso.
Con las particiones de longitud variable la memoria se divide en bloques de
diferente tamaño de acuerdo a las necesidades de cada proceso. La gran ventaja de este
método es su flexibilidad, pues permite definir bloques del tamaño requerido,
terminando así con la fragmentación interna y permitiendo hacer un mejor uso de la
memoria y por tanto del procesador, aunque complica la asignación y liberación de la
misma así como su control.
Un problema de este sistema es que puede haber memoria suficiente para un proceso
pero distribuida en pequeños huecos por lo cual no puede ser utilizada (fragmentación
externa). Una posible solución a este problema es compactar la memoria juntando todos
los huecos libres, el problema es que este proceso es muy costoso de realizar.

3
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

1.2.1 ALGUNOS PROBLEMAS DE LA MULTIPROGRAMACIÓN

Reubicación
En sistemas con distintas particiones, diferentes trabajos se ejecutarán en
direcciones distintas. Cuando un programa se enlaza (es decir, el programa central,
procedimientos escritos por el usuario y procedimientos de biblioteca se combinan en un
solo espacio de dirección), el enlazador debe saber en que dirección comenzar el
programa en la memoria. La reubicación consiste en ajustar las direcciones de un
programa al espacio en el que va a ejecutarse.

Protección de las particiones


El sistema debe evitar que los procesos lean y escriban en particiones de memoria
que no son la suya.

Soluciones
Una solución al problema de la reubicación es modificar las instrucciones a medida
que el programa se carga en la memoria, para la cual el enlazador debe incluir en el
programa una lista o mapa de bits que indique qué palabras del programa son
direcciones a reubicar. Un sistema operativo que utilizó este sistema fue el OS/360 de
IBM.
Otra solución consiste en equipar la máquina con dos registros especiales de
hardware, llamados registros de base y de límite. Cuando se programa un proceso, el
registro de base se carga con la dirección del inicio de su partición y el registro de límite
se carga con la longitud de la partición. El hardware protege estos registros para evitar
que los programas de los usuarios los modifiquen. Esta solución resuelve tano la
reubicación como la protección de las particiones. Una ventaja adicional de este sistema
es que podemos cambiar el proceso de lugar en la memoria y con sólo modificar el valor
del registro base el programa quedará listo para su ejecución.
Una solución distinta para el problema de la protección es usar llaves de memoria
que consisten en poner una contraseña a cada partición para controlar el acceso a la
misma.

1.3 SWAPPING

En un sistema multiusuario normalmente hay más usuarios que memoria para


contener todos los procesos, por lo que se hace necesario guardar los procesos sobrantes
en memoria auxiliar. Para poder ejecutar estos procesos que será necesario llevarlos a la
memoria principal.
El paso de procesos completos de la memoria principal a un disco y al revés, se
denomina intercambio o swapping.

4
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

1.4 GESTIÓN DE LA MEMORIA LIBRE

Para poder gestionar el espacio de memoria libre se utilizan principalmente dos


métodos.
El primero consiste en utilizar una lista enlazada de segmentos de memoria.
Cada segmento es o bien un proceso o un hueco libre de memoria y para
diferenciarlos cada elemento de la lista tiene tres campos: el primero indica si es un
hueco o un proceso, el segundo el comienzo del segmento y el tercero la longitud del
segmento.
[Link]
18078476
La otra técnica es utilizar un mapa de bits, donde se asigna un bit a cada unidad en
la que se divide la memoria. Dicho valor valdrá 0 si esa zona de la memoria está libre, y
1 si está ocupada.
Un inconveniente de este sistema es que para insertar un programa de K unidades de
asignación se deben buscar en el mapa K unidades libres consecutivas, operación que no
es demasiado rápida.
[Link]
[Link]

Existe otro método para gestionar la memoria libre llamado sistema de los
asociados, que consiste en dividir la memoria en particiones cuyo tamaño es siempre
potencia de 2, de tal manera que cuando se asigna un bloque a un proceso, se le asigna
aquél cuyo tamaño sea mayor o igual que el tamaño del proceso.

1.4.1 ESTRATEGIAS DE COLOCACIÓN EN LISTAS ENLAZADAS

Primer ajuste
El administrador de memoria recorre la lista secuencialmente hasta que encuentra el
primer hueco lo suficientemente grande. Si sobra memoria se divide el nodo de la lista
en dos, uno para el proceso y otro para un hueco con la memoria sobrante. Es un
método rápido pero poco eficiente.

5
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

Siguiente ajuste
Igual que el primer ajuste pero se lleva un registro del último hueco encontrado para
buscar a partir de ese punto y no recorrer toda la lista. Experimentalmente se demostró
que es un poco menos eficiente que el primer ajuste.

Mejor Ajuste
Busca en toda la lista y toma el hueco más pequeño posible. En vez de dividir un
hueco grande que se podría necesitar después, este algoritmo intenta hallar un hueco que
está próximo al tamaño real que se necesita.
Es más lento que el primer ajuste porque debe buscar en toda la lista cada vez que es
llamado. Provoca un mayor gasto de memoria ya que tiende a llenar la memoria con
huecos muy pequeños sin utilidad.

Peor ajuste
Para sortear el problema de dividir espacios muy ajustados en un proceso y un hueco
muy pequeño, se podría pensar en el que peor se ajusta, es decir, tomar siempre el hueco
más grande disponible, de manera que el hueco libre tras la división sea lo
suficientemente grande para ser útil. Sin embargo, se ha comprobado empíricamente su
poca funcionalidad.

Optimización adicional
Los cuatro algoritmos anteriores se pueden acelerar conservando listas separadas de
procesos y huecos. De esta forma se evita el tiempo a dedicado a inspeccionar procesos.
Por otra parte se complica el sistema y se ralentiza la liberación de memoria ya que
cuando esto sucede hay que insertarla en la lista de huecos.
Si se mantiene ordenada la lista de huecos de menor a mayor tamaño en cuanto se
encuentra un hueco del suficiente tamaño es el mejor, y por lo tanto el mejor ajuste y el
primero son iguales (el siguiente ajuste deja de tener sentido).

2. LA MEMORIA VIRTUAL

La idea básica que implica la memoria virtual es que el tamaño del programa, los
datos y la pila combinados pueden exceder la cantidad de memoria física disponible. El
sistema operativo guarda aquellas partes del programa que se encuentran en uso
corriente en la memoria central y el resto en el disco mediante la utilización de unos
mecanismos similares a los de la técnica de intercambio (pero aquí no se aplican a
procesos completos).
El mecanismo básico que subyace bajo el concepto de almacenamiento virtual es la
separación de las direcciones a las que hacen referencia los procesos que se ejecutan en
un ordenador de las direcciones efectivamente disponibles en la memoria principal. A
las primeras se las conoce como direcciones virtuales y a las direcciones de memoria
real como direcciones físicas o direcciones reales. El rango de direcciones virtuales a las
que puede hacer referencia un proceso en ejecución se conoce como espacio de
direcciones virtuales, (denotado usualmente V), del proceso. El intervalo de direcciones
físicas disponibles en un sistema de cómputo determinando se conoce como espacio de
direcciones físicas, (denotado F), del computador.
Evidentemente, aunque los procesos usen direcciones virtuales la ejecución efectiva
se lleva a cabo en el almacenamiento físico. Así, para ejecutar cualquier proceso es

6
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

necesario establecer una correspondencia entre las direcciones virtuales y las físicas.
Este mecanismo de correspondencia ha de ser rápido y eficiente pues si no las presta-
ciones del sistema se degradarán de forma insoportable.
Para ello, las direcciones lógicas pasan por la Unidad de Administración de
Memoria (MMU), un conjunto de chips que asocian las direcciones virtuales con las
direcciones de memoria física.

2.1 ESTRUCTURAS HARDWARE EMPLEADAS

Para implementar la memoria virtual se hace necesario contar con algún método que
permita traducir direcciones virtuales a reales. Estos métodos definen la forma de
implementar la memoria virtual, destacando:
- Paginación
- Segmentación
- Segmentación con paginación
- Paginación multinivel

2.1.1 PAGINACIÓN

La mayoría de los sistemas de memoria virtual (así lo hacen, por ejemplo, UNIX
S.V, Linux y Windows NT) emplean una técnica llamada paginación. Con ella, la
memoria, tanto virtual como física se divide en bloques de igual tamaño y los bloques
de la memoria virtual se denominan páginas, y los de la memoria física marcos de
página. Las transferencias entre la memoria y el disco son siempre en unidades de
página.
Las direcciones virtuales son enviadas a la MMU donde sufren la traducción a
direcciones físicas y se envían a la memoria principal o secundaria a través del bus de
direcciones, como muestra la siguiente figura:

7
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

La dirección virtual se compone de dos partes: una página y un desplazamiento. La


primera sirve para encontrar la entrada correspondiente en la tabla de páginas, en donde
se encuentra la dirección del marco de página correspondiente. A esta se le suma el
desplazamiento para encontrar la dirección real correspondiente.
La dirección virtual, entonces, está compuesta de dos partes: un valor correspon-
diente a la entrada en la tabla de páginas y un desplazamiento.
La finalidad de la tabla de páginas es asociar páginas virtuales con marcos de
página.
La entrada típica en una tabla de páginas es la siguiente:
La dirección del marco de página,
guarda la dirección en memoria real donde
se encuentra la página.
El bit presente/ausente, indica si la pá-
gina reside en la memoria real o no. Si la
página no está presente (0) y se referencia,
se producirá un fallo de página.
Los bits de protección indican el tipo
de acceso permitido. Estos generalmente se
conocen como rwx. Dependiendo de si están activados, la página se podrá leer (r),
escribir (w) o ejecutar (x).
El bit de modificación se activa cada vez que la página sufre algún cambio en me-
moria real. Se utiliza cuando la página es seleccionada para salir de la memoria real,
cuando se presenta un fallo de página. Si el bit está activado, entonces la página se
escribe sobre el disco. En caso contrario sólo se ignora, pues la imagen en disco es igual
a la existente en la memoria real.
El bit de referencia como su nombre indica se activa cada vez que la página es
referenciada, bien sea para lectura o escritura. Sirve para apoyar al sistema operativo,
para seleccionar la página a salir cuando se presenta un fallo de página. Las páginas no
referenciadas son las más indicadas.
El bit de caching. Si este está desactivado, cuando se produzca una operación de
E/S, el sistema operativo busca la información en el hardware y no una copia antigua en
la caché.
En los sistemas actuales la tabla de páginas suele ser demasiado grande como para
almacenarla totalmente en memoria principal y por eso se suele utilizar un esquema de

8
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

tablas de página con organización arborescente de varios niveles. De este modo, en un


momento dado, sólo estarán cargadas en la memoria principal las entradas de la tabla de
páginas necesarias para la ejecución de los procesos en curso.
Por otro lado, existe la necesidad imperiosa de que la traducción entre direcciones
virtuales y físicas sea lo más rápida posible. Para ello, se suelen utilizar técnicas que
combinan memorias asociativas y caché de alta velocidad que contienen las partes más
usadas de las tablas de direcciones con el fin de acelerar el citado proceso de traducción.

Otro método es de Tabal de Páginas Invertida, en el que la TLB tiene el mismo


número de entradas que la memoria real. La TLB se usa para consultar los bits que
permiten gestionar la página para el planificador y otras gestiones.

2.1.2 SEGMENTACIÓN

En este método, la memoria se divide en bloques de longitud variable denominados


segmentos. La dirección virtual se compone de dos partes: un segmento y un
desplazamiento. La primera sirve para encontrar la entrada correspondiente en la tabla
de segmentos, en donde se encuentra la dirección del marco de segmento
correspondiente. A esta se le suma el desplazamiento para encontrar la dirección real
correspondiente.

Dentro de cada entrada de la tabla de


segmentos se encuentra un campo, que
indica la longitud del segmento. Éste se
utiliza para verificar que no se hagan
referencias fuera del segmento. Si esto
llegase a ocurrir se generaría una
interrupción.
Las ventajas de la segmentación es que
evita la fragmentación interna ya que los
segmentos se definen del tamaño que se
requiera y que facilita la protección de la
memoria.
La principal desventaja es que conduce a fragmentación externa, que es un
fenómeno que se presenta cuando se manejan bloques de longitud variable.

9
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

2.1.3 SEGMENTACIÓN CON PAGINACIÓN

En este método las direcciones virtuales se componen de tres partes: un segmento,


una página y un desplazamiento (offset). La primera sirve para encontrar la entrada en
la tabla de segmentos
en donde se encuentra
la dirección donde
comienza la página.
Con la segunda
componente se
encuentra la entrada
correspondiente a la
página y alli la
dirección del marco de
página que junto con el
desplazamiento dan la
dirección real.
Una ventaja de este método es que permite mantener una estructura de segmentación
sin conducir a fragmentación externa. Además permite mantener las tablas de páginas
en memoria auxiliar.

2.1.4 PAGINACIÓN MULTINIVEL

Para evitar el problema de tener unas tablas de páginas muy grandes en la memoria
todo el tiempo, algunos sistemas utilizan tablas con varios niveles o hiperpaginación.
La idea principal de las tablas de páginas de varios niveles consiste en evitar
mantener todas las tablas en la memoria todo el tiempo. Aquellas que no sean necesarias
no deben mantenerse allí.
La dirección virtual ahora se compone de tres campos: dos direcciones de páginas y
un desplazamiento. Cuando una dirección virtual llega a la MMU, ésta extrae primero el
componente p1 y lo utiliza como
índice en la tabla de páginas de
nivel 1. Allí ubica la dirección
donde se encuentra la dirección
de inicio de otra página en la
tabla de páginas de nivel y con
la componente p2 de la
dirección encuentra la dirección
del marco que contiene la
página respectiva. Luego con la
tercera componente de la
dirección, el desplazamiento d,
encuentra la dirección real.

El sistema de dos tablas,


puede aumentarse a tres o más, pero ello implica que la complejidad del sistema se
eleve de manera considerable, por lo que no se acostumbra más de tres niveles.

10
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

Diferencias entre paginación y segmentación

 En paginación, el espacio de direcciones es lineal (unidimensional) y se hace


una división física del mismo. En segmentación, el espacio de direcciones es
bidimensional, se hace una división lógica del mismo (tiene sentido compartir
segmentos).
 Las páginas son de tamaño fijo, determinado por la arquitectura del sistema. Los
segmentos pueden ser de cualquier tamaño.
 La división de las direcciones virtuales en número de página y desplazamiento
es tarea del hardware, mientras que la división en segmento y desplazamiento es
tarea del programador.

2.2 GESTIÓN DEL ALMACENAMIENTO VIRTUAL

A continuación se analizan varios tipos de políticas que el SO debe seguir para


gestionar la memoria de una manera eficiente:

Políticas de lectura
Es la estrategia que determina cuándo se debe cargar una página en memoria
principal. Una página está en memoria si en la tabla de páginas, el bit de página válida
está activo. Hay dos tipos de estrategias a seguir:
En la paginación/segmentación por demanda se trae una página/segmento sólo
cuando se hace referencia a ella, por el contrario, la paginación previa trae a memoria
principal varias páginas contiguas. En teoría esta última es más eficiente, aunque su
utilidad no ha sido demostrada en la práctica.

Políticas de ubicación
Determinan dónde va a residir una parte de un proceso en memoria principal. En la
segmentación se siguen las estrategias de mejor ajuste, peor ajuste o primer ajuste,
mientras que para la paginación y para la segmentación con paginación la ubicación
carece de importancia.

Políticas de asignación
La asignación es la cantidad de memoria que se debe asignar a un proceso. Esta
asignación puede ser fija o variable. En la variable, el número de marcos asignados a un
proceso varía dinámicamente a lo largo de su vida.

Políticas de reemplazo
Determinan qué página se reemplaza en memoria principal cuando se debe cargar
otra y no hay espacio para ella. Para ello se siguen distintos algoritmos entre los que se
encuentran: Óptimo, NRU, FIFO, LRU o Reloj.

11
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

Reemplazamiento de la página óptima

Cada página se etiqueta con el número de instrucciones que serán ejecutadas antes de
referenciar esa página. La página a reemplazar será aquella con el valor de la etiqueta
más alta.

Es imposible de implementar ya que el sistema operativo no tiene forma de saber


cuando cada página será referenciada próximamente cuando suceda una interrupción de
falta de página.

Reemplazamiento de la página no usada recientemente (NRU, Not Recently Used)

A cada página le asociamos 2 bits:

 R: bit de referencia à lo coloca el hardware a 1 en cualquier lectura o escritura en


la página.
 M: bit de modificado à lo coloca el hardware a 1 cuando se escribe en una
página.

Cuando un proceso empieza, el sistema operativo coloca a 0 esos 2 bits (para todas las
páginas). Periódicamente (cada tick de reloj, que suele producirse a intervalos de 20 ms
aproximadamente), el bit R se limpia (se pone a 0) para distinguir páginas no
referenciadas de las que si lo han sido.

En una falta de página, el sistema operativo examina los bits R y M de todas las páginas
y saca una página al azar de la clase más baja no vacía:

Clase 0: no referenciada (R=0), no modificada (M=0)

Clase 1: no referenciada (R=0), modificada (M=1)

Clase 2: referenciada (R=1), no modificada (M=0)

Clase 3: referenciada (R=1), modificada (M=1)

12
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

Reemplazamiento primera en entrar, primera en salir (FIFO)

El sistema operativo mantiene una lista de las páginas concurrentes en memoria, siendo
la página de cabeza de la lista la más antigua y la última de la lista, la última en llegar.
Ante una falta de página, se reemplaza la página de cabeza y la nueva página se añade al
final de la lista.

Inconveniente  La página más vieja puede ser muy usada por las otras.

Ejemplo: Páginas compartidas (código reentrante).

Dos variantes FIFO usando bits R y M:

 Extraer la página de la clase más baja empezando a buscar la más vieja.


 “second chance”  Se inspecciona la página más vieja como víctima potencial.
Si su bit R esté a 0, se reemplaza y si está a 1 se coloca a 0 y se pone la página al
final de la lista buscando en la siguiente página de la lista (si todas las páginas
han sido referenciadas tendremos el FIFO puro).

Reemplazamiento de la página menos usada recientemente (LRU,Least Recently Used)

Las páginas que se han usado mucho en la última instrucción probablemente serán
usadas mucho en la próxima instrucción, y las que no han sido usadas durante muchas
instrucciones no lo serán durante mucho tiempo.

Simulando LRU en software (Algoritmo NFU, No Usada


Frecuentemente – Not Frequently Used)

Algoritmo de reemplazamiento de la página no usada frecuentemente. Requiere de un


contador de software asociado con cada página e inicializado a 0. Este contador
contiene las referencias a las páginas. En cada interrupción de reloj, el sistema operativo
añade el bit R (0 a 1) el contador. Cuado ocurre una falta de página, la página con el
contador más bajo es reemplazada

13
TEMA 17: SISTEMAS OPERATIVOS. GESTIÓN DE MEMORIA

A continuación podemos ver una tabla resumen de los distintos Algoritmos junto sus
ventajas/inconvenientes.

1. LA GESTIÓN DE MEMORIA EN SISTEMAS OPERATIVOS LINUX Y WINDOWS

Linux:
 Utiliza paginación multinivel.
 En el reemplazo de páginas utiliza el algoritmo del reloj (similar al LRU).
 Utiliza una partición de intercambio llamada swap.

Windows con núcleo NT (desde windows XP en adelante…):


 Utiliza paginación multinivel.
 Utiliza un archivo de paginación de disco llamado [Link], cuyo tamaño se fija en panel de
controlsistemarendimiento.

BIBLIOGRAFÍA

Stallings, W.
Sistemas operativos
Prentice Hall, 2ed., 1997

Tanenbaum, Andrew S.
Sistemas operativos: Diseño e implementación
Prentice Hall, 1990

14

También podría gustarte