Administracion de Memoria

Description

Diapos de la gestión de la memoria.

Reviews
Shared by: Victor San Martin
Stats
views:
1904
rating:
not rated
reviews:
0
posted:
11/15/2007
language:
Spanish
pages:
0
UNIDAD III: GESTIÓN DE MEMORIA Y ACCESO A DATOS 1 www.inacap.cl ADMINISTRACIÓN DE MEMORIA • Memoria (forma de almacenamiento)  rec apropiable; debe ser administrado para obtener mejor provecho • Mem rec usado para almacenar las instrucciones que forman un Proceso • CICLO: – Transferencia de instrucción de mem a cpu – Decodificación instrucción – Búsqueda operandos – Ejecución instrucción – Resultados pueden ser almacenados en mem 2 www.inacap.cl Programas • Los programas del sistema  operaciones propias del computador. controlar las • Los programas de aplicación  resuelven problemas específicos a los usuarios. • De los programas del sistema el más importante S.O cuyo objetivo es que el computador se pueda utilizar de una manera cómoda y eficiente. 3 www.inacap.cl proporciona una caparazón a la Máquina Desnuda  • permite dar la visión de una Máquina Virtual factible comunicarse al crear una interfaz entre el usuario y la máquina y gestionar los recursos de la misma.  4 www.inacap.cl Sistemas Multiprogramados • Coexisten varios Procesos en Memoria • Tipos de Administración de Mem para sist. Multiprogramados: – Los Proc deben estar cargados completamente en Mem para poder ejecutarse – No es necesario que el Proc completo esté cargado en Mem 5 www.inacap.cl Sistemas Monoprogramados • Solamente un programa usa la CPU • ¿Cómo se gestionaba la Mem en estos sistemas? • Memoria Dedicada • 1º PCs usaban  Régimen dedicado: el programador accedía directamente al Hw y gestionaba la mem en sus programas 6 www.inacap.cl • Se programaba en leng máquina, no existe S.O y tampoco gestor de Mem!!! • El uso de la Mem es INEFICAZ!! • Se tenía que tener un conocimiento amplio del Hw. 7 www.inacap.cl División de Memoria: Monitor Residente • Con la introducción S.O se divide la Mem en 2 zonas: – Una utilizada por el usuario – Otra reservada para la parte Residente del S.O  se denomina Monitor Memoria principal Monitor Residente Programa de Usuario Zona no usada Usuario disponible esta parte 8 www.inacap.cl Problemas ?? Con este reparto de la Mem • ¿Cómo asegurar la independencia de ambas zonas ?  Protección!! • ¿Cómo asegurar que los programas de usuarios no se vean afectados por esta división?  División!! 9 www.inacap.cl División Mem: Particiones • FIJAS – Cuando la Mem es segmentada en porciones de tamaño fijo e invariable durante el funcionamiento. • VARIABLES – Cuando la Mem es dividida dinámicamente de acuerdo a las necesidades. 10 www.inacap.cl Protección de la Mem • Como el prog Monitor y el prog Usuario van a compartir la Mem  necesario proteger la zona del SO, contra cualquier intento de acceso a dicha zona por parte del prog usuario. • Deben haber Protecciones para evitar que un Prog de usuario perturbe el hacer del SO!! • Cómo??  se establece una dirección Frontera que limita la zona del SO • Cualquier dirección de Mem que solicite o pida el prog de usuario se compara con dicha dirección Frontera, permitiendo el acceso o no. – Este control se hace a través de Hw  Registro11 11 www.inacap.cl Reasignación de Direcciones • Cuando se inicia el S.O, el contenido del reg Frontera indicará el pto a partir del cual puede cargarse el prog de usuario. • Es necesario reasignar las direcciones del prog en función de la frontera. Estática: se realiza durante la compilación o durante la carga del prog en Mem. Reasignación Dinámica: se realiza durante la ejecución del prog. Se interpreta cada dir lógica generada por el prog y le suma el cont del reg Frontera para obtener la dirección Real correspondiente 12 www.inacap.cl • Cualquiera sea la técnica, el usuario no maneja direcciones Reales en el prog.  Espacio Físico de direcciones (Mem Real) • Utiliza direcciones Relativas; varían entre 0 y el máx permitido por el S.O.  Espacio Lógico de direcciones. • Después el S.O, establece la correspondencia entre las direcciones relativas con las reales!! 13 www.inacap.cl Memoria Virtual • Puede ser generada a partir de una combinación de capacidades de Hw y S.O • Su tamaño es inversamente proporcional a su velocidad de acceso. • Es equivalente a la Mem RAM: volátil y limitada • Mem Virtual: soporte para guardar momentáneamente la info necesaria para la correcta funcionalidad de los Procesos, pero que por limitaciones de Hw no pueden ser almacenados en RAM 14 www.inacap.cl • Cuál es la idea detrás de la Mem Virtual?? • El tamaño del prog, datos y la pila de ejecución pueden exceder la cantidad de Mem real disponible para él!! • Qué hace el S.O??: – Mantiene las partes del prog que se están usando encada momento en la mem ppal y el resto en el disco. – En la medida que se vallan necesitando nuevas partes, éstas se INTERCAMBIAN con las residentes en la mem ppal 15 www.inacap.cl • Sistemas que usan Mem Virtual: – Todas las direcciones son virtuales y el conjunto de ellas se denominan ESPACIO DIRECCIONES VIRTUALES • Sistemas que NO usan Mem Virtual: – Las direcciones se colocan directamente sobre el bus de la Mem; así se accede al contenido de la mem física que tenga tal dirección. 16 www.inacap.cl 17 www.inacap.cl CPU $0 $1 . . . $31 HI LO PC ALU Coprocesador 1 $f0 $f1 . . . $f31 Mult/Div Enteros Aritmética FP Coprocesador 0 Cause Status BadVAddress EPC Memoria 18 www.inacap.cl • Al usar Mem Virtual, las direcciones no pasan directamente al Bus de Direcciones de Mem  van a la Unidad de Administración de la Mem (MMU, Memory Manager Unit), que asocia las direcciones virtuales con las direcciones de Mem Física. • En resumen: – La dirección es diferente de localización física – Es necesario tomar las direcciones virtuales y convertirlas a reales para poder tener acceso a la posición de Mem correspondiente. 19 www.inacap.cl Administración de Mem sin Intercambio • Sist. Que usan Monoprogramación: en Mem un solo Proceso de usuario  no es posible ejecutar concurrentemente más de un Proceso de usuario en el Sist. • Sist. Que usan Multiprogramación: en Mem más de un proceso de usuario. – Con particiones Fijas – Con particiones Variables 20 www.inacap.cl • Características de los 3: ninguno permite intercambiar Proc entre Mem y Disco (el tpo que dure su ejecución, el Proc. necesariamnte debe estar en Mem) • Bueno: cantidad de Proc. Presentes es manejable por la Cpu y Mem • Malo: cuando hay muchos usuarios, ejecutan muchos Proc  capacidad de Cpu y Mem no es suficiente 21 www.inacap.cl Monoprogramación sin Intercambio • Administración más sencilla y barata • La Mem se divide en dos partes: S.O y Usuario • Características: es monousuario – El usuario tiene disponible toda la Mem de usuario – Se puede cargar un Proc en Mem – Deben haber protecciones para evitar que un Proc de usuario perturbe el hacer del S.O 22 www.inacap.cl Multiprogramación • El espacio de Mem de usuario es compartido por varios Prog  en Mem están simultáneamente almacenados un conjunto de Prog. • Ventaja: mejor aprovechamiento de la ??? • Multiprogramación con Particiones Fijas • La Mem se divide en “n” partes • Cada una de estas n partes puede ser de tamaños diferentes • Cada prog se asigna a una de estas particiones cuando entra en ejecución 23 www.inacap.cl • Forma de Asignar: – Cada partición tiene una cola de Prog asociados que desean ser cargados en esa partición. • Malo: se puede producir sobrecarga en alguna partición; s epuede formar una cola de espera con muchos Prog y otra partición puede tener una cola de espera vacía. – Existe una sola cola en donde se van asignando una partición a cada prog desde el comienzo de la cola. 24 www.inacap.cl • Protección de particiones: se protege cada una de las particiones de las adyacentes, cada prog de usuario debe estar seguro que no será perturbado por otro prog. • Problema: Fragmentación Interna – Si el prog que ocupa la partición no lo usa en un 100%, entonces hay pérdida de Mem, Mem que no puede ser usada por otro prog. 25 www.inacap.cl Intercambio: Swapping • Este mecanismo permite intercambiar Prog entre Mem ppal y Disco. • Generalmente cuando se requiere almacenar más prog que los que la Mem soporta. Mem disco 26 www.inacap.cl Multiprogramación con particiones Variables • La Mem se divide en un conjunto de particiones: tamaño variable y se crean dinámicamente durante la ejecución de los diferentes prog. • Un prog que está en mem puede ser traspasado a disco en forma temporal para darle la posibilidad a otro prog que se ejecute. • Almacenar el prog completo en Mem para ejecutarse 27 www.inacap.cl • También existe Fragmentación: el continuo ingreso y salida de Prog a Mem hace que se produzcan espacios en la Mem  los cuales muchas veces no son suficientes para contener a otros prog  Fragmentación Externa • Solución a la pérdida de Mem debido a la Fragmentación Externa  COMPACTACIÓN: – Reagrupar porciones de Mem hacia un lado y las porciones de Mem libre hacia el otro extremo, problema: técnica muy lenta!! 28 www.inacap.cl Criterios para asignar Mem • Se pueden utilizar diversos algoritmos para asignar la memoria para un proceso de reciente creación. Se supone que el administrador de mem conoce la cantidad de memoria a asignar. Entre ellos están: • First Fit (Primero en Ajustarse): – El administrador de Mem asigna al Proceso la Primera partición de Mem que encuentra libre en el sistema. Este algoritmo es rápido  busca lo menos posible. 29 www.inacap.cl • Best Fit (Mejor en Ajustarse): Otorgar al Proceso aquella partición que mejor se ajuste al Proceso, es decir que mejor le calce. En lugar de asignar un espacio grande, intenta encontrar un espacio lo más cercano al tamaño necesario. • El peor ajuste: Toma siempre el espacio más grande disponible, de forma que el espacio resultante sea lo suficientemente grande para ser útil. Es mejor otorgar aquella partición más grande que pueda contener al Proceso, pues lo que sobre puede ser usado para ser asignada a otro proceso 30 www.inacap.cl Paginación • Sistemas con PAGINACIÓN Mem Virtual usan la técnica: • El espacio de direcciones virtual se divide en unidades fijas (particiones fijas) Páginas. • Las unidades correspondientes en la Mem física  Marco de Página • Las Páginas y los Marcos de Páginas siempre tienen el mismo tamaño. – Ejemplo: con 64k espacio de direcciones virtuales y 32k de mem física; se tienen 16 páginas y 8 marcos de páginas de 4k. 31 www.inacap.cl Paginación • Cada prog se divide en pág y éstas se cargan en M.P o (frames) que no necesariamente son contiguos. • El sist analizará cada nuevo trabajo que se disponga a entrar para conocer el #pág que ocupa y buscará en su lista de M.P libres un #igual de ellos. • Si éstos existen, cargará en ellos las pág del prog y construirá la correspondiente T.P, actualizando la lista de M.P libres. 32 www.inacap.cl Paginación • Cada proceso en mem tendrá su propia T.P apuntada por el Bloque de Control del Proceso!! • Se evita la fragmentación externa  cualquier M.P libre es asignable a un porceso que lo necesite. • Sigue existiendo fragmentación interna  en general los procesos no ocuparán todo el tamaño de la pág. Esta fragmentación se reduce si: la pág tiene un tamaño pequeño, PERO se necesitaría una T.P mayor!! 33 www.inacap.cl Paginación • Ver “Relaciones direcciones (manual); ejemplo!!!  virtuales-reales” • Las transferencias entre la mem y el disco siempre se hace en unidades de una página. • La traducción de direc virtual  real, se hace mediante MMU. • Esquema de adm de Mem usando Mem Virtual con Paginación: Nº de pág (índice a la Tabla de Pág) P d Desplazamiento dentro de la pág 34 www.inacap.cl Tablas de Página • La MMU traduce las direcciones virtuales a reales con el apoyo de una TABLA DE PÁGINAS (T.P) • La T.P es una tabla que es direccionada por la 1ª parte de la dirección virtual (p)  este campo se usa como índice a la T.P. • Cada entrada en la T.P por lo menos tiene el marco de pág asociado a la pág y un bit Presente/Ausente que indica si la pág se encuentra presente o ausente en la mem • BIT=1 Pág tiene asociado un marco de página. – Y si no tiene asociado??? • Esquema: ver manual!!!  www.inacap.cl 35 Tablas de Página • En un régimen permanente, todos los marcos van a tender a estar ocupados  será necesario ir desalojando marcos no utilizados para almacenar allí las páginas faltantes de otro proceso que sea demandado. • Normalmente también existe un bit que indica si una determinada página ha sido modificada o no, lo cual es utilizado para determinar si el contenido de una página almacenada en un marco debe ser copiado a memoria secundaria o no. • Resulta conveniente tener información, asociada a cada marco, que permita decidir que página desalojar y cual traer a memoria principal. • A continuación se muestra la entrada típica en una tabla de 36 páginas. www.inacap.cl Formato de entrada en la T.P Dirección marco de página Bit presente/ ausente Bit protección Bit referencia Bit modificado • La dirección del marco de página, guarda la dirección en memoria real donde se encuentra la página. • El bit presente/ausente, indica si la página reside en la memoria real o no. Si la página no está presente (0) y se referencia, se producirá un defecto de página (FALLO DE PÁG) • Los bits de protección indican el tipo de acceso permitido. Estos generalmente se conocen como rwx y dependiendo de si están encendidos, la página se podrá leer (r), escribir (w) o ejecutar (x). 37 www.inacap.cl Formato de entrada en la T.P • El bit de modificación se enciende cada vez que la página sufre algún cambio en memoria real. Se utiliza cuando la página es seleccionada para salir de la memoria real, cuando se presenta un defecto de página. Si el bit está encendido, entonces la página se escribirá sobre el disco. En caso contrario sólo se desecha pues la imagen en disco es igual a la existente en la memoria real. – Bit=1 indica que el M.P asociado a la pág ha sido modificado 38 www.inacap.cl Formato de entrada en la T.P • El bit de referencia como su nombre lo indica se enciende cada vez que la página es referenciada, bien sea para lectura o escritura. – Sirve para apoyar al S.O, para seleccionar la página a salir cuando se presenta un defecto de página. Las páginas no referenciadas son unas muy buenas candidatas a salir Algoritmos de reemplazo  39 www.inacap.cl Fallo de Página • LA FALLA DE PÁGINA La dirección virtual hace referencia a una página que no está presente en memoria física. El mecanismo de direccionamiento genera una falla de página!! • Si la memoria física esta llena: – sacar de la memoria física una página (reemplazo) – escoger una página "víctima“ – si ella ha sido modificada, actualizarla en el disco – modificar los indicadores de presencia en TP • Luego: – cargar la página mencionada en memoria física (ubicación) – modificar los indicadores de presencia en TP. 40 www.inacap.cl Algoritmos de Reemplazo •Un sist con Mem virtual permite que un Prog no esté contenido en mem completamente, una parte de él está en disco •Si el sist de mem virtual trabaja con paginación y el Prog no está completo en mem, entonces posee pág que tienen asociado un M.P y hay pág que no tienen asociado un marco (luego están en disco). •Cuando las instrucciones que desean ejecutar están en pág que no tienen asociados marcos, se debe buscar marcos libres para asociarlas. 41 www.inacap.cl Algoritmos de Reemplazo • PROBLEMA: el sist no posea M.P libres o el # de marcos libres sea inferior a los necesarios. • El sist debe liberar M.P para asignárselos a las pág que lo necesiten. • Las pág que tienen asociados M.P las cuáles serán liberados deben ser guardadas en disco. • Algoritmos que permitan reemplazar pág de Mem a Disco 42 www.inacap.cl Algoritmos de Reemplazo • Se evalúa un algoritmo ejecutándolo para una serie determinada de referencias a memoria y calculando el número de fallas de página. • A la serie de referencias a memoria  SERIE DE REFERENCIAS • Si se tiene una referencia a una página p, entonces ninguna referencia a la página p que se presente inmediatamente después provocará una falla de página, POR QUE???? 43 www.inacap.cl Algoritmos de Reemplazo • Para determinar el número de fallas de página para una serie de referencias y un algoritmo de reemplazo de páginas concreto, se necesita conocer también el número de marcos de página disponibles. • Si aumenta el número de marcos  se reducirá el número de fallas de página!!. • Al aumentar el número de marcos, el número de fallas de página se reduce hasta un nivel mínimo. POR QUE???? 44 www.inacap.cl Algoritmo Optimo • Reemplazar la pág que no será usada por más tiempo. • Se debe tener claro cuáles serán las instrucciones que serán ejecutadas en el futuro. • Problema: este algoritmo es ideal (pero no es realizable): pues no se pueden saber las referencias futuras. (similar al caso de SJF) • P/E: referencias: 1,2,3,4,1,2,5,1,2,3,4,5 – 3 marcos por proceso. 45 www.inacap.cl Algoritmo FIFO • Se reemplaza la pág más antigua • S.O mantiene una lista con todas las pág que están en mem • Lista ordenada por orden de llegada: 1ª pág es la más antigua y la última pág es la más nueva • Cuando ocurre un Fallo de pág se reemplaza la 1ª pág de la lista. • PROBLEMA: no se considera la importancia de las pág ni la frecuencia con que se están usando. • P/E: referencias: 1,2,3,4,1,2,5,1,2,3,4,5 – 3 marcos por proceso. 46 www.inacap.cl Algoritmo LRU (least recently used) • Reemplazo de la pág de Menor uso reciente • Las pág que no se han referenciado en un buen período de tiempo, es difícil que sean referenciadas en un tpo cercano. • Reemplazar aquella pág que no halla sido referenciada en el mayor período. • Implementación es cara: mantener una lista enlazada de todas las pág que tienen asociado un M.P, ordenada de tal manera que la 1ª pág de la lista es la de uso más reciente y la última es la de uso menor reciente. 47 www.inacap.cl Algoritmo LRU • PROBLEMA: la lista debe ser actualizada continuamente después de que c/pág sea referenciada y luego mover dicha pág al ppio de la lista. • SOLUCIÓN: tener un contador por pág el cuál se incrementa después que la pág es referenciada. Cuando ocurre un Fallo de pág se elige aquella pág que posea el contador más chico • P/E: referencias: 1,2,3,4,1,2,5,1,2,3,4,5 – 4 marcos por proceso. 48 www.inacap.cl Test!!!  • Para las siguientes referencias a pág: 1,4,1,6,2,6,1,6,1,6,1 • Con 3 marcos por proceso • Calcular el FALLO DE PAG usando Algoritmo Optimo y el FIFO. 49 www.inacap.cl Aspectos de Diseño • Conjunto De Trabajo • Un Conjunto de Trabajo es un conjunto de páginas a las que se hace referencia activamente en un proceso. • Para ejecutar en forma eficiente un programa se debe mantener en mem ppal su conjunto de trabajo; SINO  Hiperpaginación, debido a las frecuentes solicitudes de páginas contenidas en memoria virtual. • Si un Proc tiene todo su C.T en mem en determinado tpo  no se generan F.P. • Muchos sist tratan de llevar un reg de los C.T de los proc de tal forma que la siguiente vez que se ejecute el Proc, laspág asociadas a su C.T puedan ser cargadas antes que se necesiten  Prepaginación 50 www.inacap.cl Aspectos de Diseño • Tamaño de Página: • Si la pág es muy pequeña se necesitan muchos recursos del sist para poder administrarlas. También c/proc necesitaría de más pág para almacenarse en mem. • Si la pág es muy grande se pierde mem por concepto de fragmentación ..... • T.P  estas se encuentran en mem ppal y es necesario reducir al máx su tamaño, lo que condiciona a diseñar pág grandes (tablas con pocas filas) 51 www.inacap.cl Aspectos de Diseño • Transferencia: llevar una pág del almacenamiento secundario a mem y viceversa es una operación larga qu etoma su tpo. Desde este pto de vista  las pág sean grandes para transferir más bytes en cada operación de E/S. • Fallas de pág: a mayor tamaño de pág se producen menos F.P, reduciendo la sobrecarga que conlleva. • Tamaño óptimo??  considerar lo anterior más el tamaño promedio de los proc que se ejecutan en el sist. 52 www.inacap.cl Aspectos de Diseño • Pág Compartidas: • En un sist multiusuario es frecuente que diferentes usuarios ejecuten una misma aplicación simultáneamente. En estas condiciones el sist debería permitir compartir las pág asociadas al cód de operación • Compartir pág entre proc y para ello, las pág deberían tener un tratamiento especial. 53 www.inacap.cl Aspectos de Diseño • Hiperpaginación: • Un proc está Hiperpaginando si emplea más tpo paginando, es decir, produciendo F.P y cargando las pág en mem, que ejecutándose propiamente tal. • Intercambio excesivo de páginas entre memoria real y memoria virtual. • P/E: un proc que tenga una prioridad naja de ejecución y el sist no le asigna un # M.P suficientes para cargar sus pág. 54 www.inacap.cl Segmentación • Un prog es un conjunto de componentes lógicos de tamaño variable: idea de separar la parte de programa y datos, y dividir la memoria en tantos trozos de longitud variable como sea posible y necesario. Este procedimiento es conocido como  SEGMENTACIÓN. • Ventajas: desde el punto de vista administrativo de la mem, ya que es más fácil encontrar trozos libres pequeños. Además, no es necesario tener todo el programa en mem a la vez; basta tener aquellos segmentos, que están participando de la ejecución. 55 www.inacap.cl Segmentación • El espacio lógico de direcciones se considera como un Conjunto de Segmentos, cada uno definido por su tamaño y un #. • La segmentación de un prog la realiza el compilador, y en ella cada dirección lógica se expresa mediante el par (s,d). Nº de segmento (índice a la Tabla de Segemnto) s d Desplazamiento dentro del segmento 56 www.inacap.cl Segmentación • Esta técnica permite reducir la fragmentación Interna de la mem provocada por la Paginación, POR QUE??? • La carga en mem de un prog exige la búsqueda de los espacios adecuados a sus segmentos y como éstos son de tamaño variable, se ajustarán lo más posible a las necesidades, produciéndose espacios pequeños. PROBLEMA  Fragmentación Externa. 57 www.inacap.cl Segmentación • Segmentación Pura: – Se tienen segmentos direccionamiento lógico. – Tabla de segmentos para representar el • Segmentación con Paginación: – División del espacio lógico en un conjunto de segmentos, en donde c/segmento tiene asociado a su vez un conjunto de páginas. – Una ventaja de este método es que permite mantener una estructura de segmentación sin conducir a fragmentación externa. 58 www.inacap.cl GESTIÓN DEL ALMACENAMIENTO SECUNDARIO: DISCOS 59 www.inacap.cl Discos • Dispositivos de almacenamiento secundario • Ventajas: el costo por bit es menor • La capacidad de almacenamiento es mucho mayor • Información es de tipo persistente • Acceso de la informacion al disco (influyen en la transferencia de información desde y hacia el disco): • Tiempo de búsqueda • Tiempo de latencia rotacional • Tiempo de transmisión 60 www.inacap.cl Memory cells arranged by address 61 www.inacap.cl Discos magnéticos - duros • Características – Velocidad de rotación – Velocidad de transferencia – Capacidad – Precio (por unidad de datos) – Tamaño de la unidad – Fijo o removible 62 www.inacap.cl 63 www.inacap.cl 64 www.inacap.cl 65 www.inacap.cl Algoritmos de Planificación de Discos • FCFS: 1º que llega, 1º en ser atendido – P/E: cola: 98,183,37,122,14,124,65,67 – Cabeza en 53 • SSTF: 1º el de menor tiempo de búsqueda – Ordenar la cola: 53,65,67,37,14,98,122,124,183 – Cabeza en 53 • SCAN: atiende los requerimientos hacia un mismo sentido primero, desde el más cercano y luego cambia de dirección • C-SCAN: circular; lee en un sentido hasta el final y luego va al otro extremo buscando nuevamente 66 www.inacap.cl

Shared by: Victor San Martin
Related docs