Anda di halaman 1dari 13

bUnidad 3 ADMINISTRACIN DE MEMORIA Ing. Daniel Tejeda Crdoba 3.

1 Poltica y Filosofa Definicin de memoria: "Todo componente que almacena informacin en la computadora"

Papel de la Unidad de Memoria de un Computador Almacenamiento de Programas y Datos de usuario(s) Programas y Datos del Sistema

Caractersticas de la Memoria Gran capacidad (Gigabytes ) Velocidad de Acceso (miliseg, microseg. o nanoseg) Costo ( por bit o byte) Acceso directo por la CPU

Estructura interna de la memoria Segn Von Neuman

Unidad de control:

Coordina las actividades de la computadora, ejecutando programas en forma ordenada e interactuando con las unidades de entrada y salida.

Unidad aritmtico-lgica (ALU):

Como su nombre lo indica es la parte de la CPU que se encarga de todos las operaciones aritmticas bsicas (suma, resta, multiplicacin, divisin, etc.) y lgicas (las operaciones: O lgica, Y lgica, Negacin, etc.)

3.2 Memoria Real Tambin llamada memoria principal, central o primaria, es el dispositivo donde se almacenan temporalmente tanto los datos como los programas que la CPU est procesando o va a procesar en un determinado momento. Tipos de memoria real ROM (Memoria de solo lectura) Viene grabada de fbrica con una serie de programas. El software de la ROM se divide en dos partes: 1. Rutina de arranque o POST (Auto Diagnstico de Encendido) Realiza el chequeo de los componentes de la computadora. 2. Rutina BIOS (Sistema Bsico de Entrada-Salida) Permite la activacin de los perifricos de entrada/salida: teclado, monitor, ratn, etc.

RAM o Memoria de Acceso aleatorio (Random Access Memory).

Es la memoria del usuario que contiene de forma temporal el programa, los datos y los resultados que estn siendo usados por el usuario del computador.

Tipos de RAM SRAM (Memoria esttica de acceso aleatorio). Es un tipo de memoria que es capaz de mantener los datos (mientras est alimentada). DRAM (Memoria dinmica de acceso aleatorio). Va perdiendo el dato que tiene almacenado y hay que refrescarlos frecuentemente VRAM (Video RAM) Es un tipo especial de memoria RAM, que se utiliza en adaptadores de video. Su principal diferencia es que puede ser accesada por dos diferentes dispositivos en forma simultnea. Esto permite que un monitor pueda acceder a la VRAM para actualizar la pantalla mientras que el procesador grfico suministra nuevos datos.

Organizacin Fsica de la Memoria

Memoria cache

Una memoria cach es una memoria en la que se almacenas una serie de datos para su rpido acceso. Esta memoria est integrada en el procesador, y su cometido es almacenar una serie de instrucciones y datos a los que el procesador accede continuamente, con la finalidad de que estos accesos sean instantneos. Organizacin Lgica de la Memoria La memoria principal es un arreglo de palabras o bytes, cada uno de los cuales tiene una direccin (espacio de direcciones). La interaccin es lograda a travs de un conjunto de lecturas y escrituras a direcciones especficas realizadas por los procesos.

Memoria Virtual La memoria principal es pequea como para acomodar todos programas y datos permanentemente. Por lo que es necesario implementar mecanismos de memoria virtual. La memoria virtual es una tcnica para dar la ilusin de tener ms memoria que la memoria principal.

3.2.1 Administracin del almacenamiento

3.2.2 Jerarqua

3.2.3 Estrategias de administracin de memoria

3.2.4 Mtodos De Asignacin La naturaleza de acceso directo de los discos nos brinda flexibilidad en la implementacin de los archivos. En casi todos los casos, muchos archivos se almacenan en el mismo disco. El problema principal es cmo asignar espacio a esos archivos de modo que el espacio se aproveche de forma eficaz y se pueda acceder rpidamente a los archivos. Hay tres mtodos de asignacin de espacio en disco que se usan ampliamente: contigua, enlazada e indizada. Cada mtodo tiene sus ventajas y desventajas, y es por ello que algunos sistemas (como el RDOS de Data General para su lnea de computadores Nova) manejan los tres, aunque es ms comn que un sistema utilice un mtodo en particular para todos los archivos.

Asignacin Contigua El mtodo de asignacin contigua requiere que cada archivo ocupe un conjunto de bloques contiguos en el disco. Las direcciones de disco definen un ordenamiento lineal en l. Con este ordenamiento, suponiendo que slo un trabajo est accediendo al disco, el acceso al bloque b + 1 despus del bloque b normalmente no requiere movimiento de la cabeza. Si es preciso mover la cabeza (del ultimo sector de un cilindro al primero del siguiente), slo es una pista. As, el nmero de bsquedas de disco necesarias para acceder a archivos asignados contiguamente es mnimo, lo mismo que el tiempo de bsqueda cuando finalmente se necesita una bsqueda. El sistema operativo VM/CMS de IBM utiliza asignacin contigua por el buen desempeo que provee.

La asignacin contigua de un archivo est definida por la direccin en disco y la longitud (en unidades de bloque) del primer bloque. Si el archivo tiene n bloques, y comienza en la posicin b, ocupar los bloques b, b + 1, b + 2, ... , b + n 1. La entrada de directorio para cada archivo indica la direccin del bloque inicial y la longitud del rea asignada a este archivo. El acceso a un archivo que se asign de forma contigua es fcil. Si el acceso es secuencial, el sistema de archivos recuerda la direccin en disco del ltimo bloque al que se hizo referencia y, cuando llega el momento, lee el siguiente bloque. Si el acceso es

directo al bloque i de un archivo que comienza en el bloque b, podemos acceder de inmediato al bloque b + i. As, la asignacin contigua permite manejar acceso tanto secuencial como directo. Una dificultad de la asignacin contigua es encontrar espacio para un archivo nuevo. La implementacin del sistema de administracin de espacio libre, que veremos en la fig., determina la forma de efectuar esto. Se puede usar cualquier sistema de administracin, pero algunos son ms lentos que otros. Es evidente que el problema de asignacin de espacio contiguo en disco es una aplicacin especfica del problema general de asignacin dinmica de almacenamiento, a saber, cmo satisfacer una solicitud de tamao n a partir de una lista de huecos libres. Las estrategias de primer ajuste y mejor ajuste son las que ms comnmente se usan para seleccionar un hueco libre del conjunto de huecos disponibles. Se ha demostrado mediante simulaciones que tanto el primer ajuste como el mejor ajuste son ms eficientes que el peor ajuste en trminos tanto de tiempo como de utilizacin de espacio. No se ha determinado claramente si el primer ajuste es mejor que el mejor ajuste en trminos de aprovechamiento del espacio, pero generalmente es ms rpido. Estos algoritmos padecen el problema de fragmentacin externa. Conforme los archivos se asignan y borran, el espacio libre en disco se divide en trozos pequeos. Hay fragmentacin externa siempre que el espacio libre se divide en trozos, y se convierte en un problema cuando el trozo contiguo ms grande es insuficiente para una solicitud; el almacenamiento se fragmenta en varios huecos, ninguno de los cuales es lo bastante grande como para contener los datos. Dependiendo de la cantidad total de espacio en disco y del tamao promedio de los archivos, la fragmentacin externa podra ser un problema menor o mayor. Algunos sistemas de microcomputador viejos usaban asignacin contigua en discos flexibles. Para evitar la prdida de cantidades importantes de espacio en disco por fragmentacin externa, el usuario tena que ejecutar una rutina de reempacado que copiaba todo el sistema de archivos en otro disquete o en cinta. As, el disquete original se desocupaba y se creaba un espacio libre contiguo grande. A continuacin, la rutina copiaba los archivos otra vez en el disquete asignando espacio contiguo de este hueco grande nico. Tal esquema compacta efectivamente todo el espacio libre en un solo hueco contiguo y resuelve el problema de la fragmentacin. El costo de esta compactacin es el tiempo, y es especialmente severo en el caso de discos grandes que usan asignacin contigua, en los que la compactacin de todo el espacio podra tomar horas y por fuerza se tendra que llevar a cabo bajo un rgimen semanal. Durante este tiempo de inactividad, generalmente no puede permitirse el funcionamiento normal del sistema, as que en las mquinas de produccin una compactacin semejante se evita a toda costa. La asignacin contigua tiene otros problemas. Uno de los ms importantes es determinar cunto espacio se necesita para un archivo. Cuando se crea un archivo, es preciso encontrar la cantidad total de espacio que necesitar, y asignarla. Cmo sabe el creador (programa o persona) qu tamao tendr el archivo creado? En algunos casos tal determinacin podra ser sencilla (cuando se copia un archivo existente, por ejemplo), pero en general puede ser difcil estimar el tamao de un archivo de salida. Si asignamos un espacio demasiado pequeo a un archivo, podramos encontrarnos con que ya no podemos extender ese archivo. Sobre todo si se usa una estrategia de mejor ajuste, el espacio a ambos lados del archivo podra estar ya en uso, y no podramos hacer crecer el archivo en su lugar. En tal caso hay dos posibilidades. Primera, podramos terminar el programa de usuario, con un mensaje de error apropiado. El usuario tendr

entonces que asignar ms espacio y ejecutar de nuevo el programa. Tales ejecuciones repetidas podran ser costosas. Para evitarlas, el usuario normalmente sobreestimar la cantidad de espacio requerida, y el resultado ser un desperdicio considerable de espacio. La otra posibilidad es encontrar un hueco ms grande, copiar el contenido del archivo en el nuevo espacio, y liberar el espacio anterior. Esta serie de acciones podra repetirse mientras haya espacio disponible, aunque tambin podra consumir mucho tiempo. La ventaja en este caso es que no es necesario informar al usuario explcitamente de lo que est sucediendo; el sistema contina a pesar del problema, aunque cada vez con mayor lentitud. Incluso si se conoce con anticipacin la cantidad total del espacio requerido para un archivo, la preasignacin podra ser ineficiente. Un archivo que crece lentamente durante un periodo largo (meses o aos) tendra que recibir inicialmente suficiente espacio para su tamao final, aunque gran parte de ese espacio no se ocupe durante largo tiempo. En este caso el archivo tiene una gran cantidad de fragmentacin interna. Para evitar varias de estas desventajas, algunos sistemas operativos utilizan un esquema de asignacin contigua modificado, en el que inicialmente se asigna un trozo contiguo de espacio y luego, cuando ese espacio deja de ser suficiente, se aade otro trozo de espacio contiguo, una extensin, a la asignacin inicial. La ubicacin de los bloques de un archivo se registra entonces como una posicin y una cuenta de bloques, ms un enlace al primer bloque de la siguiente extensin. En algunos sistemas, el propietario del archivo puede establecer el tamao de las extensiones, pero esto puede dar lugar a ineficiencias si el propietario no acta correctamente. La fragmentacin interna puede seguir siendo un problema si las extensiones son demasiado grandes, y la fragmentacin externa puede ser tambin problemtica cuando se asignan y liberan extensiones de diferentes tamaos. Asignacin Enlazada La asignacin enlazada resuelve todos los problemas de la asignacin contigua. Con este esquema, cada archivo es una lista enlazada de bloques de disco, los cuales pueden estar dispersos en cualquier parte del disco. El directorio contiene un puntero al primer y al ltimo bloques del archivo. Por ejemplo, un archivo de cinco bloques podra comenzar en el bloque 9, continuar en el bloque 16, luego el 1, el 10 y por ltimo el bloque 25 (Fig. ). Cada bloque contiene un puntero al siguiente bloque. Estos punteros no se proporcionan al usuario. As, si cada bloque tiene 512 bytes, y una direccin de disco (el puntero) requiere cuatro bytes, el usuario ver bloques de 508 bytes. Para crear un archivo nuevo, simplemente creamos una nueva entrada en el directorio. Con la asignacin enlazada, cada entrada de directorio tiene un puntero al primer bloque de disco del archivo. Inicialmente el puntero recibe el valor nil (el valor del puntero de fin de lista) para indicar un archivo vaco, y tambin se asigna cero al campo de tamao. Una escritura en el archivo hace que se encuentre un bloque libre a travs del sistema de administracin del espacio libre, y luego se escribe en ese bloque, enlazndolo al final del archivo. Para leer un archivo, basta con leer los bloques siguiendo los punteros de un bloque al siguiente. Cuando se usa asignacin enlazada no hay fragmentacin externa, pues cualquier bloque libre de la lista de espacio libre se puede usar para satisfacer una solicitud. Adems, no hay necesidad de declarar el tamao de un archivo en el momento de crearlo. Un archivo puede continuar creciendo en tanto haya bloques libres. Por ello, nunca es necesario compactar el disco.

La asignacin enlazada no carece de problemas. El principal de ellos es que slo puede usarse efectivamente para archivos de acceso secuencial. Para encontrar el i-simo bloque de un archivo, es necesario partir del principio del archivo y seguir los punteros hasta llegar al i-simo bloque. Cada acceso a un puntero requiere una lectura del disco/ y a veces una bsqueda de disco. Por consiguiente, no resulta eficiente proveer una capacidad de acceso directo para archivos de asignacin enlazada.

Otra desventaja de la asignacin enlazada es el espacio que ocupan los punteros. Si un puntero requiere cuatro bytes de un bloque de 512 bytes, el 0.78% del disco se usar para punteros, no para informacin. Cada archivo requiere un poco ms de espacio del que requerira en otro caso. La solucin usual a este problema es juntar bloques en mltiplos, llamados cmulos (clusters), y asignar los cmulos en lugar de los bloques. Por ejemplo, el sistema de archivos podra definir un cmulo como cuatro bloques, y operar con el disco slo en unidades de cmulos. Entonces, los punteros ocuparn un porcentaje mucho ms pequeo del espacio en disco del archivo. Este mtodo permite que la correspondencia entre bloques lgicos y fsicos siga siendo sencilla, mejora el rendimiento del disco (menos bsquedas de disco) y reduce el espacio necesario para la asignacin de bloques y la administracin de la lista de espacio libre. El costo de la estrategia es un aumento en la fragmentacin interna, ya que se desperdicia ms espacio cuando un cmulo est parcialmente lleno que cuando un bloque est parcialmente lleno. Los cmulos pueden servir para mejorar el tiempo de acceso a disco con muchos otros algoritmos, y es por ello que se usan en casi todos los sistemas operativos. Un problema adicional es la confiabilidad. Dado que los archivos se enlazan mediante punteros que estn dispersos por todo el disco, consideremos lo que sucedera si un puntero se perdiera o daara. Un error en el software del sistema operativo o un fallo en el hardware del disco podra hacer que se obtuviera un puntero equivocado. Esto podra hacer que un archivo se enlazara con la lista de espacio libre o con i archivo. Dos soluciones parciales seran usar listas doblemente enlazadas o almacenar el nombre del archivo y el nmero de bloque relativo en cada bloque; sin embargo, tales esquemas requieren un gasto extra an mayor para cada archivo.

Una variacin importante del mtodo de asignacin enlazada es usar una tabla de asignacin de archivos (FAT, file-allocation table). Este sencillo pero eficiente mtodo asignacin de espacio en disco se emplea en los sistemas operativos MS-DOS y OS/2. Se aparta una seccin del disco al principio de cada particin para guardar en ella la tabla, la cual tiene una entrada para cada bloque del disco y est indizada por nmero de bloque. La FAT se usa de manera similar a una lista enlazada. La entrada de directorio contiene el nmero de bloque del primer bloque del archivo. entrada de la tabla indizada por ese nmero de bloque contiene el nmero del siguiente bloque del archivo. Esta cadena contina hasta el ltimo bloque, que tiene un valor especial de fn-de-archivo (end of file) como entrada de tabla. Los bloques desocupados se indican con un valor de cero en la tabla. Para asignar un bloc nuevo a un archivo, basta con encontrar la primera entrada de la tabla que valga cero y sustituir el valor de fin-de-archivo anterior por la direccin del nuevo bloque. A continuacin, el cero se sustituye por el valor de fin-dearchivo. Un ejemplo ilustrativo es la estructura de FAT de la figura para un archivo que consiste en bloques de disco 217, 618 y 339.

Cabe sealar que el esquema de asignacin por FAT puede dar pie a un nmero significativo de movimientos de la cabeza del disco, a menos que la FAT se mantenga cach. La cabeza del disco debe moverse al principio de la particin para leer la FA1 encontrar la ubicacin del bloque en cuestin, luego moverse a la posicin del bloque en s. En el peor caso, ocurrirn ambos movimientos para cada uno de los bloques. Un beneficio es que se mejora el tiempo de acceso aleatorio, porque la cabeza del disco puede encontrar la posicin de cualquier bloque leyendo la informacin en la FAT.

Asignacin Indizada La asignacin enlazada resuelve los problemas de fragmentacin externa y declaracin de tamao de la asignacin contigua, pero, si no se usa una FAT, no puede apoyar un acceso directo eficiente, ya que los punteros a los bloques estn dispersos junto con los bloques mismos por todo el disco y necesitan recuperarse en orden. La asignacin indizada resuelve este problema al reunir todos los punteros en un mismo lugar: el bloque ndice. Cada archivo tiene su propio bloque ndice, que es una matriz de direcciones de bloques de disco. La i-sima entrada del bloque ndice apunta al i-simo bloque del archivo. El

directorio contiene la direccin del bloque ndice. Para leer el i-simo bloque, usamos el puntero de la i-sima entrada del bloque ndice para encontrar y leer el bloque deseado.

Cuando se crea el archivo, se asigna nil a todos los apuntadores del bloque ndice. La primera vez que se escribe el -simo bloque, se obtiene un bloque del administrador de espacio libre y su direccin se coloca en la I-sima entrada del bloque ndice. La asignacin indizada apoya el acceso directo sin sufrir fragmentacin externa, porque cualquier bloque libre del disco puede satisfacer una solicitud de espacio adicional. La asignacin indizada s desperdicia espacio. El gasto extra de los punteros del bloque ndice generalmente es mayor que el de los punteros de la asignacin enlazada. Consideremos un caso comn en el que tenemos un archivo que slo ocupa uno o dos bloques. Con la asignacin enlazada, slo perdemos el espacio de un puntero por bloque (uno o dos punteros). Con la asignacin indizada, es preciso asignar un bloque ndice entero, aun si slo uno o dos punteros son diferentes de nil. Esto hace surgir la pregunta de qu tan grande debe ser el bloque ndice. Cada archivo debe tener un bloque ndice, as que nos conviene que el bloque sea lo ms pequeo posible. Sin embargo, si el bloque ndice es demasiado pequeo no podr contener suficientes punteros para un archivo grande, y se necesitar un mecanismo para resolver este problema: Esquema enlazado. Un bloque ndice normalmente ocupa un bloque de disco; por tanto, se puede leer y escribir directamente por s solo. Para manejar archivos grandes, podramos enlazar varios bloques ndice. Por ejemplo, un bloque ndice podra contener una cabecera pequea con el nombre del archivo y las primeras 100 direcciones de bloques de disco. La siguiente direccin (la ltima palabra del bloque ndice) es nil (si el archivo es pequeo) o un puntero a otro bloque ndice (si el archivo es grande). ndice multinivel. Una variante de la representacin enlazada es usar un bloque ndice de primer nivel que apunte a un conjunto de bloques ndice de segundo nivel, que a su vez apuntan a los bloques de disco. Para acceder a un bloque, el sistema operativo usa el ndice de primer nivel para encontrar un bloque ndice de segundo nivel, y ese bloque para hallar el

bloque de datos deseado. Este enfoque podra extenderse a un tercer o cuarto nivel, dependiendo del tamao mximo de archivo deseado. Con bloques de 4096 bytes, podramos guardar 1024 punteros de cuatro bytes en un bloque ndice. Dos niveles de ndices permitiran apuntar a 1,048/576 bloques de datos, con lo que un archivo podra tener hasta cuatro gigabytes. Esquema combinado. Otra alternativa, que se usa en el sistema BSD UNIX, es guardar los primeros, digamos, 15 punteros del bloque ndice en el bloque ndice (o i-nodo) del archivo. (La entrada de directorio apunta al inodo). Los primeros 12 de estos punteros apuntan a bloques directos; es decir, contienen direcciones de bloques que contienen datos del archivo. As, los datos de archivos pequeos (de no ms de 12 bloques) no necesitan un bloque ndice aparte. Si el tamao de bloque es de 4K, es posible acceder directamente a hasta 48K de datos. Los siguientes tres punteros apuntan a bloques indirectos. El primer puntero de bloque indirecto es la direccin de un bloque indirecto simple: un bloque ndice que no contiene datos, sino las direcciones de bloques que s contienen datos. Luego viene un puntero a un bloque indirecto doble, que contiene la direccin de un bloque que contiene las direcciones de bloques que contienen punteros a los bloques de datos reales. El ltimo puntero contendra la direccin de un bloque indirecto triple. Con este mtodo, el nmero de bloques que es posible asignar a un archivo excede la cantidad de espacio que puede direccionarse con los punteros de archivo de cuatro bytes que usan muchos sistemas operativos. Un puntero de archivo de 32 bits slo alcanza para 2 Exp.32 bytes, o 4 gigabytes. En la figura se muestra un i-nodo.

Los esquemas de asignacin indizada exhiben algunos de los mismos problemas de desempeo que la asignacin enlazada. En trminos especficos, los bloques ndice se pueden colocar en un cach en la memoria, pero los bloques de datos podran estar dispersos por toda una particin.

Anda mungkin juga menyukai