SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Sistemas Operativos I                                                                      Unidad 3

                        3. ADMINISTRACIÓN DE MEMORIA
3.1 MANEJO DE LA MEMORIA REAL

La organización y administració n de la Memoria principal, memoria primaria o memoria real de un
sistema de cómputo ha sido uno de los factores más importantes que influyen en el diseño de los
sistemas operativos. Los términos memoria y almacenamiento se han utilizado como sinónimos en la
literatura. Los programas y datos deben residir en la memoria principal para poderlos ejecutar o para
hacer referencia directamente a ellos. El almacenamiento secundario (el medio más común es el disco
magnético), proporciona capacidad barata y en gran escala para los numerosos programas y datos que
deben mantenerse disponibles para su procesamiento.

3.1.1 ORGANIZACIÓN Y ADMINISTRACIÓN DEL ALMACENAMIENTO

Por organización del almacenamiento se entiende la forma de considerar el almacenamiento principal.
Esto es, la manera como se estructura la memoria en sentido físico.

La administración del almacenamiento se orienta a lograr determinado comportamiento de una
organización de almacenamiento cuando se siguen diferentes políticas.

3.1.2 JERARQUÍA DEL ALMACENAMIENTO

Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder
hacer referencia de ellos. Los programas o datos que no se necesitan de inmediato pueden guardarse en
el almacenamiento secundario hasta que se necesiten y en ese momento se transfieren al
almacenamiento principal para ser ejecutados o hacer referencia a ellos.

Los medios de almacenamiento secundario, como cintas o discos, son en general menos costosos que el
almacenamiento principal y su capacidad es mucho mayor. Normalmente es mucho más rápido el
acceso al almacenamiento principal que al secundario.

En los sistemas con varios niveles de almacenamie nto hay muchas transferencias constantes de
programas y datos entre los diferentes niveles. Estas trasferencias consumen recursos del sistema, como
tiempo de la CPU, que de otro modo podría utilizarse con provecho.

En los años sesenta se hizo evidente que la jerarquía del almacenamiento podría extenderse un nivel
más con una clara mejora del rendimiento y la utilización. Este nivel adicional, la memoria caché, es un
almacenamiento de alta velocidad, mucho más rápido que el almacenamiento principal. La memoria
caché es extremadamente cara, comparada con la memoria principal, por lo que sólo se utilizan
memorias caché relativamente pequeñas.

La memoria caché introduce un nivel adicional de transferencia de información en el sistema. Los
programas en memoria principal se pasan a la memoria caché antes de ejecutarse. En la memoria caché
se pueden ejecutar mucho más rápido que en la principal. La esperanza de los diseñadores que utilizan
el concepto de memoria caché es que el trabajo extra requerido por la transferencia de los programas
sea mucho menor que el aumento del rendimiento obtenido por la rápida ejecución que es posible en la
memoria caché.


                                     Universidad Autónoma de Nayarit                                  1
Sistemas Operativos I                                                                      Unidad 3

3.1.3 ESTRATEGIAS DE ADMINISTRACIÓN DEL ALMACENAMIENTO

Los recursos caros se administran intensivamente para obtener una mejor utilización. Las estrategias de
la administración del almacenamiento se ajustan para obtener el mejor aprovechamiento posible del
recurso de almacenamiento principal. Las estrategias de la administración del almacenamiento se
dividen en las siguientes categorías.
    1. Estrategias de obtención
           a) Estrategias de obtención por demanda
           b) Estrategias de obtención anticipada
    2. Estrategias de colocación
    3. Estrategias de reemplazo

Las estrategias de obtención determinan cuándo debe obtenerse la siguiente parte del programa o los
datos que se van a transferir del almacenamiento secundario al principal.
Las estrategias de colocación tienen que ver con la determinación de la parte del almacenamiento
principal donde se colocará un programa entrante.
Las estrategias de reemplazo están relacionadas con la determinación de qué parte del programa o de
los datos se debe desalojar para dejar espacio a los programas entrantes.

3.1.4 ASIGNACIÓN DEL ALMACENAMIENTO CONTIGUO Y NO CONTIGUO

Los primeros sistemas de cómputo requerían una asignación de almacenamiento contiguo: cada
programa tenía que ocupar un único bloque contiguo de localidades de memoria. No fue sino hasta que
se intentó hacer multiprogramación con particiones variables cuando quedó claro que podía ser útil la
asignación de almacenamiento no contiguo.

En la asignación de almacenamiento no contiguo un programa se divide en varios bloques o segmentos
que se pueden colocar en el almacenamiento principal en fragmentos que no necesitan ser adyacentes.

Es más difícil para un sistema operativo controlar la asignación del almacenamiento no contiguo, pero
la ventaja es que, si el almacenamiento principal tiene muchos huecos pequeños disponibles en lugar de
un único hueco grande, el sistema operativo a menudo puede cargar y ejecutar un programa que en otro
caso tendría que esperar.

3.1.5   ASIGNACIÓN DE ALMACENAMIENTO CONTIGUO PARA UN USUARIO ÚNICO

Los primeros sistemas de cómputo permitían que sólo una persona a la vez utilizara la máquina. Todos
los recursos de la máquina estaban a disposición del usuario. El cobro del uso del computador era muy
simple: como el usuario disponía de toda la máquina, se le cobraban todos los recursos, ya fuera que
sus trabajos los utilizaran o no.

De hecho, el mecanismo de cobro normal se basaba en el tiempo de reloj. La máquina se asignaba a un
usuario por algún tiempo determinado y se le cobraba una tarifa fija por hora Algunos de los sistemas
compartidos actuales tienen algoritmos de cobro mucho más complejos.

Originalmente, cada usuario escribía todo el código necesario para realizar una aplicación específica,
incluyendo las detalladas instrucciones de entrada/salida a nivel de la máquina. Muy pronto el código
de entrada/salida requerido para realizar las funciones básicas se consolidó en un sistema de control de
entrada/salida (input/output control system, IOCS).

                                     Universidad Autónoma de Nayarit                                  2
Sistemas Operativos I                                                             Unidad 3

Los usuarios que querían hacer entrada/salida ya no tenían que
codificar directamente las instrucciones, sino que llamaban a las
rutinas de IOCS para realizar el trabajo. Ello simplificaba y aceleraba
mucho el proceso de codificación. La implantación de los sistemas de
control de entrada/salida bien pudo haber constituido el comienzo del
concepto actual de sistemas operativos. La figura lateral ilustra la
organización del almacenamiento en un sistema representativo de
asignación de almacenamiento contiguo con un único usuario.

En tamaño de los programas está limitado por la cantidad de
memoria principal, pero es posible ejecutar programas más grandes
que el almacenamiento principal utilizando superposiciones
(overlay).

La figura de abajo ilustra el concepto. Si una sección de un programa
no se necesita durante el resto de la ejecución del programa, entonces
se puede traer del almacenamiento secundario otra sección del
programa para ocupar el espacio utilizado por la que ya no se
necesita.
Las superposiciones ofrecen al programador una forma de ampliar el almacenamiento principal
limitado. Sin embargo, la superposición manual exige una cuidadosa planificación y lleva mucho
tiempo.




                                      Universidad Autónoma de Nayarit                        3
Sistemas Operativos I                                                                        Unidad 3

Protección en los sistemas de usuario único

En los sistemas de asignación de almacenamiento contiguo para un solo usuario, este último tiene un
control absoluto sobre todo el almacenamiento principal. La memoria se divide en una parte en la que
residen las rutinas del sistema operativo, otra en la que residen los programas del usuario y otra no
utilizada. La cuestión de la protección es sencilla.

Si el programa del usuario se desvía puede destruir el sistema operativo. Si esto resulta fatal y el
usuario no puede proseguir, sabrá que algo anda mal, terminará la ejecución, arreglará el problema y
volverá a intentar la ejecución de su programa. En tales circunstancias no resulta evidente la necesidad
de proteger el sistema operativo.

Pero supóngase que el usuario destruye el sistema operativo más "sutilmente". Por ejemplo, supóngase
que ciertas rutinas de entrada/salida son modificadas por accidente, de tal modo que pueden estar
truncados todos los registros de salida. El trabajo puede seguir en ejecución; pero si los resultados no se
examinan sino hasta que se completa el trabajo, entonces se estarán desperdiciando los recursos de
máquina. Peor aún, el daño al sistema operativo puede hacer que se produzcan salidas cuyos errores no
san evidentes.

Sin duda es obvio que el sistema operativo se debe proteger del usuario. La protección se realiza con un
registro de límites único integrado en la CPU, como se muestra en la figura siguiente.

Cada vez que un programa de usuario hace referencia a una dirección de memoria, se revisa el registro
de límites para verificar que el usuario no está a punto de destruir el sistema operativo. El registro de
límites contiene la dirección más alta utilizada por el sistema operativo. Si el usuario intenta entrar en
el sistema operativo, se intercepta la instrucción y el trabajo termina con un mensaje de error
apropiado.




                                      Universidad Autónoma de Nayarit                                    4
Sistemas Operativos I                                                                      Unidad 3

Naturalmente, el usuario necesita entrar de vez en cuando en el sistema operativo para utilizar algunos
servicios, como la entrada/salida. El problema se resuelve dando al usuario una instrucción específica
con la cual puede solicitar los servicios del sistema operativo (es decir, una instrucción de llamada al
supervisor). El usuario que desee leer en una cinta enviará una instrucción solicitando al sistema
operativo que lo haga por él. El sistema operativo realizará la función deseada y después devolverá el
control al programa del usuario. A medida que se han vuelto más complejos los sistemas operativos ha
sido necesario llevar a la práctica mecanismos más avanzados para proteger al sistema operativo de los
usuarios y proteger a éstos entre sí.

3.1.6 MULTIPROGRAMACIÓN CON PARTICIONES FIJAS

Aun con los sistemas operativos de procesamiento por lotes, los sistemas de usuario único siguen
desperdiciando una gran cantidad de los recursos de cómputo. La siguiente Figura ejemplifica la
situación. El programa consume el recurso de la CPU hasta que se necesita una entrada o una salida.
Cuando se genera la solicitud de E/S, es frecuente que el trabajo no pueda continuar sino hasta que se
envíen o reciban los datos requeridos. Las velocidades de entrada y salida son muy bajas, en
comparación con las velocidades de la CPU.




Los diseñadores vieron que otra vez podrían aumentar notablemente el aprovechamiento de la CPU
mediante una administración intensiva. Esta vez decidieron realizar sistemas de multiprogramación en
los cuales varios usuarios compiten al mismo tiempo por los recursos del sistema. El trabajo que está
esperando la terminación de una operación E/S cederá la CPU a otro trabajo que esté listo para realizar
cálculos, si es que hay uno en espera. De esta forma pueden efectuarse simultáneamente las
operaciones de E/S y los cálculos de la CPU. Esto mejora mucho el aprovechamiento de la CPU y los
resultados del sistema.

                                     Universidad Autónoma de Nayarit                                  5
Sistemas Operativos I                                                                     Unidad 3

Para aprovechar al máximo la multiprogramación, es necesario que varios trabajos residan al mismo
tiempo en el almacenamiento principal del computador. Así, cuando un trabajo solicita E/S, la CPU
puede conmutarse de inmediato a otro y realizar cálculos sin retraso. Cuando este nuevo trabajo
abandona la CPU, otro puede estar listo para utilizarla.

La multiprogramación requiere por lo regular mucho más almacenamiento que un sistema de usuario
único. Sin embargo, la mejor utilización de la CPU y los dispositivos periféricos justifica de sobra el
costo del almacenamiento adicional.

3.1.7 MULTIPROGRAMACIÓN CON PARTICIONES VARIABLES

Al observar los diseñadores de sistemas operativos los problemas de la multiprogramación con
particiones fijas, decidieron que una mejora evidente sería permitir que los trabajos ocuparon tanto
espacio como necesitaran (pero no todo el almacenamiento real). No se impondrían límites fijos, sino
que se daría a los trabajos todo el almacenamiento que necesitaran. Este esquema se denomina
multiprogramación con particiones variables. En la figura siguiente se ilustra la asignación inicial de
las particiones en un sistema de multiprogramación con particiones variables.




Aquí sólo se tratarán los esquemas de asignación contigua: un trabajo debe ocupar localidades de
memoria contiguas. En la multiprogramación con particiones variables no se hacen suposiciones sobre
el tamaño de los trabajos (excepto que no deben ser mayores que el almacenamiento principal
disponible en el computador). Si cuando llega un trabajo los mecanismos de planificación deciden que
debe proseguir, se le asigna tanto espacio como necesite. No hay desperdicio, pues la partición de un
trabajo tiene exactamente el tamaño del trabajo.

No obstante, todo esquema de organización del almacenamiento implica algún grado de desperdicio.

                                     Universidad Autónoma de Nayarit                                 6
Sistemas Operativos I                                                                      Unidad 3

En la multiprogramación con particiones variables, el desperdicio no se hace evidente sino hasta que
los trabajos empiezan a terminar y dejan huecos en el almacenamiento principal. Como se muestra en
la siguiente figura. Otros trabajos pueden utilizar dichos huecos, pero entonces los huecos restantes se
hacen más pequeños, acabando por ser tan reducidos que no pueden contener nuevos trabajos. Así
pues, en la multiprogramación con particiones variables también hay desperdicio.




Condensación de Huecos
Cuando termina un trabajo en un sistema de multiprogramación con particiones variables, se puede
comprobar si el almacenamiento liberado colinda con otras áreas libres del almacenamiento (huecos).
Si es así, se puede registrar en la lista de almacenamiento libre ya sea (1) un hueco adicional o (2) un
hueco único que refleje la unión del hueco existente y del nuevo hueco adyacente.
El proceso de fusionar huecos adyacentes para formar un solo hueco más grande se denomina
condensación y se ilustra en la figura siguiente. Mediante la condensación de huecos se pueden
recuperar los bloques contiguos de almacenamiento más grandes que sean posibles.




                                     Universidad Autónoma de Nayarit                                  7
Sistemas Operativos I                                                                                  Unidad 3

Compactación del almacenamiento.

A pesar de la condensación de los huecos, muchas veces resulta que los huecos individuales
distribuidos a lo largo del almacenamiento principal constituyen una parte significativa del
almacenamiento. A veces, cuando un trabajo pide cierta cantidad de almacenamiento principal, ningún
hueco individual es lo bastante grande para contenerlo, aunque la suma de todos los huecos sea mayor
que el almacenamiento requerido por el nuevo trabajo.
La técnica de compactación del almacenamiento implica trasladar todas las áreas ocupadas del
almacenamiento a algún extremo de la memoria principal. Esto deja un gran hueco único de
almacenamiento libre, en lugar de los numerosos huecos pequeños característicos de la
multiprogramación con particiones variables. Ahora todo el almacenamiento libre está contiguo, así
que un trabajo en espera puede ejecutarse si sus necesidades de memoria son satisfechas por el hueco
único resultante de la compactación. A veces, y en forma por demás pintoresca, la compactación del
almacenamiento se denomina eructo del almacenamiento (burping the storage). Un nombre más
convencional es recolección de basura (garbage collection).
La compactación presenta los siguientes inconvenientes.
   ü   Consume recursos del sistema que podrían utilizarse en forma productiva.
   ü   El sistema debe detener todas sus actividades mientras realiza la compactación. Ello puede ocasionar tiempos de
       respuestas irregulares para usuarios interactivos y podría ser devastador en sistemas de tiempo real.
   ü   La compactación implica reubicar los trabajos que estén en el almacenamiento. Eso significa que la información
       requerida para realizar la reubicación, que se pierde por lo regular cuando se carga un programa, debe ahora
       mantenerse accesible.
   ü   Con una combinación normal de trabajos que cambia rápidamente, a menudo es necesario compactar. Los recursos
       del sistema que se consuman quizá no justifiquen las ventajas de la compactación.




                                         Universidad Autónoma de Nayarit                                            8
Sistemas Operativos I                                                                       Unidad 3

Estrategias de colocación en almacenamiento

Las estrategias de colocación en almacenamiento sirven para determinar en qué lugar del
almacenamiento principal se deben colocar los programas y datos entrantes. En la figura siguiente se
ilustra n tres estrategias mencionadas a menudo en la literatura.
     ü Estrategia del mejor ajuste: Un trabajo
         que entre en el sistema se colocará en
         el hueco del almacenamiento principal
         en el que quepa mejor y que deje la
         menor cantidad posible de espacio sin
         utilizar. Para muchos, el mejor ajuste
         parece ser intuitivamente la estrategia
         más atractiva.
     ü Estrategia del primer ajuste: Un
         trabajo que entre en el sistema se
         colocará en el almacenamiento
         principal en el primer hueco disponible
         lo bastante grande para contenerlo.
         Intuitivamente, el primer ajuste
         también es atractivo, pues permite
         decidir con rapidez dónde se colocará
         un trabajo.
     ü Estrategia del peor ajuste: A primera
         vista ésta parecería una elección
         extravagante, pero después de un
         examen más cuidadoso, el peor ajuste
         también posee un fuerte atractivo
         intuitivo. El peor ajuste consiste en
         colocar      un    programa     en   el
         almacenamiento primar io en el hueco
         donde peor se ajusta, es decir, en el
         hueco más grande posible. El atractivo
         intuitivo es sencillo: Después de
         colocar el programa en ese gran hueco,
         el hueco restante a menudo será
         también grande y por consiguiente
         podrá contener un nuevo programa
         relativamente grande.
Una variante de la estrategia del primer ajuste, denominada estrategia del siguiente ajuste, comienza
cada búsqueda de un hueco disponible en el lugar donde terminó la búsqueda anterior.

3.1.8 MULTIPROGRAMACIÓN CON INTERCAMBIO DE ALMACENAMIENTO

En algunos sistemas de intercambio (Swapping), un trabajo ocupa el almacenamiento principal de una
vez. Ese trabajo se ejecuta hasta que no puede continuar y entonces cede el almacenamiento y la CPU
al siguiente trabajo. Así todo el almacenamiento está dedicado a un trabajo por un periodo breve;
después se saca ese trabajo (es decir, se intercambia con el de afuera) y se carga el siguiente (es decir,
se intercambia con el de adentro).

                                      Universidad Autónoma de Nayarit                                   9
Sistemas Operativos I                                                                  Unidad 3

Un trabajo normalmente será intercambiado en ambos sentidos repetidas veces antes de completarse.




Muchos de los primeros sistemas de tiempo compartido se efectuaron con esta técnica de intercambio.
Se podían garantizar tiempos de respuesta razonables para unos pocos usuarios, pero los diseñadores
sabían que se necesitarían mejores técnicas para manejar un gran número de usuarios. Los sistemas de
intercambio de principios de los años sesenta dieron lugar a los sistemas de paginación de uso común
en la actualidad.

Se han desarrollado sistemas de intercambio más avanzados que permiten mantener en memoria
principal varias imágenes (copias) de usuario al mismo tiempo. En estos sistemas una imagen de
usuario se saca sólo cuando su almacenamiento es requerido por una imagen de usuario entrantes. Con
suficiente espacio de almacenamiento, tales sistemas reducen considerablemente el tiempo gastado en
los intercambios.




                                    Universidad Autónoma de Nayarit                                 10
Sistemas Operativos I                                                                       Unidad 3

3.2 ORGANIZACIÓN DE LA MEMORIA VIRTUAL

El término almacenamiento virtual suele asociarse con la capacidad para obtener acceso a direcciones
en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de un
sistema de cómputo determinado. El almacenamiento virtual no es un concepto nuevo. Apareció por
primera vez en el sistema de cómputo Atlas construido en la Universidad de Manchester, Inglaterra, en
1960. No obstante, el empleo generalizado de los sistemas de almacenamiento virtual es relativamente
reciente. Los microprocesadores actuales manejan el almacenamiento virtual.

Los dos métodos más comunes para poner en práctica el almacenamiento virtual son la paginación y la
segmentación. Algunos sistemas de almacenamiento virtual emplean una técnica u otra, mientras que
algunos otros utilizan ambas.

Todos los sistemas de almacenamiento virtual tienen la propiedad de que las direcciones calculadas por
programas en ejecución no son necesariamente las disponibles en el almacenamiento primario. De
hecho, las direcciones virtuales se seleccionan por lo regular de un conjunto de direcciones mucho más
grande que el disponible en el almacenamiento primario.

3.2.1 EVOLUCIÓN DE LA ORGANIZACIÓN DEL ALMACENAMIENTO

La figura muestra cómo ha evolucionado la organización del almacenamiento desde los sistemas de
almacenamiento real dedicados a un solo usuario hasta los sistemas de almacenamiento virtual que
combinan técnica paginación y segmentación.

   Real                       Real                                         Virtual




3.2.2 ALMACENAMIENTO VIRTUAL: CONCEPTOS BÁSI COS

La clave del concepto de almacenamiento virtual es la disociación de las direcciones a las que hace
referencia un proceso en ejecución de las direcciones disponibles en el almacenamiento primario.

Las direcciones a las que hace referencia un proceso en ejecución se conocen como direcciones
virtuales. Las direcciones disponibles en el almacenamiento primario se conocen como direcciones
reales. El intervalo de direcciones virtuales a las que puede hacer referencia un proceso en ejecución se
conoce como espacio de direcciones virtuales, V, del proceso.

                                     Universidad Autónoma de Nayarit                                   11
Sistemas Operativos I                                                                            Unidad 3

El intervalo de direcciones reales disponibles en un sistema de cómputo determinando se conoce como
espacio de direcciones reales, R, del computador. El número de direcciones en V se denota |V|, y el
número de direcciones en R, |R|. En los sistemas de almacenamiento virtual ya implantados lo normal
es que |V| >> |R|, aunque se han construido sistemas en los cuales |V| < |R|.

Aunque los procesos sólo hacen referencia a direcciones virtuales, deben ejecutarse en el
almacenamiento real. Por tanto, es preciso establecer la correspondencia entre las direcciones virtuales
y las reales durante la ejecución de un proceso. Esto debe hacerse con rapidez, pues en caso contrario el
rendimiento del sistema se degradaría a niveles inaceptables, eliminando así las ganancias logradas por
el empleo del concepto de almacenamiento virtual (figura 3.17)
               Almacenamiento virtual




3.2.3 PAGINACIÓN: CONCEPTOS BÁSICOS

Teniendo en cuenta la complejidad del manejo de bloques de tamaño variable en la multiprogramación
con particiones variables, lo más conveniente es comenzar con la correspondencia de bloques de
tamaño fijo; es decir, la paginación.




                    Figura 3.19 Formato de dirección virtual en un sistema de paginación pura.

Una dirección virtual en un sistema de paginación es un par ordenado (p, d) en el cual p es el número
de la página del almacenamiento virtual en la que reside el elemento al que se hace referencia, y d es el
desplazamiento dentro de la página p donde se localiza dicho elemento(figura 3.19). Un proceso puede
ejecutarse si su página activa se encuentra en el almacenamiento primario. Las páginas se transfieren
del almacenamiento secundario al primario y se colocan dentro de bloques llamados marcos de página
que tienen el mismo tamaño que las páginas entrantes. Los marcos de página comienzan en direcciones
de almacenamiento real que son múltiplos enteros del tamaño fijo de la página. Una página entrante
puede colocarse en cualquier marco de página disponible.


                                        Universidad Autónoma de Nayarit                                     12
Sistemas Operativos I                                                                                  Unidad 3

    Nota: Los marcos de pagina son receptáculos, nichos o huecos donde se van a depositar bloques de información.

                                                                                    La traducción dinámica de
                                                                                    direcciones en la paginación
                                                                                    se realiza de la siguiente
                                                                                    forma. Un proceso en
                                                                                    ejecución hace referencia a
                                                                                    una dirección de
                                                                                    almacenamiento virtual
                                                                                    v=(p, d).
                                                                                    Un mecanismo de
                                                                                    correspondencia de páginas
                                                                                    busca la página p en una
                                                                                    tabla de correspondencia de
                                                                                    páginas y determina que la
                                                                                    página p se encuentra en el
                                                                                    marco de página p’ .
                                                                                    La dirección de
                                                                                    almacenamiento real se
                                                                                    forma concatenando p’ y d.
                                                                                    Ahora consideremos el
                                                                                    proceso con mayor detalle.




Debido sobre todo a que normalmente no
todos las páginas del proceso se encuentran
en el almacenamiento primario al mismo
tiempo, la tabla de correspondencia de
páginas debe indicar si la página a la que se
hace referencia se encuentra o no en el
almacenamiento primario; si sí está, donde
se encuentra y si no, dónde puede
encontrarse      en    el    almacenamiento
secundario.
La figura de la siguiente pagina muestra una
tabla de correspondencia de páginas
representat ivas. Un bit de residencia de
página, r, tiene valor 0 si la pagina no se
encuentra en el almacenamiento primario,
entonces s es su dirección en el
almacenamiento secundario.

                                         Universidad Autónoma de Nayarit                                            13
Sistemas Operativos I                                                                    Unidad 3

Si la página se encuentra en el almacenamiento primario, entonces p’ es su número de marco de página.

Obsérvese que p’ no es una dirección real en el almacenamiento primario; la dirección de
almacenamiento primario en la cual comienza el marco de página, p’’ es el producto de p’ y el tamaño
fijo de la página (suponiendo que los marcos de páginas estén numerados consecutivamente a partir de
cero).




Traducción de direcciones en la paginación por correspondencia directa

Un proceso en ejecución hace
referencia a una dirección
virtual v = (p,d). Antes de que
un proceso comience su
ejecución, el sistema carga
(durante la conmutación de
contexto) la dirección en
almacenamiento primario de
la tabla de correspondencia
de páginas en el registro de
origen de la tabla de
correspondencia de páginas.
La dirección base, b, de la
tabla de correspondencia de
páginas se suma al número de
página, p, para formar la
dirección en almacenamiento
primario, b + p, de la entrada
de la página p en la tabla de
correspondencia de páginas.
Esta entrada indica que el marco de página p' corresponde a la página virtual p. Después, p' se
concatena con el desplazamiento, d, para formar la dirección real, r Se dice que éste es un ejemplo de
correspondencia directa porque la tabla de correspondencia de pá ginas contiene una entrada para cada
página del almacenamiento virtual del proceso.

                                    Universidad Autónoma de Nayarit                                 14
Sistemas Operativos I                                                                        Unidad 3

Si el proceso tiene n páginas en su almacenamiento virtual, entonces la tabla de correspondencia de
páginas con correspondencia directa del proceso contiene entradas sucesivas para las páginas 0, 1, 2,...,
n -1. La correspondencia directa se parece mucho al acceso a un elemento de un arreglo mediante
índices; cualquier entrada de la tabla puede localizarse directamente con un solo acceso a la tabla,
véase la figura siguiente. Tanto la dirección virtual que se traduce, como la dirección base de la tabla de
correspondencia de páginas, se conservan en registros de alta velocidad en el procesador central, de
manera que las operaciones en las que participan pueden realizarse con rapidez dentro de un solo ciclo
de ejecución de instrucciones.

Pero la tabla de correspondencia de páginas con correspondencia directa, que puede ser muy grande, se
conserva por lo regular en almacenamiento primario. En consecuencia, la referencia a la tabla requiere
un ciclo completo de almacenamiento primario. Como el tiempo de un ciclo de almacenamiento
primario representa la mayor parte de un ciclo de ejecución de instrucciones y se necesita un ciclo de
ejecución de almacenamiento primario adicional para la correspondencia de páginas, el empleo de
traducción de direcciones de páginas mediante correspondencia directa puede hacer que el sistema
ejecute los programas a la mitad de la velocidad, lo cual es inadmisible.

Por tanto, para lograr una traducción más rápida, la mayor parte de los sistemas actuales colocan la
tabla completa de correspondencia directa de páginas en una memoria caché de muy alta velocidad. Tal
cosa ha sido posible gracias a que los costos de la memoria caché han disminuido constantemente
debido a los avances en la tecnología de memorias.

Traducción de direcciones en la paginación por correspondencia asociativa

Una forma de acelerar la traducción
dinámica de direcciones, es colocar toda
tabla de correspondencia de páginas
dentro de un almacenamiento asociativo
accesible por contenido (y no por
dirección), el cual tiene ciclos de un
orden de magnitud más rápidos que los
del almacenamiento primario. La figura
lateral muestra cómo se realiza la
traducción dinámica de direcciones con
una correspondencia asociativa pura.
Un programa en ejecución hace
referencia a una dirección virtual V =
(p,d).    Cada       entrada     en    el
almacenamiento asociativo se revisa en
forma simultánea en busca de la página
p. Se devuelve p' como el marco de
página que corresponde a p, y p' se concatena con d para formar la dirección real, r. Obsérvese que las
flechas dirigidas al mapa de correspondencias asociativo entran realmente en cada celda del mapa. Esto
indica que se revisa al mismo tiempo cada celda del almacenamiento asociativo en busca de p. Ésta es
la razón de que el almacenamiento asociativo tenga un costo prohibitivo, aun comparado con la
memoria caché, por lo que nunca se utiliza la correspondencia asociativa pura; aquí se muestra por si
alguna vez se vuelve económica la correspondencia asociativa.
De nuevo, el dilema que se presenta es que la traducción dinámica de direcciones debe ejecutarse con
rapidez para hacerse práctico el concepto de almacenamiento virtual.

                                      Universidad Autónoma de Nayarit                                   15
Sistemas Operativos I                                                                   Unidad 3

3.2.4 SEGMENTACIÓN

En la multiprogramación con particiones variables, la colocación de los programas en el
almacenamiento se realiza con una técnica del primer ajuste, mejor ajuste o peor ajuste. No obstante,
persis te la limitación de ejecutar los programas en un bloque de localidades contiguas de
almacenamiento real.

En los sistemas de almacenamiento real con segmentación se elimina dicha restricción y un programa
(y sus datos) pueden ocupar muchos bloques separados de almacenamiento real. Los bloques no tienen
que ser del mismo tamaño y sí deben estar formados por localidades contiguas, pero no es forzoso que
ellos sean adyacentes.




                                    Universidad Autónoma de Nayarit                                16
Sistemas Operativos I                                                                                    Unidad 3




Figura 3.28 Protección de almacenamiento con claves en una asignación de almacenamiento no contigua en un sistema de
   multiprogramación. Mientras la clave de protección de la UCP sea 2 (correspondiente al usuario B), el programa del
 usuario B sólo podrá hacer referencia a otros bloques de almacenamiento con la misma clave de protección. Estas claves
    están bajo el estricto control del sistema operativo y sólo pueden manipularse mediante instrucciones privilegiadas.

Esto da pie a varios problemas interesantes. Por ejemplo, el problema de evitar que un usuario sea
destruido por otros resulta ahora más complejo. Ya no es suficiente con un par de registros de límites.
Así mismo, resulta más difícil limitar el intervalo de acceso de un programa. Uno de los esquemas para
lograr la protección del almacenamiento en los sistemas con segmentación es el empleo de claves de
protección del almacenamiento, como se ilustra en la figura 3.28.

En los sistemas de almacenamiento virtual con segmentación, una dirección virtual es un par ordenado
v = (s, d), donde s es el número de segmento en almacenamiento virtual en el que se encuentra el
elemento al que se hace referencia y d es el desplazamiento dentro del segmento s en donde se localiza
dicho elemento (Figura 3.29). Un proceso sólo se puede ejecutar si su segmento activo (como mínimo)
se encuentra en el almacenamiento primario. Los segmentos se transfieren del almacenamiento
secundario al primario como unidades completas. Todas las localidades del segmento se colocan en
localidades contiguas del almacenamiento primario. Un segmento entrante puede colocarse en
cualquier área disponible del almacenamiento primario cuyo tamaño sea suficiente para contenerlo. Las
estrategias de colocación para la segmentación son idénticas a las empleadas en la multiprogramación
con particiones variables, y las técnicas más comunes son las del primer ajuste y del mejor ajuste.

                                           Universidad Autónoma de Nayarit                                           17
Sistemas Operativos I                                                                                   Unidad 3


     Dirección virtual
         v= (s,d)


                         Figura 3.29 Formato de dirección virtual en un sistema de segmentación pura.

La traducción dinámica de direcciones en la segmentación se realiza de la siguiente forma. Un proceso
en ejecución hace referencia a una dirección de almacenamiento virtual v = (s, d) (Figura 3.30). Un
mecanis mo de correspondencia de segmentos busca el segmento s en la tabla de correspondencia de
segmentos y determina que el segmento s se encuentra en el almacenamiento real a partir de la
dirección s’. La dirección de almacenamiento real correspondiente a la dirección de almacenamiento
virtual v = (s, d) se forma sumando s’ y d.




3.2.5 SISTEMAS CON PAGINACIÓN/SEGMENTACIÓN

Tanto la segmentación como la paginación ofrecen ventajas significativas como organizaciones del
almacena miento virtual. A partir de los sistemas construidos a mediados de los años sesenta, en
particular Multics y el TSS de IBM, se han construido muchos sistemas que combinan la paginación
con la segmentación. Tales sistemas ofrecen las ventajas de ambas técnicas de organización del
almacenamiento virtual.

                                            Universidad Autónoma de Nayarit                                        18
Sistemas Operativos I                                                                            Unidad 3

Los segmentos tienen por lo general un tamaño múltiplo de páginas; no es necesario que todas las
páginas de un segmento estén en almacenamiento primario a la vez, y las páginas que son contiguas en
el almacenamiento virtual no son por fuerza contiguas en el almacenamiento real. Las direcciones son
tridimensionales, y una dirección de almacenamiento virtual, v, es una tripleta ordenada v = (s,p,d),
donde s es el número de segmento, p el número de página dentro del segmento y d el desplazamiento
dentro de la página donde se encuentra el elemento deseado (Figura 3.35).

                             Número de         Número de página          Desplazamiento        Dirección virtual
                             segmento s               p                        d                      v= (s,p,d)

                   Figura 3.35 Formato de dirección virtuales en un sistema con paginación y
                                                segmentación.

Traducción dinámica de direcciones en sistemas con paginación/segmentación

Considérese ahora la traducción dinámica de direcciones virtuales a direcciones reales en un sistema
con paginación/segmentación que utiliza correspondencia combinada asociativa/directa como se
muestra en la figura 3.36A.

Un proceso en ejecución hace referencia a una dirección virtual v=(s,p,d). Las páginas a las que se ha
hecho referencia más recientemente tienen entradas en un almacenamiento parcialmente asociativo. Se
realiza una búsqueda asociativa para tratar de localizar (s,p) en el almacenamiento asociativo. Si se
encuentra (s,p), entonces el marco de página del almacenamiento primario p’ en el cual reside la página
p del segmento s, se concatena con el desplazamiento d para formar la dirección real, r, correspondiente
a la dirección virtual v=(s,p,d), con lo cual finaliza la traducción de la dirección.

Por lo regular, la mayor parte de las peticiones de traducción de direcciones son satisfechas mediante la
búsqueda en el almacenamiento asociativo. Cuando esto no es posible, se establece una
correspondencia directa de la siguiente forma.

La dirección base, b, de la tabla de mapa de correspondencia de segmentos (en almacenamiento
primario) se suma el número de segmentos, s, para formar la dirección, b + s, de la entrada para el
segmento s en la tabla de mapa de correspondencia de segmentos en el almacenamiento primario. La
entrada en dicha tabla índica la dirección base s’, de la tabla de páginas (en el almacenamiento
primario) para el segmento s.

El número de página, p, se suma a s’ para firmar la dirección p+s’, de la tabla de páginas para la página
p del segmento s. Esta tabla indica que p’ es el número de marco de página que corresponde a la página
virtual p.

El número de marco, p’, se concatena con el desplazamiento, d, para formar la dirección real, r,
correspondiente a la dirección virtual v=(s,p,d).




                                       Universidad Autónoma de Nayarit                                      19
Sistemas Operativos I                                                                                 Unidad 3




 Figura 3.36A Traducción de direcciones virtuales con correspondencias asociativa / directa combinada en un sistema
                                          con paginación y segmentación




                                         Universidad Autónoma de Nayarit                                         20
Sistemas Operativos I                                                                                Unidad 3




    Figura 3.36B Traducción de direcciones virtuales con correspondencia directa en un sistema con paginación y
                                           segmentación combinados.

Este proceso de traducción da por hecho, desde luego, que cada elemento de información se encuentra
donde se supone que debe estar. Pero hay muchos pasos donde puede fallar el proceso. La búsqueda en
la tabla de mapa de correspondencia de segmentos puede indicar que el segmento s no se encuentra en
el almacenamiento primario, lo que ocasiona una falla por falta de segmentos y hace que el sistema
operativo localice el segmento en el almacenamiento secundario, cree una tabla de páginas para el
segmento y cargue la página apropiada en el almacenamiento primario, reemplazando posiblemente
una página existente de ese proceso o de algún otro.

Si el segmento se encuentra en el almacenamiento primario, la referencia a la tabla de mapa de
correspondencia de páginas puede indicar que la página deseada no se encuentra en el almacenamiento
primario. Ello generaría una falla de página, haciendo que el sistema operativo tome el control, localice
la página en el almacenamiento secundario y la cargue (una vez más, reemplazando posiblemente otra
página).

                                        Universidad Autónoma de Nayarit                                           21
Sistemas Operativos I                                                                      Unidad 3

Al igual que en la segmentación pura, una dirección de almacenamiento virtual puede rebasar el final
del segmento, generando así una excepción por desbordamiento de segmento. Por otra parte, los bits de
protección también pueden indicar que no está permitida la operación que se va a realizar sobre la
dirección virtual a la que se hace referencia, con lo que se genera así una excepción por protección del
segmento. El sistema operativo debe manejar todas estas posibilidades.

3.3 ADMINISTRACIÓN DE LA MEMORIA VIRTUAL

3.3.1 ESTRATEGIAS DE ADMINISTRACIÓN DE MEMORIA VIRTUAL

   ü Estrategias de obtención. Determinan cuándo se debe transferir una página o un segmento del
     almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a
     que un proceso en ejecución haga referencia a una página o un segmento antes de extraer la
     página o el segmento al almacenamiento primario. Los esquemas de obtención anticipada
     intentan determinar por adelantado a cuáles páginas o segmentos hará referencia un proceso. Si
     la probabilidad de una referencia es alta y hay espacio disponible, entonces se trae al
     almacenamiento primario la página o el segmento antes de que se haga la referencia explícita.
   ü Estrategias de colocación. Determinan en qué lugar del almacenamiento primario se debe
     colocar una página o un segmento entrante. Los sistemas de paginación vuelven trivial la
     decisión de la colocació n, porque una página entrante se puede ubicar en cualquier marco de la
     página disponible. Los sistemas con segmentación requieren estrategias de colocación como las
     tratadas en el contexto de los sistemas de multiprogramación con particiones variables.
   ü Estrategias de reemplazo. Sirven para decidir cuál página o segmento se debe desplazar para
     dejar espacio a una página o segmento entrante cuando está completamente ocupado el
     almacenamiento primario.

3.3.2 ESTRATEGIAS DE REEMPLAZO DE PÁGINAS

En los sistemas con paginación es común que estén en uso todos los marcos de páginas. En este caso,
las rutinas de administración del almacenamiento del sistema operativo deben decidir que página del
almacenamiento primario se debe desplazar para dejar espacio a una página entrante. Se verán las
siguientes estrategias de reemplazo de páginas:
   ü   El principio de optimalidad
   ü   Reemplazo de páginas aleatorio
   ü   Primeras entradas-primeras salidas (PEPS)
   ü   La menos recientemente utilizada (LRU)
   ü   La menos frecuentemente utilizada (LFU)
   ü   La no utilizada recientemente (NUR)
   ü   Modificaciones de PEPS
   ü   Frecuencia de fallas de página
   ü   Paginación por demanda
   ü   Paginación Anticipada

El principio de optimalidad
El principio de optimalidad establece que, para obtener un rendimiento optimo, la página que se debe
remplazar es aquélla que tardará más tiempo en volver a ser utilizada. Se puede demostrar la
optimalidad de esta estrategia, pero desde luego ésta es irrealizable puesto que no podemos predecir el
futuro. Esta estrategia óptima de reemplazo se denomina OPT o MIN. Por tanto, para lograr un buen
rendimiento se intenta una aproximación al principio de optimalidad utilizado técnicas de reemplazo de
páginas que se aproximen al reemplazo óptimo de páginas.

                                         Universidad Autónoma de Nayarit                              22
Sistemas Operativos I                                                                       Unidad 3

Reemplazo de páginas aleatorio
Si se busca una estrategia de reemplazamiento, el reemplazo de páginas aleatorio es una técnica
sencilla para lograrlo. Así, todas las páginas que se encuentran en el almacenamiento principal tienen la
misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier
página para ser remplazada, incluyendo la siguiente página a la que se hará referencia (lo cuál
constituye, por supuesto, la peor elección de reemplazo de páginas). Las decisiones de reemplazo
aleatorio de páginas se pueden tomar rápidamente, y con un número significativo de marcos de páginas
donde elegir sólo habría una pequeña probabilidad de reemplazar una página a la que se vaya hacer
referencia de nuevo casi de inmed iato. Sin embargo, este esquema casi no se utiliza debido a su
enfoque aleatorio para acertar o errar.

Reemplazo de páginas de primeras entradas-primeras salidas (PEPS)
En el reemplazo de páginas de primeras entradas-primeras salidas (PEPS), para cada página se registra
el instante en que entró en el almacenamiento primario. Cuando se necesita reemplazar una página, se
escoge la que ha permanecido en el almacenamiento primario. Cuando se necesita reemplazar una
página, se escoge la que ha permanecido en el almacenamiento durante mayor tiempo. Por lo tanto esta
estrategia parece razonable, pues esa página ha tenido su oportunidad y es tiempo de darle una
oportunidad a otra página.

Lamentablemente, es probable que esta estrategia reemplace páginas muy utilizadas, ya que si una
página permanece en el almacenamiento primario durante mucho tiempo puede deberse a que está en
uso constante. Por ejemplo en los grandes sistemas de tiempo compartido es común que muchos
usuarios compartan una copia de un editor de texto cuando capturan y corrigen sus programas. La
estrategia de reemplazo de páginas de primeras entradas-primeras salidas en tales sistemas podría
decidir reemplazar una página muy utilizada del editor, y esta será sin duda una mala elección, porque
la página se volvería a transferir al almacenamiento principal casi de inmediato. Dicha estrategia
también se podría poner en práctica con una simple cola PEPS: a medida que llega una página, se
coloca al final de la cola, y las páginas que se reemplaza son las de principio de cola.

Reemplazo de páginas de la menos recientemente utilizada (LRU).
Esta estrategia selecciona, para su reemplazo, aquella página que no ha sido utilizada durante el mayor
tiempo. La estrategia se basa en la heurística de localidad según la cual el pasado reciente es un buen
indicador del futuro cercano, de modo que LRU exige que se marque cada página con el instante en
que se hace referencia a ella. Esto podría requerir mucho trabajo adicional, por lo que la estrategia LRU
pese a ser atractiva, no se usa a menudo en los sistemas actuales; lo que se hace es utilizar estrategias
que se aproximen a la LRU y que no ocasionen esos grandes costos.

La estrategia LRU se puede realizar con una estructura de listas que contenga una entrada por cada
marco de página ocupado. Cada vez que se hace referencia a un marco de páginas, la entrada
correspondiente a esa página se coloca al principio de la lista, y las entradas más antiguas se llevan al
final de la lista. Cuando hay que reemplazar una página para dejar espacio a otra entrante, se selecciona
la entrada final de la lista, se libera el marco de página correspondiente (lo cual posiblemente requiera
escribir una página modificada en el almacenamiento secundario), se coloca la página entrante en el
marco de página y la entrada correspondiente a ese marco de página se coloca al principio de la lista,
porque esa página es la que ha sido utilizada más recientemente.

Este esquema llevaría a la práctica fielmente la estrategia LRU, pero también incurre en un
considerable trabajo extra.


                                     Universidad Autónoma de Nayarit                                   23
Sistemas Operativos I                                                                     Unidad 3

Siempre hay que tener cuidado al aplicar razonamiento heurísticos en los sistemas operativos. Por
ejemplo, en la estrategia LRU, la página menos recientemente usada podría ser la siguiente en ser
utilizada, si un programa realiza un ciclo grande que abarque varias páginas. Si se reemplazara la
página LRU, el sistema se encontraría a sí mismo transfiriendo esa página de nuevo al almacenamiento
principal casi de inmediato. Dicho fenómeno también podría ocurrir en un sistema con una serie de
llamadas a procedimientos profundamente anidados; a medida que los procedimientos llamados
volvieran a la página que contenía la llamada original, esa página podría reemplazarse fácilmente como
página LRU justo antes del retorno final.

Reemplazo de páginas de la menos frecuente utilizada (LFU)
Una aproximación a LRU es la estrategia de “la menos frecuentemente utilizada”(LFU), en la cual lo
importante es la intensidad con la que se ha utilizado cada página; la página por remplazar es aquella
que se ha utilizado menos frecuentemente o a la que se ha hecho referencia con menos frecuencia. De
nuevo, el atractivo intuitivo es real, pero con toda facilidad se podría seleccionar para reemplazo una
página equivocada. Por ejemplo, la página menos frecuentemente utilizada podría ser aquella que se
trajo al almacenamiento principal más recientemente. Esa página ha sido utilizado una sola vez,
mientras que las demás páginas que se encuentran en almacenamiento principal podrían haber sido
utilizadas en varias ocasiones. El mecanismo de reemplazo de páginas reemplazará esta página, aunque
de hecho tenga una alta probabilidad de ser utilizada de inmediato.

Al parecer, todos los esquemas de reemplazo de páginas corren cierto riesgo de tomar decisiones
equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro. Por
tanto es deseable una estrategia de reemplazo de paginas que tomo decisiones razonables la mayor
parte del tiempo y que implique un gasto extra reducido.

Reemplazo de páginas de la no utilizada recientemente (NUR)
Un esquema popular de aproximación a la LRU con poco trabajo extra es el de “la no utilizada
recientemente” (NUR). No es probable que sean utilizadas pronto las páginas que no sean utilizadas
recientemente, por lo que pueden reemplazarse con páginas entrantes.
Cuando es deseable reemplazar una página que no ha sido modificada mientras estaba en el
almacenamiento primario, la estrategia NUR se lleva a la práctica con la adición de dos bits de
hardware por página. Esos bits son :
        a) bit de referencia = 0 si no se ha hecho referencia a la página
        = 1 se ha hecho referencia a la página
        b) bit de modificación = 0 si la página no ha sido modificada
        = 1 si la página ha sido modificada
El bit de modificación se denomina a menudo bit sucio. La estrategia NUR trabaja en la forma
siguiente. Inicialmente los bits de referencia de todas las páginas valen cero. Cuando ocurre una
referencia a una página, su bit de referencia toma el valor 1.

Inicialmente, los bits de modificación de todas las páginas valen cero. Cuando una página se modifica,
su bit de modificación toma el valor 1. Cuando se va a reemplazar una página, primero se intenta
encontrar una página a la que no se ha hecho referencia (por que estamos aproximando la estrategia
LRU). De otro modo, no queda más elección que remplazar una página a la que se hizo referencia. Si
una página no ha sido objeto de una referencia, se comprueba si ha sido modificada. Si no ha sido se
reemplaza, pues requiere menos trabajo que el reemplazo de una página modificada, la cual debe
escribirse en el almacenamiento secundario. De otro modo, hay que reemplazar una página modificada.
Modificaciones de PEPS; reemplazo de páginas por reloj y reemp lazo de páginas con segunda
oportunidad

                                    Universidad Autónoma de Nayarit                                  24
Sistemas Operativos I                                                                          Unidad 3

La evidente debilidad de la estrategia PEPS es que puede decidir reemplazar una página muy utilizada
que ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando
solo aquellas pá ginas cuyos bits de referencia valgan 0.

La variante de PEPS denominada “con segunda oportunidad” examina el bit de referencia de la página
más antigua; si este bit vale 0, se selecciona de inmediato la página para ser remplazada. Si el bit de
referencia vale 1, se le asigna el valor 0 y la página se pasa al final de la lista y se considera en esencia
como una página nueva; gradualmente, dicha página se desplaza hacia el principio de la lista, donde
será seleccionada para reemplazo sólo si su bit de referencia sigue valiendo 0. En esencia esto da a la
página una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia
cambia a 1 antes de que la página llegue al principio de la lista.

La variación “por reloj” del algoritmo de la segunda oportunidad dispone las páginas en una lista
circular, en lugar de una lista lineal. Un apuntador a la lista se desplaza alrededor de la lista circular en
la misma forma que gira la manecilla de un reloj. Cuando el bit de referencia de una página toma el
valor 0, el apuntador se mueve al siguiente elemento de la lista (simulando el movimiento de esta
página al final de la lista PEPS).

Reemplazo de páginas por frecuencia de fallas de páginas
Una medida de la eficiencia con que se ejecuta un proceso en un ambiente de paginación es su tasa de
fallas de página. Los procesos que fallan constantemente pueden estar hiperpaginando por que tienen
muy pocos marcos de páginas y no pueden mantener sus conjuntos de trabajo en almacenamiento
primario. Los procesos que casi nunca fallan pueden tener de hecho demasiados marcos de páginas y
estar impidiendo el proceso de otros procesos del sistema. Idealmente, los procesos deben operar en
algún punto entre eso s extremos.

El algoritmo de frecuencia de fallas de página (page fault frequency, PFF) ajusta el conjunto de páginas
residentes de un proceso (es decir aquellas páginas que están actualmente en la memoria) basándose en
la frecuencia con que el proceso tiene fallas de página (o, alternativamente, según el tiempo que hay
entre fallas de página denominado entre fallas).

El PFF registra el tiempo entre la ultima falla de página y el vigente. Si ese tiempo es mayor que un
valor límite superior, entonces se liberan todas las páginas a las que no se haya hecho referencia en ese
intervalo. Si el tiempo es menor que un valor limite inferior, la página entrante se convierte en un
miembro del conjunto de páginas residentes del proceso.

Lo práctico del PFF es que ajusta dinámicamente el conjunto de páginas residentes de un proceso en
respuesta al comportamiento cambiante del proceso. Si un proceso esta conmutándose a un conjunto de
trabajo mayor, entonces tendrá fallas frecuentes de páginas y el PFF le dará más marcos de páginas.

Una vez que se acumule el nuevo conjunto de trabajo, la frecuencia de fallas de páginas se reducirá y el
PFF mantendrá el conjunto de páginas residentes o incluso podrá reducirlo

Evidentemente, la clave para la obtención adecuada y efic iente del PFF es mantener los limites en
valores apropiados.

Una ventaja del PFF con respecto al reemplazo de páginas con conjunto de trabajo es que ajusta el
conjunto de páginas residentes sólo después de cada falla de pagina, mientras que un mecanismo de
conjunto de trabajo debe operar después de cada referencia a la memoria.

                                       Universidad Autónoma de Nayarit                                    25
Sistemas Operativos I                                                                       Unidad 3

Paginación por demanda
El sentido común indica que las páginas de un proceso deben cargarse por demanda. No se debe
transferir ninguna página del almacenamiento secundario al primario hasta que un proceso en ejecución
haga explícitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia.
??      Los resultados de la teoría de la computabilidad, es específicamente el problema de la
detención, indican que no se pueden predecir con precisión la trayectoria de ejecución que seguirá un
programa. Así pues, cualquier intento de carga páginas con anticipación a su uso puede hacer que se
carguen las páginas equivocadas.
??      La paginación por demanda garantiza que las únicas páginas que se transfieren al
almacenamiento principal son aquellas que requieren los procesos.
??      El trabajo extra requerido para decir cuáles páginas se deben transferir al almacenamiento
principal es mínimo. Las estrategias de obtención anticipada de páginas pueden requerir mucho tiempo
de ejecución adicional.

Paginación anticipada
En la paginación anticipada, el sistema operativo intenta predecir cuáles páginas necesitará un proceso
y entonces carga dichas páginas cuando hay espacio disponible. Si se toman las decisiones correctas, se
puede reducir considerablemente el tiempo de ejecución total del proceso. Mientras el proceso se
ejecuta con sus páginas actuales, el sistema carga nuevas página, que estarán disponibles cuando las
requiera el proceso.

Ventajas de la paginación anticipada.
   ü Si se pueden tomar las decisiones correctas en casi todos los casos, se reducirá bastante el
       tiempo de ejecución de un proceso. Así pues, es importante tratar desarrollar mecanismo de
       paginación anticipada, aunque no puedan ser cien por ciento precisos.
   ü En muchos casos se puede tomar decisiones precisas. Si la toma de decisiones se puede realizar
       con relativamente poco trabajo extra, entonces la ejecució n de un proceso dado se puede
       acelerar en gran medida sin afectar negativamente otros procesos activos.
   ü Como el hardware de la computadora se vuelve cada vez más económico, las consecuencias de
       una mala decisión son menos serias. Se puede adquirir almacenamiento principal extra para
       manejar la acumulación de páginas excedentes que un mecanismo de anticipación transferiría al
       almacenamiento principal.

Liberación de páginas
En una administración del almacenamiento mediante conjuntos de trabajos, los procesos indican por
referencia explícita cuáles páginas desean utilizar. Los procesos que ya no requieran páginas
específicas deberán desechar tales páginas de sus conjuntos de trabajo. Por lo regular, hay un tiempo
durante el cual permanecen en el almacenamiento principal las páginas que ya no se requieren.

Cuando es evidente que ya no será necesaria una página, un usuario podría dar una orden de liberación
voluntaria de página para liberar el marco de página. Esto eliminaría el retraso que implica dejar que el
proceso deseche poco a poco la página de su conjunto de trabajo.

La liberación voluntaria de páginas podría eliminar el desperdicio y acelerar la ejecución de un
programa, pero la mayoría de los usuarios de los sistemas de cómputo actuales ni siquiera saben qué es
una página y no se les puede pedir que tomen decisiones al nivel del sistema. La incorporación de
mandatos de liberación de páginas en los programas de usuario podría ser mucho más lento el
desarrollo de las aplicaciones.


                                     Universidad Autónoma de Nayarit                                   26
Sistemas Operativos I                                                                       Unidad 3

La esperanza real en esta área es que los compiladores y sistemas operativos detecten automáticamente
las situaciones en las que debe liberar una página, y mucho antes de lo que es posible con las
estrategias que emplean conjuntos de trabajo.

TAMAÑO DE PÁGINAS
En los sistemas de paginación, el almacenamiento real se divide normalmente en marcos de página de
tamaño fijo. ¿Qué factores determinan si una página debe ser grande o pequeña? Aquí se resumen
algunos de ellos:
??      Cuanto menor sea el tamaño de la página, más páginas y más marcos de páginas habrá y
mayores tendrán que ser las tablas de páginas. En los sistemas en los que las tablas de páginas ocupan
el almacenamiento primario, hay una necesidad de páginas más grandes. El desperdicio de
almacenamiento debid o a tablas excesivamente grandes se denomina Fragmentación de tablas. Cabe
señalar que este argumento es menos válido hoy día gracias a la disponibilidad de memorias muy
grandes y económicas.
    ü Con tamaño de páginas grandes, se paginan en el almacenamiento primario grandes cantidades
        de información a la que quizá nunca se haga referencia. Esto indica la necesidad de páginas más
        pequeña.
    ü Dado que las transferencias de E/S desde el disco son relativamente lentas, se desea reducir al
        mínimo el número de transferencias a que se somete un programa a medida que se ejecuta. Esto
        parece indicar la necesidad de tamaño de páginas grades.
    ü Los programas tienden a exhibir la propiedad de localidad de referencia y esas localidades
        tienden a ser más pequeñas. Así, un tamaño de página más pequeño ayudará a un programa a
        establecer un conjunto trabajo más ajustado; es decir, las páginas del conjunto de trabajo que se
        mantienen en el almacenamiento real contendrán más elementos de información a los que se
        hará referencia intensamente.
    ü Debido a que las unidades
        de procedimientos y datos
        rara vez comprenden un
        número entero de páginas,
        los      sistemas       con
        paginación experimentan
        fragmentación       interna,
        como se ilustra en la
        figura lateral.

Existe la misma posibilidad de
que un segmento de longitud s
tenga su última página casi llena
o casi vacía y, por tanto, en
promedio hay media página de
fragmentación interna (con la
restricción de que una página no
puede contener partes de más de
un segmento). Cuanto menor sea
el tamaño de la página, menor
será la fragmentación interna.




                                     Universidad Autónoma de Nayarit                                   27

Más contenido relacionado

La actualidad más candente

Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosChiNo Sosa Erazo
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativolaidysita
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativossuperone314
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas OperativosG Hoyos A
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosCESAR
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2fernel902
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosjesusarce
 
Trabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windowsTrabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windowsFernando Melendro
 

La actualidad más candente (16)

Sistemas[1]
Sistemas[1]Sistemas[1]
Sistemas[1]
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Vision general de los sistemas operativos
Vision general de los sistemas operativosVision general de los sistemas operativos
Vision general de los sistemas operativos
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
Cap1 2
Cap1 2Cap1 2
Cap1 2
 
Cap1 2
Cap1 2Cap1 2
Cap1 2
 
Presentación1
Presentación1Presentación1
Presentación1
 
Unidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De ProcesosUnidad 2 AdministracióN De Procesos
Unidad 2 AdministracióN De Procesos
 
Sistemas operativos 2
Sistemas operativos 2Sistemas operativos 2
Sistemas operativos 2
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Tarea de DFSO COBAEJ #10
Tarea de DFSO COBAEJ #10Tarea de DFSO COBAEJ #10
Tarea de DFSO COBAEJ #10
 
Sistemasoperativos
SistemasoperativosSistemasoperativos
Sistemasoperativos
 
SYSTEM
SYSTEMSYSTEM
SYSTEM
 
Trabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windowsTrabajo de arquitectura cerrada windows
Trabajo de arquitectura cerrada windows
 

Destacado

Sistemas Operativos II - 2014 - Primera Clase
Sistemas Operativos II - 2014 - Primera ClaseSistemas Operativos II - 2014 - Primera Clase
Sistemas Operativos II - 2014 - Primera ClasePablo Macon
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de MemoriaLuis Eraso
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosPablo Macon
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas OperativosGabriela
 
3. introducción a los sistemas operativos
3.  introducción a los sistemas operativos3.  introducción a los sistemas operativos
3. introducción a los sistemas operativoscapeco1a
 

Destacado (9)

Sistemas Operativos II - 2014 - Primera Clase
Sistemas Operativos II - 2014 - Primera ClaseSistemas Operativos II - 2014 - Primera Clase
Sistemas Operativos II - 2014 - Primera Clase
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
El computador sus componentes
El computador sus componentesEl computador sus componentes
El computador sus componentes
 
SO - Administración de Memoria
SO - Administración de MemoriaSO - Administración de Memoria
SO - Administración de Memoria
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Administración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas OperativosAdministración de Memoria - Sistemas Operativos
Administración de Memoria - Sistemas Operativos
 
Administración de Memoria
Administración de MemoriaAdministración de Memoria
Administración de Memoria
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos
 
3. introducción a los sistemas operativos
3.  introducción a los sistemas operativos3.  introducción a los sistemas operativos
3. introducción a los sistemas operativos
 

Similar a Unidad3

Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoriacoffeejimenez
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoriaguestaff6d2
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PCSimón Aranguren
 
Almacenamiento Real
Almacenamiento RealAlmacenamiento Real
Almacenamiento RealITEANDES
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoriagiovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2giovatovar
 
Trabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana SarmientoTrabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana SarmientoJuanOrellanaC
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administraMartin Lautrerio
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administraMartin Lautrerio
 
Sistema operativo dispalmacenamiento tic
Sistema operativo dispalmacenamiento ticSistema operativo dispalmacenamiento tic
Sistema operativo dispalmacenamiento ticGeorgette Bp
 

Similar a Unidad3 (20)

Unidad 3 el administrador de memoria
Unidad 3 el administrador de memoriaUnidad 3 el administrador de memoria
Unidad 3 el administrador de memoria
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Gestion De Memoria
Gestion De MemoriaGestion De Memoria
Gestion De Memoria
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Administracion de memoria en una PC
Administracion de memoria en una PCAdministracion de memoria en una PC
Administracion de memoria en una PC
 
Almacenamiento Real
Almacenamiento RealAlmacenamiento Real
Almacenamiento Real
 
Administracion y manejo de memoria
Administracion y manejo de memoriaAdministracion y manejo de memoria
Administracion y manejo de memoria
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2Administracion y manejo de memoria parte2
Administracion y manejo de memoria parte2
 
Sistemas operativos resumen
Sistemas operativos resumenSistemas operativos resumen
Sistemas operativos resumen
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema Jerarquico
Sistema JerarquicoSistema Jerarquico
Sistema Jerarquico
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Tc2 paso3
Tc2 paso3Tc2 paso3
Tc2 paso3
 
Trabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana SarmientoTrabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana Sarmiento
 
Estructura de un sIstema operativo
Estructura de un sIstema operativoEstructura de un sIstema operativo
Estructura de un sIstema operativo
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
5.2 identificar los recursos que administra
5.2 identificar los recursos que administra5.2 identificar los recursos que administra
5.2 identificar los recursos que administra
 
Sistema operativo dispalmacenamiento tic
Sistema operativo dispalmacenamiento ticSistema operativo dispalmacenamiento tic
Sistema operativo dispalmacenamiento tic
 

Más de Universidad Autónoma de Nayarit

Más de Universidad Autónoma de Nayarit (20)

Programa admo. de redes de computadoras
Programa   admo. de redes de computadorasPrograma   admo. de redes de computadoras
Programa admo. de redes de computadoras
 
Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8Administración de Redes de Computadoras - Capitulo 8
Administración de Redes de Computadoras - Capitulo 8
 
Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7Administración de Redes de Computadoras - Capitulo 7
Administración de Redes de Computadoras - Capitulo 7
 
Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6Administración de Redes de Computadoras - Capitulo 6
Administración de Redes de Computadoras - Capitulo 6
 
Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5Administración de Redes de Computadoras - Capitulo 5
Administración de Redes de Computadoras - Capitulo 5
 
Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4Administración de Redes de Computadoras - Capitulo 4
Administración de Redes de Computadoras - Capitulo 4
 
Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3Administración de Redes de Computadoras - Capitulo 3
Administración de Redes de Computadoras - Capitulo 3
 
Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2Administración de Redes de Computadoras - Capitulo 2
Administración de Redes de Computadoras - Capitulo 2
 
Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1Administración de Redes de Computadoras - Capitulo 1
Administración de Redes de Computadoras - Capitulo 1
 
Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9Administración de Redes de Computadoras - Capitulo 9
Administración de Redes de Computadoras - Capitulo 9
 
Programa fundamento de redes de datos
Programa   fundamento de redes de datosPrograma   fundamento de redes de datos
Programa fundamento de redes de datos
 
Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2 Fundamento de Redes - Capitulo 2
Fundamento de Redes - Capitulo 2
 
Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1Fundamento de Redes - Capitulo 1
Fundamento de Redes - Capitulo 1
 
Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9Fundamento de Redes - Capitulo 9
Fundamento de Redes - Capitulo 9
 
Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8Fundamento de Redes - Capitulo 8
Fundamento de Redes - Capitulo 8
 
Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7 Fundamento de Redes - Capítulo 7
Fundamento de Redes - Capítulo 7
 
Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6Fundamento de Redes - Capitulo 6
Fundamento de Redes - Capitulo 6
 
Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5 Fundamento de Redes - Capitulo 5
Fundamento de Redes - Capitulo 5
 
Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4Fundamento de Redes - Capitulo 4
Fundamento de Redes - Capitulo 4
 
Ejemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNAEjemplo de casos de Estudios CCNA
Ejemplo de casos de Estudios CCNA
 

Unidad3

  • 1. Sistemas Operativos I Unidad 3 3. ADMINISTRACIÓN DE MEMORIA 3.1 MANEJO DE LA MEMORIA REAL La organización y administració n de la Memoria principal, memoria primaria o memoria real de un sistema de cómputo ha sido uno de los factores más importantes que influyen en el diseño de los sistemas operativos. Los términos memoria y almacenamiento se han utilizado como sinónimos en la literatura. Los programas y datos deben residir en la memoria principal para poderlos ejecutar o para hacer referencia directamente a ellos. El almacenamiento secundario (el medio más común es el disco magnético), proporciona capacidad barata y en gran escala para los numerosos programas y datos que deben mantenerse disponibles para su procesamiento. 3.1.1 ORGANIZACIÓN Y ADMINISTRACIÓN DEL ALMACENAMIENTO Por organización del almacenamiento se entiende la forma de considerar el almacenamiento principal. Esto es, la manera como se estructura la memoria en sentido físico. La administración del almacenamiento se orienta a lograr determinado comportamiento de una organización de almacenamiento cuando se siguen diferentes políticas. 3.1.2 JERARQUÍA DEL ALMACENAMIENTO Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos. Los programas o datos que no se necesitan de inmediato pueden guardarse en el almacenamiento secundario hasta que se necesiten y en ese momento se transfieren al almacenamiento principal para ser ejecutados o hacer referencia a ellos. Los medios de almacenamiento secundario, como cintas o discos, son en general menos costosos que el almacenamiento principal y su capacidad es mucho mayor. Normalmente es mucho más rápido el acceso al almacenamiento principal que al secundario. En los sistemas con varios niveles de almacenamie nto hay muchas transferencias constantes de programas y datos entre los diferentes niveles. Estas trasferencias consumen recursos del sistema, como tiempo de la CPU, que de otro modo podría utilizarse con provecho. En los años sesenta se hizo evidente que la jerarquía del almacenamiento podría extenderse un nivel más con una clara mejora del rendimiento y la utilización. Este nivel adicional, la memoria caché, es un almacenamiento de alta velocidad, mucho más rápido que el almacenamiento principal. La memoria caché es extremadamente cara, comparada con la memoria principal, por lo que sólo se utilizan memorias caché relativamente pequeñas. La memoria caché introduce un nivel adicional de transferencia de información en el sistema. Los programas en memoria principal se pasan a la memoria caché antes de ejecutarse. En la memoria caché se pueden ejecutar mucho más rápido que en la principal. La esperanza de los diseñadores que utilizan el concepto de memoria caché es que el trabajo extra requerido por la transferencia de los programas sea mucho menor que el aumento del rendimiento obtenido por la rápida ejecución que es posible en la memoria caché. Universidad Autónoma de Nayarit 1
  • 2. Sistemas Operativos I Unidad 3 3.1.3 ESTRATEGIAS DE ADMINISTRACIÓN DEL ALMACENAMIENTO Los recursos caros se administran intensivamente para obtener una mejor utilización. Las estrategias de la administración del almacenamiento se ajustan para obtener el mejor aprovechamiento posible del recurso de almacenamiento principal. Las estrategias de la administración del almacenamiento se dividen en las siguientes categorías. 1. Estrategias de obtención a) Estrategias de obtención por demanda b) Estrategias de obtención anticipada 2. Estrategias de colocación 3. Estrategias de reemplazo Las estrategias de obtención determinan cuándo debe obtenerse la siguiente parte del programa o los datos que se van a transferir del almacenamiento secundario al principal. Las estrategias de colocación tienen que ver con la determinación de la parte del almacenamiento principal donde se colocará un programa entrante. Las estrategias de reemplazo están relacionadas con la determinación de qué parte del programa o de los datos se debe desalojar para dejar espacio a los programas entrantes. 3.1.4 ASIGNACIÓN DEL ALMACENAMIENTO CONTIGUO Y NO CONTIGUO Los primeros sistemas de cómputo requerían una asignación de almacenamiento contiguo: cada programa tenía que ocupar un único bloque contiguo de localidades de memoria. No fue sino hasta que se intentó hacer multiprogramación con particiones variables cuando quedó claro que podía ser útil la asignación de almacenamiento no contiguo. En la asignación de almacenamiento no contiguo un programa se divide en varios bloques o segmentos que se pueden colocar en el almacenamiento principal en fragmentos que no necesitan ser adyacentes. Es más difícil para un sistema operativo controlar la asignación del almacenamiento no contiguo, pero la ventaja es que, si el almacenamiento principal tiene muchos huecos pequeños disponibles en lugar de un único hueco grande, el sistema operativo a menudo puede cargar y ejecutar un programa que en otro caso tendría que esperar. 3.1.5 ASIGNACIÓN DE ALMACENAMIENTO CONTIGUO PARA UN USUARIO ÚNICO Los primeros sistemas de cómputo permitían que sólo una persona a la vez utilizara la máquina. Todos los recursos de la máquina estaban a disposición del usuario. El cobro del uso del computador era muy simple: como el usuario disponía de toda la máquina, se le cobraban todos los recursos, ya fuera que sus trabajos los utilizaran o no. De hecho, el mecanismo de cobro normal se basaba en el tiempo de reloj. La máquina se asignaba a un usuario por algún tiempo determinado y se le cobraba una tarifa fija por hora Algunos de los sistemas compartidos actuales tienen algoritmos de cobro mucho más complejos. Originalmente, cada usuario escribía todo el código necesario para realizar una aplicación específica, incluyendo las detalladas instrucciones de entrada/salida a nivel de la máquina. Muy pronto el código de entrada/salida requerido para realizar las funciones básicas se consolidó en un sistema de control de entrada/salida (input/output control system, IOCS). Universidad Autónoma de Nayarit 2
  • 3. Sistemas Operativos I Unidad 3 Los usuarios que querían hacer entrada/salida ya no tenían que codificar directamente las instrucciones, sino que llamaban a las rutinas de IOCS para realizar el trabajo. Ello simplificaba y aceleraba mucho el proceso de codificación. La implantación de los sistemas de control de entrada/salida bien pudo haber constituido el comienzo del concepto actual de sistemas operativos. La figura lateral ilustra la organización del almacenamiento en un sistema representativo de asignación de almacenamiento contiguo con un único usuario. En tamaño de los programas está limitado por la cantidad de memoria principal, pero es posible ejecutar programas más grandes que el almacenamiento principal utilizando superposiciones (overlay). La figura de abajo ilustra el concepto. Si una sección de un programa no se necesita durante el resto de la ejecución del programa, entonces se puede traer del almacenamiento secundario otra sección del programa para ocupar el espacio utilizado por la que ya no se necesita. Las superposiciones ofrecen al programador una forma de ampliar el almacenamiento principal limitado. Sin embargo, la superposición manual exige una cuidadosa planificación y lleva mucho tiempo. Universidad Autónoma de Nayarit 3
  • 4. Sistemas Operativos I Unidad 3 Protección en los sistemas de usuario único En los sistemas de asignación de almacenamiento contiguo para un solo usuario, este último tiene un control absoluto sobre todo el almacenamiento principal. La memoria se divide en una parte en la que residen las rutinas del sistema operativo, otra en la que residen los programas del usuario y otra no utilizada. La cuestión de la protección es sencilla. Si el programa del usuario se desvía puede destruir el sistema operativo. Si esto resulta fatal y el usuario no puede proseguir, sabrá que algo anda mal, terminará la ejecución, arreglará el problema y volverá a intentar la ejecución de su programa. En tales circunstancias no resulta evidente la necesidad de proteger el sistema operativo. Pero supóngase que el usuario destruye el sistema operativo más "sutilmente". Por ejemplo, supóngase que ciertas rutinas de entrada/salida son modificadas por accidente, de tal modo que pueden estar truncados todos los registros de salida. El trabajo puede seguir en ejecución; pero si los resultados no se examinan sino hasta que se completa el trabajo, entonces se estarán desperdiciando los recursos de máquina. Peor aún, el daño al sistema operativo puede hacer que se produzcan salidas cuyos errores no san evidentes. Sin duda es obvio que el sistema operativo se debe proteger del usuario. La protección se realiza con un registro de límites único integrado en la CPU, como se muestra en la figura siguiente. Cada vez que un programa de usuario hace referencia a una dirección de memoria, se revisa el registro de límites para verificar que el usuario no está a punto de destruir el sistema operativo. El registro de límites contiene la dirección más alta utilizada por el sistema operativo. Si el usuario intenta entrar en el sistema operativo, se intercepta la instrucción y el trabajo termina con un mensaje de error apropiado. Universidad Autónoma de Nayarit 4
  • 5. Sistemas Operativos I Unidad 3 Naturalmente, el usuario necesita entrar de vez en cuando en el sistema operativo para utilizar algunos servicios, como la entrada/salida. El problema se resuelve dando al usuario una instrucción específica con la cual puede solicitar los servicios del sistema operativo (es decir, una instrucción de llamada al supervisor). El usuario que desee leer en una cinta enviará una instrucción solicitando al sistema operativo que lo haga por él. El sistema operativo realizará la función deseada y después devolverá el control al programa del usuario. A medida que se han vuelto más complejos los sistemas operativos ha sido necesario llevar a la práctica mecanismos más avanzados para proteger al sistema operativo de los usuarios y proteger a éstos entre sí. 3.1.6 MULTIPROGRAMACIÓN CON PARTICIONES FIJAS Aun con los sistemas operativos de procesamiento por lotes, los sistemas de usuario único siguen desperdiciando una gran cantidad de los recursos de cómputo. La siguiente Figura ejemplifica la situación. El programa consume el recurso de la CPU hasta que se necesita una entrada o una salida. Cuando se genera la solicitud de E/S, es frecuente que el trabajo no pueda continuar sino hasta que se envíen o reciban los datos requeridos. Las velocidades de entrada y salida son muy bajas, en comparación con las velocidades de la CPU. Los diseñadores vieron que otra vez podrían aumentar notablemente el aprovechamiento de la CPU mediante una administración intensiva. Esta vez decidieron realizar sistemas de multiprogramación en los cuales varios usuarios compiten al mismo tiempo por los recursos del sistema. El trabajo que está esperando la terminación de una operación E/S cederá la CPU a otro trabajo que esté listo para realizar cálculos, si es que hay uno en espera. De esta forma pueden efectuarse simultáneamente las operaciones de E/S y los cálculos de la CPU. Esto mejora mucho el aprovechamiento de la CPU y los resultados del sistema. Universidad Autónoma de Nayarit 5
  • 6. Sistemas Operativos I Unidad 3 Para aprovechar al máximo la multiprogramación, es necesario que varios trabajos residan al mismo tiempo en el almacenamiento principal del computador. Así, cuando un trabajo solicita E/S, la CPU puede conmutarse de inmediato a otro y realizar cálculos sin retraso. Cuando este nuevo trabajo abandona la CPU, otro puede estar listo para utilizarla. La multiprogramación requiere por lo regular mucho más almacenamiento que un sistema de usuario único. Sin embargo, la mejor utilización de la CPU y los dispositivos periféricos justifica de sobra el costo del almacenamiento adicional. 3.1.7 MULTIPROGRAMACIÓN CON PARTICIONES VARIABLES Al observar los diseñadores de sistemas operativos los problemas de la multiprogramación con particiones fijas, decidieron que una mejora evidente sería permitir que los trabajos ocuparon tanto espacio como necesitaran (pero no todo el almacenamiento real). No se impondrían límites fijos, sino que se daría a los trabajos todo el almacenamiento que necesitaran. Este esquema se denomina multiprogramación con particiones variables. En la figura siguiente se ilustra la asignación inicial de las particiones en un sistema de multiprogramación con particiones variables. Aquí sólo se tratarán los esquemas de asignación contigua: un trabajo debe ocupar localidades de memoria contiguas. En la multiprogramación con particiones variables no se hacen suposiciones sobre el tamaño de los trabajos (excepto que no deben ser mayores que el almacenamiento principal disponible en el computador). Si cuando llega un trabajo los mecanismos de planificación deciden que debe proseguir, se le asigna tanto espacio como necesite. No hay desperdicio, pues la partición de un trabajo tiene exactamente el tamaño del trabajo. No obstante, todo esquema de organización del almacenamiento implica algún grado de desperdicio. Universidad Autónoma de Nayarit 6
  • 7. Sistemas Operativos I Unidad 3 En la multiprogramación con particiones variables, el desperdicio no se hace evidente sino hasta que los trabajos empiezan a terminar y dejan huecos en el almacenamiento principal. Como se muestra en la siguiente figura. Otros trabajos pueden utilizar dichos huecos, pero entonces los huecos restantes se hacen más pequeños, acabando por ser tan reducidos que no pueden contener nuevos trabajos. Así pues, en la multiprogramación con particiones variables también hay desperdicio. Condensación de Huecos Cuando termina un trabajo en un sistema de multiprogramación con particiones variables, se puede comprobar si el almacenamiento liberado colinda con otras áreas libres del almacenamiento (huecos). Si es así, se puede registrar en la lista de almacenamiento libre ya sea (1) un hueco adicional o (2) un hueco único que refleje la unión del hueco existente y del nuevo hueco adyacente. El proceso de fusionar huecos adyacentes para formar un solo hueco más grande se denomina condensación y se ilustra en la figura siguiente. Mediante la condensación de huecos se pueden recuperar los bloques contiguos de almacenamiento más grandes que sean posibles. Universidad Autónoma de Nayarit 7
  • 8. Sistemas Operativos I Unidad 3 Compactación del almacenamiento. A pesar de la condensación de los huecos, muchas veces resulta que los huecos individuales distribuidos a lo largo del almacenamiento principal constituyen una parte significativa del almacenamiento. A veces, cuando un trabajo pide cierta cantidad de almacenamiento principal, ningún hueco individual es lo bastante grande para contenerlo, aunque la suma de todos los huecos sea mayor que el almacenamiento requerido por el nuevo trabajo. La técnica de compactación del almacenamiento implica trasladar todas las áreas ocupadas del almacenamiento a algún extremo de la memoria principal. Esto deja un gran hueco único de almacenamiento libre, en lugar de los numerosos huecos pequeños característicos de la multiprogramación con particiones variables. Ahora todo el almacenamiento libre está contiguo, así que un trabajo en espera puede ejecutarse si sus necesidades de memoria son satisfechas por el hueco único resultante de la compactación. A veces, y en forma por demás pintoresca, la compactación del almacenamiento se denomina eructo del almacenamiento (burping the storage). Un nombre más convencional es recolección de basura (garbage collection). La compactación presenta los siguientes inconvenientes. ü Consume recursos del sistema que podrían utilizarse en forma productiva. ü El sistema debe detener todas sus actividades mientras realiza la compactación. Ello puede ocasionar tiempos de respuestas irregulares para usuarios interactivos y podría ser devastador en sistemas de tiempo real. ü La compactación implica reubicar los trabajos que estén en el almacenamiento. Eso significa que la información requerida para realizar la reubicación, que se pierde por lo regular cuando se carga un programa, debe ahora mantenerse accesible. ü Con una combinación normal de trabajos que cambia rápidamente, a menudo es necesario compactar. Los recursos del sistema que se consuman quizá no justifiquen las ventajas de la compactación. Universidad Autónoma de Nayarit 8
  • 9. Sistemas Operativos I Unidad 3 Estrategias de colocación en almacenamiento Las estrategias de colocación en almacenamiento sirven para determinar en qué lugar del almacenamiento principal se deben colocar los programas y datos entrantes. En la figura siguiente se ilustra n tres estrategias mencionadas a menudo en la literatura. ü Estrategia del mejor ajuste: Un trabajo que entre en el sistema se colocará en el hueco del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar. Para muchos, el mejor ajuste parece ser intuitivamente la estrategia más atractiva. ü Estrategia del primer ajuste: Un trabajo que entre en el sistema se colocará en el almacenamiento principal en el primer hueco disponible lo bastante grande para contenerlo. Intuitivamente, el primer ajuste también es atractivo, pues permite decidir con rapidez dónde se colocará un trabajo. ü Estrategia del peor ajuste: A primera vista ésta parecería una elección extravagante, pero después de un examen más cuidadoso, el peor ajuste también posee un fuerte atractivo intuitivo. El peor ajuste consiste en colocar un programa en el almacenamiento primar io en el hueco donde peor se ajusta, es decir, en el hueco más grande posible. El atractivo intuitivo es sencillo: Después de colocar el programa en ese gran hueco, el hueco restante a menudo será también grande y por consiguiente podrá contener un nuevo programa relativamente grande. Una variante de la estrategia del primer ajuste, denominada estrategia del siguiente ajuste, comienza cada búsqueda de un hueco disponible en el lugar donde terminó la búsqueda anterior. 3.1.8 MULTIPROGRAMACIÓN CON INTERCAMBIO DE ALMACENAMIENTO En algunos sistemas de intercambio (Swapping), un trabajo ocupa el almacenamiento principal de una vez. Ese trabajo se ejecuta hasta que no puede continuar y entonces cede el almacenamiento y la CPU al siguiente trabajo. Así todo el almacenamiento está dedicado a un trabajo por un periodo breve; después se saca ese trabajo (es decir, se intercambia con el de afuera) y se carga el siguiente (es decir, se intercambia con el de adentro). Universidad Autónoma de Nayarit 9
  • 10. Sistemas Operativos I Unidad 3 Un trabajo normalmente será intercambiado en ambos sentidos repetidas veces antes de completarse. Muchos de los primeros sistemas de tiempo compartido se efectuaron con esta técnica de intercambio. Se podían garantizar tiempos de respuesta razonables para unos pocos usuarios, pero los diseñadores sabían que se necesitarían mejores técnicas para manejar un gran número de usuarios. Los sistemas de intercambio de principios de los años sesenta dieron lugar a los sistemas de paginación de uso común en la actualidad. Se han desarrollado sistemas de intercambio más avanzados que permiten mantener en memoria principal varias imágenes (copias) de usuario al mismo tiempo. En estos sistemas una imagen de usuario se saca sólo cuando su almacenamiento es requerido por una imagen de usuario entrantes. Con suficiente espacio de almacenamiento, tales sistemas reducen considerablemente el tiempo gastado en los intercambios. Universidad Autónoma de Nayarit 10
  • 11. Sistemas Operativos I Unidad 3 3.2 ORGANIZACIÓN DE LA MEMORIA VIRTUAL El término almacenamiento virtual suele asociarse con la capacidad para obtener acceso a direcciones en un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de un sistema de cómputo determinado. El almacenamiento virtual no es un concepto nuevo. Apareció por primera vez en el sistema de cómputo Atlas construido en la Universidad de Manchester, Inglaterra, en 1960. No obstante, el empleo generalizado de los sistemas de almacenamiento virtual es relativamente reciente. Los microprocesadores actuales manejan el almacenamiento virtual. Los dos métodos más comunes para poner en práctica el almacenamiento virtual son la paginación y la segmentación. Algunos sistemas de almacenamiento virtual emplean una técnica u otra, mientras que algunos otros utilizan ambas. Todos los sistemas de almacenamiento virtual tienen la propiedad de que las direcciones calculadas por programas en ejecución no son necesariamente las disponibles en el almacenamiento primario. De hecho, las direcciones virtuales se seleccionan por lo regular de un conjunto de direcciones mucho más grande que el disponible en el almacenamiento primario. 3.2.1 EVOLUCIÓN DE LA ORGANIZACIÓN DEL ALMACENAMIENTO La figura muestra cómo ha evolucionado la organización del almacenamiento desde los sistemas de almacenamiento real dedicados a un solo usuario hasta los sistemas de almacenamiento virtual que combinan técnica paginación y segmentación. Real Real Virtual 3.2.2 ALMACENAMIENTO VIRTUAL: CONCEPTOS BÁSI COS La clave del concepto de almacenamiento virtual es la disociación de las direcciones a las que hace referencia un proceso en ejecución de las direcciones disponibles en el almacenamiento primario. Las direcciones a las que hace referencia un proceso en ejecución se conocen como direcciones virtuales. Las direcciones disponibles en el almacenamiento primario se conocen como direcciones reales. El intervalo de direcciones virtuales a las que puede hacer referencia un proceso en ejecución se conoce como espacio de direcciones virtuales, V, del proceso. Universidad Autónoma de Nayarit 11
  • 12. Sistemas Operativos I Unidad 3 El intervalo de direcciones reales disponibles en un sistema de cómputo determinando se conoce como espacio de direcciones reales, R, del computador. El número de direcciones en V se denota |V|, y el número de direcciones en R, |R|. En los sistemas de almacenamiento virtual ya implantados lo normal es que |V| >> |R|, aunque se han construido sistemas en los cuales |V| < |R|. Aunque los procesos sólo hacen referencia a direcciones virtuales, deben ejecutarse en el almacenamiento real. Por tanto, es preciso establecer la correspondencia entre las direcciones virtuales y las reales durante la ejecución de un proceso. Esto debe hacerse con rapidez, pues en caso contrario el rendimiento del sistema se degradaría a niveles inaceptables, eliminando así las ganancias logradas por el empleo del concepto de almacenamiento virtual (figura 3.17) Almacenamiento virtual 3.2.3 PAGINACIÓN: CONCEPTOS BÁSICOS Teniendo en cuenta la complejidad del manejo de bloques de tamaño variable en la multiprogramación con particiones variables, lo más conveniente es comenzar con la correspondencia de bloques de tamaño fijo; es decir, la paginación. Figura 3.19 Formato de dirección virtual en un sistema de paginación pura. Una dirección virtual en un sistema de paginación es un par ordenado (p, d) en el cual p es el número de la página del almacenamiento virtual en la que reside el elemento al que se hace referencia, y d es el desplazamiento dentro de la página p donde se localiza dicho elemento(figura 3.19). Un proceso puede ejecutarse si su página activa se encuentra en el almacenamiento primario. Las páginas se transfieren del almacenamiento secundario al primario y se colocan dentro de bloques llamados marcos de página que tienen el mismo tamaño que las páginas entrantes. Los marcos de página comienzan en direcciones de almacenamiento real que son múltiplos enteros del tamaño fijo de la página. Una página entrante puede colocarse en cualquier marco de página disponible. Universidad Autónoma de Nayarit 12
  • 13. Sistemas Operativos I Unidad 3 Nota: Los marcos de pagina son receptáculos, nichos o huecos donde se van a depositar bloques de información. La traducción dinámica de direcciones en la paginación se realiza de la siguiente forma. Un proceso en ejecución hace referencia a una dirección de almacenamiento virtual v=(p, d). Un mecanismo de correspondencia de páginas busca la página p en una tabla de correspondencia de páginas y determina que la página p se encuentra en el marco de página p’ . La dirección de almacenamiento real se forma concatenando p’ y d. Ahora consideremos el proceso con mayor detalle. Debido sobre todo a que normalmente no todos las páginas del proceso se encuentran en el almacenamiento primario al mismo tiempo, la tabla de correspondencia de páginas debe indicar si la página a la que se hace referencia se encuentra o no en el almacenamiento primario; si sí está, donde se encuentra y si no, dónde puede encontrarse en el almacenamiento secundario. La figura de la siguiente pagina muestra una tabla de correspondencia de páginas representat ivas. Un bit de residencia de página, r, tiene valor 0 si la pagina no se encuentra en el almacenamiento primario, entonces s es su dirección en el almacenamiento secundario. Universidad Autónoma de Nayarit 13
  • 14. Sistemas Operativos I Unidad 3 Si la página se encuentra en el almacenamiento primario, entonces p’ es su número de marco de página. Obsérvese que p’ no es una dirección real en el almacenamiento primario; la dirección de almacenamiento primario en la cual comienza el marco de página, p’’ es el producto de p’ y el tamaño fijo de la página (suponiendo que los marcos de páginas estén numerados consecutivamente a partir de cero). Traducción de direcciones en la paginación por correspondencia directa Un proceso en ejecución hace referencia a una dirección virtual v = (p,d). Antes de que un proceso comience su ejecución, el sistema carga (durante la conmutación de contexto) la dirección en almacenamiento primario de la tabla de correspondencia de páginas en el registro de origen de la tabla de correspondencia de páginas. La dirección base, b, de la tabla de correspondencia de páginas se suma al número de página, p, para formar la dirección en almacenamiento primario, b + p, de la entrada de la página p en la tabla de correspondencia de páginas. Esta entrada indica que el marco de página p' corresponde a la página virtual p. Después, p' se concatena con el desplazamiento, d, para formar la dirección real, r Se dice que éste es un ejemplo de correspondencia directa porque la tabla de correspondencia de pá ginas contiene una entrada para cada página del almacenamiento virtual del proceso. Universidad Autónoma de Nayarit 14
  • 15. Sistemas Operativos I Unidad 3 Si el proceso tiene n páginas en su almacenamiento virtual, entonces la tabla de correspondencia de páginas con correspondencia directa del proceso contiene entradas sucesivas para las páginas 0, 1, 2,..., n -1. La correspondencia directa se parece mucho al acceso a un elemento de un arreglo mediante índices; cualquier entrada de la tabla puede localizarse directamente con un solo acceso a la tabla, véase la figura siguiente. Tanto la dirección virtual que se traduce, como la dirección base de la tabla de correspondencia de páginas, se conservan en registros de alta velocidad en el procesador central, de manera que las operaciones en las que participan pueden realizarse con rapidez dentro de un solo ciclo de ejecución de instrucciones. Pero la tabla de correspondencia de páginas con correspondencia directa, que puede ser muy grande, se conserva por lo regular en almacenamiento primario. En consecuencia, la referencia a la tabla requiere un ciclo completo de almacenamiento primario. Como el tiempo de un ciclo de almacenamiento primario representa la mayor parte de un ciclo de ejecución de instrucciones y se necesita un ciclo de ejecución de almacenamiento primario adicional para la correspondencia de páginas, el empleo de traducción de direcciones de páginas mediante correspondencia directa puede hacer que el sistema ejecute los programas a la mitad de la velocidad, lo cual es inadmisible. Por tanto, para lograr una traducción más rápida, la mayor parte de los sistemas actuales colocan la tabla completa de correspondencia directa de páginas en una memoria caché de muy alta velocidad. Tal cosa ha sido posible gracias a que los costos de la memoria caché han disminuido constantemente debido a los avances en la tecnología de memorias. Traducción de direcciones en la paginación por correspondencia asociativa Una forma de acelerar la traducción dinámica de direcciones, es colocar toda tabla de correspondencia de páginas dentro de un almacenamiento asociativo accesible por contenido (y no por dirección), el cual tiene ciclos de un orden de magnitud más rápidos que los del almacenamiento primario. La figura lateral muestra cómo se realiza la traducción dinámica de direcciones con una correspondencia asociativa pura. Un programa en ejecución hace referencia a una dirección virtual V = (p,d). Cada entrada en el almacenamiento asociativo se revisa en forma simultánea en busca de la página p. Se devuelve p' como el marco de página que corresponde a p, y p' se concatena con d para formar la dirección real, r. Obsérvese que las flechas dirigidas al mapa de correspondencias asociativo entran realmente en cada celda del mapa. Esto indica que se revisa al mismo tiempo cada celda del almacenamiento asociativo en busca de p. Ésta es la razón de que el almacenamiento asociativo tenga un costo prohibitivo, aun comparado con la memoria caché, por lo que nunca se utiliza la correspondencia asociativa pura; aquí se muestra por si alguna vez se vuelve económica la correspondencia asociativa. De nuevo, el dilema que se presenta es que la traducción dinámica de direcciones debe ejecutarse con rapidez para hacerse práctico el concepto de almacenamiento virtual. Universidad Autónoma de Nayarit 15
  • 16. Sistemas Operativos I Unidad 3 3.2.4 SEGMENTACIÓN En la multiprogramación con particiones variables, la colocación de los programas en el almacenamiento se realiza con una técnica del primer ajuste, mejor ajuste o peor ajuste. No obstante, persis te la limitación de ejecutar los programas en un bloque de localidades contiguas de almacenamiento real. En los sistemas de almacenamiento real con segmentación se elimina dicha restricción y un programa (y sus datos) pueden ocupar muchos bloques separados de almacenamiento real. Los bloques no tienen que ser del mismo tamaño y sí deben estar formados por localidades contiguas, pero no es forzoso que ellos sean adyacentes. Universidad Autónoma de Nayarit 16
  • 17. Sistemas Operativos I Unidad 3 Figura 3.28 Protección de almacenamiento con claves en una asignación de almacenamiento no contigua en un sistema de multiprogramación. Mientras la clave de protección de la UCP sea 2 (correspondiente al usuario B), el programa del usuario B sólo podrá hacer referencia a otros bloques de almacenamiento con la misma clave de protección. Estas claves están bajo el estricto control del sistema operativo y sólo pueden manipularse mediante instrucciones privilegiadas. Esto da pie a varios problemas interesantes. Por ejemplo, el problema de evitar que un usuario sea destruido por otros resulta ahora más complejo. Ya no es suficiente con un par de registros de límites. Así mismo, resulta más difícil limitar el intervalo de acceso de un programa. Uno de los esquemas para lograr la protección del almacenamiento en los sistemas con segmentación es el empleo de claves de protección del almacenamiento, como se ilustra en la figura 3.28. En los sistemas de almacenamiento virtual con segmentación, una dirección virtual es un par ordenado v = (s, d), donde s es el número de segmento en almacenamiento virtual en el que se encuentra el elemento al que se hace referencia y d es el desplazamiento dentro del segmento s en donde se localiza dicho elemento (Figura 3.29). Un proceso sólo se puede ejecutar si su segmento activo (como mínimo) se encuentra en el almacenamiento primario. Los segmentos se transfieren del almacenamiento secundario al primario como unidades completas. Todas las localidades del segmento se colocan en localidades contiguas del almacenamiento primario. Un segmento entrante puede colocarse en cualquier área disponible del almacenamiento primario cuyo tamaño sea suficiente para contenerlo. Las estrategias de colocación para la segmentación son idénticas a las empleadas en la multiprogramación con particiones variables, y las técnicas más comunes son las del primer ajuste y del mejor ajuste. Universidad Autónoma de Nayarit 17
  • 18. Sistemas Operativos I Unidad 3 Dirección virtual v= (s,d) Figura 3.29 Formato de dirección virtual en un sistema de segmentación pura. La traducción dinámica de direcciones en la segmentación se realiza de la siguiente forma. Un proceso en ejecución hace referencia a una dirección de almacenamiento virtual v = (s, d) (Figura 3.30). Un mecanis mo de correspondencia de segmentos busca el segmento s en la tabla de correspondencia de segmentos y determina que el segmento s se encuentra en el almacenamiento real a partir de la dirección s’. La dirección de almacenamiento real correspondiente a la dirección de almacenamiento virtual v = (s, d) se forma sumando s’ y d. 3.2.5 SISTEMAS CON PAGINACIÓN/SEGMENTACIÓN Tanto la segmentación como la paginación ofrecen ventajas significativas como organizaciones del almacena miento virtual. A partir de los sistemas construidos a mediados de los años sesenta, en particular Multics y el TSS de IBM, se han construido muchos sistemas que combinan la paginación con la segmentación. Tales sistemas ofrecen las ventajas de ambas técnicas de organización del almacenamiento virtual. Universidad Autónoma de Nayarit 18
  • 19. Sistemas Operativos I Unidad 3 Los segmentos tienen por lo general un tamaño múltiplo de páginas; no es necesario que todas las páginas de un segmento estén en almacenamiento primario a la vez, y las páginas que son contiguas en el almacenamiento virtual no son por fuerza contiguas en el almacenamiento real. Las direcciones son tridimensionales, y una dirección de almacenamiento virtual, v, es una tripleta ordenada v = (s,p,d), donde s es el número de segmento, p el número de página dentro del segmento y d el desplazamiento dentro de la página donde se encuentra el elemento deseado (Figura 3.35). Número de Número de página Desplazamiento Dirección virtual segmento s p d v= (s,p,d) Figura 3.35 Formato de dirección virtuales en un sistema con paginación y segmentación. Traducción dinámica de direcciones en sistemas con paginación/segmentación Considérese ahora la traducción dinámica de direcciones virtuales a direcciones reales en un sistema con paginación/segmentación que utiliza correspondencia combinada asociativa/directa como se muestra en la figura 3.36A. Un proceso en ejecución hace referencia a una dirección virtual v=(s,p,d). Las páginas a las que se ha hecho referencia más recientemente tienen entradas en un almacenamiento parcialmente asociativo. Se realiza una búsqueda asociativa para tratar de localizar (s,p) en el almacenamiento asociativo. Si se encuentra (s,p), entonces el marco de página del almacenamiento primario p’ en el cual reside la página p del segmento s, se concatena con el desplazamiento d para formar la dirección real, r, correspondiente a la dirección virtual v=(s,p,d), con lo cual finaliza la traducción de la dirección. Por lo regular, la mayor parte de las peticiones de traducción de direcciones son satisfechas mediante la búsqueda en el almacenamiento asociativo. Cuando esto no es posible, se establece una correspondencia directa de la siguiente forma. La dirección base, b, de la tabla de mapa de correspondencia de segmentos (en almacenamiento primario) se suma el número de segmentos, s, para formar la dirección, b + s, de la entrada para el segmento s en la tabla de mapa de correspondencia de segmentos en el almacenamiento primario. La entrada en dicha tabla índica la dirección base s’, de la tabla de páginas (en el almacenamiento primario) para el segmento s. El número de página, p, se suma a s’ para firmar la dirección p+s’, de la tabla de páginas para la página p del segmento s. Esta tabla indica que p’ es el número de marco de página que corresponde a la página virtual p. El número de marco, p’, se concatena con el desplazamiento, d, para formar la dirección real, r, correspondiente a la dirección virtual v=(s,p,d). Universidad Autónoma de Nayarit 19
  • 20. Sistemas Operativos I Unidad 3 Figura 3.36A Traducción de direcciones virtuales con correspondencias asociativa / directa combinada en un sistema con paginación y segmentación Universidad Autónoma de Nayarit 20
  • 21. Sistemas Operativos I Unidad 3 Figura 3.36B Traducción de direcciones virtuales con correspondencia directa en un sistema con paginación y segmentación combinados. Este proceso de traducción da por hecho, desde luego, que cada elemento de información se encuentra donde se supone que debe estar. Pero hay muchos pasos donde puede fallar el proceso. La búsqueda en la tabla de mapa de correspondencia de segmentos puede indicar que el segmento s no se encuentra en el almacenamiento primario, lo que ocasiona una falla por falta de segmentos y hace que el sistema operativo localice el segmento en el almacenamiento secundario, cree una tabla de páginas para el segmento y cargue la página apropiada en el almacenamiento primario, reemplazando posiblemente una página existente de ese proceso o de algún otro. Si el segmento se encuentra en el almacenamiento primario, la referencia a la tabla de mapa de correspondencia de páginas puede indicar que la página deseada no se encuentra en el almacenamiento primario. Ello generaría una falla de página, haciendo que el sistema operativo tome el control, localice la página en el almacenamiento secundario y la cargue (una vez más, reemplazando posiblemente otra página). Universidad Autónoma de Nayarit 21
  • 22. Sistemas Operativos I Unidad 3 Al igual que en la segmentación pura, una dirección de almacenamiento virtual puede rebasar el final del segmento, generando así una excepción por desbordamiento de segmento. Por otra parte, los bits de protección también pueden indicar que no está permitida la operación que se va a realizar sobre la dirección virtual a la que se hace referencia, con lo que se genera así una excepción por protección del segmento. El sistema operativo debe manejar todas estas posibilidades. 3.3 ADMINISTRACIÓN DE LA MEMORIA VIRTUAL 3.3.1 ESTRATEGIAS DE ADMINISTRACIÓN DE MEMORIA VIRTUAL ü Estrategias de obtención. Determinan cuándo se debe transferir una página o un segmento del almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o un segmento antes de extraer la página o el segmento al almacenamiento primario. Los esquemas de obtención anticipada intentan determinar por adelantado a cuáles páginas o segmentos hará referencia un proceso. Si la probabilidad de una referencia es alta y hay espacio disponible, entonces se trae al almacenamiento primario la página o el segmento antes de que se haga la referencia explícita. ü Estrategias de colocación. Determinan en qué lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Los sistemas de paginación vuelven trivial la decisión de la colocació n, porque una página entrante se puede ubicar en cualquier marco de la página disponible. Los sistemas con segmentación requieren estrategias de colocación como las tratadas en el contexto de los sistemas de multiprogramación con particiones variables. ü Estrategias de reemplazo. Sirven para decidir cuál página o segmento se debe desplazar para dejar espacio a una página o segmento entrante cuando está completamente ocupado el almacenamiento primario. 3.3.2 ESTRATEGIAS DE REEMPLAZO DE PÁGINAS En los sistemas con paginación es común que estén en uso todos los marcos de páginas. En este caso, las rutinas de administración del almacenamiento del sistema operativo deben decidir que página del almacenamiento primario se debe desplazar para dejar espacio a una página entrante. Se verán las siguientes estrategias de reemplazo de páginas: ü El principio de optimalidad ü Reemplazo de páginas aleatorio ü Primeras entradas-primeras salidas (PEPS) ü La menos recientemente utilizada (LRU) ü La menos frecuentemente utilizada (LFU) ü La no utilizada recientemente (NUR) ü Modificaciones de PEPS ü Frecuencia de fallas de página ü Paginación por demanda ü Paginación Anticipada El principio de optimalidad El principio de optimalidad establece que, para obtener un rendimiento optimo, la página que se debe remplazar es aquélla que tardará más tiempo en volver a ser utilizada. Se puede demostrar la optimalidad de esta estrategia, pero desde luego ésta es irrealizable puesto que no podemos predecir el futuro. Esta estrategia óptima de reemplazo se denomina OPT o MIN. Por tanto, para lograr un buen rendimiento se intenta una aproximación al principio de optimalidad utilizado técnicas de reemplazo de páginas que se aproximen al reemplazo óptimo de páginas. Universidad Autónoma de Nayarit 22
  • 23. Sistemas Operativos I Unidad 3 Reemplazo de páginas aleatorio Si se busca una estrategia de reemplazamiento, el reemplazo de páginas aleatorio es una técnica sencilla para lograrlo. Así, todas las páginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquier página para ser remplazada, incluyendo la siguiente página a la que se hará referencia (lo cuál constituye, por supuesto, la peor elección de reemplazo de páginas). Las decisiones de reemplazo aleatorio de páginas se pueden tomar rápidamente, y con un número significativo de marcos de páginas donde elegir sólo habría una pequeña probabilidad de reemplazar una página a la que se vaya hacer referencia de nuevo casi de inmed iato. Sin embargo, este esquema casi no se utiliza debido a su enfoque aleatorio para acertar o errar. Reemplazo de páginas de primeras entradas-primeras salidas (PEPS) En el reemplazo de páginas de primeras entradas-primeras salidas (PEPS), para cada página se registra el instante en que entró en el almacenamiento primario. Cuando se necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento primario. Cuando se necesita reemplazar una página, se escoge la que ha permanecido en el almacenamiento durante mayor tiempo. Por lo tanto esta estrategia parece razonable, pues esa página ha tenido su oportunidad y es tiempo de darle una oportunidad a otra página. Lamentablemente, es probable que esta estrategia reemplace páginas muy utilizadas, ya que si una página permanece en el almacenamiento primario durante mucho tiempo puede deberse a que está en uso constante. Por ejemplo en los grandes sistemas de tiempo compartido es común que muchos usuarios compartan una copia de un editor de texto cuando capturan y corrigen sus programas. La estrategia de reemplazo de páginas de primeras entradas-primeras salidas en tales sistemas podría decidir reemplazar una página muy utilizada del editor, y esta será sin duda una mala elección, porque la página se volvería a transferir al almacenamiento principal casi de inmediato. Dicha estrategia también se podría poner en práctica con una simple cola PEPS: a medida que llega una página, se coloca al final de la cola, y las páginas que se reemplaza son las de principio de cola. Reemplazo de páginas de la menos recientemente utilizada (LRU). Esta estrategia selecciona, para su reemplazo, aquella página que no ha sido utilizada durante el mayor tiempo. La estrategia se basa en la heurística de localidad según la cual el pasado reciente es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada página con el instante en que se hace referencia a ella. Esto podría requerir mucho trabajo adicional, por lo que la estrategia LRU pese a ser atractiva, no se usa a menudo en los sistemas actuales; lo que se hace es utilizar estrategias que se aproximen a la LRU y que no ocasionen esos grandes costos. La estrategia LRU se puede realizar con una estructura de listas que contenga una entrada por cada marco de página ocupado. Cada vez que se hace referencia a un marco de páginas, la entrada correspondiente a esa página se coloca al principio de la lista, y las entradas más antiguas se llevan al final de la lista. Cuando hay que reemplazar una página para dejar espacio a otra entrante, se selecciona la entrada final de la lista, se libera el marco de página correspondiente (lo cual posiblemente requiera escribir una página modificada en el almacenamiento secundario), se coloca la página entrante en el marco de página y la entrada correspondiente a ese marco de página se coloca al principio de la lista, porque esa página es la que ha sido utilizada más recientemente. Este esquema llevaría a la práctica fielmente la estrategia LRU, pero también incurre en un considerable trabajo extra. Universidad Autónoma de Nayarit 23
  • 24. Sistemas Operativos I Unidad 3 Siempre hay que tener cuidado al aplicar razonamiento heurísticos en los sistemas operativos. Por ejemplo, en la estrategia LRU, la página menos recientemente usada podría ser la siguiente en ser utilizada, si un programa realiza un ciclo grande que abarque varias páginas. Si se reemplazara la página LRU, el sistema se encontraría a sí mismo transfiriendo esa página de nuevo al almacenamiento principal casi de inmediato. Dicho fenómeno también podría ocurrir en un sistema con una serie de llamadas a procedimientos profundamente anidados; a medida que los procedimientos llamados volvieran a la página que contenía la llamada original, esa página podría reemplazarse fácilmente como página LRU justo antes del retorno final. Reemplazo de páginas de la menos frecuente utilizada (LFU) Una aproximación a LRU es la estrategia de “la menos frecuentemente utilizada”(LFU), en la cual lo importante es la intensidad con la que se ha utilizado cada página; la página por remplazar es aquella que se ha utilizado menos frecuentemente o a la que se ha hecho referencia con menos frecuencia. De nuevo, el atractivo intuitivo es real, pero con toda facilidad se podría seleccionar para reemplazo una página equivocada. Por ejemplo, la página menos frecuentemente utilizada podría ser aquella que se trajo al almacenamiento principal más recientemente. Esa página ha sido utilizado una sola vez, mientras que las demás páginas que se encuentran en almacenamiento principal podrían haber sido utilizadas en varias ocasiones. El mecanismo de reemplazo de páginas reemplazará esta página, aunque de hecho tenga una alta probabilidad de ser utilizada de inmediato. Al parecer, todos los esquemas de reemplazo de páginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro. Por tanto es deseable una estrategia de reemplazo de paginas que tomo decisiones razonables la mayor parte del tiempo y que implique un gasto extra reducido. Reemplazo de páginas de la no utilizada recientemente (NUR) Un esquema popular de aproximación a la LRU con poco trabajo extra es el de “la no utilizada recientemente” (NUR). No es probable que sean utilizadas pronto las páginas que no sean utilizadas recientemente, por lo que pueden reemplazarse con páginas entrantes. Cuando es deseable reemplazar una página que no ha sido modificada mientras estaba en el almacenamiento primario, la estrategia NUR se lleva a la práctica con la adición de dos bits de hardware por página. Esos bits son : a) bit de referencia = 0 si no se ha hecho referencia a la página = 1 se ha hecho referencia a la página b) bit de modificación = 0 si la página no ha sido modificada = 1 si la página ha sido modificada El bit de modificación se denomina a menudo bit sucio. La estrategia NUR trabaja en la forma siguiente. Inicialmente los bits de referencia de todas las páginas valen cero. Cuando ocurre una referencia a una página, su bit de referencia toma el valor 1. Inicialmente, los bits de modificación de todas las páginas valen cero. Cuando una página se modifica, su bit de modificación toma el valor 1. Cuando se va a reemplazar una página, primero se intenta encontrar una página a la que no se ha hecho referencia (por que estamos aproximando la estrategia LRU). De otro modo, no queda más elección que remplazar una página a la que se hizo referencia. Si una página no ha sido objeto de una referencia, se comprueba si ha sido modificada. Si no ha sido se reemplaza, pues requiere menos trabajo que el reemplazo de una página modificada, la cual debe escribirse en el almacenamiento secundario. De otro modo, hay que reemplazar una página modificada. Modificaciones de PEPS; reemplazo de páginas por reloj y reemp lazo de páginas con segunda oportunidad Universidad Autónoma de Nayarit 24
  • 25. Sistemas Operativos I Unidad 3 La evidente debilidad de la estrategia PEPS es que puede decidir reemplazar una página muy utilizada que ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando solo aquellas pá ginas cuyos bits de referencia valgan 0. La variante de PEPS denominada “con segunda oportunidad” examina el bit de referencia de la página más antigua; si este bit vale 0, se selecciona de inmediato la página para ser remplazada. Si el bit de referencia vale 1, se le asigna el valor 0 y la página se pasa al final de la lista y se considera en esencia como una página nueva; gradualmente, dicha página se desplaza hacia el principio de la lista, donde será seleccionada para reemplazo sólo si su bit de referencia sigue valiendo 0. En esencia esto da a la página una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la página llegue al principio de la lista. La variación “por reloj” del algoritmo de la segunda oportunidad dispone las páginas en una lista circular, en lugar de una lista lineal. Un apuntador a la lista se desplaza alrededor de la lista circular en la misma forma que gira la manecilla de un reloj. Cuando el bit de referencia de una página toma el valor 0, el apuntador se mueve al siguiente elemento de la lista (simulando el movimiento de esta página al final de la lista PEPS). Reemplazo de páginas por frecuencia de fallas de páginas Una medida de la eficiencia con que se ejecuta un proceso en un ambiente de paginación es su tasa de fallas de página. Los procesos que fallan constantemente pueden estar hiperpaginando por que tienen muy pocos marcos de páginas y no pueden mantener sus conjuntos de trabajo en almacenamiento primario. Los procesos que casi nunca fallan pueden tener de hecho demasiados marcos de páginas y estar impidiendo el proceso de otros procesos del sistema. Idealmente, los procesos deben operar en algún punto entre eso s extremos. El algoritmo de frecuencia de fallas de página (page fault frequency, PFF) ajusta el conjunto de páginas residentes de un proceso (es decir aquellas páginas que están actualmente en la memoria) basándose en la frecuencia con que el proceso tiene fallas de página (o, alternativamente, según el tiempo que hay entre fallas de página denominado entre fallas). El PFF registra el tiempo entre la ultima falla de página y el vigente. Si ese tiempo es mayor que un valor límite superior, entonces se liberan todas las páginas a las que no se haya hecho referencia en ese intervalo. Si el tiempo es menor que un valor limite inferior, la página entrante se convierte en un miembro del conjunto de páginas residentes del proceso. Lo práctico del PFF es que ajusta dinámicamente el conjunto de páginas residentes de un proceso en respuesta al comportamiento cambiante del proceso. Si un proceso esta conmutándose a un conjunto de trabajo mayor, entonces tendrá fallas frecuentes de páginas y el PFF le dará más marcos de páginas. Una vez que se acumule el nuevo conjunto de trabajo, la frecuencia de fallas de páginas se reducirá y el PFF mantendrá el conjunto de páginas residentes o incluso podrá reducirlo Evidentemente, la clave para la obtención adecuada y efic iente del PFF es mantener los limites en valores apropiados. Una ventaja del PFF con respecto al reemplazo de páginas con conjunto de trabajo es que ajusta el conjunto de páginas residentes sólo después de cada falla de pagina, mientras que un mecanismo de conjunto de trabajo debe operar después de cada referencia a la memoria. Universidad Autónoma de Nayarit 25
  • 26. Sistemas Operativos I Unidad 3 Paginación por demanda El sentido común indica que las páginas de un proceso deben cargarse por demanda. No se debe transferir ninguna página del almacenamiento secundario al primario hasta que un proceso en ejecución haga explícitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. ?? Los resultados de la teoría de la computabilidad, es específicamente el problema de la detención, indican que no se pueden predecir con precisión la trayectoria de ejecución que seguirá un programa. Así pues, cualquier intento de carga páginas con anticipación a su uso puede hacer que se carguen las páginas equivocadas. ?? La paginación por demanda garantiza que las únicas páginas que se transfieren al almacenamiento principal son aquellas que requieren los procesos. ?? El trabajo extra requerido para decir cuáles páginas se deben transferir al almacenamiento principal es mínimo. Las estrategias de obtención anticipada de páginas pueden requerir mucho tiempo de ejecución adicional. Paginación anticipada En la paginación anticipada, el sistema operativo intenta predecir cuáles páginas necesitará un proceso y entonces carga dichas páginas cuando hay espacio disponible. Si se toman las decisiones correctas, se puede reducir considerablemente el tiempo de ejecución total del proceso. Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga nuevas página, que estarán disponibles cuando las requiera el proceso. Ventajas de la paginación anticipada. ü Si se pueden tomar las decisiones correctas en casi todos los casos, se reducirá bastante el tiempo de ejecución de un proceso. Así pues, es importante tratar desarrollar mecanismo de paginación anticipada, aunque no puedan ser cien por ciento precisos. ü En muchos casos se puede tomar decisiones precisas. Si la toma de decisiones se puede realizar con relativamente poco trabajo extra, entonces la ejecució n de un proceso dado se puede acelerar en gran medida sin afectar negativamente otros procesos activos. ü Como el hardware de la computadora se vuelve cada vez más económico, las consecuencias de una mala decisión son menos serias. Se puede adquirir almacenamiento principal extra para manejar la acumulación de páginas excedentes que un mecanismo de anticipación transferiría al almacenamiento principal. Liberación de páginas En una administración del almacenamiento mediante conjuntos de trabajos, los procesos indican por referencia explícita cuáles páginas desean utilizar. Los procesos que ya no requieran páginas específicas deberán desechar tales páginas de sus conjuntos de trabajo. Por lo regular, hay un tiempo durante el cual permanecen en el almacenamiento principal las páginas que ya no se requieren. Cuando es evidente que ya no será necesaria una página, un usuario podría dar una orden de liberación voluntaria de página para liberar el marco de página. Esto eliminaría el retraso que implica dejar que el proceso deseche poco a poco la página de su conjunto de trabajo. La liberación voluntaria de páginas podría eliminar el desperdicio y acelerar la ejecución de un programa, pero la mayoría de los usuarios de los sistemas de cómputo actuales ni siquiera saben qué es una página y no se les puede pedir que tomen decisiones al nivel del sistema. La incorporación de mandatos de liberación de páginas en los programas de usuario podría ser mucho más lento el desarrollo de las aplicaciones. Universidad Autónoma de Nayarit 26
  • 27. Sistemas Operativos I Unidad 3 La esperanza real en esta área es que los compiladores y sistemas operativos detecten automáticamente las situaciones en las que debe liberar una página, y mucho antes de lo que es posible con las estrategias que emplean conjuntos de trabajo. TAMAÑO DE PÁGINAS En los sistemas de paginación, el almacenamiento real se divide normalmente en marcos de página de tamaño fijo. ¿Qué factores determinan si una página debe ser grande o pequeña? Aquí se resumen algunos de ellos: ?? Cuanto menor sea el tamaño de la página, más páginas y más marcos de páginas habrá y mayores tendrán que ser las tablas de páginas. En los sistemas en los que las tablas de páginas ocupan el almacenamiento primario, hay una necesidad de páginas más grandes. El desperdicio de almacenamiento debid o a tablas excesivamente grandes se denomina Fragmentación de tablas. Cabe señalar que este argumento es menos válido hoy día gracias a la disponibilidad de memorias muy grandes y económicas. ü Con tamaño de páginas grandes, se paginan en el almacenamiento primario grandes cantidades de información a la que quizá nunca se haga referencia. Esto indica la necesidad de páginas más pequeña. ü Dado que las transferencias de E/S desde el disco son relativamente lentas, se desea reducir al mínimo el número de transferencias a que se somete un programa a medida que se ejecuta. Esto parece indicar la necesidad de tamaño de páginas grades. ü Los programas tienden a exhibir la propiedad de localidad de referencia y esas localidades tienden a ser más pequeñas. Así, un tamaño de página más pequeño ayudará a un programa a establecer un conjunto trabajo más ajustado; es decir, las páginas del conjunto de trabajo que se mantienen en el almacenamiento real contendrán más elementos de información a los que se hará referencia intensamente. ü Debido a que las unidades de procedimientos y datos rara vez comprenden un número entero de páginas, los sistemas con paginación experimentan fragmentación interna, como se ilustra en la figura lateral. Existe la misma posibilidad de que un segmento de longitud s tenga su última página casi llena o casi vacía y, por tanto, en promedio hay media página de fragmentación interna (con la restricción de que una página no puede contener partes de más de un segmento). Cuanto menor sea el tamaño de la página, menor será la fragmentación interna. Universidad Autónoma de Nayarit 27