Académique Documents
Professionnel Documents
Culture Documents
SISTEMAS OPERATIVOS
UNIDAD 3
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 informacin contenida en ella es de ms rpido acceso. Solo la memoria cache es ms rpida que la principal, pero su costo es a su vez mayor. Rendimiento de la memoria principal Los parmetros para evaluar el rendimiento de la memoria principal son Latencia: tiempo en obtener el primer acceso Ancho de banda: nmero de bytes ledos o escritos por unidad de tiempo Para lograr un buen rendimiento, hay que conseguir el mejor ancho de banda posible entre la cache y la memoria principal, ya que as se disminuye el tiempo de transferencia. El tiempo de acceso o latencia es difcil de reducir. Las posibles organizaciones para mejorar el rendimiento de la memoria Principal son: Aumentar el ancho de la memoria Utilizar memoria entrelazada Utilizar bancos de memoria independientes
auxiliar al
Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda la memoria disponible para ellos. La parte del S. O. que administra la memoria se llama administrador de la memoria:
Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando estos la necesitan. Libera espacio de memoria asignada a procesos que han terminado
3.2.2
JERARQUA DE ALMACENAMIENTO
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. El almacenamiento principal es ms costoso y menor que el secundario pero de acceso ms rpido. 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 cach o memoria de alta velocidad, que posee las siguientes caractersticas:
Es ms rpida y costosa que la memoria principal. Impone al sistema un nivel ms de traspaso: o Los programas son traspasados de la memoria principal al cach antes de su ejecucin. Los programas en la memoria cach ejecutan mucho ms rpido que en la memoria principal. Al utilizar memoria cach 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 ejecucin mucho ms rpida en la cach.
2. facilita la implementacin de los directorios: basta almacenar por cada fichero su direccin de comienzo y su longitud. Desventaja: presenta fragmentacin externa: requiriendo la combinacin de huecos adyacentes y la compactacin de memoria peridicamente.
Los perifricos de e / s frenan la ejecucin de los procesos ya que comparativamente la CPU es en varios rdenes de magnitud ms rpida que los dispositivos de e sistemas de multiprogramacin permiten que varios procesos usuarios compitan al mismo tiempo por los recursos del sistema: Un trabajo en espera de e / s ceder la CPU a otro trabajo que est listo para efectuar cmputos. Existe paralelismo entre el procesamiento y la e / s. Se incrementa la utilizacin de la cpa y la capacidad global de ejecucin del sistema. Es necesario que varios trabajos residan a la vez en la memoria principal.
Multiprogramacin de Particin Fija: Traduccin y Carga Absolutas Las particiones del almacenamiento principal:
Son de tamao fijo. Alojan un proceso cada una. La cpa se cambia rpidamente entre los procesos creando la ilusin de simultaneidad.
Los trabajos se traducan con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una particin especfica
El S. O. resulta de implementacin relativamente sencilla pero no se optimiza la utilizacin de la memoria. Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables Los compiladores, ensambladores y cargadores de relocalizacin:
Se usan para producir programas relocalizables que puedan ser ejecutados en cualquier particin disponible de tamao suficiente para aceptarlos Son ms complejos que los absolutos. Mejoran la utilizacin del almacenamiento. Confieren ms flexibilidad en el armado de la carga de procesos.
Multiprogramacin de Particin Variable Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria
No hay lmites fijos de memoria, es decir que la particin de un trabajo es su propio tamao. Se consideran esquemas de asignacin contigua, dado que un programa debe ocupar posiciones adyacentes de almacenamiento.
Los procesos que terminan dejan disponibles espacios de memoria principal llamados agujeros: Pueden ser usados por otros trabajos que cuando finalizan dejan otros agujeros menores. En sucesivos pasos los agujeros son cada vez ms numerosos pero ms pequeos, por lo que se genera un desperdicio de memoria principal. Combinacin de agujeros (reas libres) Consiste en fusionar agujeros adyacentes para formar uno sencillo ms grande. Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene lmites con otros agujeros. Multiprogramacin con Intercambio de Almacenamiento En el esquema de intercambio los programas del usuario no requieren permanecer en la memoria principal hasta su terminacin. Una variante consiste en que un trabajo se ejecuta hasta que ya no puede continuar: Cede el almacenamiento y la CPU al siguiente trabajo. La totalidad del almacenamiento se dedica a un trabajo durante un breve perodo de tiempo. Los trabajos son intercambiados, dndose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminacin. Es un esquema razonable y eficiente para un nmero relativamente reducido de procesos de usuarios. Los sistemas de intercambio fueron los predecesores de los sistemas de paginacin. El rendimiento de los sistemas de intercambio mejora al reducir el tiempo de intercambio:
Manteniendo al mismo tiempo varias imgenes de usuario o imgenes 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 imgenes de usuario (imgenes de memoria) retiradas del almacenamiento principal se graban en el almacenamiento secundario (discos).
Segundo nivel: almacenamiento auxiliar, secundario o adicional: Generalmente consta de discos de gran capacidad que pueden mantener los programas y datos que no caben al mismo tiempo en el ms limitado almacenamiento real.
3.3.2 PAGINACIN.
La memoria asignada a un trabajo determinado debe de ser contigua o lograr algn mtodo que admita que la memoria de un programa sea no contigua. La paginacin es un mtodo de gestin de memoria que admite que la memoria que utiliza un programa sea no contigua. Toda direccin generada por la CPU se divide en dos partes: un nmero de pgina (p) y un desplazamiento (d). El nmero de pgina se utiliza a modo de ndice en una tabla de pginas. La tabla de pginas contiene la direccin base de cada pgina en la memoria fsica. Esta direccin base se combina con el desplazamiento para definir la direccin de la memoria fsica que se enva a la unida de memoria. El modelo de la paginacin de memoria se muestra en la figura siguiente. La memoria fsica se fragmenta en bloques de tamao fijo llamados celdas de pgina. La memoria lgica tambin se fragmenta en bloques del mismo tamao llamados pginas. Cuando hay que ejecutar un programa se cargan sus pginas en cualesquiera de las celdas que haya disponibles, y se define la tabla de pginas para traducir las pginas de usuario en celdas de memoria. Una forma de llevar a cabo la memoria virtual es mediante el modelo de la paginacin, otra forma sera mediante el modelo de la segmentacin, que veremos a continuacin.
3.3.3 SEGMENTACIN.
Un aspecto importante de la gestin de la memoria que la paginacin convierte en inevitable es la separacin de la visin que el usuario tiene de la memoria y la memoria fsica real. La visin del usuario no coincide con la memoria fsica real. La visin del usuario se transforma en la memoria fsica. La traduccin de direcciones permite esta diferencia entre la memoria lgica y la memoria fsica. El usuario y el programador ven la memoria como una coleccin de segmentos de
longitud variable no necesariamente ordenados, y no como una tabla lineal de palabras. La segmentacin es un esquema de gestin de memoria que soporta la visin que el usuario tiene de la misma. Un espacio de direcciones lgicas es una coleccin de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por la tanto el usuario especifica cada direccin mediante dos cantidades: un nombre de segmento y un desplazamiento. En comparacin en la paginacin se especificaba una nica direccin, que el hardware particionaba en nmero de pginas y desplazamiento, siendo todo ello invisible para el programador. Un programa consta de varias partes: una parte principal y unas subrutinas, procedimientos o mdulos. Tambin puede haber diversas estructuras de datos: tablas, matrices, pilas variables, etc. Cada uno de estos mdulos o elementos de datos se referencian por un nombre. Estos elementos (segmentos) son de longitud variable. Los elementos dentro de un segmento estn identificados por su desplazamiento desde el principio del segmento. Aunque el usuario ahora puede referenciar los objetos del programa por una direccin de dos dimensiones, la memoria fsica real es por supuesto una secuencia unidimensional de palabras. La transformacin se efecta mediante la tabla de segmentos. Una direccin lgica consta de dos partes: un nmero de segmento (s) y un desplazamiento (d). El nmero de segmento se utiliza como un ndice en la tabla de segmentos. Cada entrada en la tabla de segmentos tiene una base del segmento y un lmite. El desplazamiento (d) de la direccin lgica tiene que estar comprendido entre el cero y el lmite del segmento.
s es el nmero del segmento. p es el nmero de pgina. d es el desplazamiento en la pgina donde se encuentra asignado el elemento deseado.
Traduccin Dinmica de Direcciones en Sistemas de Paginacin / Segmentacin Se considera la traduccin dinmica de direcciones de virtuales a reales en un sistema de paginacin / segmentacin utilizando la combinacin de transformacin asociativa / directa.
El proceso en ejecucin hace referencia a la direccin virtual v = (s,p,d) Las pginas de referencia ms reciente tienen entradas en un almacenamiento asociativo. Se realiza una bsqueda almacenamiento asociativo:
asociativa
para
intentar
localizar (s,p) en
el
Si se encuentra (s,p), entonces el marco de pgina p en el cual reside dicha pgina en la memoria real, se concatena al desplazamiento d para formar la direccin de memoria real r correspondiente a la direccin virtual v= (s,p,d).
Si no se encuentra (s,p), entonces: o La direccin base b de la tabla de segmentos se aade al nmero de segmento s formando la direccin b + s de la entrada de la tabla de mapa de segmentos para el segmento s de la memoria real. o La entrada de la tabla de mapa de segmentos indica la direccin base s de la tabla de pginas para el segmento s. o El nmero de pgina p se aade a s formando la direccin p + s de la entrada en la tabla de pginas para la pgina p del segmento s: Indica que p es el nmero del marco correspondiente a la pgina virtual p. p se concatena con el desplazamiento d formando la direccin real r que corresponde a la direccin virtual v = (s,p,d). Si el segmento s no se encuentra en el almacenamiento primario se produce un fallo de prdida de segmento, cuyo caso el S. O. localiza el segmento en el almacenamiento secundario, crea una tabla de pginas para el segmento y carga la pgina apropiada en el almacenamiento primario, pudiendo producir remplazos de pginas. Si el segmento s est en el almacenamiento primario y si la referencia a la tabla de mapa de pginas indica que la pgina deseada no se encuentra en el almacenamiento primario, se produce un fallo de prdida de pgina, en tal caso el S. O. obtiene el control, localiza la pgina en el almacenamiento secundario y la carga, pudiendo reemplazar otra pgina. Si una direccin de almacenamiento virtual est ms all del final del segmento se genera un fallo de desbordamiento de segmento, el que debe ser atendido por el S. O. Si los bits de proteccin indican que la operacin que se va a ejecutar en la direccin virtual referida no se permite, se genera un fallo de proteccin de segmento, el que tambin debe ser atendido por el S. O. Si se utiliza un mecanismo de transformacin directa pura, manteniendo el mapa completo dentro del almacenamiento primario, la referencia promedio de almacenamiento virtual requerira: Un ciclo de almacenamiento para acceder a la tabla de mapa de segmentos. Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa de pginas. Un tercer ciclo de almacenamiento para referenciar al elemento deseado del almacenamiento real. Cada referencia a un elemento comprende tres ciclos de almacenamiento:
El sistema correra casi a 1 / 3 de su velocidad nominal. La traduccin de direcciones insumira 2 / 3 del tiempo. Con la utilizacin de registros asociativos (por ej. 16 registros), se logran velocidades de ejecucin del 90 % o ms de la velocidad total de procesamiento de sus procesadores de control. La estructura de tablas de procesos, de mapas de segmentos y de mapas de pginas puede consumir un porcentaje importante del almacenamiento primario cuando se ejecutan un gran nmero de procesos. La traduccin procede mucho ms rpido si todas las tablas estn en el almacenamiento primario, lo que resta espacio para los procesos
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 pginas actuales, el sistema carga las dems pginas que estarn disponibles cuando las requiera el proceso. El S. O. intenta predecir las pginas que un proceso va a necesitar y a continuacin precarga estas pginas cuando hay espacio disponible Mientras el proceso ejecuta sus pginas actuales, el sistema carga pginas nuevas que estarn disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucin de un proceso se puede reducir.
Las estrategias para la administracin de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan segn esas estrategias.
Estrategias de bsqueda: o Las estrategias de bsqueda por demanda Estrategias de colocacin Estrategias de reposicin
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 numero de marcos de pagina asignados a un proceso. Este fenmeno se denomina Anomalia PEPS o anomala Belady. La columna de la izquierda indica el patrn de referencias a pginas de un proceso. La primera tabla muestra como dicho patrn a referencia de pginas hace que las pginas se
carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de pginas a proceso. La segunda tabla muestra como 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 pagina ocasiona o no una falla de pagina. Cuando el proceso se ejecuta en cuatro pginas, experimenta una falla de pgina ms que cuando se ejecuta con tres. Reemplazo de pginas de la menos reciente utilizada Se selecciona para su reemplazo, a aquella pagina que no se ha sido utilizada durante mayor tiempo. 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 pginas de la menos frecuentemente utilizada (LFU) La pgina 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 pginas corren cierto riesgo de tomar decisiones equivocadas. Esto sucede por el simple hecho de que no se puede predecir con precisin el futuro. Modificaciones de PEPS; reemplazo de paginas por reloj y reemplazo de paginas con segunda oportunidad La estrategia PEPS puede decidir reemplazar una pagina muy utilizada que ha permanecido en memoria durante mucho tiempo. Esta posibilidad se puede evitar reemplazando solo aquellas paginas cuyos bits de referencia valgan O. La variante de PEPS denominada "con segunda oportunidad" examina el bit de referencia de la pgina mas 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 pagina 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 pgina una segunda oportunidad de permanecer en el almacenamiento principal si su bit de referencia cambia a 1 antes de que la pgina llegue al principio de la lista. La variacin '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 pgina toma el valor O, el apuntador se mueve al siguiente elemento de la lista (simulando el movirl1iento de esta pgina al final de la lista PEPS).
Los tiempos de espera de pginas son considerables. Es creciente la cantidad de almacenamiento primario afectada al proceso que espera pginas, por lo que el producto espacio - tiempo se incrementa. El producto espacio - tiempo indica la cantidad de almacenamiento que usa un proceso y la cantidad de tiempo que lo usa. La reduccin del producto espacio - tiempo de las esperas de pginas de un proceso es una meta importante de las estrategias de administracin del almacenamiento.
3.4.5Liberacion de pgina
Los programas que ya no requieran pginas especficas debern desechar tales pginas de sus conjuntos de trabajo. Por lo regular hay un tiempo durante el cual permanecen en el almacenamiento principal la pginas que ya no se requieran. Cuando es evidente que ya no ser necesaria una pgina, un usuario podr dar una orden de "liberacin voluntaria de pgina" para liberar el marco de pgina. Esto eliminara el retraso que implica dejar que el proceso deseche poco a poco la pgina de su conjunto de trabajo.
Cuanto ms pequeo sea el tamao de una pgina, ms pginas y marcos de pginas habr y mayores sern las tablas de pgina. El desperdicio de almacenamiento debido al tamao excesivo de las tablas de pagina se llama fragmentacin de tablas.Esto indica la necesidad de pginas ms grandes.
Con paginas grandes, grandes cantidades de informacin que nunca llegara a ser referenciada, se paginaran hacia el almacenamiento primario Esto indica la necesidad de pginas ms pequeas.