administración de memoria

92
"ADMINISTRACION DE MEMORIA " Sistemas Operativos Heder Ithamar Romero Romero MTI. Felipe Rodríguez Ramírez

Upload: heder-ithamar

Post on 21-Jul-2015

488 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Administración de memoria

"ADMINISTRACION DE MEMORIA"

Sistemas Operativos

Heder Ithamar Romero Romero

MTI. Felipe Rodríguez Ramírez

Page 2: Administración de memoria

Administración de la Memoria

La parte del sistema operativo que administra la memoria se llamaadministrador de la memoria.Para ello existen diferentes esquemas de administración de memoriadesde los mas simples hasta los mas elaborados entre los cuales seubican:

• Administración de la memoria sin intercambio o paginación.

• Mono programación sin intercambio o paginación.

• Multiprogramación y uso de la memoria.

• Multiprogramación con particiones fijas

Page 3: Administración de memoria

• Intercambio

• Multiprogramación con particiones variables.

• Memoria Virtual

• Paginación

• Algoritmos de reemplazo de páginas.

• Algoritmo de página de uso no muy reciente.

• Algoritmo de reemplazo “ primero en entrar, primero en salir FIFO”

• Algoritmo de reemplazo de páginas de la segunda oportunidad

• Algoritmo de reemplazo de páginas del reloj

• Segmentación

Page 4: Administración de memoria

Administración de la memoria sin intercambio o paginación.

• Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.

Page 5: Administración de memoria

Mono programación sin intercambio o paginación.

• Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.

Page 6: Administración de memoria

Gestión de memoria sin intercambio

Memoria ocupada en

un solo proceso

Page 7: Administración de memoria

Multiprogramación y uso de la memoria.

• La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S. Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula : Uso de la CPU = 1 − pn

Page 8: Administración de memoria

Multiprogramación con particiones fijas

• El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también. Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.

Page 9: Administración de memoria
Page 10: Administración de memoria

• Intercambio de Memoria

La organización de la memoria en particiones fijas resulta simple y efectiva.

Page 11: Administración de memoria

Intercambio

• En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.

Page 12: Administración de memoria

Multiprogramación con particiones variables.

• Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria

• Otros métodos de administración de memoria que tenemos son:

Page 13: Administración de memoria

• La administración de memoria con mapa de bits

• la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.

• La administración de memoria con listas ligadas

• otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.

• La administración de memoria con el sistema de los asociados

• basado en el sistema binario o utiliza para las direcciones.

Page 14: Administración de memoria

Memoria Virtual

• El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello.

• El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.

Page 15: Administración de memoria

• La memoria virtual es una técnica para proporcionar lasimulación de un espacio de memoria mucho mayor quela memoria física de una máquina.

• Esto permite que los programas se hagan sin tener encuenta el tamaño exacto de la memoria física.

Page 16: Administración de memoria

Direcciones Lógicas Y Físicas

• El concepto de espacio de direcciones lógicasvinculado a un espacio de direcciones físicasseparado es crucial para una buena gestión dememoria

• Dirección lógica – es la dirección que genera elproceso; también se conoce como direcciónvirtual

• Dirección física – dirección que percibe launidad de memoria

Page 17: Administración de memoria

• Las direcciones lógicas y físicas son iguales en losesquemas de vinculación en tiempo de compilación y decarga

• Difieren en el esquema de vinculación en tiempo deejecución

Page 18: Administración de memoria

Características de la memoria real o física y de la memoria virtual

Memoria real o física:

• Capacidad, que representa el volumen global de información (en bits) que la memoria puede almacenar.

• Tiempo de acceso, que corresponde al intervalo de tiempo entre la solicitud de lectura/escritura y la disponibilidad de los datos.

• Tiempo de ciclo, que representa el intervalo de tiempo mínimo entre dos accesos sucesivos.

• Rendimiento, que define el volumen de información intercambiado por unidad de tiempo, expresado en bits por segundo.

• No volatilidad, que caracteriza la capacidad de una memoria para almacenar datos cuando no recibe más electricidad.

• Existen dos tipos de memorias RAM: SRAM Y DRAM.

Page 19: Administración de memoria

Memoria virtual:

• Es una combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.

• Este método es invisible a los procesos.

• Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU.

• 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 sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este esquema.

Page 20: Administración de 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.

• La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.

Page 21: Administración de memoria

Ventajas y desventajas de la memoria virtual

Ventajas:

• Permite optimizar uso de memoria

• Mantiene más procesos en memoria principal

• Mantiene en disco partes del proceso poco usadas (rutinas de atención a errores poco frecuentes, funciones de uso esporádico, datos no usados, …) .

• Permite que un proceso sea más grande que toda la memoria principal

• Se encarga el Sistema Operativo: evita al usuario la preocupación por programar con superposición.

Page 22: Administración de memoria

• Con respecto a la performance del sistema: Se cuenta con una memoria virtualmente más extensa con la misma memoria real. Se utiliza mucho más eficientemente la memoria real.

• Con respecto al desarrollo de aplicaciones: Al eliminar las restricciones de memoria permite diseñar los sistemas más fácilmente, en menor tiempo y a menos costo. Hace más sencillo el mantenimiento y la ampliación de los programas. Hace más justificable el diseño e implementación de algunas aplicaciones, cuyos requerimientos de memora varíen bastante en su ejecución de acuerdo al volumen y complejidad de las transacciones. con respecto a la operación del computador: Permite que un equipo de una memoria real menor pueda ser usado sin dificultad como back-up en caso de necesidad. Hace innecesario efectuar ciertos procedimientos cuyo único propósito es un mejor aprovechamiento de la memoria real. Simplifica las actividades de planificación

Page 23: Administración de memoria

Desventajas

• Sobrecarga por gestión compleja de memoria

• Costo asociado a la transformación de direcciones;

• Memoria adicional que requiere para almacenar las tablas que debe mantener el sistema operativo (memoria real de la parte residente del sistema operativo)para indicar: l a cantidad de memoria real implementada, las secciones que están presente en la memoria real y sus direcciones de ubicación, y elementos de juicio para determinar qué secciones se tratarán de dejar en memoria real y cuáles no, o que sección será desplazada cuando otra sección de memoria virtual deba ser llevada a memoria real; pequeño desperdicio de memoria que se produce en la última página de un programa (ya que rara vez el tamaño del programa es múltiplo del tamaño de las páginas); merma en el rendimiento del computador si es incorrectamente utilizada; posible incremento del tiempo de ejecución de cada programa como consecuencia de la paginación (operaciones de entrada/salida que demorarán la ejecución del programa).

• La memoria virtual puede ser una herramienta poderosa para incrementar la performance del computador. Pero ello depende de ciertos factores, tales como:

Page 24: Administración de memoria

Velocidad de los dispositivos que contendrán la memoria virtual:

• La actividad de paginación afecta adversamente a la performance del equipo cuando el procesador real está frecuentemente esperando que termine una operación de entrada/salida de paginación; por tanto se debe procurar que los requerimientos de operaciones de paginación estén por debajo de lo necesario para aprovechar convenientemente la multiprogramación.

• En caso contrario se incrementarán los tiempos ociosos del órgano de comando. Velocidad del procesador: Una relación desbalanceada entre la velocidad del procesador y la del dispositivo de paginación puede alterar el rendimiento.

• Tamaño de la memoria real y virtual: La cantidad de memoria real de la CPU (en relación con el tamaño de la memoria virtual) afectará el número de páginas faltantes que deberán ser traídas del dispositivo de paginación.

• Si el tamaño de la memoria real es igual al de la virtual que están usando los programas en ejecución no habrá páginas faltantes ya que todas estarán en memoria real. En cambio cuando la memoria real sea menor, la cantidad de páginas faltantes estará dada por la razón de la memoria virtual usada por la memoria real disponible.

Page 25: Administración de memoria

Traducción De Direcciones

Reubicación Hardware: la MMU (memory management unit) se

encarga de la traducción que es la encargada de convertir las

direcciones lógicas emitidas por los procesos en direcciones físicas

Proceso:

Programa se carga en memoria sin modificar

El S.O. almacena por cada proceso su función de traducción

El S.O. especifica a la MMU qué función aplicar para cada

proceso

LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................

Memoria

10000100041000810012100161002010024100281003210036..........

Procesador

R. Instrucción

HW traducción

LOAD R3, /1500

1150010000

+1500

PC

8

Page 26: Administración de memoria

Unidad De Manejo De Memoria

Funciones son:

• Convertir las direcciones lógicas emitidas por los procesos endirecciones físicas.

• Comprobar que la conversión se puede realizar. La direcciónlógica podría no tener un dirección física asociada. Por ejemplo,la pagina correspondiente a una dirección se puede habertrasladado a una zona de almacenamiento secundariotemporalmente.

• Comprobar que el proceso que intenta acceder a una ciertadirección de memoria tiene permisos para ello.

Page 27: Administración de memoria

Paginación

• El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.

Page 28: Administración de memoria

• Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.

• Paginación de nivel 1: PDP−11

• Paginación de 2 niveles: la VAX

• Paginación de 3 niveles: la SPARC

• Paginación de 4 niveles: la 68030

Page 29: Administración de memoria

Memoria asociativa

• En los algoritmos de paginación las tablas de páginas se mantienen en la memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el rendimiento.

Page 30: Administración de memoria

Algoritmos de reemplazo de páginas.

• Cuando ocurre un fallo de página el sistema operativo debe elegir una página para retirarla de la memoria y hacer un espacio para la página por recuperar. Si la página por eliminar fue modificada mientras estaba en memoria, debe escribirla en el disco para mantener actualizada la copia del disco, si por el contrario la página no ha sido modificada la copia del disco ya está actualizada por lo que no es necesario volver a escribir, la página por leer sólo escribe encima de la página por retirar.

• Aunque es posible elegir una página al azar para el reemplazo relacionado con un fallo de página, el rendimiento del sistema es mucho mejor si se elige una página de poco uso.

Page 31: Administración de memoria

Algoritmo de reemplazo de páginas optimo

• Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.

• Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con el número de instrucciones ejecutadas antes de la primera referencia a esa página, el algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el único problema de este algoritmo es que es irrealizable. Al momento del fallo de página el S.O. no tiene forma de saber a qué página se hace referencia.

Page 32: Administración de memoria

Algoritmo de página de uso no muy reciente.

• En un fallo de página , el sistema operativo inspecciona todas las páginas y las divide en cuatro categorías según los valores actuales de los bits R y M.

• Clase 0: No se ha hecho referencia ni ha sido modificada

• Clase 1: No se ha hecho referencia pero ha sido modificada

• Clase 2: Se ha hecho referencia pero no ha sido modificada

• Clase 3: Se ha hecho referencia y ha sido modificada

Page 33: Administración de memoria

• El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.

Page 34: Administración de memoria

Algoritmo de reemplazo “ primero en entrar, primero en salir FIFO”

• El sistema operativo tiene una lista de todas las páginas que se encuentran en memoria, siendo la primera página la mas antigua y la última la mas reciente, en un fallo de página, se elimina la primera página y se añade la nueva al final de la lista.

Page 35: Administración de memoria

Algoritmo de reemplazo de páginas de la segunda oportunidad

• Una modificación simple del FIFO que evita deshacerse de una página de uso frecuente inspecciona el bit R de la página mas antigua, busca una página antigua sin referencias durante el anterior intervalo de tiempo.

Page 36: Administración de memoria

Algoritmo de reemplazo de páginas del reloj

• Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas en una lista circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición y el bit se limpia, esto continua hasta encontrar una página con R=0.

Page 37: Administración de memoria

Segmentación

• Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho mas sencillo.

• Bit que se activa si se hace referencia a la página en cuestión

• Bit que se activa si se modifica la página.

Page 38: Administración de memoria

POLITICA Y FILOSOFIA

FILOSOFIA

• 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 procesos y datos que actualmente se están utilizando.

Page 39: Administración de memoria

• Sea cual sea es esquema de organización del almacenamiento que se adopte para un sistema específico, es necesario decidir que estrategias se deben utilizar para obtener un rendimiento óptimo .las estrategias de administración del almacenamiento determinan el comportamiento de la administración de memoria cuando se siguen ciertas políticas:

• ¿Cuándo se toma un nuevo programa para colocarlo en memoria?

• ¿Se toma el programa cuando el sistema lo solicita específicamente o se intenta anticiparse alas particiones del sistema?

• ¿En que lugar del almacenamiento principal se coloca el programa por ejecutar?

Page 40: Administración de memoria

• ¿Se colocan los programas lo más cerca unos de otros en los espacios disponibles de la memoria principal para reducir al mínimo el desperdicio de espacio, o se colocan los programas lo más rápido posible para reducir al mínimo el tiempo de ejecución?

• Si se necesita colocar un nuevo programa en el almacenamiento principal

• Se han realizado sistemas que utilizan cada una de estas estrategias de administración. Y éste está lleno, ¿Cuál de los otros programas se desaloja?

Page 41: Administración de memoria

• Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder hacer referencia de ellos. Los que no se necesitan de inmediato pueden guardarse en el almacenamiento secundario.

• Unix permite procesos múltiples y en un proceso puede generar otro fácilmente. La planificación del procesador usa un algoritmo basado en prioridades. La administración de memoria es un algoritmo de regiones variables con intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeño de memoria.

• Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX intercambiaba el contenido en memoria de los procesos.

Page 42: Administración de memoria

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.

Page 43: Administración de memoria

• Round Robín: 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 (Sortest remaining time scheduling – Tiempo restante más 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.

Page 44: Administración de memoria

• HRN: (highest response ratio next – Prioridad de la tasa de respuesta más alta):

Política no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así 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.

Page 45: Administración de memoria

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.

Page 46: Administración de memoria

Administración de la memoria con mapas de bits

• Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está ocupada (o viceversa).

• Un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria, puesto que el tamaño del mapa sólo depende del tamaño de la memoria y el tamaño de la unidad de asignación.

Page 47: Administración de memoria

Administración de la memoria con listas ligadas

• Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos procesos. Cada entrada de la lista especifica un hueco (H) o un proceso (P), la dirección donde comienza, su longitud y un apuntador a la siguiente entrada.

Page 48: Administración de memoria

Asignación del hueco de intercambio

• En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de intercambio del disco. Los algoritmos para la administración del hueco de intercambio son los mismos que se utilizan para la administración de la memoria principal.

• En otros sistemas, al caerse un proceso, se le asigna un hueco de intercambio en el disco. Cuando el proceso sea intercambiado, siempre pasará al hueco asignado, en vez de ir a otro lugar cada vez. Cuando el proceso concluya, se libera el hueco de intercambio. La única diferencia es que el hueco en disco necesario para un proceso debe representarse como un número entero de bloques del disco. Por ejemplo, un proceso de 13.5 K debe utilizar 14K (usando bloques de 1K).

Page 49: Administración de memoria

ADMINISTRACION DE ALMACENAMIENTO

• Si hay una cosa que toma la mayor parte del día de un administrador de sistemas, esto es la administración del almacenamiento. Pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de E/S o que fallan repentinamente. Por eso es vital tener un conocimiento práctico sólido del almacenamiento en disco para poder ser un administrador de sistemas exitoso.

• Una vista general del hardware de almacenamiento

Page 50: Administración de memoria

• Antes de administrar el almacenamiento, primero es necesario entender el hardware en el que están almacenados los datos. A menos que posea un algún conocimiento sobre la operación de los dispositivos de almacenamiento masivo, quizás se encuentre en una situación donde tenga un problema relacionado al almacenamiento pero le falte el conocimiento de fondo para si quiera entender lo que ve. Al tener un entendimiento sobre la forma en que opera el hardware subyacente, podrá más fácilmente determinar si el subsistema de almacenamiento de su computador está funcionando correctamente.

Page 51: Administración de memoria

• La gran mayoría de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotación y soportan el acceso aleatorio de los datos en esa media. Esto significa que los componentes siguientes están presentes en alguna forma dentro de casi todos los dispositivos de almacenamiento masivo:

• Plato del disco

• Dispositivo de lectura/escritura de datos

• Brazos de acceso

Page 52: Administración de memoria

Platos de discos

• La media rotativa utilizada por casi todos los dispositivos de almacenamiento masivo están en la forma de uno o más platos planos y de forma circular. El plato puede estar compuesto de cualquier número de materiales diferentes, tales como aluminio, vidrio y policarbonatos.

• La superficie de cada plato se trata de forma que permita el almacenamiento de datos. La naturaleza exacta del tratamiento va a depender de la tecnología de almacenamiento de datos utilizada. La tecnología de almacenamiento de datos más común está basada en la propiedad de magnetismo; en estos casos los platos se cubren con un compuesto que presenta buenas características magnéticas.

Page 53: Administración de memoria

• Otra tecnología de almacenamiento de datos común está basada en principios ópticos; en estos casos, los platos se cubren con materiales cuyas propiedades ópticas pueden ser modificadas, y en consecuencia, permitiendo almacenar datos ópticamente

• Sin importar la tecnología de almacenamiento utilizada, los platos del disco se giran , causando que su superficie completa barra más allá de otro componente - el dispositivo de lectura/escritura.

Page 54: Administración de memoria

Dispositivo de lectura/escritura de datos

• El dispositivo de lectura/escritura es el componente que toma los bits y bytes en los que opera un sistema computacional y los convierte en las variaciones magnéticas u ópticas necesarias para interactuar con los materiales que cubren la superficie de los platos de discos.

• Algunas veces las condiciones bajo las cuales estos dispositivos deben operar son difíciles. Por ejemplo, en un almacenamiento masivo basado en magnetismo, los dispositivos de lectura/escritura (conocidos como cabezales), deben estar muy cerca de la superficie del plato. Sin embargo, si el cabezal y la superficie del plato del disco se tocan, la fricción resultante provocaría un daño severo tanto al cabezal como al plato. Por lo tanto, las superficies tanto del cabezal como del plato son pulidas cuidadosamente y el cabezal utiliza aire a presión desarrollado por los platos que giran para flotar sobre la superficie del plato, “flotando” a una altitud no menor que el grueso de un cabello humano. Por eso es que las unidades de discos magnéticos son muy sensibles a choques, cambios drásticos de temperaturas y a la contaminación del aire.

Page 55: Administración de memoria

• En cualquier caso, las cabezas utilizan una cantidad muy pequeña del área de superficie del plato para el almacenamiento de datos. A medida que el plato gira por debajo de las cabezas, esta área de superficie toma la forma de una línea circular muy delgada.

• Si es así como los dispositivos de almacenamiento masivo funcionan, significa que más del 99% de la superficie del plato se desperdiciaría. Se pueden montar cabezas adicionales sobre el plato, pero para utilizar completamente el área de superficie del plato se necesitan más de mil cabezales. Lo que se requiere es algún método de mover los cabezales sobre la superficie del plato.

Page 56: Administración de memoria

Brazos de acceso

• Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la superficie completa del plato, es posible utilizar completamente el plato para el almacenamiento de datos. Sin embargo, el brazo de acceso debe ser capaz de dos cosas:

• Moverse rápidamente

• Moverse con gran precisión

• El brazo de acceso se debe mover lo más rápido posible, pues el tiempo que se pierde moviendo el cabezal desde una posición a la otra es tiempo perdido. Esto se debe a que no se pueden leer o escribir datos hasta que el brazo se detenga.

Page 57: Administración de memoria

• El brazo de acceso debe ser capaz de moverse con gran precisión porque, como se mencionó anteriormente, el área de superficie utilizada por los cabezales es muy pequeña. Por lo tanto, para usar eficientemente la capacidad de almacenamiento del plato, es necesario mover las cabezas solamente lo suficiente para asegurar que cualquier datos escrito en la nueva posición no sobrescribe los datos escritos en la posición previa. Esto tiene el efecto de dividir conceptualmente la superficie del plato en miles o más aros concéntricos o pistas. El movimiento del brazo de acceso desde una pista a la siguiente a menudo se conoce como búsqueda y el tiempo que toma el brazo de acceso para moverse de una pista a otra se le conoce como tiempo de búsqueda.

Page 58: Administración de memoria

• Cuando existen múltiples platos (o un plato que con ambas superficies utilizadas para almacenamiento de datos), se apilan los brazos para cada superficie, permitiendo que se pueda acceder a la misma pista en cada superficie simultáneamente. Si se pueden visualizar las pistas para cada superficie con el acceso estacionario sobre una pista dada, aparecerán como que están apiladas una sobre la otra, haciendo una forma cilíndrica; por tanto, el conjunto de pistas accesibles en una posición dada de los brazos de acceso se conocen como cilindro.

Page 59: Administración de memoria

JERARQUIA

• Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias.

• Los puntos básicos relacionados con la memoria pueden resumirse en:

• Cantidad

• Velocidad

• Coste

Page 60: Administración de memoria

• La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operando o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.

• Como puede esperarse los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas:

• A menor tiempo de acceso mayor coste

• A mayor capacidad mayor coste

• A mayor capacidad menor velocidad.

Page 61: Administración de memoria

• Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida.

• Los niveles que componen la jerarquía de memoria habitualmente son:

• Nivel 0: Registros

• Nivel 1: Memoria caché

• Nivel 2: Memoria principal

• Nivel 3: Disco duro (con el mecanismo de memoria virtual)

• Nivel 4: Redes(Actualmente se concidera un nivel mas de la jerarquia de memorias)

Page 62: Administración de memoria
Page 63: Administración de memoria

ESTRATEGIA DE ADMINISTRACION DE MEMORIA

• Estrategias de Administración del Almacenamiento

• 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.

Page 64: Administración de memoria

• 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.

Page 65: Administración de memoria

ASIGNACION CONTIGUA V.S. NO CONTIGUA

• En la “asignación contigua” cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento.

• En la “asignación no contigua” un programa se divide en varios bloques o “segmentos” que pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo que es más compleja pero más eficiente que la asignación continua.

Page 66: Administración de memoria

Asignación Contigua de Almacenamiento de Un Solo Usuario

• Se consideran S. O. que ya poseen desarrollado el “sistema de control de entrada / salida”: IOCS: input / output control system

Page 67: Administración de memoria

MULTIPROGRAMACION DE PARTICION FIJA,PARTICION VARIABLE, CON INTERCAMBIO

DE ALMACENAMIENTO

• Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al “mismo tiempo” (seudo-paralelismo, en una única CPU sólo puede haber un proceso a la vez) en la unidad central de proceso o CPU.

• Aporta las siguientes ventajas:

• La ya mencionada, varios procesos en ejecución.

• Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente.

• Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S.

Page 68: Administración de memoria

• Aumenta el uso de la CPU.

• Las direcciones de los procesos son relativas, el programador no se preocupa por saber en dónde estará el proceso dado que el sistema operativo es el que se encarga de convertir la dirección lógica en física.

• Un proceso entra a ejecutarse y llega al momento en que tiene que hacer espera por un dispositivo de entrada y/o salida por ejemplo, el CPU estará ocioso mientras espera que el proceso puede usar el dispositivo para así finalmente ejecutarse. Los sistemas de multiprogramación evitan eso ya que durante ese tiempo de esperar pasan a ejecutar otro proceso teniendo así al computador ocupado.

Page 69: Administración de memoria

PARTICIONES FIJAS

• Consiste en dividir la memoria en varias particiones de tamaño fijo. Cada partición puede contener exactamente un proceso.

• El nivel de multiprogramación está limitado por el número de particiones.

• Cuando una partición está libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro.

• El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas

Page 70: Administración de memoria

Particiones Variables

• Cada trabajo ocupa tanto espacio como necesita.

• El tamaño del trabajo a ubicar no puede ser mayor que el almacenamiento principal disponible

• Se disminuye parcial o totalmente el desperdicio de memoria

• Aparecen: Condensación y Compactación

Page 71: Administración de memoria

PARTICIONES FIJAS

• Consiste en dividir la memoria en varias particiones de tamaño fijo.

• Cada partición puede contener exactamente un proceso.

• El nivel de multiprogramación está limitado por el número de particiones.

• Cuando una partición está libre, se selecciona un proceso de la cola de entrada y se carga en la partición libre; cuando un proceso termina, la partición está disponible para otro.

• El sistema operativo conserva una tabla que indica qué partes de la memoria están disponibles y cuales están ocupadas.

Page 72: Administración de memoria

ORGANIZACION DE MEMORIA VIRTUAL

• Almacenamiento virtual significa la capacidad de direccionar 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”.

• La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente.

Page 73: Administración de memoria

• Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).

• 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.

Page 74: Administración de memoria

EVALUACION 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.

Page 75: Administración de memoria

• 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.

• Re localizable (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.

Page 76: Administración de memoria

PAGINACION

• En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.

• En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.

Page 77: Administración de memoria

• En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.

• De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.

Page 78: Administración de memoria

SEGMENTACION

Segmentación.

• En un esquema de segmentación un espacio de direcciones lógicas es un conjunto de segmentos. Cada segmento tendrá un nombre y un largo. Las direcciones van a hacer referencia tanto al nombre como al desplazamiento dentro del segmento. <nro.segmento, desplazamiento>

Mecanismo de traducción de direcciones.

• Se lleva un tabla de segmento por cada proceso, cada entrada a la tabla de segmento lleva la siguiente información: segment base (dirección base del segmento) segment limit (largo del segmento)

Page 79: Administración de memoria

Protección

• La protección se asegura verificando cada acceso a la memoria con la tabla de segmentos para asegurar que se esta direccionando dentro del espacio de direcciones lógicas del proceso.

• Además el mecanismo de traducción de direcciones asegura que no se direccione fuera de un segmento en particular. Existen también bits de protección para cada entrada de la tabla de segmentos que indicaran si el segmento es read only o read-write.

Segmentos Compartidos

• Similar a lo visto para paginación. Se comparte la totalidad de un segmento

Page 80: Administración de memoria

Fragmentación

• El sistema operativo deberá asignar memoria utilizando algunos algoritmos ya vistos (first fit, worst fit, best fit) Cuando el sistema operativo intenta cargar un segmento y no hay ningún segmento disponible de tamaño suficiente para almacenarlo se procederá a compactar la memoria.

Paginación por demanda

• Es similar a lo visto para la paginación introduciendo el concepto de swapping. Los procesos residen en el disco y al ser ejecutados deben ser cargados en memoria. Cuando un proceso va a ser ejecutado, el mismo es swappeado a memoria, utilizando lazy swapping. El lazy swapping nunca trae paginas a memoria si no van a ser ejecutadas. Se necesita determinar si un pagina esta en memoria o en disco, por lo cual se utiliza el bit de válido / inválido de la tabla de páginas. Si el bit = 1 la página es valida y esta cargada en memoria si es 0 la página es inválida y no esta cargada en memoria (esta en disco).

Page 81: Administración de memoria

• Cuando un proceso intenta acceder a una página que no esta cargada en memoria ocurre un page fault (tomo de página). El procedimiento para manejar un page fault es el siguiente:

• 1. Verificar si la referencia a la pagina es valida (se utiliza una tabla interna (generalmente llevada en PCB) donde se indica las paginas validas.

• 2. Si la referencia no es valida, se cancela la ejecución del proceso.

• 3. Encontrar un frame disponible para cargarla (la página esta en disco)(por ejemplo de la free frame list)

• 4. Solicitar operación de I/O para leer la página de disco cargarla en el frameobtenido.

• 5. Modificar la tabla interna y la tabla de paginas para que ahora esta pagina figure como que esta en memoria.

• 6. Continuar con la ejecución del proceso en la instrucción en la que fue interrumpido.

Page 82: Administración de memoria

ADMINISTRACION DE MEMORIA VIRTUAL

• Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son:

• Paginación.

• Segmentación

• Segmentación y paginación.

• Las estrategias para la administración de sistemas de almacenamiento virtual condicionan la conducta de los sistemas de almacenamiento virtual que operan según esas estrategias.

• Se consideran las siguientes estrategias:

Page 83: Administración de memoria

• “Estrategias de búsqueda”:

• Tratan de los casos en que una página o segmento deben ser traídos del almacenamiento secundario al primario.

• Las estrategias de “búsqueda por demanda” esperan a que se haga referencia a una página o segmento por un proceso antes de traerlos al almacenamiento primario.

• Los esquemas de “búsqueda anticipada” intentan determinar por adelantado a qué páginas o segmentos hará referencia un proceso para traerlos al almacenamiento primario antes de ser explícitamente referenciados.

• “Estrategias de colocación”:

• Tratan del lugar del almacenamiento primario donde se colocará una nueva página o segmento.

• Los sistemas toman las decisiones de colocación de una forma trivial ya que una nueva página puede ser colocada dentro de cualquier marco de página disponible.

• “Estrategias de reposición”:

• Tratan de la decisión de cuál página o segmento desplazar para hacer sitio a una nueva página o segmento cuando el almacenamiento primario está completamente comprometido.

Page 84: Administración de memoria

PAGINACION POR DEMANDA

• Un sistema de paginación por demanda es similar a un sistema de paginación con intercambios. Los procesos residen en memoria secundaria (en el disco). Cuando queremos ejecutar un proceso, lo metemos en memoria. Sin embargo, en vez de intercambiar todo el proceso hacia la memoria, utilizamos un intercambiador perezoso. Un intercambiador perezoso nunca reincorpora una página a memoria a menos que se necesite. Como ahora consideramos un proceso como una secuencia de páginas, en vez de un gran espacio contiguo de direcciones, el término intercambio es técnicamente incorrecto. Un intercambiador manipula procesos enteros, mientras que un paginador trata con las páginas individualmente de un proceso.

Page 85: Administración de memoria

• Cuando un proceso se reincorpora, el paginador lleva a memoria las páginas necesarias. Así evita colocar en la memoria páginas que no se utilizarán, reduciendo el tiempo de intercambio y la cantidad de memoria física necesaria.

• Este esquema requiere apoyo del hardware. Generalmente se añade un bit más a cada entrada de la tabla de páginas: un bit válido-inválido. Cuando este bit está asignado como válido, indica que la página asociada se encuentra en memoria. Si el bit está como inválido, este valor indica que la página está en disco. Una página marcada como inválida no tendrá ningún efecto si el proceso nunca intenta acceder a esa página.

Page 86: Administración de memoria
Page 87: Administración de memoria

PAGINACION 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 paginas 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 paginas cuando hay espacio disponible Mientras el proceso ejecuta sus paginas 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.

Page 88: Administración de memoria

LIBERACION DE PAGINA

• Un proceso usuario puede emitir una “liberación voluntaria de página” para liberar el marco de página cuando ya no necesitara esa página. Se puede eliminar el “desperdicio” y acelerar la ejecución.

• El inconveniente es que la incorporación de mandatos de liberación de páginas dentro de los programas de usuarios puede ser peligroso y retrasar el desarrollo de aplicaciones.

Page 89: Administración de memoria

• “Los compiladores y S. O. deberían detectar automáticamente situaciones de liberación de página mucho antes de lo que es posible con estrategias de conjuntos de trabajo”.

Estrategias de reemplazo de páginas

• Menos frecuentemente utilizada (LFU)

• Se reemplaza la página a la que se ha hecho referencia con menos frecuencia.

• No utilizada recientemente (NUR)

• Las páginas no utilizadas recientemente, es poco probable que sean referenciadas en un futuro cercano. Por ello se las elige para el reemplazo.

Page 90: Administración de memoria

TAMAÑO DE PAGINA

• Al diseñar una máquina hay que tomar una decisión sobre el mejor tamaño de página. Como podrá suponer, no hay un tamaño único que sea el mejor, pero existen varios factores que apoyan tamaños distintos. Los tamaños son invariablemente potencias de dos, que suelen ir de 512 (29) a 16384 (214) bytes

• ¿Cómo seleccionamos el tamaño de página? Un factor es el tamaño de la tabla de páginas. Para un espacio de memoria virtual establecido, al reducir el tamaño aumenta el número de páginas y, por tanto, el tamaño de la tabla de páginas. Para una memoria virtual de 4 MB habría 4096 paginas de 1K bytes, pero sólo 512 páginas de 8192 bytes. Como cada proceso activo debe tener su propia tabla de páginas, sería deseable un tamaño de página grande.

Page 91: Administración de memoria

• Por otra parte, la memoria se utiliza mejor con páginas pequeñas. Una parte de la última página estará asignada pero no totalmente ocupada (fragmentación interna). Suponiendo que los tamaños de los procesos y de la página son independientes, podemos esperar que, en promedio, se desperdiciará la mitad de la última página de cada proceso. Esta pérdida representaría sólo 256 bytes en una página de 512 bytes, pero serían 4096 bytes en una página de 8192. Para minimizar la fragmentación interna necesitamos un tamaño de página pequeño.

• Otro problema es el tiempo necesario para leer o escribir una página. El tiempo de E/S está compuesto por tiempo de búsqueda, latencia y transferencia.

Page 92: Administración de memoria

Bibliografías

• http://elloboestepario2.blogspot.mx/2012/04/caracteristicas-de-la-memoria-real-o.html

• http://sistemasoperativos.angelfire.com/html/3.2.5.html

• http://eq2-sistemasoperativos.blogspot.mx/2012/04/unidad-3-administracion-de-memoria_11.html

• http://sistoperativos1.wordpress.com/2012/04/19/administracion-de-memoria-memoria-real-o-fisica-y-memoria-virtual/

• http://www.monografias.com/trabajos10/gesmem/gesmem.shtml