3.1.- Política y Filosofía.
Filosofía:
La memoria principal puede ser considerada como un arreglo lineal de localidades de
almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene
asignada una dirección que la identifica.
Una de las funciones básicas que debe implementar un SO es la Administración de la
Memoria para tener un control sobre los lugares donde están almacenados los
procesos y datos que actualmente se están utilizando.
Sea cual sea el esquema de organización del almacenamiento que se adopte para un
sistema específico, es necesario decidir que estrategias se deben utilizar para obtener
un rendimiento óptimo. Las estrategias de administración del almacenamiento
determinan el comportamiento de la administración de memoria cuando se siguen
ciertas políticas:
¿Cuándo se toma un nuevo programa para colocarlo en memoria?
¿Se toma el programa cuando el sistema lo solicita específicamente o se
intenta anticiparse a las particiones del sistema?
¿En qué lugar del almacenamiento principal se coloca el programa por
ejecutar?
¿Se colocan los programas lo más cerca unos de otros en los espacios
disponibles de la memoria principal para reducir al mínimo el desperdicio de
espacio, o se colocan los programas lo más rápido posible para reducir al
mínimo el tiempo de ejecución?
Si se necesita colocar un nuevo programa en el almacenamiento principal y
éste está lleno, ¿Cuál de los otros programas se desaloja?
Se han realizado sistemas que utilizan cada una de estas estrategias de
administración.
Los programas y datos necesitan estar en el almacenamiento principal para ser
ejecutados o para poder hacer referencia de ellos. Los que no se necesitan de
inmediato pueden guardarse en el almacenamiento secundario.
Unix permite procesos múltiples y en un proceso puede generar otro fácilmente. La
planificación del procesador usa un algoritmo basado en prioridades. La administración
de memoria es un algoritmo de regiones variables con intercambios. Inicialmente los
algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El
desarrollo inicial se hizo bajo un espacio muy pequeño de memoria.
Los recursos de memoria totales eran insuficientes para justificar algoritmos
complejos, por lo que UNIX intercambiaba el contenido en memoria de los procesos.
Políticas.
FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de
procesos listos, si un proceso llega al procesador sale hasta que termine. La política
FIFO actualmente no se usa como el esquema principal de un sistema, pero si por
ejemplo cuando se usa una política de prioridades y hay procesos con la misma
prioridad, a estos se les podría aplicar FIFO.
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se
les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no
termina en ese lapso se manda al final de la lista de procesos listos.
SJF (Shortest job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso
en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya
que los largos podrían llegar a rezagarse mucho tiempo e incluso nunca ejecutarse.
SRT (Sortest remaining time scheduling – Tiempo restante más corto): En SJF una vez
que un proceso comienza su ejecución continua hasta terminar. En SRT, un proceso
en ejecución puede ser desposeído por uno nuevo de menor tiempo de ejecución.
HRN: (highest response ratio next – Prioridad de la tasa de respuesta más alta):
Política no apropiativa que corrige el retraso excesivo de procesos grandes que
produce el SJF, para así no caer en un favoritismo excesivo por los procesos cortos, lo
logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con
lo cual la prioridad de cada trabajo no solo está en función del tiempo de servicio sino
también del tiempo que ha esperado para ser atendido.
3.2.- Memoria Real.
La memoria real o principal es en donde son ejecutados los programas y procesos de
una computadora y es el espacio real que existe en memoria para que se ejecuten los
procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria,
pero el acceso a la información contenida en ella es de más rápido acceso. Solo la
memoria cache es más rápida que la principal, pero su costo es a su vez mayor.
Administración de la memoria con mapas de bits.
Este tipo de administración divide la memoria en unidades de asignación, las cuales
pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios
kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el
cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa). La
figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.
Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la
memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo
depende del tamaño de la memoria y el tamaño de la unidad de asignación.
Administración de la memoria con listas ligadas.
Otra forma de mantener un registro de la memoria es mediante una lista ligada de los
segmentos de memoria asignados o libres, en donde un segmento puede ser un
proceso o un hueco entre dos procesos. La memoria de la figura 7(a) está mostrada
como una lista ligada de segmentos en la figura 7(b). Cada entrada de la lista
especifica un hueco (H) o un proceso (P), la dirección donde comienza, su longitud y
un apuntador a la siguiente entrada.
En este ejemplo, la lista de segmentos está ordenada por direcciones, lo que da la
ventaja de que al terminar o intercambiar un proceso, la actualización de la lista es
directa.
Asignación del hueco de intercambio.
En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco
en el disco asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco
para él en el área de intercambio del disco. Los algoritmos para la administración del
hueco de intercambio son los mismos que se utilizan para la administración de la
memoria principal.
En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el
disco. Cuando el proceso sea intercambiado, siempre pasará al hueco asignado, en
vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de
intercambio. La única diferencia es que el hueco en disco necesario para un proceso
debe representarse como un número entero de bloques del disco. Por ejemplo, un
proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).
3.2.1.- Administración de Almacenamiento.
Si hay una cosa que toma la mayor parte del día de un administrador de sistemas,
esto es la administración del almacenamiento. Pareciera que los discos nunca tienen
espacio suficiente, que se sobrecargan con actividad de E/S o que fallan
repentinamente. Por eso es vital tener un conocimiento práctico sólido del
almacenamiento en disco para poder ser un administrador de sistemas exitoso.
Una vista general del hardware de almacenamiento.
Antes de administrar el almacenamiento, primero es necesario entender el hardware
en el que están almacenados los datos. A menos que posea un algún conocimiento
sobre la operación de los dispositivos de almacenamiento masivo, quizás se encuentre
en una situación donde tenga un problema relacionado al almacenamiento pero le falte
el conocimiento de fondo para si quiera entender lo que ve. Al tener un entendimiento
sobre la forma en que opera el hardware subyacente, podrá más fácilmente determinar
si el subsistema de almacenamiento de su computador está funcionando
correctamente.
La gran mayoría de los dispositivos de almacenamiento masivo utilizan alguna forma
de media de rotación y soportan el acceso aleatorio de los datos en esa media. Esto
significa que los componentes siguientes están presentes en alguna forma dentro de
casi todos los dispositivos de almacenamiento masivo:
Plato del disco
Dispositivo de lectura/escritura de datos
Brazos de acceso
Las secciones siguientes exploran con más detalles cada uno de estos
componentes.
Platos de discos
La media rotativa utilizada por casi todos los dispositivos de almacenamiento masivo
están en la forma de uno o más platos planos y de forma circular. El plato puede estar
compuesto de cualquier número de materiales diferentes, tales como aluminio, vidrio y
policarbonatos.
La superficie de cada plato se trata de forma que permita el almacenamiento de datos.
La naturaleza exacta del tratamiento va a depender de la tecnología de
almacenamiento de datos utilizada. La tecnología de almacenamiento de datos más
común está basada en la propiedad de magnetismo; en estos casos los platos se
cubren con un compuesto que presenta buenas características magnéticas.
Otra tecnología de almacenamiento de datos común está basada en principios ópticos;
en estos casos, los platos se cubren con materiales cuyas propiedades ópticas pueden
ser modificadas, y en consecuencia, permitiendo almacenar datos ópticamente.
Sin importar la tecnología de almacenamiento utilizada, los platos del disco se giran ,
causando que su superficie completa barra más allá de otro componente - el
dispositivo de lectura/escritura.
Dispositivo de lectura/escritura de datos.
El dispositivo de lectura/escritura es el componente que toma los bits y bytes en los
que opera un sistema computacional y los convierte en las variaciones magnéticas u
ópticas necesarias para interactuar con los materiales que cubren la superficie de los
platos de discos.
Algunas veces las condiciones bajo las cuales estos dispositivos deben operar son
difíciles. Por ejemplo, en un almacenamiento masivo basado en magnetismo, los
dispositivos de lectura/escritura (conocidos como cabezales), deben estar muy cerca
de la superficie del plato. Sin embargo, si el cabezal y la superficie del plato del disco
se tocan, la fricción resultante provocaría un daño severo tanto al cabezal como al
plato. Por lo tanto, las superficies tanto del cabezal como del plato son pulidas
cuidadosamente y el cabezal utiliza aire a presión desarrollado por los platos que giran
para flotar sobre la superficie del plato, “flotando” a una altitud no menor que el grueso
de un cabello humano. Por eso es que las unidades de discos magnéticos son muy
sensibles a choques, cambios drásticos de temperaturas y a la contaminación del aire.
Los retos que enfrentan los cabezales ópticos son de alguna manera diferentes de
aquellos para los cabezales magnéticos - aquí, el ensamblado de la cabeza debe
permanecer a una distancia relativamente constante de la superficie del plato. De lo
contrario, los lentes utilizados para enfocarse sobre el plato no producen una imagen
lo suficientemente definida.
En cualquier caso, las cabezas utilizan una cantidad muy pequeña del área de
superficie del plato para el almacenamiento de datos. A medida que el plato gira por
debajo de las cabezas, esta área de superficie toma la forma de una línea circular muy
delgada.
Si es así como los dispositivos de almacenamiento masivo funcionan, significa que
más del 99% de la superficie del plato se desperdiciaría. Se pueden montar cabezas
adicionales sobre el plato, pero para utilizar completamente el área de superficie del
plato se necesitan más de mil cabezales. Lo que se requiere es algún método de
mover los cabezales sobre la superficie del plato.
Brazos de acceso.
Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la
superficie completa del plato, es posible utilizar completamente el plato para el
almacenamiento de datos. Sin embargo, el brazo de acceso debe ser capaz de dos
cosas:
Moverse rápidamente
Moverse con gran precisión
El brazo de acceso se debe mover lo más rápido posible, pues el tiempo que se pierde
moviendo el cabezal desde una posición a la otra es tiempo perdido. Esto se debe a
que no se pueden leer o escribir datos hasta que el brazo se detenga.
El brazo de acceso debe ser capaz de moverse con gran precisión porque, como se
mencionó anteriormente, el área de superficie utilizada por los cabezales es muy
pequeña. Por lo tanto, para usar eficientemente la capacidad de almacenamiento del
plato, es necesario mover las cabezas solamente lo suficiente para asegurar que
cualquier datos escrito en la nueva posición no sobreescribe los datos escritos en la
posición previa. Esto tiene el efecto de dividir conceptualmente la superficie del plato
en miles o más aros concéntricos o pistas. El movimiento del brazo de acceso desde
una pista a la siguiente a menudo se conoce como búsqueda y el tiempo que toma el
brazo de acceso para moverse de una pista a otra se le conoce como tiempo de
búsqueda.
Cuando existen múltiples platos (o un plato que con ambas superficies utilizadas para
almacenamiento de datos), se apilan los brazos para cada superficie, permitiendo que
se pueda acceder a la misma pista en cada superficie simultáneamente. Si se pueden
visualizar las pistas para cada superficie con el acceso estacionario sobre una pista
dada, apareceran como que están apiladas una sobre la otra, haciendo una forma
cilíndrica; por tanto, el conjunto de pistas accesibles en una posición dada de los
brazos de acceso se conocen como cilindro.
3.2.2.- Jerarquía.
Se conoce como jerarquía de memoria a la organización piramidal de la memoria en
niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una
memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en
el principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
Cantidad.
Velocidad.
Coste.
La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá
utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador
puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo,
utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria
no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que
encontrar un equilibrio. Las siguientes afirmaciones son válidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad mayor coste.
A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad
que sirva para satisfacer la demanda de rendimiento y con un coste que no sea
excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar
una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más
rápida.
Los niveles que componen la jerarquía de memoria habitualmente son:
Nivel 0: Registros.
Nivel 1: Memoria caché.
Nivel 2: Memoria principal.
Nivel 3: Disco duro (con el mecanismo de memoria virtual).
Nivel 4: Redes(Actualmente se concidera un nivel mas de la jerarquia de
memorias).
3.2.3.- Estrategia de Administración de Memoria.
Estrategias de Administración del Almacenamiento.
Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal.
Se dividen en las siguientes categorías:
Estrategias de búsqueda:
o Estrategias de búsqueda por demanda.
o Estrategias de búsqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo obtener el
siguiente fragmento de programa o de datos para su inserción en la memoria principal.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se
carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del
sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la
memoria donde se colocará (cargará) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de qué
fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.
Asignación Contigua de Almacenamiento Versus No Contigua.
En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de
localizaciones de almacenamiento.
En la “asignación no contigua” un programa se divide en varios bloques o “segmentos”
que pueden almacenarse en direcciones que no tienen que ser necesariamente
adyacentes, por lo que es más compleja pero más eficiente que la asignación
continua.
Asignación Contigua de Almacenamiento de Un Solo Usuario.
Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada /
salida”: IOCS: input / output control system.
3.2.4.- Asignación Contigua vs No Contigua.
En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de
localizaciones de almacenamiento.
En la “asignación no contigua” un programa se divide en varios bloques o “segmentos”
que pueden almacenarse en direcciones que no tienen que ser necesariamente
adyacentes, por lo que es más compleja pero más eficiente que la asignación
continua.
3.2.5.- Multiprogramación de Partición Fija, Partición Variable, con
Intercambio de Almacenamiento.
Se denomina multiprogramación a la técnica que permite que dos o más procesos
ocupen la misma unidad de memoria principal y que sean ejecutados al “mismo
tiempo” (seudo-paralelismo, en una única CPU sólo puede haber un proceso a la vez)
en la unidad central de proceso o CPU.
Aporta las siguientes ventajas:
La ya mencionada, varios procesos en ejecución.
Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.
Aprovecha los tiempos que los procesos pasan esperando a que se completen
sus operaciones de E/S.
Aumenta el uso de la CPU.
Las direcciones de los procesos son relativas, el programador no se preocupa
por saber en dónde estará el proceso dado que el sistema operativo es el que
se encarga de convertir la dirección lógica en física.
Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por
un dispositivo de entrada y/o salida por ejemplo, el CPU estara ocioso mientras espera
que el proceso puede usar el dispositivo para así finalmente ejecutarse. Los sistemas
de multiprogramación evitan eso ya que durante ese tiempo de esperar pasan a
ejecutar otro proceso teniendo así al computador ocupado.
Particiones Variables
Cada trabajo ocupa tanto espacio como necesita.
El tamaño del trabajo a ubicar no puede ser mayor que el almacenamiento
principal disponible.
Se disminuye parcial o totalmente el desperdicio de memoria.
Aparecen: Condensación y Compactación
Particiones Fijas.
Consiste en dividir la memoria en varias particiones de tamaño fijo.
Cada partición puede contener exactamente un proceso. El nivel de multiprogramación
está limitado por el número de particiones.
Cuando una partición está libre, se selecciona un proceso de la cola de entrada y se
carga en la partición libre; cuando un proceso termina, la partición está disponible para
otro.
El sistema operativo conserva una tabla que indica qué partes de la memoria están
disponibles y cuales están ocupadas.
3.3.- Organización de Memoria Virtual.
Introducción.
Almacenamiento virtual significa la capacidad de direccionar un espacio de
almacenamiento mucho mayor que el disponible en el almacenamiento primario de
determinado sistema de computación.
Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el
sistema “Atlas”.
La ilusión de la memoria virtual está soportada por el mecanismo de traducción de
memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en
cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma
que una pequeña parte de él, está en memoria real y el resto almacenado en el disco,
y puede ser referenciado fácilmente.
Debido a que sólo la parte de memoria virtual que está almacenada en la memoria
principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad
de referencias a memoria cambia, necesitando que algunas partes de la memoria
virtual se traigan a la memoria principal desde el disco, mientras que otras ya
ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).
Los métodos más comunes de implementación son mediante:
Técnicas de paginación.
Técnicas de segmentación.
Una combinación de ambas técnicas.
3.3.1.- Evaluación de las Organizaciones de Almacenamiento.
Organización del Almacenamiento
Históricamente el almacenamiento principal se ha considerado como un recurso
costoso, por lo cual su utilización debía optimizarse.
Por organización del almacenamiento se entiende la manera de considerar este
almacenamiento:
¿ se coloca un solo programa de usuario o varios ?.
Si se encuentran varios programas de usuario:
o ¿ se concede a cada uno la misma cantidad de espacio o se divide el
almacenamiento en porciones o “particiones” de diferente tamaño ?.
o ¿ se utilizará un esquema rígido de número y tamaño de particiones o
un esquema dinámico y adaptable ?.
o ¿ se requerirá que los trabajos de los usuarios sean diseñados para
funcionar en una partición específica o se permitirá que se ejecuten en
cualquiera donde quepan ?.
o ¿ se requerirá o no que cada trabajo sea colocado en un bloque
contiguo de memoria ?.
Administración del Almacenamiento
Independientemente del esquema de organización hay que decidir las estrategias que
se utilizarán para optimizar el rendimiento.
Las “estrategias de administración” deben considerar:
¿ cuándo se consigue un nuevo programa para colocar en la memoria ?:
o ¿ cuando el sistema lo pide específicamente o se intenta anticiparse a
las peticiones ?.
¿ dónde se colocará el programa que se ejecutará a continuación ?:
o ¿ se prioriza el tiempo de carga o la optimización en el uso del
almacenamiento ?.
¿ con qué criterio se desplazarán programas ?.
Jerarquía de Almacenamiento
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse
o ser referenciados.
Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario.
El almacenamiento principal es más costoso y menor que el secundario pero de
acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para
administrar el movimiento de programas y datos entre niveles (ver Figura 3.1.
Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las
siguientes características:
Es más rápida y costosa que la memoria principal.
Impone al sistema un nivel más de traspaso:
o Los programas son traspasados de la memoria principal al caché antes
de su ejecución.
Los programas en la memoria caché ejecutan mucho más rápido que en la
memoria principal.
Al utilizar memoria caché se espera que:
o La sobrecarga que supone el traspaso de programas de un nivel de
memoria a otro sea mucho menor que la mejora en el rendimiento
obtenida por la posibilidad de una ejecución mucho más rápida en la
caché.
Estrategias de Administración del Almacenamiento
Están dirigidas a la obtención del mejor uso posible del recurso del almacenamiento
principal.
Se dividen en las siguientes categorías:
Estrategias de búsqueda:
o Estrategias de búsqueda por demanda.
o Estrategias de búsqueda anticipada.
Estrategias de colocación.
Estrategias de reposición.
Las “estrategias de búsqueda” están relacionadas con el hecho de cuándo obtener el
siguiente fragmento de programa o de datos para su inserción en la memoria principal.
En la “búsqueda por demanda” el siguiente fragmento de programa o de datos se
carga al almacenamiento principal cuando algún programa en ejecución lo referencia.
Se considera que la “búsqueda anticipada” puede producir un mejor rendimiento del
sistema.
Las “estrategias de colocación” están relacionadas con la determinación del lugar de la
memoria donde se colocará (cargará) un programa nuevo.
Las “estrategias de reposición” están relacionadas con la determinación de qué
fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.
3.3.2.- Paginación.
En sistemas operativos de computadoras, los sistemas de paginación de memoria
dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es
dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De
esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su
última página, lo que minimiza la fragmentación interna y evita la externa.
En un momento cualquiera, la memoria se encuentra ocupada con páginas de
diferentes procesos, mientras que algunos marcos están disponibles para su uso. El
sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada
proceso, donde consta en qué marco se encuentra cada página del proceso. De esta
forma, las páginas de un proceso pueden no estar contiguamente ubicadas en
memoria, y pueden intercalarse con las páginas de otros procesos.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que
contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un
número de página y de un desplazamiento dentro de esa página (conocido
comúnmente como offset). El número de página es usado como un índice dentro de la
tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el
desplazamiento para componer la dirección real o dirección física. Este proceso se
realiza en una parte del computador específicamente diseñada para esta tarea, es
decir, es un proceso hardware y no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus
páginas en marcos libres y se completa su tabla de páginas.
3.3.3.- Segmentación.
Segmentación.
En un esquema de segmentación un espacio de direcciones lógicas es un conjunto de
segmentos. Cada segmento tendrá un nombre y un largo. Las direcciones van a hacer
referencia tanto al nombre como al desplazamiento dentro del segmento.
<nro.segmento, desplazamiento>
Mecanismo de traduccion de direcciones.
Se lleva un tabla de segmento por cada proceso, cada entrada a la tabla de segmento
lleva la siguiente informacion: segment base (dirección base del segmento)
segment limit (largo del segmento)
Protección.
La protección se asegura verificando cada acceso a la memoria con la tabla de
segmentos para asegurar que se esta direccionando dentro del espacio de direcciones
lógicas del proceso.
Además el mecanismo de traducción de direcciones asegura que no se direccione
fuera de un segmento en particular. Existen también bits de protección para cada
entrada de la tabla de segmentos que indicaran si el segmento es read only o read-
write.
Segmentos Compartidos.
Similar a lo visto para paginación. Se comparte la totalidad de un segmento.
Fragmentación.
El sistema operativo deberá asignar memoria utilizando algunos algoritmos ya vistos
(first fit, worst fit, best fit) Cuando el sistema operativo intenta cargar un segmento y no
hay ningún segmento disponible de tamaño suficiente para almacenarlo se procederá
a compactar la memoria.
Paginación por demanda.
Es similar a lo visto para la paginación introduciendo el concepto de swapping. Los
procesos residen en el disco y al ser ejecutados deben ser cargados en memoria.
Cuando un proceso va a ser ejecutado, el mismo es swappeado a memoria, utilizando
lazy swapping. El lazy swapping nunca trae paginas a memoria si no van a ser
ejecutadas. Se necesita determinar si un pagina esta en memoria o en disco, por lo
cual se utiliza el bit de válido / inválido de la tabla de páginas. Si el bit = 1 la página es
valida y esta cargada en memoria si es 0 la página es inválida y no esta cargada en
memoria (esta en disco).
Cuando un proceso intenta acceder a una página que no esta cargada en memoria
ocurre un page fault (tomo de página). El procedimiento para manejar un page fault es
el siguiente:
1. Verificar si la referencia a la pagina es valida (se utiliza una tabla interna
(generalmente llevada en PCB) donde se indica las paginas validas.
2. Si la referencia no es valida, se cancela la ejecución del proceso.
3. Encontrar un frame disponible para cargarla (la página esta en disco)(por
ejemplo de la free frame list).
4. Solicitar operación de I/O para leer la página de disco cargarla en el frame
obtenido.
5. Modificar la tabla interna y la tabla de paginas para que ahora esta pagina
figure como que esta en memoria.
6. Continuar con la ejecución del proceso en la instrucción en la que fue
interrumpido.
3.3.4.- Sistemas de Paginación Segmentación.
Sistemas de Paginación/Segmentación
Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual.
El tamaño de los segmentos es múltiplo del de las páginas.
No es necesario que todas las páginas de un segmento se encuentren al mismo
tiempo en el almacenamiento primario.
Las páginas de almacenamiento virtual, que son contiguas en este almacenamiento,
no necesitan ser contiguas en el almacenamiento real.
El direccionamiento es tridimensional con una dirección de almacenamiento virtual “v =
(s,p,d)”:
“s” es el número del segmento.
“p” es el número de página.
“d” es el desplazamiento en la página donde se encuentra asignado el
elemento deseado.
Traducción Dinámica de Direcciones en Sistemas de Paginación / Segmentación Se
considera la traducción dinámica de direcciones de virtuales a reales en un sistema de
paginación / segmentación utilizando la combinación de transformación asociativa /
directa.
El proceso en ejecución hace referencia a la dirección virtual v = (s,p,d).
Las páginas de referencia más reciente tienen entradas en un almacenamiento
asociativo.
Se realiza una búsqueda asociativa para intentar localizar (s,p) en el almacenamiento
asociativo:
Si se encuentra (s,p), entonces el marco de página “p ’ ” en el cual reside dicha
página en la memoria real, se concatena al desplazamiento “d” para formar la
dirección de memoria real “r” correspondiente a la dirección virtual v= (s,p,d).
Si no se encuentra (s,p), entonces:
o La dirección base “b” de la tabla de segmentos se añade al número de
segmento “s” formando la dirección “b + s” de la entrada de la tabla de
mapa de segmentos para el segmento “s” de la memoria real.
o La entrada de la tabla de mapa de segmentos indica la dirección base
“s ’ ” de la tabla de páginas para el segmento “s”.
o El número de página “p” se añade a “s ’ ” formando la dirección “p + s ’ ”
de la entrada en la tabla de páginas para la página “p” del segmento “s”:
Indica que “p ’ ” es el número del marco correspondiente a la página virtual “p”.
“p ’ ” se concatena con el desplazamiento “d” formando la dirección real “r ” que
corresponde a la dirección virtual v = (s,p,d).
Si el segmento “s” no se encuentra en el almacenamiento primario se produce un “fallo
de pérdida de segmento”, cuyo caso el S. O. localiza el segmento en el
almacenamiento secundario, crea una tabla de páginas para el segmento y carga la
página apropiada en el almacenamiento primario, pudiendo producir reemplazos de
páginas. Si el segmento “s” está en el almacenamiento primario y si la referencia a la
tabla de mapa de páginas indica que la página deseada no se encuentra en el
almacenamiento primario, se produce un “fallo de pérdida de página”, en tal caso el S.
O. obtiene el control, localiza la página en el almacenamiento secundario y la carga,
pudiendo reemplazar otra página.
Si una dirección de almacenamiento virtual está más allá del final del segmento se
genera un “fallo de desbordamiento de segmento”, el que debe ser atendido por el S.
O.
Si los bits de protección indican que la operación que se va a ejecutar en la dirección
virtual referida no se permite, se genera un “fallo de protección de segmento”, el que
también debe ser atendido por el S. O.
Si se utiliza un mecanismo de transformación directa pura, manteniendo el mapa
completo dentro del almacenamiento primario, la referencia promedio de
almacenamiento virtual requeriría:
Un ciclo de almacenamiento para acceder a la tabla de mapa de segmentos.
Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa
de páginas.
Un tercer ciclo de almacenamiento para referenciar al elemento deseado del
almacenamiento real.
Cada referencia a un elemento comprende tres ciclos de almacenamiento:
El sistema correría casi a 1 / 3 de su velocidad nominal.
La traducción de direcciones consumiría 2 / 3 del tiempo.
Con la utilización de registros asociativos (por ej. 16 registros), se logran velocidades
de ejecución del 90 % o más de la velocidad total de procesamiento de sus
procesadores de control.
La estructura de tablas de procesos, de mapas de segmentos y de mapas de páginas
puede consumir un porcentaje importante del almacenamiento primario cuando se
ejecutan un gran número de procesos.
La traducción procede mucho más rápido si todas las tablas están en el
almacenamiento primario, lo que resta espacio para los procesos.
Compartimiento en un Sistema de Paginación / Segmentación.
Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes
procesos que apunten a la misma tabla de mapa de páginas.
El compartimiento requiere una administración cuidadosa por parte del S. O., ya sea
en sistemas de paginación, segmentación o paginación / segmentación, pues se debe
considerar qué sucedería si una nueva página reemplazara a otra página compartida
por muchos procesos.
Segmentación/Paginación.
Tanto la Segmentacion como la paginación ofrecen significativas ventajas, algunos
sistemas (Multics y la Serie 370 de IBM) combinan ambas técnicas en donde los
segmentos tienen un tamaño múltiplo de pagina.
Este método utiliza Segmentación y Paginación tal y como su nombre lo indica, el
proceso es el siguiente: - Se hace la solicitud de acceso por medio de una direccion
“V” la cual contiene los campos Segmento, Pagina y Desplazamiento. Con el campo
Segmento, lo que se trata es de accesar a una Tabla de segmentos, cada campo de
dicha tabla apunta directamente a la tabla de paginas asignada para ese segmento
conteniendo una dirección que será sumada a una dirección en la Tabla Asociativa
para por fin formar una dirección real con el desplazamiento de “V”.
En un sistema con un número muy grande de procesos, segmentos o paginas, ésta
estructura puede consumir una parte muy importante de la memoria real. La cuestión
es que la traducción de direcciones puede realizarse con rapidez pero si se tienen
demasiadas tablas, el sistema puede soportar menos procesos y bajar su rendimiento.
Sistema de paginación.
Los sistemas de paginación son los utilizados para dividir los programas en paginas y
así poder utilizar programas de mayor tamaño que la memoria principal, ya que las
paginas no son cargadas todas a la vez en la memoria principal. l traspaso de datos
entre los distintos niveles de almacenamiento se realiza eventualmente en paginas de
longitud fija, tal y como ocurre en la actualidad en los sistemas de memoria virtual. El
tamaño de la pagina es un parámetro del sistema y no esta determinado por las
longitudes de registro elegidas por los programadores. Al usarse la paginación, los
datos serán lógicamente independientes del tamaño de pagina, pero tendrán que ser
físicamente “empaquetados” para que encajen en las paginas.
En los casos en que se usa hardware de almacenamiento a niveles múltiples, el
traspaso se hace por bloques, semejantes a las paginas. Esta técnica se conoce con
el nombre de promoción o staging.
Segmentación.
El objetivo de la segmentación al igual que el de la paginación es el de dar la facilidad
de realizar programas que sean más grandes que la memoria principal, pero la
segmentación, a diferencia de la paginación, puede dividir los programas en
segmentos que no necesariamente sean del mismo tamaño, pero para poder cargar
un segmento en memoria al igual que para cargar una pagina debe de existir el
suficiente espacio contiguo de memoria principal para cargarlo.
La segmentación en ocasiones puede ser usada al mismo tiempo que la paginación.
3.4.- Administración de Memoria Virtual.
Las diferentes organizaciones de almacenamiento virtual generalmente
implementadas son:
Paginación.
Segmentación.
Segmentación y paginación.
Las estrategias para la administración de sistemas de almacenamiento virtual
condicionan la conducta de los sistemas de almacenamiento virtual que operan según
esas estrategias.
Se consideran las siguientes estrategias:
“Estrategias de búsqueda”:
Tratan de los casos en que una página o segmento deben ser traídos
del almacenamiento secundario al primario.
Las estrategias de “búsqueda por demanda” esperan a que se haga
referencia a una página o segmento por un proceso antes de traerlos al
almacenamiento primario.
Los esquemas de “búsqueda anticipada” intentan determinar por
adelantado a qué páginas o segmentos hará referencia un proceso para
traerlos al almacenamiento primario antes de ser explícitamente
referenciados.
“Estrategias de colocación”:
Tratan del lugar del almacenamiento primario donde se colocará una
nueva página o segmento.
Los sistemas toman las decisiones de colocación de una forma trivial ya
que una nueva página puede ser colocada dentro de cualquier marco
de página disponible.
“Estrategias de reposición”:
Tratan de la decisión de cuál página o segmento desplazar para hacer
sitio a una nueva página o segmento cuando el almacenamiento
primario está completamente comprometido.
3.4.1.- Estrategias de Administración.
Es un método mediante el cual, un sistema operativo simula tener más memoria
principal que la que existe físicamente. Para implementar la memoria virtual se utiliza
un medio de almacenamiento secundario de alta velocidad de acceso, generalmente
en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando
paginación como método de administración de memoria básica y algún mecanismo de
intercambio (para descargar paginas de la memoria principal hacia el disco duro y para
cargar esas páginas de nuevo a la memoria).
La memoria virtual es una técnica para proporcionar la simulación de un espacio de
memoria mucho mayor que la memoria física de una maquina. Esta “ilusión” permite
que los programas se hagan sin tener en cuenta el tamaño exacto de la memoria
física. La ilusión de la memoria virtual esta soportada por el mecanismo de traducción
de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así
en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal
forma que una pequeña parte de el, esta en memoria real y el resto almacenado en el
disco, y puede ser referenciado fácilmente.
Estrategias de administración de la memoria virtual.
Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocará en el
espacio vació del almacenamiento principal en el que quepa mejor y que deje la menor
cantidad posible de espacio sin utilizar.
Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el
almacenamiento principal en el primer vació disponibles lo bastante grande para
contenerlo.
Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento
primario en el espacio vació donde peor se ajusta es decir en el espacio más grande
posible.
Estrategias de obtención: Determina cuando se debe transferir una página o un
segmento de 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 a un
segmento antes de traer la página o el segmento de almacenamiento primario. Los
esquemas de obtención anticipada intentan determinar por adelantado a cuales
paginas o segmentos hará referencia un proceso.
Estrategias de colocación: Determinan en que lugar del almacenamiento primario se
debe colocar una pagina o un segmento entrante. Una página entrante se puede
colocar en cualquier marco de página disponible.
Estrategias de reemplazo: Sirven para decidir cual página o segmento se debe
desplazar para dar espacio a una página o segmento entrante cuando esta
completamente ocupado el almacenamiento primario.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los
sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se
tienen unos pocos fragmentos de un proceso dado, se pueden mantener más
procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se
usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo
debe saber cómo gestionar este esquema.
La memoria virtual también simplifica la carga del programa para su ejecución llamada
reubicación, este procedimiento permite que el mismo programa se ejecute en
cualquier posición de la memoria física
3.4.2.- Técnicas de Reemplazo de Páginas.
Estrategias de Reemplazo de Página:
Las rutinas de administración de almacenamiento del Sistema operativo deben decidir
que página del almacenamiento primario se debe desplazar para dejar espacio a una
página entrante (Ah71).
Principio de Optimalidad: Para obtener un rendimiento óptimo, la página que se
debe reemplazar es aquella que tardará más tiempo en ser utilizada. Esta estrategia
óptima de reemplazo se denomina OPT o MIN.
Reemplazo de Páginas aleatorio: Es una técnica sencilla. 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 reemplazada, incluyendo la siguiente página la que se hará referencia. Las
decisiones de reemplazo aleatorio se de páginas se pueden tomar rápidamente y con
un número significativo de marcos de página. Es un esquema que casi no se utiliza por
su enfoque aleatorio de acertar o errar.
Reemplazo de páginas de primeras entradas-primeras salidas (PEPS): Cada
página se registra en el instante que entró en el almacenamiento primario. Cuando se
necesita reemplazar una página, se escoge la que ha permanecido en el
almacenamiento durante el mayor tiempo.
Anomalías PEPS: Belady, Nelson y Shelder descubrieron que al utilizar el reemplazo
de páginas PEPS, ciertos patrones de referencia a página originan más fallas de
páginas cuando aumenta el número de marcos de página asignados a un proceso.
Este fenómeno se denomina Anomalía PEPS o anomalía Belady. La columna de la
izquierda indica el patrón de referencias a páginas de un proceso. La primera tabla
muestra como dicho patrón a referencia de páginas hace que las páginas se carguen a
memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de
páginas a proceso. La segunda tabla muestra como se comporta éste proceso en las
mismas circunstancias, pero con cuatro marcos de páginas asignados, a la izquierda
de cada tabla se indica si la nueva referencia a una página ocasiona o no una falla de
pagina. Cuando el proceso se ejecuta en cuatro páginas, experimenta una falla de
página más que cuando se ejecuta con tres.
Reemplazo de páginas de la menos reciente utilizada: Se selecciona para su
reemplazo, a aquella página que no se ha sido utilizada durante mayor tiempo. La
estrategia se basa en que la heurística de localidad según en el 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. Por el trabajo
adicional que requiere no se usa a menudo en los sistemas actuales; lo que se hace
es utilizar estrategias que ese aproximen a la LRU y que no ocasionen grandes costos.
Reemplazo de páginas de la menos frecuentemente utilizada (LFU): La página por
remplazar es aquella que ha sido utilizada menos frecuentemente o a la que se ha
hecho referencia con menos frecuencia.
Al parecer estos 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.
Reemplazo de páginas de la no utilizada recientemente (NUR): Como es deseable
reemplazar una página que no 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:
Bit de Referencia = O si no se ha hecho referencia a la página
= 1 se ha hecho regencia a la página,
Bit de Modificación = O 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:
Inicialmente, los bits de referencias de todas las páginas valen cero. Cuando ocurre
una referencia a una página, su bit de referencia toma el número uno. Cuando se va a
reemplazar una página a la que no se ha hecho referencia .Si una página no ha sido
objeto de una referencia se comprueba si ha sido modificada. Si no lo 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.
Los bits de referencia de las páginas activas cambiarán a 1 casi de inmediato. Según
se ha descrito el esquema NUR origina la existencia de cuatro grupos de páginas:
Grupo 1 sin referencia no modificado
Grupo 2 sin referencia modificado
Grupo 3 con referencia no modificado
Grupo 4 con referencia modificado
Las páginas de los dos primeros grupos se reemplazarán primero, y las de los últimos
grupos, al final. Las páginas de un grupo se seleccionan aleatoriamente para ser
reemplazadas. Obsérvese que el grupo 2 parece describir una situaci6n irreal en la
que las páginas han sido modificadas, pero no se ha hecho referencia a ellas; sin
embargo, esto es una consecuencia simple de la reiniciación periódica de los bits de
referencia (pero no de los bits de modificaci6n) y es perfectamente razonable.
Modificaciones de PEPS; reemplazo de páginas por reloj y reemplazo de páginas
con segunda oportunidad: La estrategia PEPS puede decidir reemplazar una página
muy utilizada que ha permanecido en memoria durante mucho tiempo. Esta posibilidad
se puede evitar reemplazando sólo aquellas páginas cuyos bits de referencia valgan
O.
La variante de PEPS denominada “con segunde oportunidad” examina el bit de
referencia de la página más antigua; si este bit vale O, se selecciona de inmediato la
página para ser reemplazada. Si el bit de referencia vale 1, se le asigna el valor O 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 O. 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 ‘z’ del reloj” del algoritmo de la segunda oportunidad dispone las
páginas en una lista circular, en lugar de en 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 O, el apuntador se
mueve al siguiente elemento de la lista (simulando el movirl1iento de esta página al
final de la lista PEPS).
3.4.3.- Paginación por Demanda.
Un sistema de paginación por demanda es similar a un sistema de
paginación con intercambios. Los procesos residen en memoria
secundaria (en el disco). Cuando queremos ejecutar un proceso, lo
metemos en memoria. Sin embargo, en vez de intercambiar todo el
proceso hacia la memoria, utilizamos un intercambiador perezoso. Un
intercambiador perezoso nunca reincorpora una página a memoria a
menos que se necesite. Como ahora consideramos un proceso como
una secuencia de páginas, en vez de un gran espacio contiguo de
direcciones, el término intercambio es técnicamente incorrecto. Un
intercambiador manipula procesos enteros, mientras que un paginador
trata con las páginas individualmente de un proceso.
Cuando un proceso se reincorpora, el paginador lleva a memoria las
páginas necesarias. Así evita colocar en la memoria páginas que no
se utilizarán, reduciendo el tiempo de intercambio y la cantidad de
memoria física necesaria.
Este esquema requiere apoyo del hardware. Generalmente se añade
un bit más a cada entrada de la tabla de páginas: un bit válido-
inválido. Cuando este bit está asignado como válido, indica que la
página asociada se encuentra en memoria. Si el bit está como
inválido, este valor indica que la página está en disco. Una página
marcada como inválida no tendrá ningún efecto si el proceso nunca
intenta acceder a esa página.
¿Pero qué sucede si el proceso trata de usar una página que no se
incorporó a la memoria? Si adivinamos mal y el proceso trata de
acceder a una página que no se trajo a memoria, ocurrirá una trampa
de fallo de página. El hardware de paginación, al traducir la dirección
mediante la tabla de páginas, observará que el valor del bit es inválido,
generando una trampa para el sistema operativo (error de dirección no
válido). Normalmente, un error de dirección no válida es consecuencia
de intentar utilizar una dirección de memoria ilegal; en este caso, el
proceso deberá terminar. Sin embargo, en esta situación la trampa es
el resultado del fallo de página del sistema operativo al no transferir a
memoria una parte válida del proceso, tratando de minimizar el tiempo
adicional de transferencia de disco y los requisitos de memoria. Por
tanto, debemos corregir esta omisión.
3.4.4.- Paginación Anticipada.
Paginación Anticipada
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación
precarga estas páginas cuando hay espacio disponible .
Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas
que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de
ejecución de un proceso se puede reducir.
3.4.5.- Liberación de Página.
Liberación de Página.
Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el
marco de página cuando ya no necesitara esa página. Se puede eliminar el
“desperdicio” y acelerar la ejecución.
El inconveniente es que la incorporación de mandatos de liberación de páginas dentro
de los programas de usuarios puede ser peligroso y retrasar el desarrollo de
aplicaciones.
“Los compiladores y S. O. deberían detectar automáticamente situaciones de
liberación de página mucho antes de lo que es posible con estrategias de conjuntos de
trabajo”.
Estrategias de reemplazo de páginas.
Menos frecuentemente utilizada (LFU).
Se reemplaza la página a la que se ha hecho referencia con menos frecuencia.
No utilizada recientemente (NUR).
Las páginas no utilizadas recientemente, es poco probable que sean
referenciadas en un futuro cercano. Por ello se las elige para el reemplazo.
3.4.6.- Tamaño de Página.
Liberación de Página
Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el
marco de página cuando ya no necesitara esa página.
Se puede eliminar el “desperdicio” y acelerar la ejecución.
El inconveniente es que la incorporación de mandatos de liberación de páginas dentro
de los programas de usuarios puede ser peligroso y retrasar el desarrollo de
aplicaciones.
“Los compiladores y S. O. deberían detectar automáticamente situaciones de
liberación de página mucho antes de lo que es posible con estrategias de conjuntos de
trabajo”.
Generalmente el almacenamiento real se divide en marcos o celdas de página de
tamaño fijo.
Los interrogantes tienen que ver con el tamaño de las páginas, si todas las páginas
tendrán igual tamaño, si en caso de utilizar páginas de diferente tamaño las páginas
mayores deben ser o no múltiplos enteros de las menores, etc.
Algunas consideraciones para determinar el tamaño de página son las siguientes:
Cuanto más pequeño sea el tamaño de una página, más páginas y marcos de
páginas habrá y mayores serán las tablas de páginas:
o El desperdicio de almacenamiento debido al tamaño excesivo de las
tablas de página se llama “fragmentación de tablas”.
o Esto indica la necesidad de páginas más grandes.
Con páginas grandes, grandes cantidades de información que nunca llegaría a
ser referenciada, se paginarán hacia el almacenamiento primario:
o Esto indica la necesidad de páginas más pequeñas.
Debido a que las transferencias de e / s del disco (paginación) consumen
bastante tiempo, se debe minimizar la paginación que un proceso requiera:
o Esto indica la necesidad de páginas grandes.
Los programas tienden a mostrar la propiedad de localidad de referencia y esta
localidad tiende a ser pequeña:
o Esto indica la necesidad de páginas pequeñas.
Los procedimientos y datos rara vez comprenden un número entero de
páginas, por lo que los sistemas de paginación experimentan una
“fragmentación interna”:
o El desperdicio promedio es de 1 / 2 página no usada por segmento
(grupo) de páginas, que estará en la última página del segmento.
o Esto indica la necesidad de páginas pequeñas.
Los tamaños de pagina mas utilizados son: 512 b, 1 kb, 2 kb, 4 kb.
Comportamiento de un Programa en la Paginación
Respecto del porcentaje de las páginas de un proceso típico referenciadas desde el
momento de iniciarse su ejecución:
Un proceso tiende a hacer referencia a una parte significativa de sus páginas
inmediatamente después de iniciar su ejecución.
El proceso puede concluir sin haber referenciado a algunas de sus páginas,
correspondientes a rutinas que atienden errores que no se produjeron.
Respecto de variar el tamaño de la página manteniendo constante la cantidad de
almacenamiento primario:
El número de fallos de páginas experimentados por un proceso en ejecución
tiende a aumentar con el tamaño de la página, debido a que se traen al
almacenamiento primario un mayor número de procedimientos y datos que no
serán referenciados, restando lugar para los que sí lo serán.
Respecto de cómo el promedio de tiempo interfallos (tiempo entre fallos de página)
varía al aumentar el número de marcos de página asignados al proceso:
Cuanto más marcos de página tenga un proceso, mayor será el tiempo entre
los fallos de páginas.
El punto de inflexión se da cuando el proceso tiene todo su conjunto de trabajo
en el almacenamiento primario.
Asignar marcos de página adicionales más allá del punto de inflexión no
produce efectos significativos sobre el tiempo interfallos.
Respecto del porcentaje de instrucciones de una página que son ejecutadas antes de
transferirse el control a otra página, los valores experimentales obtenidos indican un
máximo de 200 instrucciones por página de 1 kb (ver Figura 3.39).