• No se han encontrado resultados

asignadas

Fase de la ejecución (Localidad)

Transiciones

Fig. 5.29. Fases de ejecución y transiciones de un procesador sobre un proceso.

El principio de estados de localidad durante las fases de ejecución, de un dado programa, requiere de un subconjunto pequeño de páginas virtuales durante un tiempo dado. El conjunto de páginas usado durante una fase es el conjunto de localidad de la fase. Nótese que las fases no son uniformes en la longitud (tiempo). Las fases de un programa pueden arbitrariamente definirse como una secuencia de referencias que se hacen a una localidad. Esto se conoce como trazas de páginas referenciadas. En un programa real se verían estas referencias como se indica en la Figura 5.30

Las direcciones que generan los procesos son direcciones virtuales. Las direcciones de memoria que referencian a la memoria central se denominan "direcciones reales". Por más que los procesos hagan referencia a direcciones virtuales, sólo pueden ejecutarse en el almacenamiento primario; por lo tanto las direcciones virtuales deben ser transformadas en direcciones reales mientras el proceso esta en ejecución. Para ello se recurre a un traductor de direcciones llamado mapper.

Fig. 5.30 Comportamiento de un programa paginado en ejecución

El mecanismo de traducción de direcciones deberá mantener mapas que ilustren que direcciones del almacenamiento virtual se encuentran en memoria real, y donde se localizan físicamente.

La información se agrupa en bloques o marcos (frames) y el sistema operativo debe estar informado del lugar en que se encuentra almacenada cada página. Cuando los bloques son del mismo tamaño se implementa la paginación. Si los bloques son de tamaño variable se implementa la segmentación.

Entonces, la administración de memoria paginada por demanda elimina el requerimiento que todo el espacio de dirección de un trabajo está en la memoria central al mismo tiempo; en lugar de ello solo se cargan unas pocas porciones del mismo. Las razones fundamentales por lo que los programas usan una pequeña porción de todo su espacio de direccionamiento durante una ejecución son aquellas porciones de programa que se ejecutan deben estar cargadas en la memoria central y las que no se ejecutan pueden estar en el disco, como por ejemplo las rutinas de manejo de errores que generalmente se invocan al ocurrir el problema, entonces se cargan cuando se las necesita. Otro motivo puede ser que determinadas rutinas de los programas se usan en tiempos mutuamente excluyentes por ejemplo en un ABM (Alta, Baja o Modificación) de Clientes, cuando se procesa un alta no se procesa una baja o una modificación, etc.

Cuando se planifica inicialmente un trabajo para su ejecución, generalmente solo se carga físicamente sus primeras páginas, y las demás páginas que necesite el trabajo se cargan subsecuentemente bajo solicitud o demanda de la ejecución, por lo que la memoria se asigna y se desasigna durante la ejecución del trabajo.

Cuando un trabajo hace referencia a un área del espacio de direccionamiento que no está en la memoria física, el Hardware de mapeo genera una interrupción por falta de página (Page fault). El S.O. procesa ésta interrupción, no como una excepción (trap) sino una interrupción que realiza el servicio de cargar las páginas requeridas desde el almacenamiento secundario (swap-in) y actualiza en forma adecuada las entradas de la tabla de páginas, luego reinicia la ejecución de la instrucción interrumpida. Las páginas solicitadas están cargadas en un dispositivo de almacenamiento secundario donde se ha reservado una copia de todo el espacio de direccionamiento del trabajo.

Una vez que la memoria se ha llenado con páginas y ante la demanda de un espacio adicional, solo es posible cargar una serie de páginas nuevas desde el disco si previamente se elimina primero algunas de las que ya estén residentes en la memoria (esto se plantea en la Fig. 5.31). Las páginas reemplazadas (víctimas) se copian al dispositivo de almacenamiento secundario antes de cargar la nueva si es que sufrieron alguna modificación durante su procesamiento. Esta técnica se llama sustitución, intercambio o trueque de página.

Los algoritmos que deciden que página remover han sido el centro de extensas investigaciones y apuntan a evitar el fenómeno de mover excesivamente las páginas entre la memoria y los dispositivos de almacenamiento secundario (conocido como azotado, hiperpaginación o thrashing que estudiaremos mas tarde en éste módulo) ya que genera un gran overhead. Esto se conoce como degradación de la multiprogramación (Degree of Multiprogramming) que es el número de procesos activos que hay en el sistema compitiendo por el uso del procesador. De aquí surgen dos nuevos elementos a tener en cuenta:

CPU Utilization: El porcentaje de tiempo que el CPU está ocupado y no está esperando para periféricos para completar de procesar un trabajo.

Load: El número de procesos activos que hay en el sistema. Para ver el desempeño del sistema se definen estos conceptos:

Memory Queue: Las transacciones tienen lugar en la cola de memoria hasta que los recursos en el sistema sean liberados para hacer la transacción.

Multiprogramming Level (MPL): El número de procesos activos que hay en el sistema. Response Time: La cantidad de tiempo que un procesos esta con un servidor, incluyendo el

tiempo de servicio.

Server: También se refiere a un dispositivo. Un componente del sistema que mejora el trabajo para las transacciones que realizan los procesos

Service Time: La cantidad de tiempo que un servidor se toma para completar el trabajo en una tarea y devolver el servicio.

Throughput: El número de transacciones o tareas completas por el sistema o por el servidor por segundo.

Visit Ratio: El número de veces que una transacción o tarea es solicitado por un servidor antes de salir del sistema.

Estos conceptos lo ampliaremos mas adelante pero sirven para diseñar el administrador quien deberá considerar estos parámetros para una eficiente ejecución del sistema. Por ejemplo mantener un adecuado nivel de multiprogramación para procurar minimizar las fallas de páginas y por consiguiente no degradar el sistema. Se suele recurrir al siguiente modelo de administrador:

Entrada Cola de memoria Procesa- dores Control Disco de paginación Salida

Fig. 5.31. Modelo de administrador de paginación por demanda

Función activa de ejecución

La función de control regula la carga del sistema de forma que el desempeño esté en el límite acotado por el throughput, el tiempo de respuesta, etc., que se haya fijado como estrategia de administración.

Para ayudar al S.O. a tomar las decisiones de sustitución, generalmente el Hardware mantiene cierta información acerca del uso de las páginas a través del mapeo de direcciones mediante información adicional que se incorpora a las tablas de mapeo de páginas. Para cumplir con esta tarea se necesita tres cosas:

Un bit de estado en la tabla del mapa de páginas que indique si la página está en memoria central o

en el almacenamiento secundario.

♦ Una acción de interrupción que transfiera el control al S.O. si el trabajo trata de acceder a una página

que no está en la memoria central.

♦ Un registro del uso de las páginas individuales para que el S.O. pueda determinar cuales eliminar

cuando sea necesario.

La administración de memoria paginada por demanda puede lograr lógicamente una utilización de memoria central superior al cien por cien, o sea, que la suma de todos los espacios de direccionamiento de los trabajos multiprogramados puede superar el tamaño de la memoria física.

Resumiendo:

Memoria virtual: es una técnica que permite simular una memoria central mayor de la que realmente hay disponible en el Sistema, usando un dispositivo de memoria secundaria (generalmente un disco rápido) conjuntamente con un mecanismo de extensión del direccionamiento y se puede ver como la separación de la memoria lógica del usuario de la memoria física.

b) Las funciones de administración de memoria paginada bajo demanda:

Documento similar