Unidad 3 Sistemas Operativo

27
Administracion de Memoria 3.1 Política y Filosofía Filosofía La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamano. Cada localidad de almacenamiento tiene asignada una direccion que la identifica. Una de las funciones basicas que debe implementar un SO es la Administracion de la Memoria para tener un control sobre los lugares donde estan almacenados los datos y procesos que actualmente se estan utilizando. Sea cual sea es esquema de organizacion 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 politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una politica de prioridades y hay procesos con la misma prioridad, a estos se les podria aplicar FIFO. (Ver figura (1)) Figura 3.1.1 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. (Ver figura(2))

Transcript of Unidad 3 Sistemas Operativo

Administracion de Memoria3.1 Poltica y Filosofa

Filosofa

La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamano. Cada localidad de almacenamiento tiene asignada una direccion que la identifica.Una de las funciones basicas que debe implementar un SO es la Administracion de la Memoria para tener un control sobre los lugares donde estan almacenados los datos y procesos que actualmente se estan utilizando.Sea cual sea es esquema de organizacion del almacenamiento que se adopte para un sistema especifico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento optimo.

Polticas

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 politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una politica de prioridades y hay procesos con la misma prioridad, a estos se les podria aplicar FIFO. (Ver figura (1))

Figura 3.1.1Round 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. (Ver figura(2))

Figura 3.1.2SJF (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 podrian llegar a rezagarse mucho tiempo e incluso nunca ejecutarse. (Ver Figura(3))

Figura 3.1.3SRT (Sortest remaining time scheduling ? Tiempo restante mas corto. En SJF una vez que un proceso comienza su ejecucion continua hasta terminar. En SRT, un proceso en ejecucion puede ser desposeido por uno nuevo de menor tiempo de ejecucion. (Ver Figura(4))

Figura 3.1.4HRN: (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 funcion del tiempo de servicio sino tambien del tiempo que ha esperado para ser atendido.(Ver Figura(5))

3.2 Memoria Real

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la informacion contenida en ella es de mas rapido acceso.Solo la memoria cache es mas rapida que la principal, pero su costo es a su vez mayor.Cuando no existe memoria virtual no hay diferenciacion entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene identico tamano al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamano 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 organizacin y administracin de la memoria principal,memoria primariaomemoria realde un sistema ha sido y es uno de los factores mas importantes en el diseo de los S. O. (Ver la figura 3.2.1)Los trminosmemoriayalmacenamientose consideran equivalentes.Los programas y datos deben estar en el almacenamiento principal para: Poderlos ejecutar. Referenciarlos directamente

3.2.1 Administracion de almacenamiento

Cmo se maneja la administracin de almacenamiento?

Para que un sistema informatico sea comodo para los usuarios, el sistema operativo proporciona una ista logica y uniforme del sistema de almacenamiento de la informacion.. El sistema operativo abstrae las propiedades fisicas de los dispositivos de almacenamiento y define una unidad de almacenamiento logico, elarchivo.El sistema operativo asigna los archivos a los soportes fisicos y accede a dichos archivos a traves de los dispositivos de almacenamiento.

Almacenamiento del sistema de archivos

La gestion de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar la informacion en diferentes tipos de medios fisicos.Los discos magneticos, discos opticos y cintas magneticas son habituales. . Cada uno de estos medios tiene sus propias caracteristicas y organizacion fisica.Cada medio se controla mediante un dispositivo, tal como una unidad de disco o una cinta, que tambien tiene sus propias caracteristicas distintivasEstas propiedades incluyen la velocidad de acceso, la capacidad, la velocidad de transferencia de datos y el metodo de acceso (secuencial o aleatorio). Un archivo es una coleccion de informacion relacionada definida por su creador. Comunmente, los archivos representan programas(tanto en formato fuente como en objeto) y datos. Los archivos de datos pueden ser numericos, alfabeticos, alfanumericos o binarios. Los archivos pueden tener un formato libre(como, por ejemplo, los archivos de texto) o un formato rigido, como por ejemplo una serie de campos fijos.

3.2.2 Jerarquia

Los programas y datos tienen que estar en la memoria principal para poder ejecutarseo ser referenciados.Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario.El almacenamiento principal es mas costoso y menor que el secundario pero de acceso mas 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 elcacheomemoria de alta velocidad,que posee las siguientes caractersticas: Es ms rpida y costosa que la memoria principal. Impone al sistema un nivel mas de traspaso: Los programas son traspasados de la memoria principal al cache antes de su ejecucin. Los programas en la memoria cache ejecutan mucho mas rpido 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 ejecucin mucho mas rpida en la cache

3.2.3 Estrategias de Administracion de Memoria

Estn dirigidas a la obtencin del mejor uso posible del recurso del almacenamiento principal.Se dividen en las siguientescategoras: Estrategias de bsqueda: Estrategias de bsqueda por demanda. Estrategias de busqueda anticipada. Estrategias de colocacin. Estrategias de reposicin.Lasestrategias de busquedaestn relacionadas con el hecho de cuando obtener el siguiente fragmento de programa o de datos para su insercin en la memoria principal.En labusqueda por demandael siguiente fragmento de programa o de datos se carga al almacenamiento principal cuando algn programa en ejecucin lo referencia.Se considera que labusqueda anticipadapuede producir un mejor rendimiento del sistema.Lasestrategias de colocacinestn relacionadas con la determinacin del lugar de la memoria donde se colocara (cargara) un programa nuevo.Lasestrategias de reposicinestn relacionadas con la determinacin de que fragmento de programa o de datos desplazar para dar lugar a los programas nuevos.

3.2.4 Asignacion continua V.S No continua

Qu es la administracin contigua y no contigua?En laasignacin contiguacada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.Asignacin contigua de almacenamiento de un solo usuarioSe consideran S. O. que ya poseen desarrollado elsistema de control de entrada / salida: IOCS: input / output control system (ver Figura 3.2.4.1):

El tamao de los programas esta limitado por la cantidad de memoria principal, pero se puede superar este limite con tcnicas de recubrimientos, con las siguientes caractersticas. (Ver figura 3.2.4.2) Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde el almacenamiento secundario ocupando las reas de memoria liberadas por la seccin que ya no se necesita. La administracin manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento.

Figura 3.2.4.2En laasignacin no contiguaun programa se divide en varios bloques osegmentosque pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es mas compleja pero mas eficiente que la asignacin continua. (Ver figura 3.2.4.3)

3.2.5 Multiprogramacion de particion fija, Particion Variable de intercambio de almacenamiento

Multiprogramacin de Particin Fija.Los sistemas de un solo usuario desperdician gran cantidad de recursos computacionales debido a que: Cuando ocurre una peticin de e / s la cpu normalmente no puede continuar el proceso hasta que concluya la operacin de e / s requerida. Los perifricos de e / s frenan la ejecucin de los procesos ya que comparativamente la cpu es varios rdenes de magnitud ms rpida que los dispositivos de e / s. (Ver figura 3.2.5.1)

Figura 3.2.5.1 Los sistemas demultiprogramacinpermiten 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 este listo para efectuar cmputos. Existe paralelismo entre el procesamiento y la e / s. Se incrementa la utilizacin de la cpu 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 cpu se cambia rpidamente entre los procesos creando lailusin de simultaneidad.Los trabajos se traducan con ensambladores y compiladores absolutos para ser ejecutados solo dentro de una particin especifica.(Ver figura 3.2.5.2)

Figura 3.2.5.2El S. O. resulta de implementacin relativamente sencilla perono se optimiza la utilizacin de la memoria.Multiprogramacin de Particin Fija: Traduccin y Carga Relocalizables.Los compiladores, ensambladores y cargadores de relocalizacion (Ver figura 3.2.5.3)) : 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.

Figura 3.2.5.3Proteccin en los Sistemas de MultiprogramacinSi se utiliza asignacin contigua de memoria la proteccin suele implementarse con variosregistros de limites.(Ver figura 3.2.5.4 y figura 3.2.5.5)Los extremos superior e inferior de una particin pueden ser: Delineados con dos registros. Indicados el limite inferior o superior y el tamao de la particin o regin.

Figura 3.2.5.4

Figura 3.2.5.5Fragmentacin en la Multiprogramacin de Particin Fija.Lafragmentacin de almacenamientoocurre en todos los sistemas independientemente de su organizacin de memoria.En los S. O. de multiprogramacin de particin fija la fragmentacin se produce cuando: Los trabajos del usuario no llenan completamente sus particiones designadas. Una particin permanece sin usar porque es demasiado pequea para alojar un trabajo que esta en espera.Multiprogramacin de Particin Variable.Los procesos ocupan tanto espacio como necesitan, pero obviamente no deben superar el espacio disponible de memoria. (Ver figura 3.2.5.6)

Figura 3.2.5.6No hay limites fijos de memoria, es decir que la particin de un trabajo es su propio tamao.Se consideranesquemas de asignacin contigua,dado que un programa debe ocupar posiciones adyacentes de almacenamiento.Los procesos que terminan dejan disponibles espacios de memoria principal llamadosagujeros: Pueden ser usados por otros trabajos que cuando finalizan dejan otrosagujerosmenores. En sucesivos pasos losagujerosson cada vez mas numerosos pero mas pequeos, por lo que se genera un desperdicio de memoria principal.Combinacin de agujeros (reas libres).Consiste enfusionar agujeros adyacentespara formar uno sencillo ms grande.Se puede hacer cuando un trabajo termina y el almacenamiento que libera tiene limites con otros agujeros.Multiprogramacin con Intercambio de AlmacenamientoEn el esquema deintercambiolos 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 periodo de tiempo. Los trabajos sonintercambiados,dndose que un trabajo puede ser intercambiado varias veces antes de llegar a su terminacin.Es un esquema razonable y eficiente para un numero 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 eltiempo de intercambio: Manteniendo al mismo tiempo variasimgenes de usuario o imgenes de memoriaen 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).

3.3Organizacion de Memoria Virtual

Memoria VirtualLa memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina.Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica.La memoria virtual ha llegado a ser un componente esencial de la mayora 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 tambin simplifica la carga del programa para su ejecucin llamado reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria fsica.

3.3.1Evalucacion 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 computacin .Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema Atlas.Losmtodosms comunes de implementacin son mediante: Tcnicas depaginacin. Tcnicas desegmentacin. Una combinacin de ambas tcnicas.Las direcciones generadas por los programas en su ejecucin no son, necesariamente, aquellas contenidas en el almacenamiento primario (memoria real), ya que lasdirecciones virtualessuelen seleccionarse dentro de un numero mucho mayor de direcciones que las disponibles dentro del almacenamiento primario.Laevolucin en las organizaciones de almacenamientopuede resumirse como sigue: Real: Sistemas dedicados a un solo usuario. Real: Sistemas de multiprogramacin en memoria real: Multiprogramacin en particin fija: Absoluta. Relocalizable (reubicadle). Multiprogramacin en particin variable. Virtual: Multiprogramacin en almacenamiento virtual: Paginacin pura. Segmentacin pura. Combinacin paginacin / segmentacin.

3.3.2Paginacion

Qu es la paginacin?El termino memoria virtual se asocia normalmente con sistemas que emplean paginacin, aunque tambin se puede usar memoria virtual basada en la segmentacin. El uso de la paginacin en la memoria virtual fue presentado por primera vez en el computador Atlas.Cada proceso tiene su propia tabla de paginas y cuando carga todas sus paginas en la o memoria principal. Puesto que solo algunas de las pginas 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 esta presente en la memoria principal o no. Si el bit indica que la pagina esta en la memoria, la entrada incluye tambin el nmero de marco para esa pagina.Otro bit de control necesario en la entrada de la tabla de pginas es el bit de modificacin (M), para indicar si el contenido de la pgina correspondiente se ha alterado desde que la pgina se cargo en la memoria principal. Si no ha habido cambios, no es necesario escribir la pgina cuando sea sustituida en el marco que ocupa actualmente.Estructura de la tabla de pginasEl mecanismo bsico de lectura de una palabra de la memoria supone la traduccin por medio de la tabla de pginas de una direccin virtual o lgica (ver figura 3.3.2.1 y 3.3.2.2), formada por un numero de pagina y un desplazamiento, a una direccin fsica que esta formada por un numero de marco y un desplazamiento.Con la memoria virtual, la CPU produce direcciones virtuales que son traducidas por una combinacin de hardware y software a direcciones fsicas, pues pueden ser utilizadas para acceder a memoria principal. Este proceso se denomina correspondencia de memoria o traduccin de direcciones. Actualmente los dos niveles de la jerarqua de memoria controlados por la memoria virtual son las DRAM y los Discos magnticos.Puesto que la tabla de pginas es de longitud variable, en funcin del tamao del proceso, no es posible suponer que quepa en los registros.

Figura 3.3.2.1

3.3.3Segmentacion

Implicaciones de la memoria virtual

La segmentacin permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaos, incluso de forma dinmica. Las referencias a la memoria constan de una direccin de la forma (numero de segmento, desplazamiento).Esta organizacin ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:1. Simplifica la gestin de estructuras de datos crecientes. Si el programador no conoce a priori cuan larga puede llegar a ser una estructura de datos determinada, es necesario suponerlo a menos que se permitan tamaos de segmentos dinmicos. 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 comparicin 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 proteccin. Puesto que un segmento puede ser construido para albergar un conjunto de procedimientos y datos bien definido, el programador o el administrador del sistema podrn asignar los permisos de acceso de la forma adecuada.OrganizacinEn el estudio de la segmentacin simple, se llego a la conclusin 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 direccin 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 segmentacin donde las entradas de la tabla de segmentos pasan a ser mas complejas.Puesto que solo algunos de los segmentos de un proceso estarn en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente esta presente en la memoria principal. Si el bit indica que el segmento esta en la memoria, la entrada incluye tambin la direccin de comienzo y la longitud del segmento.

Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificacin 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.

3.3.4Sistema de paginacion / segmentacion

La paginacin y la segmentacin puras son mtodos de manejo de memoria bastante efectivos, aunque la mayora de los sistemas operativos modernos implantan esquemas combinados, es decir, combinan la paginacin y la segmentacin.La idea de combinar estos esquemas se debe a que de esta forma se aprovechan los conceptos de la divisin lgica de los programas (segmentos) con la granularidad de las pginas. De esta forma, un proceso estar repartido en la memoria real en pequeas unidades (paginas) cuya liga son los segmentos. Tambin 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 vera como se traduce una direccin virtual en una localidad de memoria real. Para la paginacin y segmentacin puras se puede decir que el direccionamiento es `bidimensional' porque se necesitan dos valores para hallar la direccin 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 rengln de esa tabla se tiene un nmero de proceso y una direccin 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 nmeros de los segmentos que componen a ese proceso.Por cada segmento se tiene una direccin a una tabla de pginas. Cada tabla de pginas tiene las direcciones de las pginas 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 pginas (o segmentos) a la memoria RAM.Se usan ms comnmente dos estrategias: cargado de pginas por demanda y cargado de pginas anticipada. La estrategia de cargado por demanda consiste en que las pginas solamente son llevadas a RAM si fueron solicitadas, es decir, si se hizo referencia a una direccin que cae dentro de ellas.La carga anticipada consiste en tratar de adivinar que paginas sern 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 fenmeno de localidad y que las paginas que se cargan por anticipado sean aquellas que contienen direcciones contiguas a la direccin que se acaba de refenciar. De hecho, el sistema operativo VMS usa un esquema combinado para cargar pginas: cuando se hace referencia a una direccin cuya pgina no esta en RAM, se provoca un fallo de pgina y se carga esa pgina junto con algunas pginas adyacentes. En este caso la pgina solicitada se cargo por demanda y las adyacentes se cargaron por anticipacin.

Figura 3.3.4.1

3.4Almacenamiento de Memoria Virtual

La clave del concepto de memoria (almacenamiento) virtual esta en la disociacin: 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.3.4.1Estrategias de Administracion

Estrategias de ObtencinDeterminan cuando se debe de transferir una pagina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencion por demanda esperan a que un proceso en ejecucion haga referencia a una pagina o un segmento antes de traer la pagina o el segmento de almacenamiento primario. Los esquemas de obtencion anticipada intentan determinar por adelantado a cuales paginas o segmentos hara referencia un proceso.Estrategias de ColocacinDeterminan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pagina entrante se puede colocar en cualquier marco de pagina disponible.Estrategias de ReemplazoSirven para decidir cual pagina o segmento se debe desplazar para dar espacio a una pagina o segmento entrante cuando esta completamente ocupado el almacenamiento primario.3.4.2Tecnicas de reemplazo de pagina

Las rutinas de administracion de almacenamiento del Sistema operativo deben decidir que pagina del almacenamiento primario se debe desplazar para dejar espacio a una pagina entrante .Principio de OptimalidadPara obtener un rendimiento optimo, la pagina que se debe reemplazar es aquella que tardara mas tiempo en ser utilizada. Esta estrategia optima de reemplazo se denomina OPT o MIN.Reemplazo de Pginas aleatorioEs una tecnica sencilla. Todas las paginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el reemplazo. Esta estrategia podria seleccionar cualquier pagina para ser reemplazada, incluyendo la siguiente pagina la que se hara referencia. Las decisiones de reemplazo aleatorio se de paginas se pueden tomar rapidamente y con un numero significativo de marcos de pagina. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar.Reemplazo de pginas de primeras entradas-primeras salidas (PEPS)Cada pagina se registra en el instante que entro en el almacenamiento primario. Cuando se necesita reemplazar una pagina, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo.Anomalias PEPSBelady, 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 fenomeno se denomina Anomalia PEPS o anomalia Belady. La columna de la izquierda indica el patron de referencias a paginas de un proceso. La primera tabla muestra como dicho patron a referencia de paginas hace que las paginas se carguen a memoria y se reemplacen en secuencia PEPS cuando se asignan tres marcos de paginas 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 paginas, experimenta una falla de pagina mas que cuando se ejecuta con tres.Reemplazo de pginas de la menos reciente utilizadaSe selecciona para su reemplazo, a aquella pagina que no se ha sido utilizada durante mayor tiempo. La estrategia se basa en que la heuristica de localidad segun en el cual el pasado reciente es un buen indicador del futuro cercano, de modo que LRU exige que se marque cada pagina 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 paginas 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 precision el futuro.Modificaciones de PEPS; reemplazo de paginas por reloj y reemplazo de paginas con segunda oportunidadLa 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 segunde oportunidad" examina el bit de referencia de la pagina 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 sera 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 variacion '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 pagina toma el valor O, el apuntador se mueve al siguiente elemento de la lista (simulando el movirl1iento de esta pagina al final de la lista PEPS).

3.4.3Paginacion por demanda

Paginacin bajo demandaConsidere como podria cargarse un programa ejecutable desde el disco a la memoria. Una opcion consiste encargar el programa completo en memoria fisica en el momento de ejecutar el programa. Sin embargo, esta tecnica presenta el problema de que puede que no necesitemos inicialmente todo el programa en la memoria.Las paginas de un proceso deben cargarse por demanda. No se debe transferir ninguna pagina al almacenamiento secundario al primado hasta que un proceso en ejecucion haga explicitamente referencia a ella. Hay varias razones por las cuales es atractiva esta estrategia. Los resultados de la teoria de la computabilidad, especifica mente el problema de la detencion (Mi67) (He77), indican que no se puede predecir con precision la trayectoria de ejecucion que seguira un programa. Asi pues, cualquier intento de cargar paginas con anticipacion a su uso puede hacer que se carguen las paginas equivocadas.La paginacion por demanda garantiza que las unicas paginas que se transfieren al almacenamiento principal son aquellas que requieren los procesos. El trabajo extra requerido para decidir cuales paginas se deben transferir al almacenamiento principal es minimo. Las estrategias de obtencion anticipada de paginas G pueden requerir mucho tiempo de ejecucion adicional

3.4.4Paginacion anticipada

Qu es la paginacin anticipada?En la paginacion 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 paginas actuales, el sistema carga las demas paginas que estaran disponibles cuando las requiera el proceso.El S. O. intenta predecir las paginas que un proceso va a necesitar y a continuacion precarga estas paginas cuando hay espacio disponible Mientras el proceso ejecuta sus paginas actuales, el sistema carga paginas nuevas que estaran disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucion de un proceso se puede reducir.

3.4.5Liberacion de pagina

Qu es la paginacin anticipada?En la paginacion 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 paginas actuales, el sistema carga las demas paginas que estaran disponibles cuando las requiera el proceso.El S. O. intenta predecir las paginas que un proceso va a necesitar y a continuacion precarga estas paginas cuando hay espacio disponible Mientras el proceso ejecuta sus paginas actuales, el sistema carga paginas nuevas que estaran disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucion de un proceso se puede reducir.3.4.6Tamao de la pagina

Generalmente el almacenamiento real se divide en marcos o celdas de pagina de tamano fijo.Los interrogantes tienen que ver con el tamano de las paginas, si todas las paginas tendran igual tamano, si en caso de utilizar paginas de diferente tamano las paginas mayores deben ser o no multiplos enteros de las menores, etc.Algunas consideraciones para determinar el tamano de pagina son las siguientes: Cuanto mas pequeno sea el tamano de una pagina, mas paginas y marcos de paginas habra y mayores seran las tablas de pagina.El desperdicio de almacenamiento debido al tamano excesivo de las tablas de pagina se llama fragmentacion de tablas.Esto indica la necesidad de paginas mas grandes. Con paginas grandes, grandes cantidades de informacion que nunca llegaria a ser referenciada, se paginaran hacia el almacenamiento primarioEsto indica la necesidad de paginas mas pequenas.