La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

GESTION DE ALMACENAMIENTO

Presentaciones similares


Presentación del tema: "GESTION DE ALMACENAMIENTO"— Transcripción de la presentación:

1 GESTION DE ALMACENAMIENTO

2 INTRODUCCIÓN La memoria es un recurso importante del SO que debe administrar con cuidado. Cada vez, los programas están aumentando de tamaño como las memorias. Todo programador ya quisiera tener una memoria muy grande y muy rápida, que no sea volátil . En tal virtud, las computadoras disponen de una jerarquía de memoria, con una cantidad pequeña de memoria CACHÈ muy rápida, costosa y volátil, por otra parte está la memoria RAM (principal) con algunos GB, volátil y de mediana velocidad y finalmente está el almacenamiento en disco lento, no volátil y corresponde a cientos de GB. Al sistema operativo le toca administrar el uso de estas memorias.

3 JERARQUÍA DE ALMACENAMIENTO
Haciendo una analogía con las oficinas en cuanto a la Jerarquía de Almacenamiento, la información utilizada frecuentemente estará a mano de los empleados, y la información utilizada con menos frecuencia se guardará en carpetas, archivadores de carpeta y archivos definitivos.

4 JERARQUÍA BÁSICA DE LA MEMORIA

5 JERARQUÍA BÁSICA DE LA MEMORIA
La información almacenada en un registro del CPU, puede ser utilizada por el ALU (Unidad Aritmética Lógica) en un ciclo de reloj de la máquina. El CPU puede acceder a la memoria primaria con una sola instrucción de carga o almacenamiento en unos pocos ciclos de reloj. En cambio la MEMORIA SECUNDARIA, está implementada en los dispositivos de almacenamiento, por lo que su acceso implica una acción desde un manejador y un dispositivo físico. Esto quiere decir que los accesos a memoria secundaria toman más de 3 órdenes en magnitud de tiempo que lo correspondiente a la MEMORIA PRINCIPAL.

6 CICLO DE RELOJ DE LA MÁQUINA
Como sabemos, todas las tareas de una computadora están sincronizadas por un reloj hardware. La velocidad de un procesador determina la rapidez con la que ejecuta un paso elemental o cambio en el sistema. Ej. Una máquina que tienen un microprocesador que va a una frecuencia de 100 MHz eso quiere decir que produce alrededor de 100 millones de pasos elementales o cambios en el sistema en un segundo. Pero una instrucción consume algunos de estos pasos mínimos. Supongamos que en media una instrucción consume alrededor de 100 pasos elementales. No podemos interrumpir al procesador a la misma velocidad a la que opera porque entonces no se podría llegar nunca a ejecutar ninguna instrucción. Parece razonable que se elija una frecuencia menor para el reloj de interrupciones. Por ejemplo, se podría generar una interrupción cada 0'02 segundos (tener una frecuencia de 50 Hz) esto significa que se estaría interrumpiendo al procesador cada dos millones de ciclos. En ese tiempo bajo la suposición de que una instrucción consume 100 pasos se habría ejecutado unas instrucciones. Esto sí es mucho más razonable. En resumen el reloj de interrupciones tiene una frecuencia inferior al reloj hardware y superior al cuanto de tiempo o intervalos de tiempo en que se quiera controlar en el sistema.

7 JERARQUÍA BÁSICA DE LA MEMORIA
Actualmente, los computadores tienen muchos niveles en su jerarquía de memoria, que incluye la MEMORIA CACHÉ varias formas de memoria secundaria como discos magnéticos, discos ópticos, memorias de acceso secuencial. Sin embargo se clasifican en 3 niveles, ya que lo antes mencionado forman parte del nivel. Los 3 tipos de memoria son: Los REGISTROS en la CPU que representan el nivel más alto de la memoria del computador. La MEMORIA PRIMARIA o EJECUTABLE, como la RAM, es la capa media de la jerarquía. El CPU puede leer y escribir bytes concretos de/hacia la memoria. La MEMORIA SECUNDARIA, que representan los dispositivos de almacenamiento secundario. Las operaciones de E/S de estos dispositivos se usan para acceder a la información de la memoria secundaria, por eso estas operaciones de acceso están a órdenes de magnitud de lentitud de las operaciones sobre la memoria primaria.

8 JERARQUÍA BÁSICA DE LA MEMORIA

9 GESTIÓN DE MEMORIA La gestión de la memoria de los sistemas contemporáneos realiza a más de las funciones clásicas de gestión de la MEMORIA PRINCIPAL, explotar las jerarquías de almacenamiento. Las jerarquías de almacenamiento suelen mantener varias copias de la información: en pocas palabras, el original de la información es la copia alojada en la memoria secundaria del computador. Se hacen copias en la MEMORIA PRINCIPAL y los REGISTROS DEL CPU para reducir el tiempo necesario para acceder a la información por parte del CPU.

10 GESTIÓN DE MEMORIA La información sólo necesita estar en la MEMORIA PRIMARIA, cuando la usa el software que funciona en el CPU. Un gestor moderno de memoria (gestor de memoria virtual) mueve automáticamente la información entre la MEMORIA PRIMARIA y la SECUNDARIA. Esto significa que el usuario no necesita escribir archivos para copiar la información: el gestor de memoria copia la información en la MEMORIA PRIMARIA cuando no va a ser usada más por el CPU.

11 ASPECTOS GENERALES MEMORIA REAL
Donde se ejecutan los programas y procesos del computador y es el espacio real que existe en memoria para que se ejecuten estos procesos. MEMORIA VIRTUAL El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener mas memoria ram de la que realmente hay en el sistema. Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por lo tanto, pueden usar el espacio de direcciones completo. Esta técnica facilita enormemente la generación de código, puesto que el compilador no tiene porque preocuparse sobre dónde residirá la aplicación cuando se ejecute.

12 ASPECTOS GENERALES ESPACIO DE DIRECCIONES
Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos: Direcciones físicas: son aquellas que referencian alguna posición en la memoria FÍSICA. Direcciones lógicas : son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones , realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas. Direcciones lineales: direcciones lineales se obtienen a partir de direcciones lógicas tras haber aplicado una transformación dependiente de la ARQUITECTURA. ****Los programas de usuario siempre tratan con direcciones virtuales ; nunca ven las direcciones físicas reales

13 ASPECTOS GENERALES Unidad De Manejo De Memoria La unidad de manejo de memoria (MMU) es parte del procesador. Cumple con las siguientes funciones: Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas. Comprobar que la conversión se puede realizar. La dirección lógica podría no tener un dirección física asociada. Por ejemplo, la página correspondiente a una dirección se puede haber trasladado a una zona de almacenamiento secundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello. La MMU se Inicializa para cada proceso del sistema. Esto permite que cada proceso pueda usar el rango completo de direcciones lógicas ( memoria virtual), ya que las conversiones de estas direcciones serán distintas para cada proceso. En todos los procesos se configura la MMU para que la zona del núcleo solo se pueda acceder en modo privilegiado del procesador. La configuración correspondiente al espacio de memoria del núcleo es idéntica en todos los procesos.

14

15 ADMINISTRACIÒN BÀSICA DE MEMORIA
Los sistemas de administración de memoria se pueden dividir en dos clases, los que trasladan procesos entre la memoria y el disco durante la ejecución (INTERCAMBIO Y PAGINACIÓN) y los que no lo hacen. Éstos últimos son más sencillos. Deberá tomar en cuenta que el INTERCAMBIO y la PAGINACIÓN son en buena medida, situaciones causadas por la falta de suficiente MEMORIA PRINCIPAL para contener todos los programas a la vez. Cuando los costos de las memorias principales bajen, entonces los argumentos para utilizar los esquemas de administración de memoria resultarán obsoletos, a menos que el tamaño de los programas crezca con mayor rapidez que las memorias.

16 MONOPROGRAMACIÓN SIN INTERCAMBIO NI PAGINACIÓN
El esquema de administración de memoria más sencillo es cuando se ejecuta un sólo programa a la vez. En este esquema el programa y el SO comparten el mismo espacio de memoria. Puede estar en la base de la memoria en RAM o puede estar en la parte superior de la memoria ROM, o los controladores de dispositivos pueden estar en la parte superior de la memoria en una ROM con el resto del sistema en RAM hasta abajo, siendo este último modelo utilizado por los sistemas MS-DOS. En IBM-PC, la porción del sistema que está en ROM se llama BIOS (Basic Input Output System) Sistema básico de entrada salida.

17 MONOPROGRAMACIÒN SIN INTERCAMBIO NI PAGINACIÒN
Al estar organizado el sistema de cualquiera de las formas indicadas, se podrá ejecutar 1 proceso a la vez, es decir, el SO copia el programa solicitado del disco a la memoria y lo ejecuta. Cuando el proceso termina, el SO exhibe un caracter de indicación y espera un nuevo comando. Cuando el SO lo recibe, carga un nuevo programa en la memoria, sobrescribiendo el primero.

18 MONOPROGRAMACIÒN SIN INTERCAMBIO NI PAGINACIÒN

19 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS
Aunque a veces se usa la mono programación en pequeñas computadoras que utilizan SO sencillos, es preferible en la mayoría de los casos que se pueda ejecutar varios procesos a la vez. Bajo esas circunstancias, los sistemas compartidos, cuando tienen varios procesos en la memoria a la vez, les implica que cuando un proceso está bloqueado esperando que termine una E/S, otro proceso puede utilizar el CPU. De esta manera, la Multiprogramación aumenta el aprovechamiento del CPU. La Multiprogramación consiste en dividir la memoria en N-PARTICIONES, no necesariamente iguales todas. Dicha división puede, por ejemplo realizarse manualmente al inicio del sistema.

20 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS
Cuando llega un trabajo, se le puede colocar en la cola de entrada de la partición pequeña que puede contenerlo. Puesto que las particiones están fijas en este esquema, cualquier espacio de una partición que un trabajo no utilice se desperdiciará. DESVENTAJA La desventaja de repartir los trabajos entrantes en colas distintas se hace evidente cuando la cola de una partición grande está vacía pero la cola de una partición pequeña está llena.

21 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS
Una organización alternativa sería mantener una sola cola. Cada vez que se libera una partición, se selecciona el trabajo más cercano a la cabeza de la cola que cabe en esa partición, y se ejecuta. Puesto que no es deseable desperdiciar una partición grande en un trabajo pequeño, una estrategia diferente consiste en examinar toda la cola de entrada cada vez que se libera una partición y escoger la tarea más grande para que quepa en ella. Sin embargo discrimina el espacio grande a las tareas pequeñas, cuando éstas normalmente son los interactivos y a quién debería darse mejor servicio.

22 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS
Una alternativa a ello es que se deba tener por lo menos una partición pequeña disponible para que puedan ejecutarse trabajos pequeños. Otro enfoque es que se adopte la regla de que un trabajo elegible no puede pasarse por alto más de k-veces. Esto es, cada vez que se pase por alto el trabajo, se le incremente 1 punto, hasta que llegue al tope previamente definido. De tal forma que cuando haya llegado al tope, el sistema deberá tomarlo obligatoriamente. Este método fue utilizado por OS/360 en macro computadores de IBM durante muchos años. En la actualidad se piensa que ya no existe soporte ni se utiliza el método.

23 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS

24 MULTIPROGRAMACIÒN CON PARTICIONES FIJAS

25 PAGINACIÓN

26 INTERCAMBIO En un sistema por lotes, la organización de la memoria en particiones fijas es sencilla y efectiva. Cada trabajo se carga en una partición cuando llega al frente de la cola, y permanece en la memoria hasta terminar. En tanto sea posible mantener en la memoria suficientes trabajos para mantener ocupada al CPU todo el tiempo, no hay por qué utilizar algo más complicado. En los sistemas de tiempo compartido o las computadoras personales orientadas a gráficos, la situación es diferente. A veces no hay bastante memoria principal para contener todos los procesos que están activos actualmente, y los procesos en exceso deben mantenerse en disco y traerse dinámicamente para que se ejecuten.

27 INTERCAMBIO La estrategia más sencilla, llamada INTERCAMBIO, consiste en traer a la memoria cada proceso en su totalidad, ejecutarlo durante un tiempo, y después colocarlo otra vez en el disco. La otra estrategia llamada MEMORIA VIRTUAL, permite a los programa s ejecutarse aunque sólo estén parcialmente en la memoria principal. La diferencia principal entre las particiones fijas y las particiones variables es que el número, ubicación, y tamaño de las particiones varían dinámicamente en el segundo caso conforme los procesos vienen y van, mientras que en el primer caso están fijas.

28 INTERCAMBIO La flexibilidad de no estar atado a un número fijo de particiones que podrán ser demasiado grandes o demasiado pequeñas mejora el aprovechamiento de la memoria, pero también complica la asignación y liberación de memoria, así como su contabilización. Si el intercambio crea múltiples agujeros en la memoria, es posible combinarlos todos para formar uno grande desplazando todos los procesos hacia abajo hasta donde sea posible. Esta técnica se conoce como COMPACTACIÓN DE MEMORIA, y pocas veces se practica porque requiere mucho tiempo de CPU. Cabe indicar que se refiere a la cantidad de memoria que debe asignarse a un proceso cuando se crea o se trae a la memoria. Si los procesos se crean con un tamaño fijo que nunca cambia, la asignación es sencilla: se asigna exactamente lo que se necesita, ni más ni menos.

29 INTERCAMBIO En cambio, si los segmentos de datos de los proceso pueden crecer, por ejemplo, mediante asignación dinámica de memoria desde un montículo, como en muchos lenguajes de programación, ocurrirá un problema cada vez que un proceso trate de crecer. Si un proceso no puede crecer en la memoria, y el área de intercambio en el disco está llena, el proceso tendrá que esperar o morir. Si se espera que la mayor parte de los procesos crezcan durante su ejecución, probablemente será conveniente asignar un poco de memoria adicional cada vez que se traiga un proceso a la memoria o se l e cambie de lugar, a fin de reducir el gasto extra asociado al traslado o intercambio de procesos que ya no caben en la memoria que se les asignó. Sin embargo, al intercambiar los procesos al disco, sólo deben intercambiarse la memoria que se está utilizan realmente, serían un desperdicio intercambiar también la memoria adicional.

30 INTERCAMBIO Si los procesos pueden tener 2 procesos en crecimiento, por ejemplo, el segmento de datos que se está usando como montículo para variables que se asignan y liberan dinámicamente, y un segmento de pila para las variables. Si el espacio se agota, el proceso tendrá que ser transferido a un agujero con suficiente espacio, intercambiarse a disco hasta que pueda crearse un agujero del tamaño suficiente, o terminarse

31 INTERCAMBIO

32 ADMINISTRACIÓN DE MEMORIA CON MAPAS DE BITS
Cuando la memoria se asigna dinámicamente, el sistema operativo se encarga de administrarla. Existen 2 formas de contabilizar la utilización de la memoria: MAPAS DE BITS y LISTAS. MAPA DE BITS Bajo este esquema la memoria se divide en unidades de asignación, tal vez sólo de unas cuantas palabras o quizá de varios kilobytes. A cada unidad de asignación corresponde un bit del mapa de bits, que es 0 si la unidad está libre y 1 si está ocupado (o viceversa). El tamaño de la unidad de asignación es una cuestión de diseño, ya que cuanto menor sea la unidad de asignación, mayor será el MAPA DE BITS.

33 ADMINISTRACIÓN DE MEMORIA CON MAPAS DE BITS
Un MAPA DE BITS ofrece un método sencillo para contabilizar las palabras en una cantidad fija de memoria, porque el tamaño del MAPA DE BITS depende sólo del tamaño de la memoria y del tamaño de la unidad de asignación. Sin embargo, el problema principal es que una vez que se ha decidió traer a la memoria un proceso de k unidades, el administrador de memoria debe buscar en el mapa de bits una serie de k bits en 0 consecutivos. La búsqueda de series de una longitud dada en un mapa de bits es una operación lenta porque la serie puede pasar el límite del mapa.

34 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS

35 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
También se puede mantener una lista enlazada de segmentos de memoria libres y asignados, donde un segmento es un proceso o bien un agujero entre dos procesos. Normalmente, la lista de segmentos se mantiene ordenada por dirección. Este ordenamiento tiene la ventaja de que cuando un proceso termina o es intercambiado a disco, es fácil actualizar la lista. Un proceso que termina normalmente tiene 2 vecinos, a excepción de cuando está en el tope o en la base de la memoria. Sus vecinos pueden ser procesos o agujeros.

36 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
Si los procesos y agujeros se mantienen en una lista ordenada por dirección, se puede usar varios algoritmos para asignar memoria a un proceso recién creado o traído a la memoria. En el supuesto caso que el administrador de memoria sabe cuánta memoria debe asignar. El algoritmo más sencillo es el de PRIMER AJUSTE. El administrador de memoria examina la lista de segmentos hasta encontrar un agujero con el tamaño suficiente. El agujero se divide en 2 fragmentos, el primero para el proceso y el otro para la memoria desocupada, excepto en el poco probable caso de que el ajuste sea exacto. El algoritmo de PRIMER AJUSTE es rápido porque la búsqueda es la más corta posible.

37 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
Una variante menor del PRIMER AJUSTE es el algoritmo llamado SIGUIENTE AJUSTE. Este algoritmo funciona igual que el de PRIMER AJUSTE, excepto que toma nota de dónde está cada vez que se encuentra un agujero adecuado. La siguiente vez que realice la búsqueda, lo hará a partir de donde se quedó la última vez. Otro algoritmo es el de MEJOR AJUSTE, que examina toda la lista y toma el agujero más pequeño y que más se ajuste a la necesidad. En lugar de partir un agujero grande que podría necesitar más adelante. Una variante menor del PRIMER AJUSTE es el algoritmo llamado SIGUIENTE AJUSTE. Este algoritmo funciona igual que el de PRIMER AJUSTE, excepto que toma nota de dónde está cada vez que se encuentra un agujero adecuado. La siguiente vez que realice la búsqueda, lo hará a partir de donde se quedó la última vez. Otro algoritmo es el de MEJOR AJUSTE, que examina toda la lista y toma el agujero más pequeño y que más se ajuste a la necesidad. En lugar de partir un agujero grande que podría necesitar más adelante.

38 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
El MEJOR AJUSTE es más lento que el PRIMER AJUSTE porque debe examinar toda la lista cada vez que se invoca. Lo que resulta sorprendente es que también desperdicia más memoria que el PRIMER AJUSTE o el SIGUIENTE AJUSTE porque tiende a llenar la memoria de pequeños agujeros inútiles. En promedio, el PRIMER AJUSTE genera agujeros más grandes. A fin de sortear el problema de partir un agujero con un tamaño casi igual al requerido para obtener un área asignada al proceso y un agujero diminuto, podríamos considerar el PEOR AJUSTE, es decir tomar siempre el agujero más grande disponible, de modo que el agujero sobrante tenga un tamaño suficiente para ser útil.

39 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
Los 4 algoritmos pueden agilizarse manteniendo listas separadas de procesos y agujeros, sin embargo, su implementación es compleja, costosa. Si se mantienen listas aparte para los procesos y los agujeros, la lista de agujeros puede mantenerse ordenada por tamaño, con el fin de hacer más rápido el algoritmo de MEJOR AJUSTE. Bajo este esquema el algoritmo deberá buscar en la lista desde el agujero más pequeño al más grande, y cuando encuentre el que más se acomode a su necesidad, no seguirá buscando porque ya no será necesario. Entonces los Algoritmos de PRIMER AJUSTE y MEJOR AJUSTE son igualmente rápidos, y el de siguiente ajuste no tiene caso

40 ADMINISTRACIÓN DE MEMORIA CON LISTAS ENLAZADAS
Si los agujeros se mantienen en listas aparte de las de procesos, es posible una pequeña optimización. En lugar de tener un conjunto aparte de estructuras de datos para mantener la lista de agujeros, se pueden utilizar los agujeros mismos. La primera palabra de cada agujero podría ser el tamaño del mismo, y la segunda, un apuntador a la siguiente entrada. Otro algoritmo de asignación más el de AJUSTE RÁPIDO, que mantiene listas por separado para algunos de los tamaños más comunes solicitados

41 FRAGMENTACIÓN Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en cuanto a minimizar tanto el TIEMPO del almacenamiento. Ni el primer o el mejor ajuste es el mejor en términos de uso de espacio, pero por lo general el primer ajuste es más rápido. Problema: La fragmentación. La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa. La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. La fragmentación puede ser: Fragmentación Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua. Fragmentación Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza. ***La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esto solo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.

42 PAGINACIÓN Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página. Las páginas sirven como unidad de almacenamiento de información y de transferencia entre memoria principal y memoria auxiliar o secundaria. Cada marco se identifica por la dirección de marco, que esta en la posición física de la primera palabra en el marco de página. Las páginas de un PROGRAMA necesitan estar contiguamente en memoria, aunque el programador lo observe de esta forma. Los mecanismos de paginación permiten la correspondencia correcta entre las direcciones virtuales (dadas por los programas) y las direcciones reales de la memoria que se reverencien.

43 PAGINACIÓN Para tener el control de las páginas, debe mantenerse una tabla en memoria que se denomina tabla de Mapas de Pagina (PMT) para cada uno de los procesos. Hasta ahora, los métodos que hemos visto de la administración de la memoria principal, nos han dejado con un problema: fragmentación, (huecos en la memoria que no pueden usarse debido a lo pequeño de su espacio) lo que nos provoca un desperdicio de memoria principal. Una posible solución para la fragmentación externa es permitir que espacio de direcciones lógicas lleve a cabo un proceso en direcciones no contiguas, así permitiendo al proceso ubicarse en cualquier espacio de memoria física que esté disponible, aunque esté dividida. Una forma de implementar esta solución es a través del uso de un esquema de paginación. La paginación evita el considerable problema de ajustar los pedazos de memoria de tamaños variables que han sufrido los esquemas de manejo de memoria anteriores. Dado a sus ventajas sobre los métodos previos, la paginación, en sus diversas formas, es usada en muchos sistemas operativos.

44 CARACTERÍSTICAS DE LA PAGINACIÓN
El espacio de direcciones lógico de un proceso puede ser no contiguo. Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames). Se divide la memoria en bloques de tamaño llamados paginas. Se mantiene información en los marcos libres. Para correr un programa de n paginas de tamaño, se necesitan encontrara n marcos y cargar el programa. Se establece una tabla de paginas para trasladar las direcciones lógicas a físicas. Se produce fragmentación interna.

45 VENTAJAS DE LA PAGINACIÓN
Es posible comenzar a ejecutar un programa, cargando solo una parte del mismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estén contiguas en memoria, por lo que no se necesitan procesos de compactación cuando existen marcos de paginas libres dispersos en la memoria. Es fácil controlar todas las páginas, ya que tienen el mismo tamaño. El mecanismo de traducción de direcciones (DAT) permite separar los conceptos de espacio de direcciones y espacios de memoria. Todo el mecanismo es transparente al usuario. Se libera al programador de la restricción de programar para un tamaño físico de memoria, con lo que s e aumenta su productividad. Se puede programar en función de una memoria mucho más grande a la existente. Al no necesitarse cargar un programa completo en memoria para su ejecución, se puede aumentar el numero de programas multiprogramándose. Se elimina el problema de fragmentación externa

46 DESVENTAJAS DE LA PAGINACIÓN
El costo de hardware y software se incrementa, por la nueva información que debe manejarse y el mecanismo de traducción de direcciones necesario. Se consume mucho mas recursos de memoria, tiempo en el CPU para su implantación. Se deben reservar áreas de memoria para las PMT de los procesos. Al no ser fija el tamaño de estas, se crea un problema semejante al de los programas (como asignar un tamaño óptimo sin desperdicio de memoria, u "overead" del procesador). Aparece el problema de fragmentación interna. Así, si se requieren 5K para un programa, pero las paginas son de 4K, deberán asignárseles 2 paginas (8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejados de esta forma puede ser mayor que el de varias paginas, pero no podrá ser utilizados. Debe asignarse un tamaño promedio a las páginas, evitando que si son muy pequeñas, se necesiten TABLAS BMT y PMT muy grandes, y si son muy grandes, se incremente el grado de fragmentación interna.

47 MEMORIA VIRTUAL Una vez que aparecieron los programas demasiado grandes para caber en la memoria disponible. La solución que normalmente se adoptaba era dividir el programa en fragmentos, llamados SUPERPOSICIONES. La SUPERPOSICION 0 era la primera que se ejecutaba. Al terminar, esta superposición llamaba a otra. Algunos sistemas de SUPERPOSICIÓN eran muy complejos, pues permitían varias SUPERPOSICIONES en la memoria a la vez. Las SUPERPOSICIONES se mantenían en disco y el sistema operativo las intercambiaba con la memoria dinámicamente, según fuera necesario. Aunque el trabajo real de intercambiar las SUPERPOSICIONES corría por cuenta del sistema, la tarea de dividir el programa en fragmentos era del programador. La división de programas grandes en fragmentos modulares pequeños consumía tiempo y era tediosa.

48 MEMORIA VIRTUAL Afortunadamente, inventaron un método en el año 1961, lo que ahora se conoce con el nombre de MEMORIA VIRTUAL. El método consistía en que el tamaño combinado del programa, los datos y la pila puede exceder la cantidad de memoria física disponible para él. El sistema operativo mantiene en la memoria principal las partes del programa que actualmente se están usando, y el resto en el disco. El concepto de MEMORIA VIRTUAL funciona en el sistema de MULTIPROGRAMACIÓN, manteniendo segmentos de muchos programas en la memoria a la vez. Mientras un programa está esperando que se traiga a la memoria una de sus partes, está esperando E/S y no puede ejecutarse, así que puede otorgarse el CPU a otro proceso, lo mismo que en cualquier otro sistema de multiprogramación

49 MEMORIA VIRTUAL


Descargar ppt "GESTION DE ALMACENAMIENTO"

Presentaciones similares


Anuncios Google