Sistemas Operativos I                                                                      Unidad 3                       ...
Sistemas Operativos I                                                                      Unidad 33.1.3 ESTRATEGIAS DE AD...
Sistemas Operativos I                                                             Unidad 3Los usuarios que querían hacer e...
Sistemas Operativos I                                                                        Unidad 3Protección en los sis...
Sistemas Operativos I                                                                      Unidad 3Naturalmente, el usuari...
Sistemas Operativos I                                                                     Unidad 3Para aprovechar al máxim...
Sistemas Operativos I                                                                      Unidad 3En la multiprogramación...
Sistemas Operativos I                                                                                  Unidad 3Compactació...
Sistemas Operativos I                                                                       Unidad 3Estrategias de colocac...
Sistemas Operativos I                                                                  Unidad 3Un trabajo normalmente será...
Sistemas Operativos I                                                                       Unidad 33.2 ORGANIZACIÓN DE LA...
Sistemas Operativos I                                                                            Unidad 3El intervalo de d...
Sistemas Operativos I                                                                                  Unidad 3    Nota: L...
Sistemas Operativos I                                                                    Unidad 3Si la página se encuentra...
Sistemas Operativos I                                                                        Unidad 3Si el proceso tiene n...
Sistemas Operativos I                                                                   Unidad 33.2.4 SEGMENTACIÓNEn la mu...
Sistemas Operativos I                                                                                    Unidad 3Figura 3....
Sistemas Operativos I                                                                                   Unidad 3     Direc...
Sistemas Operativos I                                                                            Unidad 3Los segmentos tie...
Sistemas Operativos I                                                                                 Unidad 3 Figura 3.36...
Sistemas Operativos I                                                                                Unidad 3    Figura 3....
Sistemas Operativos I                                                                      Unidad 3Al igual que en la segm...
Sistemas Operativos I                                                                       Unidad 3Reemplazo de páginas a...
Sistemas Operativos I                                                                     Unidad 3Siempre hay que tener cu...
Sistemas Operativos I                                                                          Unidad 3La evidente debilid...
Sistemas Operativos I                                                                       Unidad 3Paginación por demanda...
Sistemas Operativos I                                                                       Unidad 3La esperanza real en e...
Próxima SlideShare
Cargando en…5
×

Unidad3

400 visualizaciones

Publicado el

Información de la Unidad III de la materia de S.O.

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
400
En SlideShare
0
De insertados
0
Número de insertados
22
Acciones
Compartido
0
Descargas
12
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Unidad3

  1. 1. Sistemas Operativos I Unidad 3 3. ADMINISTRACIÓN DE MEMORIA3.1 MANEJO DE LA MEMORIA REALLa organización y administració n de la Memoria principal, memoria primaria o memoria real de unsistema de cómputo ha sido uno de los factores más importantes que influyen en el diseño de lossistemas operativos. Los términos memoria y almacenamiento se han utilizado como sinónimos en laliteratura. Los programas y datos deben residir en la memoria principal para poderlos ejecutar o parahacer referencia directamente a ellos. El almacenamiento secundario (el medio más común es el discomagnético), proporciona capacidad barata y en gran escala para los numerosos programas y datos quedeben mantenerse disponibles para su procesamiento.3.1.1 ORGANIZACIÓN Y ADMINISTRACIÓN DEL ALMACENAMIENTOPor 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 unaorganización de almacenamiento cuando se siguen diferentes políticas.3.1.2 JERARQUÍA DEL ALMACENAMIENTOLos programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poderhacer referencia de ellos. Los programas o datos que no se necesitan de inmediato pueden guardarse enel almacenamiento secundario hasta que se necesiten y en ese momento se transfieren alalmacenamiento principal para ser ejecutados o hacer referencia a ellos.Los medios de almacenamiento secundario, como cintas o discos, son en general menos costosos que elalmacenamiento principal y su capacidad es mucho mayor. Normalmente es mucho más rápido elacceso al almacenamiento principal que al secundario.En los sistemas con varios niveles de almacenamie nto hay muchas transferencias constantes deprogramas y datos entre los diferentes niveles. Estas trasferencias consumen recursos del sistema, comotiempo 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 nivelmás con una clara mejora del rendimiento y la utilización. Este nivel adicional, la memoria caché, es unalmacenamiento de alta velocidad, mucho más rápido que el almacenamiento principal. La memoriacaché es extremadamente cara, comparada con la memoria principal, por lo que sólo se utilizanmemorias caché relativamente pequeñas.La memoria caché introduce un nivel adicional de transferencia de información en el sistema. Losprogramas 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 utilizanel concepto de memoria caché es que el trabajo extra requerido por la transferencia de los programassea mucho menor que el aumento del rendimiento obtenido por la rápida ejecución que es posible en lamemoria caché. Universidad Autónoma de Nayarit 1
  2. 2. Sistemas Operativos I Unidad 33.1.3 ESTRATEGIAS DE ADMINISTRACIÓN DEL ALMACENAMIENTOLos recursos caros se administran intensivamente para obtener una mejor utilización. Las estrategias dela administración del almacenamiento se ajustan para obtener el mejor aprovechamiento posible delrecurso de almacenamiento principal. Las estrategias de la administración del almacenamiento sedividen 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 reemplazoLas estrategias de obtención determinan cuándo debe obtenerse la siguiente parte del programa o losdatos 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 almacenamientoprincipal donde se colocará un programa entrante.Las estrategias de reemplazo están relacionadas con la determinación de qué parte del programa o delos datos se debe desalojar para dejar espacio a los programas entrantes.3.1.4 ASIGNACIÓN DEL ALMACENAMIENTO CONTIGUO Y NO CONTIGUOLos primeros sistemas de cómputo requerían una asignación de almacenamiento contiguo: cadaprograma tenía que ocupar un único bloque contiguo de localidades de memoria. No fue sino hasta quese intentó hacer multiprogramación con particiones variables cuando quedó claro que podía ser útil laasignación de almacenamiento no contiguo.En la asignación de almacenamiento no contiguo un programa se divide en varios bloques o segmentosque 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, perola ventaja es que, si el almacenamiento principal tiene muchos huecos pequeños disponibles en lugar deun único hueco grande, el sistema operativo a menudo puede cargar y ejecutar un programa que en otrocaso tendría que esperar.3.1.5 ASIGNACIÓN DE ALMACENAMIENTO CONTIGUO PARA UN USUARIO ÚNICOLos primeros sistemas de cómputo permitían que sólo una persona a la vez utilizara la máquina. Todoslos recursos de la máquina estaban a disposición del usuario. El cobro del uso del computador era muysimple: como el usuario disponía de toda la máquina, se le cobraban todos los recursos, ya fuera quesus 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 unusuario por algún tiempo determinado y se le cobraba una tarifa fija por hora Algunos de los sistemascompartidos 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ódigode entrada/salida requerido para realizar las funciones básicas se consolidó en un sistema de control deentrada/salida (input/output control system, IOCS). Universidad Autónoma de Nayarit 2
  3. 3. Sistemas Operativos I Unidad 3Los usuarios que querían hacer entrada/salida ya no tenían quecodificar directamente las instrucciones, sino que llamaban a lasrutinas de IOCS para realizar el trabajo. Ello simplificaba y acelerabamucho el proceso de codificación. La implantación de los sistemas decontrol de entrada/salida bien pudo haber constituido el comienzo delconcepto actual de sistemas operativos. La figura lateral ilustra laorganización del almacenamiento en un sistema representativo deasignación de almacenamiento contiguo con un único usuario.En tamaño de los programas está limitado por la cantidad dememoria principal, pero es posible ejecutar programas más grandesque el almacenamiento principal utilizando superposiciones(overlay).La figura de abajo ilustra el concepto. Si una sección de un programano se necesita durante el resto de la ejecución del programa, entoncesse puede traer del almacenamiento secundario otra sección delprograma para ocupar el espacio utilizado por la que ya no senecesita.Las superposiciones ofrecen al programador una forma de ampliar el almacenamiento principallimitado. Sin embargo, la superposición manual exige una cuidadosa planificación y lleva muchotiempo. Universidad Autónoma de Nayarit 3
  4. 4. Sistemas Operativos I Unidad 3Protección en los sistemas de usuario únicoEn los sistemas de asignación de almacenamiento contiguo para un solo usuario, este último tiene uncontrol absoluto sobre todo el almacenamiento principal. La memoria se divide en una parte en la queresiden las rutinas del sistema operativo, otra en la que residen los programas del usuario y otra noutilizada. 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 elusuario no puede proseguir, sabrá que algo anda mal, terminará la ejecución, arreglará el problema yvolverá a intentar la ejecución de su programa. En tales circunstancias no resulta evidente la necesidadde proteger el sistema operativo.Pero supóngase que el usuario destruye el sistema operativo más "sutilmente". Por ejemplo, supóngaseque ciertas rutinas de entrada/salida son modificadas por accidente, de tal modo que pueden estartruncados todos los registros de salida. El trabajo puede seguir en ejecución; pero si los resultados no seexaminan sino hasta que se completa el trabajo, entonces se estarán desperdiciando los recursos demáquina. Peor aún, el daño al sistema operativo puede hacer que se produzcan salidas cuyos errores nosan evidentes.Sin duda es obvio que el sistema operativo se debe proteger del usuario. La protección se realiza con unregistro 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 registrode límites para verificar que el usuario no está a punto de destruir el sistema operativo. El registro delímites contiene la dirección más alta utilizada por el sistema operativo. Si el usuario intenta entrar enel sistema operativo, se intercepta la instrucción y el trabajo termina con un mensaje de errorapropiado. Universidad Autónoma de Nayarit 4
  5. 5. Sistemas Operativos I Unidad 3Naturalmente, el usuario necesita entrar de vez en cuando en el sistema operativo para utilizar algunosservicios, como la entrada/salida. El problema se resuelve dando al usuario una instrucción específicacon la cual puede solicitar los servicios del sistema operativo (es decir, una instrucción de llamada alsupervisor). El usuario que desee leer en una cinta enviará una instrucción solicitando al sistemaoperativo que lo haga por él. El sistema operativo realizará la función deseada y después devolverá elcontrol al programa del usuario. A medida que se han vuelto más complejos los sistemas operativos hasido necesario llevar a la práctica mecanismos más avanzados para proteger al sistema operativo de losusuarios y proteger a éstos entre sí.3.1.6 MULTIPROGRAMACIÓN CON PARTICIONES FIJASAun con los sistemas operativos de procesamiento por lotes, los sistemas de usuario único siguendesperdiciando una gran cantidad de los recursos de cómputo. La siguiente Figura ejemplifica lasituació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 seenvíen o reciban los datos requeridos. Las velocidades de entrada y salida son muy bajas, encomparación con las velocidades de la CPU.Los diseñadores vieron que otra vez podrían aumentar notablemente el aprovechamiento de la CPUmediante una administración intensiva. Esta vez decidieron realizar sistemas de multiprogramación enlos 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 realizarcálculos, si es que hay uno en espera. De esta forma pueden efectuarse simultáneamente lasoperaciones de E/S y los cálculos de la CPU. Esto mejora mucho el aprovechamiento de la CPU y losresultados del sistema. Universidad Autónoma de Nayarit 5
  6. 6. Sistemas Operativos I Unidad 3Para aprovechar al máximo la multiprogramación, es necesario que varios trabajos residan al mismotiempo en el almacenamiento principal del computador. Así, cuando un trabajo solicita E/S, la CPUpuede conmutarse de inmediato a otro y realizar cálculos sin retraso. Cuando este nuevo trabajoabandona 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 elcosto del almacenamiento adicional.3.1.7 MULTIPROGRAMACIÓN CON PARTICIONES VARIABLESAl observar los diseñadores de sistemas operativos los problemas de la multiprogramación conparticiones fijas, decidieron que una mejora evidente sería permitir que los trabajos ocuparon tantoespacio como necesitaran (pero no todo el almacenamiento real). No se impondrían límites fijos, sinoque se daría a los trabajos todo el almacenamiento que necesitaran. Este esquema se denominamultiprogramación con particiones variables. En la figura siguiente se ilustra la asignación inicial delas 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 dememoria contiguas. En la multiprogramación con particiones variables no se hacen suposiciones sobreel tamaño de los trabajos (excepto que no deben ser mayores que el almacenamiento principaldisponible en el computador). Si cuando llega un trabajo los mecanismos de planificación deciden quedebe proseguir, se le asigna tanto espacio como necesite. No hay desperdicio, pues la partición de untrabajo 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. 7. Sistemas Operativos I Unidad 3En la multiprogramación con particiones variables, el desperdicio no se hace evidente sino hasta quelos trabajos empiezan a terminar y dejan huecos en el almacenamiento principal. Como se muestra enla siguiente figura. Otros trabajos pueden utilizar dichos huecos, pero entonces los huecos restantes sehacen 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 HuecosCuando termina un trabajo en un sistema de multiprogramación con particiones variables, se puedecomprobar 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) unhueco ú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 denominacondensación y se ilustra en la figura siguiente. Mediante la condensación de huecos se puedenrecuperar los bloques contiguos de almacenamiento más grandes que sean posibles. Universidad Autónoma de Nayarit 7
  8. 8. Sistemas Operativos I Unidad 3Compactación del almacenamiento.A pesar de la condensación de los huecos, muchas veces resulta que los huecos individualesdistribuidos a lo largo del almacenamiento principal constituyen una parte significativa delalmacenamiento. A veces, cuando un trabajo pide cierta cantidad de almacenamiento principal, ningúnhueco individual es lo bastante grande para contenerlo, aunque la suma de todos los huecos sea mayorque el almacenamiento requerido por el nuevo trabajo.La técnica de compactación del almacenamiento implica trasladar todas las áreas ocupadas delalmacenamiento a algún extremo de la memoria principal. Esto deja un gran hueco único dealmacenamiento libre, en lugar de los numerosos huecos pequeños característicos de lamultiprogramació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 delalmacenamiento se denomina eructo del almacenamiento (burping the storage). Un nombre másconvencional 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. 9. Sistemas Operativos I Unidad 3Estrategias de colocación en almacenamientoLas estrategias de colocación en almacenamiento sirven para determinar en qué lugar delalmacenamiento principal se deben colocar los programas y datos entrantes. En la figura siguiente seilustra 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, comienzacada búsqueda de un hueco disponible en el lugar donde terminó la búsqueda anterior.3.1.8 MULTIPROGRAMACIÓN CON INTERCAMBIO DE ALMACENAMIENTOEn algunos sistemas de intercambio (Swapping), un trabajo ocupa el almacenamiento principal de unavez. Ese trabajo se ejecuta hasta que no puede continuar y entonces cede el almacenamiento y la CPUal 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. 10. Sistemas Operativos I Unidad 3Un 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ñadoressabían que se necesitarían mejores técnicas para manejar un gran número de usuarios. Los sistemas deintercambio de principios de los años sesenta dieron lugar a los sistemas de paginación de uso comúnen la actualidad.Se han desarrollado sistemas de intercambio más avanzados que permiten mantener en memoriaprincipal varias imágenes (copias) de usuario al mismo tiempo. En estos sistemas una imagen deusuario se saca sólo cuando su almacenamiento es requerido por una imagen de usuario entrantes. Consuficiente espacio de almacenamiento, tales sistemas reducen considerablemente el tiempo gastado enlos intercambios. Universidad Autónoma de Nayarit 10
  11. 11. Sistemas Operativos I Unidad 33.2 ORGANIZACIÓN DE LA MEMORIA VIRTUALEl término almacenamiento virtual suele asociarse con la capacidad para obtener acceso a direccionesen un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de unsistema de cómputo determinado. El almacenamiento virtual no es un concepto nuevo. Apareció porprimera vez en el sistema de cómputo Atlas construido en la Universidad de Manchester, Inglaterra, en1960. No obstante, el empleo generalizado de los sistemas de almacenamiento virtual es relativamentereciente. 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 lasegmentación. Algunos sistemas de almacenamiento virtual emplean una técnica u otra, mientras quealgunos otros utilizan ambas.Todos los sistemas de almacenamiento virtual tienen la propiedad de que las direcciones calculadas porprogramas en ejecución no son necesariamente las disponibles en el almacenamiento primario. Dehecho, las direcciones virtuales se seleccionan por lo regular de un conjunto de direcciones mucho másgrande que el disponible en el almacenamiento primario.3.2.1 EVOLUCIÓN DE LA ORGANIZACIÓN DEL ALMACENAMIENTOLa figura muestra cómo ha evolucionado la organización del almacenamiento desde los sistemas dealmacenamiento real dedicados a un solo usuario hasta los sistemas de almacenamiento virtual quecombinan técnica paginación y segmentación. Real Real Virtual3.2.2 ALMACENAMIENTO VIRTUAL: CONCEPTOS BÁSI COSLa clave del concepto de almacenamiento virtual es la disociación de las direcciones a las que hacereferencia 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 direccionesvirtuales. Las direcciones disponibles en el almacenamiento primario se conocen como direccionesreales. El intervalo de direcciones virtuales a las que puede hacer referencia un proceso en ejecución seconoce como espacio de direcciones virtuales, V, del proceso. Universidad Autónoma de Nayarit 11
  12. 12. Sistemas Operativos I Unidad 3El intervalo de direcciones reales disponibles en un sistema de cómputo determinando se conoce comoespacio de direcciones reales, R, del computador. El número de direcciones en V se denota |V|, y elnúmero de direcciones en R, |R|. En los sistemas de almacenamiento virtual ya implantados lo normales 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 elalmacenamiento real. Por tanto, es preciso establecer la correspondencia entre las direcciones virtualesy las reales durante la ejecución de un proceso. Esto debe hacerse con rapidez, pues en caso contrario elrendimiento del sistema se degradaría a niveles inaceptables, eliminando así las ganancias logradas porel empleo del concepto de almacenamiento virtual (figura 3.17) Almacenamiento virtual3.2.3 PAGINACIÓN: CONCEPTOS BÁSICOSTeniendo en cuenta la complejidad del manejo de bloques de tamaño variable en la multiprogramacióncon particiones variables, lo más conveniente es comenzar con la correspondencia de bloques detamañ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úmerode la página del almacenamiento virtual en la que reside el elemento al que se hace referencia, y d es eldesplazamiento dentro de la página p donde se localiza dicho elemento(figura 3.19). Un proceso puedeejecutarse si su página activa se encuentra en el almacenamiento primario. Las páginas se transfierendel almacenamiento secundario al primario y se colocan dentro de bloques llamados marcos de páginaque tienen el mismo tamaño que las páginas entrantes. Los marcos de página comienzan en direccionesde almacenamiento real que son múltiplos enteros del tamaño fijo de la página. Una página entrantepuede colocarse en cualquier marco de página disponible. Universidad Autónoma de Nayarit 12
  13. 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 notodos las páginas del proceso se encuentranen el almacenamiento primario al mismotiempo, la tabla de correspondencia depáginas debe indicar si la página a la que sehace referencia se encuentra o no en elalmacenamiento primario; si sí está, dondese encuentra y si no, dónde puedeencontrarse en el almacenamientosecundario.La figura de la siguiente pagina muestra unatabla de correspondencia de páginasrepresentat ivas. Un bit de residencia depágina, r, tiene valor 0 si la pagina no seencuentra en el almacenamiento primario,entonces s es su dirección en elalmacenamiento secundario. Universidad Autónoma de Nayarit 13
  14. 14. Sistemas Operativos I Unidad 3Si 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 dealmacenamiento primario en la cual comienza el marco de página, p’’ es el producto de p’ y el tamañofijo de la página (suponiendo que los marcos de páginas estén numerados consecutivamente a partir decero).Traducción de direcciones en la paginación por correspondencia directaUn proceso en ejecución hacereferencia a una direcciónvirtual v = (p,d). Antes de queun proceso comience suejecución, el sistema carga(durante la conmutación decontexto) la dirección enalmacenamiento primario dela tabla de correspondenciade páginas en el registro deorigen de la tabla decorrespondencia de páginas.La dirección base, b, de latabla de correspondencia depáginas se suma al número depágina, p, para formar ladirección en almacenamientoprimario, b + p, de la entradade la página p en la tabla decorrespondencia de páginas.Esta entrada indica que el marco de página p corresponde a la página virtual p. Después, p seconcatena con el desplazamiento, d, para formar la dirección real, r Se dice que éste es un ejemplo decorrespondencia directa porque la tabla de correspondencia de pá ginas contiene una entrada para cadapágina del almacenamiento virtual del proceso. Universidad Autónoma de Nayarit 14
  15. 15. Sistemas Operativos I Unidad 3Si el proceso tiene n páginas en su almacenamiento virtual, entonces la tabla de correspondencia depá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 decorrespondencia de páginas, se conservan en registros de alta velocidad en el procesador central, demanera que las operaciones en las que participan pueden realizarse con rapidez dentro de un solo ciclode ejecución de instrucciones.Pero la tabla de correspondencia de páginas con correspondencia directa, que puede ser muy grande, seconserva por lo regular en almacenamiento primario. En consecuencia, la referencia a la tabla requiereun ciclo completo de almacenamiento primario. Como el tiempo de un ciclo de almacenamientoprimario representa la mayor parte de un ciclo de ejecución de instrucciones y se necesita un ciclo deejecución de almacenamiento primario adicional para la correspondencia de páginas, el empleo detraducción de direcciones de páginas mediante correspondencia directa puede hacer que el sistemaejecute 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 latabla completa de correspondencia directa de páginas en una memoria caché de muy alta velocidad. Talcosa ha sido posible gracias a que los costos de la memoria caché han disminuido constantementedebido a los avances en la tecnología de memorias.Traducción de direcciones en la paginación por correspondencia asociativaUna forma de acelerar la traduccióndinámica de direcciones, es colocar todatabla de correspondencia de páginasdentro de un almacenamiento asociativoaccesible por contenido (y no pordirección), el cual tiene ciclos de unorden de magnitud más rápidos que losdel almacenamiento primario. La figuralateral muestra cómo se realiza latraducción dinámica de direcciones conuna correspondencia asociativa pura.Un programa en ejecución hacereferencia a una dirección virtual V =(p,d). Cada entrada en elalmacenamiento asociativo se revisa enforma simultánea en busca de la páginap. Se devuelve p como el marco depágina que corresponde a p, y p se concatena con d para formar la dirección real, r. Obsérvese que lasflechas dirigidas al mapa de correspondencias asociativo entran realmente en cada celda del mapa. Estoindica que se revisa al mismo tiempo cada celda del almacenamiento asociativo en busca de p. Ésta esla razón de que el almacenamiento asociativo tenga un costo prohibitivo, aun comparado con lamemoria caché, por lo que nunca se utiliza la correspondencia asociativa pura; aquí se muestra por sialguna 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 conrapidez para hacerse práctico el concepto de almacenamiento virtual. Universidad Autónoma de Nayarit 15
  16. 16. Sistemas Operativos I Unidad 33.2.4 SEGMENTACIÓNEn la multiprogramación con particiones variables, la colocación de los programas en elalmacenamiento 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 dealmacenamiento 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 tienenque ser del mismo tamaño y sí deben estar formados por localidades contiguas, pero no es forzoso queellos sean adyacentes. Universidad Autónoma de Nayarit 16
  17. 17. Sistemas Operativos I Unidad 3Figura 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 seadestruido 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 paralograr la protección del almacenamiento en los sistemas con segmentación es el empleo de claves deprotecció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 ordenadov = (s, d), donde s es el número de segmento en almacenamiento virtual en el que se encuentra elelemento al que se hace referencia y d es el desplazamiento dentro del segmento s en donde se localizadicho 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 almacenamientosecundario al primario como unidades completas. Todas las localidades del segmento se colocan enlocalidades contiguas del almacenamiento primario. Un segmento entrante puede colocarse encualquier área disponible del almacenamiento primario cuyo tamaño sea suficiente para contenerlo. Lasestrategias de colocación para la segmentación son idénticas a las empleadas en la multiprogramacióncon 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. 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 procesoen ejecución hace referencia a una dirección de almacenamiento virtual v = (s, d) (Figura 3.30). Unmecanis mo de correspondencia de segmentos busca el segmento s en la tabla de correspondencia desegmentos y determina que el segmento s se encuentra en el almacenamiento real a partir de ladirección s’. La dirección de almacenamiento real correspondiente a la dirección de almacenamientovirtual v = (s, d) se forma sumando s’ y d.3.2.5 SISTEMAS CON PAGINACIÓN/SEGMENTACIÓNTanto la segmentación como la paginación ofrecen ventajas significativas como organizaciones delalmacena miento virtual. A partir de los sistemas construidos a mediados de los años sesenta, enparticular Multics y el TSS de IBM, se han construido muchos sistemas que combinan la paginacióncon la segmentación. Tales sistemas ofrecen las ventajas de ambas técnicas de organización delalmacenamiento virtual. Universidad Autónoma de Nayarit 18
  19. 19. Sistemas Operativos I Unidad 3Los segmentos tienen por lo general un tamaño múltiplo de páginas; no es necesario que todas laspáginas de un segmento estén en almacenamiento primario a la vez, y las páginas que son contiguas enel almacenamiento virtual no son por fuerza contiguas en el almacenamiento real. Las direcciones sontridimensionales, 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 desplazamientodentro 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ónConsidérese ahora la traducción dinámica de direcciones virtuales a direcciones reales en un sistemacon paginación/segmentación que utiliza correspondencia combinada asociativa/directa como semuestra 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 hahecho referencia más recientemente tienen entradas en un almacenamiento parcialmente asociativo. Serealiza una búsqueda asociativa para tratar de localizar (s,p) en el almacenamiento asociativo. Si seencuentra (s,p), entonces el marco de página del almacenamiento primario p’ en el cual reside la páginap del segmento s, se concatena con el desplazamiento d para formar la dirección real, r, correspondientea 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 labúsqueda en el almacenamiento asociativo. Cuando esto no es posible, se establece unacorrespondencia directa de la siguiente forma.La dirección base, b, de la tabla de mapa de correspondencia de segmentos (en almacenamientoprimario) se suma el número de segmentos, s, para formar la dirección, b + s, de la entrada para elsegmento s en la tabla de mapa de correspondencia de segmentos en el almacenamiento primario. Laentrada en dicha tabla índica la dirección base s’, de la tabla de páginas (en el almacenamientoprimario) 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áginap del segmento s. Esta tabla indica que p’ es el número de marco de página que corresponde a la páginavirtual 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. 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. 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 encuentradonde se supone que debe estar. Pero hay muchos pasos donde puede fallar el proceso. La búsqueda enla tabla de mapa de correspondencia de segmentos puede indicar que el segmento s no se encuentra enel almacenamiento primario, lo que ocasiona una falla por falta de segmentos y hace que el sistemaoperativo localice el segmento en el almacenamiento secundario, cree una tabla de páginas para elsegmento y cargue la página apropiada en el almacenamiento primario, reemplazando posiblementeuna 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 decorrespondencia de páginas puede indicar que la página deseada no se encuentra en el almacenamientoprimario. Ello generaría una falla de página, haciendo que el sistema operativo tome el control, localicela página en el almacenamiento secundario y la cargue (una vez más, reemplazando posiblemente otrapágina). Universidad Autónoma de Nayarit 21
  22. 22. Sistemas Operativos I Unidad 3Al igual que en la segmentación pura, una dirección de almacenamiento virtual puede rebasar el finaldel segmento, generando así una excepción por desbordamiento de segmento. Por otra parte, los bits deprotección también pueden indicar que no está permitida la operación que se va a realizar sobre ladirección virtual a la que se hace referencia, con lo que se genera así una excepción por protección delsegmento. El sistema operativo debe manejar todas estas posibilidades.3.3 ADMINISTRACIÓN DE LA MEMORIA VIRTUAL3.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ÁGINASEn 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 delalmacenamiento primario se debe desplazar para dejar espacio a una página entrante. Se verán lassiguientes 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 AnticipadaEl principio de optimalidadEl principio de optimalidad establece que, para obtener un rendimiento optimo, la página que se deberemplazar es aquélla que tardará más tiempo en volver a ser utilizada. Se puede demostrar laoptimalidad de esta estrategia, pero desde luego ésta es irrealizable puesto que no podemos predecir elfuturo. Esta estrategia óptima de reemplazo se denomina OPT o MIN. Por tanto, para lograr un buenrendimiento se intenta una aproximación al principio de optimalidad utilizado técnicas de reemplazo depáginas que se aproximen al reemplazo óptimo de páginas. Universidad Autónoma de Nayarit 22
  23. 23. Sistemas Operativos I Unidad 3Reemplazo de páginas aleatorioSi se busca una estrategia de reemplazamiento, el reemplazo de páginas aleatorio es una técnicasencilla para lograrlo. Así, todas las páginas que se encuentran en el almacenamiento principal tienen lamisma probabilidad de ser elegidas para el reemplazo. Esta estrategia podría seleccionar cualquierpágina para ser remplazada, incluyendo la siguiente página a la que se hará referencia (lo cuálconstituye, por supuesto, la peor elección de reemplazo de páginas). Las decisiones de reemplazoaleatorio de páginas se pueden tomar rápidamente, y con un número significativo de marcos de páginasdonde elegir sólo habría una pequeña probabilidad de reemplazar una página a la que se vaya hacerreferencia de nuevo casi de inmed iato. Sin embargo, este esquema casi no se utiliza debido a suenfoque 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 registrael instante en que entró en el almacenamiento primario. Cuando se necesita reemplazar una página, seescoge la que ha permanecido en el almacenamiento primario. Cuando se necesita reemplazar unapágina, se escoge la que ha permanecido en el almacenamiento durante mayor tiempo. Por lo tanto estaestrategia parece razonable, pues esa página ha tenido su oportunidad y es tiempo de darle unaoportunidad a otra página.Lamentablemente, es probable que esta estrategia reemplace páginas muy utilizadas, ya que si unapágina permanece en el almacenamiento primario durante mucho tiempo puede deberse a que está enuso constante. Por ejemplo en los grandes sistemas de tiempo compartido es común que muchosusuarios compartan una copia de un editor de texto cuando capturan y corrigen sus programas. Laestrategia de reemplazo de páginas de primeras entradas-primeras salidas en tales sistemas podríadecidir reemplazar una página muy utilizada del editor, y esta será sin duda una mala elección, porquela página se volvería a transferir al almacenamiento principal casi de inmediato. Dicha estrategiatambién se podría poner en práctica con una simple cola PEPS: a medida que llega una página, secoloca 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 mayortiempo. La estrategia se basa en la heurística de localidad según la cual el pasado reciente es un buenindicador del futuro cercano, de modo que LRU exige que se marque cada página con el instante enque se hace referencia a ella. Esto podría requerir mucho trabajo adicional, por lo que la estrategia LRUpese a ser atractiva, no se usa a menudo en los sistemas actuales; lo que se hace es utilizar estrategiasque 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 cadamarco de página ocupado. Cada vez que se hace referencia a un marco de páginas, la entradacorrespondiente a esa página se coloca al principio de la lista, y las entradas más antiguas se llevan alfinal de la lista. Cuando hay que reemplazar una página para dejar espacio a otra entrante, se seleccionala entrada final de la lista, se libera el marco de página correspondiente (lo cual posiblemente requieraescribir una página modificada en el almacenamiento secundario), se coloca la página entrante en elmarco 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 unconsiderable trabajo extra. Universidad Autónoma de Nayarit 23
  24. 24. Sistemas Operativos I Unidad 3Siempre hay que tener cuidado al aplicar razonamiento heurísticos en los sistemas operativos. Porejemplo, en la estrategia LRU, la página menos recientemente usada podría ser la siguiente en serutilizada, si un programa realiza un ciclo grande que abarque varias páginas. Si se reemplazara lapágina LRU, el sistema se encontraría a sí mismo transfiriendo esa página de nuevo al almacenamientoprincipal casi de inmediato. Dicho fenómeno también podría ocurrir en un sistema con una serie dellamadas a procedimientos profundamente anidados; a medida que los procedimientos llamadosvolvieran a la página que contenía la llamada original, esa página podría reemplazarse fácilmente comopá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 loimportante es la intensidad con la que se ha utilizado cada página; la página por remplazar es aquellaque se ha utilizado menos frecuentemente o a la que se ha hecho referencia con menos frecuencia. Denuevo, el atractivo intuitivo es real, pero con toda facilidad se podría seleccionar para reemplazo unapágina equivocada. Por ejemplo, la página menos frecuentemente utilizada podría ser aquella que setrajo 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 sidoutilizadas en varias ocasiones. El mecanismo de reemplazo de páginas reemplazará esta página, aunquede 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 decisionesequivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro. Portanto es deseable una estrategia de reemplazo de paginas que tomo decisiones razonables la mayorparte 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 utilizadarecientemente” (NUR). No es probable que sean utilizadas pronto las páginas que no sean utilizadasrecientemente, por lo que pueden reemplazarse con páginas entrantes.Cuando es deseable reemplazar una página que no ha sido modificada mientras estaba en elalmacenamiento primario, la estrategia NUR se lleva a la práctica con la adición de dos bits dehardware 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 modificadaEl bit de modificación se denomina a menudo bit sucio. La estrategia NUR trabaja en la formasiguiente. Inicialmente los bits de referencia de todas las páginas valen cero. Cuando ocurre unareferencia 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 intentaencontrar una página a la que no se ha hecho referencia (por que estamos aproximando la estrategiaLRU). De otro modo, no queda más elección que remplazar una página a la que se hizo referencia. Siuna página no ha sido objeto de una referencia, se comprueba si ha sido modificada. Si no ha sido sereemplaza, pues requiere menos trabajo que el reemplazo de una página modificada, la cual debeescribirse 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 segundaoportunidad Universidad Autónoma de Nayarit 24
  25. 25. Sistemas Operativos I Unidad 3La evidente debilidad de la estrategia PEPS es que puede decidir reemplazar una página muy utilizadaque ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazandosolo 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áginamás antigua; si este bit vale 0, se selecciona de inmediato la página para ser remplazada. Si el bit dereferencia vale 1, se le asigna el valor 0 y la página se pasa al final de la lista y se considera en esenciacomo una página nueva; gradualmente, dicha página se desplaza hacia el principio de la lista, dondeserá seleccionada para reemplazo sólo si su bit de referencia sigue valiendo 0. En esencia esto da a lapágina una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referenciacambia 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 listacircular, en lugar de una lista lineal. Un apuntador a la lista se desplaza alrededor de la lista circular enla misma forma que gira la manecilla de un reloj. Cuando el bit de referencia de una página toma elvalor 0, el apuntador se mueve al siguiente elemento de la lista (simulando el movimiento de estapágina al final de la lista PEPS).Reemplazo de páginas por frecuencia de fallas de páginasUna medida de la eficiencia con que se ejecuta un proceso en un ambiente de paginación es su tasa defallas de página. Los procesos que fallan constantemente pueden estar hiperpaginando por que tienenmuy pocos marcos de páginas y no pueden mantener sus conjuntos de trabajo en almacenamientoprimario. Los procesos que casi nunca fallan pueden tener de hecho demasiados marcos de páginas yestar impidiendo el proceso de otros procesos del sistema. Idealmente, los procesos deben operar enalgún punto entre eso s extremos.El algoritmo de frecuencia de fallas de página (page fault frequency, PFF) ajusta el conjunto de páginasresidentes de un proceso (es decir aquellas páginas que están actualmente en la memoria) basándose enla frecuencia con que el proceso tiene fallas de página (o, alternativamente, según el tiempo que hayentre 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 unvalor límite superior, entonces se liberan todas las páginas a las que no se haya hecho referencia en eseintervalo. Si el tiempo es menor que un valor limite inferior, la página entrante se convierte en unmiembro 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 enrespuesta al comportamiento cambiante del proceso. Si un proceso esta conmutándose a un conjunto detrabajo 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 elPFF mantendrá el conjunto de páginas residentes o incluso podrá reducirloEvidentemente, la clave para la obtención adecuada y efic iente del PFF es mantener los limites envalores apropiados.Una ventaja del PFF con respecto al reemplazo de páginas con conjunto de trabajo es que ajusta elconjunto de páginas residentes sólo después de cada falla de pagina, mientras que un mecanismo deconjunto de trabajo debe operar después de cada referencia a la memoria. Universidad Autónoma de Nayarit 25
  26. 26. Sistemas Operativos I Unidad 3Paginación por demandaEl sentido común indica que las páginas de un proceso deben cargarse por demanda. No se debetransferir ninguna página del almacenamiento secundario al primario hasta que un proceso en ejecuciónhaga 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 ladetención, indican que no se pueden predecir con precisión la trayectoria de ejecución que seguirá unprograma. Así pues, cualquier intento de carga páginas con anticipación a su uso puede hacer que secarguen las páginas equivocadas.?? La paginación por demanda garantiza que las únicas páginas que se transfieren alalmacenamiento principal son aquellas que requieren los procesos.?? El trabajo extra requerido para decir cuáles páginas se deben transferir al almacenamientoprincipal es mínimo. Las estrategias de obtención anticipada de páginas pueden requerir mucho tiempode ejecución adicional.Paginación anticipadaEn la paginación anticipada, el sistema operativo intenta predecir cuáles páginas necesitará un procesoy entonces carga dichas páginas cuando hay espacio disponible. Si se toman las decisiones correctas, sepuede reducir considerablemente el tiempo de ejecución total del proceso. Mientras el proceso seejecuta con sus páginas actuales, el sistema carga nuevas página, que estarán disponibles cuando lasrequiera 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áginasEn una administración del almacenamiento mediante conjuntos de trabajos, los procesos indican porreferencia explícita cuáles páginas desean utilizar. Los procesos que ya no requieran páginasespecíficas deberán desechar tales páginas de sus conjuntos de trabajo. Por lo regular, hay un tiempodurante 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ónvoluntaria de página para liberar el marco de página. Esto eliminaría el retraso que implica dejar que elproceso 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 unprograma, pero la mayoría de los usuarios de los sistemas de cómputo actuales ni siquiera saben qué esuna página y no se les puede pedir que tomen decisiones al nivel del sistema. La incorporación demandatos de liberación de páginas en los programas de usuario podría ser mucho más lento eldesarrollo de las aplicaciones. Universidad Autónoma de Nayarit 26
  27. 27. Sistemas Operativos I Unidad 3La esperanza real en esta área es que los compiladores y sistemas operativos detecten automáticamentelas situaciones en las que debe liberar una página, y mucho antes de lo que es posible con lasestrategias que emplean conjuntos de trabajo.TAMAÑO DE PÁGINASEn los sistemas de paginación, el almacenamiento real se divide normalmente en marcos de página detamaño fijo. ¿Qué factores determinan si una página debe ser grande o pequeña? Aquí se resumenalgunos de ellos:?? Cuanto menor sea el tamaño de la página, más páginas y más marcos de páginas habrá ymayores tendrán que ser las tablas de páginas. En los sistemas en los que las tablas de páginas ocupanel almacenamiento primario, hay una necesidad de páginas más grandes. El desperdicio dealmacenamiento debid o a tablas excesivamente grandes se denomina Fragmentación de tablas. Cabeseñalar que este argumento es menos válido hoy día gracias a la disponibilidad de memorias muygrandes 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 deque un segmento de longitud stenga su última página casi llenao casi vacía y, por tanto, enpromedio hay media página defragmentación interna (con larestricción de que una página nopuede contener partes de más deun segmento). Cuanto menor seael tamaño de la página, menorserá la fragmentación interna. Universidad Autónoma de Nayarit 27

×