sábado, 1 de junio de 2013

UNIDAD IV ADMINISTRACIÓN DE MEMORIA







ACTIVIDAD 1._


      4.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 datos y procesos que actualmente se están utilizando.
Sea cual sea es esquema de organización del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo.

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 mas 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 (Shortest remaining time scheduling) Tiempo restante mas 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 mas alta): Politica no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para asi 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 esta en función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido.

     4.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.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual sera mayor que el de la memoria real).
La organización y administración de la “memoria principal”“memoria primaria” “memoria real” de un sistema ha sido y es uno de los factores mas importantes en el diseño de los S. O. 
        Los términos “memoria” “almacenamiento” se consideran equivalentes.
        Los programas y datos deben estar en el almacenamiento principal para:
  • Poderlos ejecutar.
  • Referenciarlos directamente



4.2.1 Administración de Almacenamiento
 

Para que un sistema informático sea cómodo para los usuarios, el sistema operativo proporciona una lista lógica y uniforme del sistema de almacenamiento de la información. El sistema operativo abstrae las propiedades físicas de los dispositivos de almacenamiento y define una unidad de almacenamiento lógico  el archivo.
El sistema operativo asigna los archivos a los soportes físicos y accede a dichos archivos a través de los dispositivos de almacenamiento.



Almacenamiento del sistema de archivos

La gestión de archivos es uno de los componentes más visibles de un sistema operativo. Los computadores pueden almacenar la información en diferentes tipos de medios físicos. Los discos magnéticos  discos ópticos y cintas magnéticas son habituales.

        Cada uno de estos medios tiene sus propias características y organización física. Cada medio se controla mediante un dispositivo, tal como una unidad de disco o una cinta, que también tiene sus propias características distintivas.
       Estas propiedades incluyen la velocidad de acceso, la capacidad, la velocidad de transferencia de datos y el método de acceso (secuencial o aleatorio).
        Un archivo es una colección de información relacionada definida por su creador. Comúnmente  los archivos representan programas (tanto en formato fuente como en objeto) y datos. Los archivos de datos pueden ser numéricos, alfabéticos, alfanuméricos o binarios. Los archivos pueden tener un formato libre(como, por ejemplo, los archivos de texto) o un formato rígido  como por ejemplo una serie de campos fijos.


4.2.2 Jerarquía


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. 
Un nivel adicional es el “cache” 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:
    • Los programas son traspasados de la memoria principal al cache antes de su ejecución.
  • Los programas en la memoria cache ejecutan mucho más rápido que en la memoria principal.
  • Al utilizar memoria cache se espera que:
    • 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 cache.}

4.2.3 Estrategia de administración de memoria.



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:
  • Estrategias de búsqueda por demanda.
  • 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.





4.2.4 Asignación contigua v.s. no contigua.



Una asignación de almacenamiento contiguo es que cada programa tiene que ocupar un único bloque contiguo de localidad de memoria.

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











4.2.5 Multiprogramación de partición fija, partición variable, con intercambio de almacenamiento.


MULTIPROGRAMACIÓN CON PARTICIONES FIJAS: 
El sistema de multiprogramación en los cuales varios usuarios compiten al mismo tiempo por los recursos del sistema. El trabajo está esperando la terminación de una operación E/S cederá la CPU a otro trabajo que esté listo para realizar cálculos. Si es que hay una espera. De esta forma pueden efectuarse simultáneamente las operaciones de E/S y cálculos de la CPU.



FRAGMENTACIÓN EN LA MULTIPROGRAMACIÓN CON PARTICIONES FIJAS: 



La fragmentación de almacenamiento ase presenta en todos los sistemas de cómputo, sea cual sea la organización de su almacenamiento. En los sistemas con multiprogramación y particiones fijas, la fragmentación ocurre porque los trabajos de los usuarios no llenan por completo las particiones designadas o porque una partición se queda sin utilizar por ser demasiado pequeña para contener un trabajo en espera. 



MULTIPROGRAMACIÓN CON PARTICIONES VARIABLES: 



Esta hace suposiciones sobre el tamaño de los trabajos. Llega un espacio cuando lo necesite. No hay desperdicio, pues la partición de un trabajo tiene exactamente el tamaño del trabajo. 



MULTIPROGRAMACIÓN CON INTERCAMBIO DE ALMACENAMIENTO: 



En el esquema de “intercambio” los programas del usuario no requieren permanecer en la memoria principal hasta su terminación. Una variante consiste en que un trabajo se ejecuta hasta que ya no pueda continuar: Cede el almacenamiento y la CPU al siguiente trabajo. La totalidad del almacenamiento se dedica a un trabajo durante un breve periodo de tiempo. Los trabajos son “intercambiados”, dándose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminación. 



Los sistemas de intercambio fueron los predecesores de los sistemas de paginación.       Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en  la memoria principal.

      *Manteniendo al mismo tiempo varias “imágenes de usuario o imágenes de memoria” en la memoria principal.
 
*Retirando una imagen de usuario de la memoria principal solo cuando es necesario su almacenamiento para una nueva imagen.
 
*Incrementando la cantidad de memoria principal disponible en el sistema.
 
*Las imágenes de usuario (imágenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).


ACTIVIDAD 2._








4.3 Organización de Memoria Virtual.

Memoria Virtual

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 memoria virtual ha llegado a ser un componente esencial de la mayoría de los S.O actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener mas procesos en la memoria.

 La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.



4.3.1 Evaluación de las organizaciones de almacenamiento.

Almacenamiento virtual "significa la capacidad de direccional 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”.
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.
Las direcciones generadas por los programas en su ejecución no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que las direcciones virtuales suelen seleccionarse dentro de un numero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.
La evolución en las organizaciones de almacenamiento puede resumirse como sigue:
  • Real:
    • Sistemas dedicados a un solo usuario.
  • Real:
    • Sistemas de multiprogramación en memoria real:
      • Multiprogramación en partición fija:
        • Absoluta.
        • Relocalizable (reubicadle).
      • Multiprogramación en partición variable.
  • Virtual:
    • Multiprogramación en almacenamiento virtual:
      • Paginación pura.
      • Segmentación pura.
      • Combinación paginación / segmentación.

4.3.2 Paginación.



¿Qué es la paginación?   

El termino memoria virtual se asocia normalmente con sistemas que emplean paginación, aunque también se puede usar memoria virtual basada en la segmentación. El uso de la paginación en la memoria virtual fue presentado por primera vez en el computador Atlas. 

Cada proceso tiene su propia tabla de páginas y cuando carga todas sus páginas en la o memoria principal. Puesto que solo algunas de las páginas de un proceso pueden estar en la memoria principal, se necesita un bit en cada entrada de la tabla para indicar si la pagina perteneciente está presente en la memoria principal o no. Si el bit indica que la pagina está en la memoria, la entrada incluye también el número de marco para esa página. 

Otro bit de control necesario en la entrada de la tabla de páginas es el bit de modificación (M), para indicar si el contenido de la página correspondiente se ha alterado desde que la página se cargo en la memoria principal. Si no ha habido cambios, no es necesario escribir la página cuando sea sustituida en el marco que ocupa actualmente.


Estructura de la tabla de páginas 

El mecanismo básico de lectura de una palabra de la memoria supone la traducción por medio de la tabla de páginas de una dirección virtual o lógica formada por un numero de pagina y un desplazamiento, a una dirección física que está formada por un numero de marco y un desplazamiento. 



Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinación de hardware y software a direcciones físicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traducción de direcciones. Actualmente los dos niveles de la jerarquía de memoria controlados por la memoria virtual son las DRAM y los Discos magnéticos.

Puesto que la tabla de páginas es de longitud variable, en función del tamaño del proceso, no es posible suponer que quepa en los registros. 







4.3.3 Segmentación.

Implicaciones de la memoria virtual


La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (numero de segmento, desplazamiento).
Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:
1. Simplifica la gestión de estructuras de datos crecientes. Si el programador no conoce a prioridad cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaños de segmentos dinámicos. Con memoria virtual segmentada, a la estructura de datos se le puede asignar a su propio segmento y el S.O expandirá o reducirá el segmento cuando se necesite.

2. Permite modificar y recopilar los programas independientemente, sin que sea necesario recopilar o volver a montar el conjunto de programas por completo.

3. Se presta a la comparación entre procesos. Un programador puede situar un programa de utilidades o una tabla de datos en un segmento que puede ser referenciado por otros procesos.

4. Se presta a la protección. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrán asignar los permisos de acceso de la forma adecuada.


Organización
En el estudio de la segmentación simple, se llego a la conclusión de que cada proceso tiene su propia tabla de segmento y que, cuando todos los segmentos se encuentran en la memoria principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la tabla contiene la dirección de comienzo del segmento correspondiente de la memoria principal, así como su longitud. La misma estructura se necesitara al hablar de un esquema de memoria virtual basado en la segmentación donde las entradas de la tabla de segmentos pasan a ser más complejas.
Puesto que solo algunos de los segmentos de un proceso estarán en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente está presente en la memoria principal. Si el bit indica que el segmento está en la memoria, la entrada incluye también la dirección de comienzo y la longitud del segmento.

Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargo por última vez en la memoria principal. Si no ha habido cambios, no será necesario escribir en el disco el segmento cuando llegue el momento de reemplazarlo en el espacio que ocupa actualmente.


4.3.4 Sistemas de Paginación/Segmentación.


La paginación y la segmentación puras son métodos de manejo de memoria bastante efectivos, aunque la mayoría de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginación y la segmentación.

La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la división lógica de los programas (segmentos) con la granularidad de las páginas. De esta forma, un proceso estará repartido en la memoria real en pequeñas unidades (paginas) cuya liga son los segmentos. También es factible así el compartir segmentos a medida que las partes necesitadas de los mismos se van reverenciando (paginas).    

Para comprender este esquema, nuevamente se verá como se traduce una dirección virtual en una localidad de memoria real. Para la paginación y segmentación puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la dirección real.
Para el caso combinado, se puede decir que se tiene un direccionamiento `tridimensional'.   
  
El sistema debe contar con una tabla de procesos (TP) (Ver figura 3.3.4.1). Por cada renglón de esa tabla se tiene un número de proceso y una dirección a una tabla de segmentos. Es decir, cada proceso tiene una tabla de segmentos. Cuando un proceso hace alguna referencia a memoria, se consulta TP para encontrar la tabla de segmentos de ese proceso. En cada tabla de segmentos de proceso (TSP) se tienen los números de los segmentos que componen a ese proceso.
Por cada segmento se tiene una dirección a una tabla de páginas. Cada tabla de páginas tiene las direcciones de las páginas que componen a un solo segmento. Por ejemplo, el segmento `A' puede estar formado por las paginas reales `a','b','c','p' y `x'. El segmento `B' puede estar compuesto de las paginas `f','g','j','w' y `z'.      Otro aspecto importante es la estrategia para cargar páginas (o segmentos) a la memoria RAM.

Se usan más comúnmente dos estrategias: cargado de páginas por demanda y cargado de páginas anticipada. La estrategia de cargado por demanda consiste en que las páginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una dirección que cae dentro de ellas.

La carga anticipada consiste en tratar de adivinar que paginas serán solicitadas en el futuro inmediato y cargarlas de antemano, para que cuando se pidan ya no ocurran fallos de pagina.
Ese `adivinar' puede ser que se aproveche el fenómeno de localidad y que las paginas que se cargan por anticipado sean aquellas que contienen direcciones contiguas a la dirección que se acaba de refenciar. De hecho, el sistema operativo VMS usa un esquema combinado para cargar páginas: cuando se hace referencia a una dirección cuya página no esta en RAM, se provoca un fallo de página y se carga esa página junto con algunas páginas adyacentes. En este caso la página solicitada se cargo por demanda y las adyacentes se cargaron por anticipación.


4.4 Administración de Memoria Virtual.


La clave del concepto de memoria (almacenamiento) virtual está en la disociación:
·         De las direcciones a las que hace referencia un programa.
·         De las direcciones disponibles en la memoria real (almacenamiento primario).


Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.

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.

4.4.1 Estrategia de administración.


Estrategias de Obtención

Determinan cuando se debe de 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 un segmento antes de traer la pagina 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 qué lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Una página entrante se puede colocar en cualquier marco de pagina disponible.


Estrategias de Reemplazo
Sirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una página o segmento entrante cuando está completamente ocupado el almacenamiento primario.

4.4.2 Técnicas de Reemplazo de Páginas.

Las rutinas de administración de almacenamiento del Sistema operativo deben decidir que pagina del almacenamiento primario se debe desplazar para dejar espacio a una pagina entrante.

Principio de Optimalidad

Para obtener un rendimiento optimo, la pagina que se debe reemplazar es aquella que tardara más tiempo en ser utilizada. Esta estrategia optima 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 pagina para ser reemplazada, incluyendo la siguiente pagina 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 pagina. 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 entro 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 paginas PEPS, ciertos patrones de referencia a pagina originan mas fallas de paginas cuando aumenta el número de marcos de pagina 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 paginas se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de páginas a proceso.
La segunda tabla muestra cómo se comporta este proceso en las mismas circunstancias, pero con cuatro marcos de paginas 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 pagina 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 pagina 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 paginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisión el futuro.

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 solo aquellas páginas cuyos bits de referencia valgan O.

La variante de PEPS denominada "con segunde oportunidad" examina el bit de referencia de la pagina más antigua; si este bit vale O, se selecciona de inmediato la pagina para ser reemplazada. Si el bit de referencia vale 1, se le asigna el valor O y la pagina se pasa al final de la lista y se considera en esencia como una página nueva; gradualmente dicha pagina se desplaza hacia el principio de la lista, donde será seleccionada para reemplazo solo si su bit de referencia sigue valiendo O. En esencia, esto da a la pagina una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la pagina llegue al principio de la lista. La variación 'z' del reloj" del algoritmo de la segunda oportunidad dispone las paginas 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).


4.4.3 Paginación por demanda.

Considere como podría cargarse un programa ejecutable desde el disco a la memoria. Una opción consiste encargar el programa completo en memoria física en el momento de ejecutar el programa. Sin embargo, esta técnica presenta el problema de que puede que no necesitemos inicialmente todo el programa en la memoria.

Las páginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pagina al almacenamiento secundario al primado hasta que un proceso en ejecución haga explícitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. Los resultados de la teoría de la compatibilidad, especifica mente el problema de la detención (Mi67) (He77), indican que no se puede predecir con precisión la trayectoria de ejecución que seguirá un programa. Así pues, cualquier intento de cargar páginas con anticipación a su uso puede hacer que se carguen las páginas equivocadas.

La paginación por demanda garantiza que las únicas páginas que se transfieren al almacenamiento principal son aquellas que requieren los procesos. El trabajo extra requerido para decidir cuales páginas se deben transferir al almacenamiento principal es mínimo. Las estrategias de obtención anticipada de paginas G pueden requerir mucho tiempo de ejecución adicional



4.4.4 Paginación Anticipada.

¿Qué es la paginación anticipada?

 En la paginación anticipada, el sistema operativo intenta predecir las paginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demas paginas que estarán disponibles cuando las requiera el proceso.

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 paginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.


4.4.5 Liberación de Página.

¿Qué es la paginación anticipada?

 En la paginación anticipada, el sistema operativo intenta predecir las paginas que necesitara un proceso y entonces carga dichas cuando hay espacio disponible.

Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás paginas que estarán disponibles cuando las requiera el proceso.

El S. O. intenta predecir las paginas 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 paginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.


4.4.6 Tamaño de Página.


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 paginas, si todas las paginas tendrán igual tamaño, si en caso de utilizar paginas de diferente tamaño las paginas 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 paginas habrá y mayores serán las tablas de pagina.
El desperdicio de almacenamiento debido al tamaño excesivo de las tablas de pagina se llama “fragmentación de tablas”.

Esto indica la necesidad de páginas más grandes.
·         Con paginas grandes, grandes cantidades de información que nunca llegaría a ser referenciada, se paginaran hacia el almacenamiento primario
Esto indica la necesidad de páginas mas pequeñas.



 TAREA 1._Elabore un mapa mental con la información de los temas 4.1 y 4.2











TAREA 2._ Resuelva los problemas (del 1 al 19)de la pagina(397-399) del libro: Sistemas Operativos.

 



PROBLEMAS

1.      Un sistema de computadora tiene suficiente espacio para contener cuatro programas en su memoria principal. La mitad del tiempo, estos programas están ociosos esperando E/S. ¿Qué fracción del tiempo de CPU se desperdicia?
R= cada segmento es un espacio de memoria virtual ordinario y se página del mismo modo que la memoria





2.      Considere un sistema de intercambio en el que la memoria tiene agujeros con los siguientes tamaños en orden según su posición en la memoria: 10K, 4K, 20K, 18K, 7K, 9K, 12K y 15K. ¿Cuál agujero se toma cuando hay solicitudes de segmento sucesivas de si se usa primer ajuste? Repil;). Usando mejor ajuste, peor ajuste y siguiente ajuste.


(a) 12K

(b) 10K

(c) 9K


3.      ¿Qué diferencia hay entre una dirección física y una dirección virtual?
R= una dirección de MULTCS  consta de partes del segmento y la dirección dentro del segmento se subdivide en el número de páginas y una palabra dentro de la pagina


4.      Empleando la tabla de páginas de la Fig. 4-8, dé la dirección física que corresponde a cada una de las siguientes direcciones virtuales:


(a) 20

(b) 4100

(c) 8300





5.      El procesador Intel 8086 no apoya la memoria virtual. No obstante, algunas compañías vendieron previamente sistemas que contenían una CPU 8086 no modificada y realizaban paginación. Utilice lo que sabe para sugerir cómo lo hicieron. (Sugerencia: piense en la ubicación lógica de la MMU.)
R= se ejecuta con todas las maquinas compatibles con IBM








6.      Si una instrucción tarda 1 microsegundo y una falla de página tarda n microsegundos adicionales, deduzca una fórmula para el tiempo de instrucción efectivo si ocurren fallas de página cada k instrucciones.
R= K=ms







7.      Una máquina tiene un espacio de direcciones de 32 bits y páginas de 8K. La tabla de páginas está totalmente en hardware, con una palabra de 32 bits por cada entrada. Cuando un proceso inicia, la tabla de páginas se copia en el hardware desde la memoria, a razón de una palabra cada 100 ns. Si cada proceso se ejecuta durante 100 ms (incluido el tiempo que toma cargar la tabla de páginas), ¿qué fracción del tiempo de CPU se dedica a cargar las tablas de páginas?
R= la memoria total requerida para el crecimiento combinado de lo segmentos de datos y de pila de máximo 10K







8.      Una computadora con direcciones de 32 bits usa una tabla de páginas de dos niveles. Las direcciones virtuales se dividen en un campo de tabla de páginas de nivel superior de nueve bits y un campo de tabla de páginas de segundo nivel de once bits, además de una distancia. ¿Qué tamaño tienen las páginas y cuántas de ellas hay en el espacio de direcciones?
R= la tabla de procesos del administrador se llama MPROC




9.      A continuación se lista un programa corto en lenguaje ensamblador para una computadora con página; de 512 bytes. El programa reside en la dirección 1020, y su apuntador a la pila está en 8192 (la pila crece hacia 0). Dé la cadena de referencia a página generada por este programa. Cada instrucción ocupa cuatro bytes (una palabra), y las referencias tanto a instrucciones como a datos cuentan en 1. cadena de referencia.




Cargar la palabra 6144 en el registro O


 Meter el registro O en la pila


Invocar un procedimiento en 5120, agregando la dirección de retomo a la pila

 Restar la constante inmediata 16 del apuntador a la pila

 Comparar el parámetro real con la constante inmediata 4

 Saltar si es igual a 5152



10.      Suponga que una dirección virtual de 32 bits se divide en cuatro campos, a, b, c y d. Los primeros tres se utilizan para un sistema de tablas de páginas de tres niveles. El cuarto campo, d, es la distancia. ¿El número de páginas depende de los tamaños de los cuatro campos? Si no es así, ¿cuáles importan y cuáles no?


 R= importan las primeras 2 ya que ellas generaran las instrucciones a seguir; c y d generaran las instrucciones dadas por a y b.




11.      Una computadora cuyos procesos tienen 1024 páginas en sus espacios de direcciones mantiene sus tablas de páginas en la memoria. El gasto extra requerido para leer una palabra de la tabla de páginas es de 500 ns. Con objeto de reducir este gasto extra, la computadora tiene un TLB, que contiene 32 pares (página virtual, marco de página físico) y puede realizar una consulta en 100 ns. ¿Qué tasa de aciertos se necesita para reducir el gasto medio a 200 ns?

R= 1024 bytes, con páginas de 4K, necesitaremos más de 1015 bytes para la tabla de páginas.


12.      El TLB del VAX no contiene un bit R. ¿Por qué?


R= el implementador de sistemas operativos debe incluir código para tener señal.




13.      Una máquina tiene direcciones virtuales de 48 bits y direcciones físicas de 32 bits. Las páginas son de 8K. ¿Cuántas entradas debe tener la tabla de páginas?

R= 
sólo requiere 8192 entradas.


14.      Una computadora tiene cuatro marcos de página. A continuación se muestran el tiempo de carga, el tiempo de último acceso y los bits R y M para cada página (los tiempos están en tics del reloj):



Página           Cargada           Última ref.              R         M

O                        126                    279                    O         O

1                         230                    260                    1          O

2                         120                    272                    1           1

3                         160                    280                    1           1


(a) ¿Cuál página se reemplazará si se usa NRU?
 R=2

(b) ¿Cuál página se reemplazará si se usa FIFO?
R= 0

(c) ¿Cuál página se reemplazará si se usa LRU?
R= 2
(d) ¿Cuál página se reemplazará si se usa segunda oportunidad?
R= 3


15.      Si se emplea reemplazo de páginas FIFO con cuatro marcos de página y ocho páginas, ¿cuántas fallas de página ocurrirán con la cadena de referencia 0172327103 si los cuatro marcos inicialmente están; vacíos? Repita el problema suponiendo que se usa LRU.
 
R=le tocarían 47 marcos a cada proceso. Los cinco restantes constituirían una reserva que se usaría en caso de ocurrir fallas de página.

16.      Una computadora pequeña tiene cuatro marcos de página. En el primer tic del reloj, los bits R son 111 (la página O es O, el resto son 1). En tics del reloj subsecuentes, los valores son 1011,1010,1101,0010, 1010, 1100 y 0001. Si se emplea el algoritmo de maduración con un contador de ocho bits, indique los valores de los cuatro contadores después del último tic.

R= Podrían requerirse 64 x 15 ms para cargar 64 páginas de 512 bytes, pero sólo 4 x 25 ms para cargar cuatro páginas de 8K.


17.      ¿Qué tiempo toma cargar un programa de 64K de un disco cuyo tiempo de búsqueda medio es de 30  ms, cuyo tiempo de rotación es de 20 ms y cuyas pistas contienen 32K

(a) si se usan páginas de 2K?

R= 16K por 60 ms

(b) si se usan páginas de 4K?

R=8K por 15ms




18.      Una de las primeras máquinas de tiempo compartido, la PDP-1, tenía una memoria de 4K palabras de 18 bits, y mantenía en memoria sólo un proceso a la vez. Cuando el planificador decidía ejecutar otro proceso, el proceso que estaba en la memoria se escribía en un tambor de paginación, con 4K palabras de 18 bits alrededor de la circunferencia del tambor. El tambor podía comenzar a escribir (o leer) en cualquier palabra, no forzosamente en la palabra 0. ¿Por qué supone usted que se escogió este tambor?

R= por el tiempo de acceso vendrá impuesto por el tiempo de búsqueda de la pista y el tiempo de espera del sector.


19.   Una computadora proporciona a cada proceso 65 536 bytes de espacio de direcciones dividido en páginas de 4096 bytes. Cierto programa tiene un tamaño de texto de 32 768 bytes, un tamaño de datos de 16 386 bytes y un tamaño de pila de 15 870 bytes. ¿Cabrá este programa en el espacio de direcciones? Si el tamaño de página fuera de 512 bytes, ¿cabría el programa? Recuerde que una página no puede contener partes de dos segmentos distintos.

Cada tabla de páginas tiene entradas para 1024 marcos de página de 4K, así que una sola tabla de páginas maneja 4 megabytes de memoria. Un segmento de menos de 4M tendrá un directorio de páginas con una sola entrada, un apuntador a su única tabla de páginas.