La memoria es uno de los principales recursos de la computadora, la cual debe de
administrarse con mucho cuidado. Aunque actualmente la mayora de los sistemas de cmputo cuentan con una alta capacidad de memoria, de igual manera las aplicaciones actuales tienen tambin altos requerimientos de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y/o multiusuario. La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estn utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando stos la necesiten y liberndola cuando terminen, as como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella. Los sistemas de administracin de memoria se pueden clasificar en dos tipos: los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecucin y los que no. El propsito principal de una computadora es el de ejecutar programas, estos programas, junto con la informacin que accedan deben de estar en la memoria principal (al menos parcialmente) durante la ejecucin. Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administracin tanto del procesador como de la memoria. La seleccin de uno de ellos depende principalmente del diseo del hardware para el sistema. A continuacin se observarn los puntos correspondientes a la administracin de la memoria.
ADMINISTRACION DE MEMORIA La administracin de memoria se refiere a los distintos mtodos y operaciones que se encargan de obtener la mxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operacin principal que realiza es la de trasladar la informacin que deber ser ejecutada por el procesador, a la memoria principal. Actualmente esta administracin se conoce como Memoria Virtual ya que no es la memoria fsica del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria ms extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera ms eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.
Las tcnicas que existen para la carga de programas en la memoria son: particin fija, que es la divisin de la memoria libre en varias partes (de igual o distinto tamao) y la particin dinmica, que son las particiones de la memoria en tamaos que pueden ser variables, segn la cantidad de memoria que necesita cada proceso.
Entre las principales operaciones que desarrolla la administracin de memoria se encuentran la reubicacin, que consiste en trasladar procesos activos dentro y fuera e la memoria principal para maximizar la utilizacin del procesador; la proteccin, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; uso compartido de cdigos y datos, con lo que el mecanismo de proteccin permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en comn.
ORGANIZACIN En primer lugar tenemos que distinguir claramente entre tres tipos de memoria: Una: la memoria EEPROM donde almacenaremos el programa que haremos, esta memoria solo podr ser leda por el pic (el pic va leyendo las instrucciones del programa almacenado en esta memoria y las va ejecutando). Al apagar el pic esta memoria no se borra. Dos: la memoria RAM en cuyos registros se irn almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra. Tres: la memoria EEPROM para datos, es un espacio de memoria EEPROM en la que se pueden guardar variables que queremos conservar aunque se apague el pic. No se tratar aqu por ser una memoria ms difcil de emplear. La organizacin y administracin de la memoria principal, memoria primaria o memoria real de un sistema ha sido y es uno de los factores ms importantes en el diseo de los S. O.
JERARQUA
Cuando el diseador se plantea lo que es la gestin de memoria del sistema debe tener en cuenta que la memoria es unos de los recursos crticos del sistema, es crtica porque un programa al ejecutarse debe estar cargado en M. entonces cuanta ms memoria tengamos o mejora la optimicemos ms programas podremos guardar en ella. Qu quiere un diseador? Que sea barata, gran capacidad y muy rpida. Pero no se pueden conseguir las tres cosas. A mayor capacidad el tiempo de acceso es mucho mayor, es ms lenta. Se observa que ha mayor capacidad menor coste por bit, comparamos Mdulo de memoria y disco duro, no cuesta lo mismo un disco duro de 8 gigas que 8 gigas de memoria RAM. A menor tiempo de acceso, si queremos memoria ms rpida, el coste se nos dispara. Los diseadores del sistema no pueden tener un solo tipo de memoria donde alojar todas las memorias, existe una jerarqua de memoria. Esa jerarqua intenta solucionar esos inconvenientes a la hora de disear el esquema de memoria. En el diseo del sistema informtico, en lo que a la decisin de la memoria a utilizar, se ha de encontrar un compromiso entre su capacidad y su velocidad. Ocurre que en algunas situaciones se necesita una gran capacidad de almacenamiento (es el caso de la memoria secundaria) y en otros es conveniente una mayor velocidad (memoria principal, cach, etc..).
La memoria secundaria trata de proveer una gran capacidad de almacenamiento (sacrificando la velocidad), mientras que la memoria que almacena la informacin que se est procesando en un determinado momento ha de ser rpida aunque no cuente con una gran capacidad.
Desde el punto de vista de la ejecucin de un programa, no todos los datos son accedidos con la misma frecuencia estadstica. Datos prximos (e instrucciones prximas) tienen una mayor probabilidad de ser accedidos. Por esta razn las cachs, aunque no cuentan con una capacidad suficiente como para almacenar un proceso en ejecucin, aumentan notablemente la velocidad del sistema informtico.
Actualmente se suelen utilizar dos niveles de cach en los ordenadores domsticos. La cach de primer nivel est integrada en el interior del P, la cach de segundo nivel normalmente est integrada en la placa base o bien en el circuito impreso que contiene a la CPU.
ALMACENAMIENTO REAL
Los trminos memoria y almacenamiento se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para: Poderlos ejecutar. Referenciarlos directamente. Se considera almacenamiento secundario o almacenamiento auxiliar al generalmente soportado en discos. Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rpido como las memorias: Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda la memoria disponible para ellos. La parte del S. O. que administra la memoria se llama administrador de la memoria: Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando estos la necesitan. Libera espacio de memoria asignada a procesos que han terminado. Histricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilizacin debe optimizarse.
ASIGNACIN CONTIGUA VS. NO CONTIGUA.
Para asignarle espacio a los archivos existen tres criterios generales que se describen enseguida. Asignacin contigua: Cada directorio contiene la los nombres de archivos y la direccin del bloque inicial de cada archivo, as como el tamao total de los mismos. Por ejemplo, si un archivo comienza en el sector 17 y mide 10 bloques, cuando el archivo sea accesado, el brazo se mover inicialmente al bloque 17 y de ah hasta el 27. Si el archivo es borrado y luego creado otro ms pequeo, quedarn huecos intiles entre archivos tiles, lo cual se llama fragmentacin externa. Asignacin encadenada: Con este criterio los directorios contienen los nombres de archivos y por cada uno de ellos la direccin del bloque inicial que compone al archivo. Cuando un archivo es ledo, el brazo va a esa direccin inicial y encuentra los datos iniciales junto con la direccin del siguiente bloque y as sucesivamente. Con este criterio no es necesario que los bloques estn contiguos y no existe la fragmentacin externa, pero en cada "eslabn" de la cadena se desperdicia espacio con las direcciones mismas. En otras palabras, lo que se crea en el disco es una lista ligada. Asignacin con ndices (indexada): En este esquema se guarda en el directorio un bloque de ndices para cada archivo, con apuntadores hacia todos sus bloques constituyentes, de manera que el acceso directo se agiliza notablemente, a cambio de sacrificar varios bloques para almacenar dichos apuntadores. Cuando se quiere leer un archivo o cualquiera de sus partes, se hacen dos accesos: uno al bloque de ndices y otro a la direccin deseada. Este es un esquema excelente para archivos grandes pero no para pequeos, porque la relacin entre bloques destinados para ndices respecto a los asignados para datos es incosteable.
Asignacin Contigua de Almacenamiento Versus No Contigua
En la asignacin contigua cada programa ocupa un bloque contiguo y sencillo de localizaciones de almacenamiento. En la asignacin 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 ms compleja pero ms eficiente que la asignacin continua.
Asignacin 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
El tamao de los programas est limitado por la cantidad de memoria principal, pero se puede superar este lmite con tcnicas de recubrimientos, con las siguientes caractersticas
Si una seccin particular del programa ya no es necesaria, se carga otra seccin desde el almacenamiento secundario ocupando las reas de memoria liberadas por la seccin que ya no se necesita.
La administracin manual por programa del recubrimiento es complicada y dificulta el desarrollo y el mantenimiento.
Proteccin en los sistemas de un solo usuario
El usuario tiene un completo control sobre la totalidad del almacenamiento principal:
El almacenamiento se divide en porciones que contienen el S. O., el programa del usuario y una porcin sin usar.
El programa del usuario podra destruir reas del S. O. que podran ser:
Detener el sistema.
Producir salidas errneas.
El S. O. debe estar protegido contra el proceso usuario:
La proteccin se instrumenta mediante un registro de lmites incorporado a la CPU:
Contiene la direccin de la instruccin ms alta utilizada por el S. O.
Si se intenta ingresar al S. O. la instruccin es interceptada y el proceso finaliza.
Procesamiento por lotes de flujo nico Los sistemas de un solo usuario se dedican a un trabajo durante ms tiempo del que toma su ejecucin.
Los trabajos requieren de:
tiempo de instalacin: el necesario para preparar el entorno operativo requerido.
tiempo de descarga: el necesario para desmontar el entorno operativo que fue requerido.
Durante la instalacin y descarga de los trabajos la CPU no est ejecutando dichos trabajos requeridos, por lo cual:
Automatizar la transicin de trabajo a trabajo reduce la cantidad de tiempo perdido entre trabajos.
Surgieron los sistemas de procesamiento por lotes.
En el procesamiento por lotes de flujo nico los trabajos se agrupan en lotes encolndose para su ejecucin El procesador de flujos de trabajos:
Lee las instrucciones del lenguaje de control de trabajos. Facilita la preparacin del trabajo siguiente. Emite instrucciones al operador del sistema. Automatiza funciones anteriormente manuales. Cuando finaliza un trabajo efecta las operaciones de mantenimiento apropiadas para facilitar la transicin del siguiente trabajo.
MTODOS DE ASIGNACIN DE ESPACIO EN DISCO. Un mtodo de asignacin de espacio en disco determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar bsicamente la identificacin del archivo, sector de inicio y sector final. Para el control del espacio ocupado en disco se puede utilizar como base alguno de los mtodos tericos: Asignacin Contigua, Asignacin Ligada, Asignacin Indexada.
ASIGNACIN CONTIGUA.
Este mtodo consiste en asignar el espacio en disco de tal manera que las direcciones de todos los bloques correspondientes a un archivo definen un orden lineal.
VENTAJAS DESVENTAJAS - La cabeza de lectura no se mueve demasiado en la lectura de un archivo. - Produce fragmentacin externa.
ASIGNACIN LIGADA
En este mtodo, cada archivo es una lista ligada de bloques de disco. En el directorio hay un apuntador al bloque de inicio y un apuntador al bloque final para cada archivo. En cada uno de los bloques donde se encuentra un archivo hay un apuntador al siguiente bloque de la lista. Por ejemplo: VENTAJAS DESVENTAJAS - No produce fragmentacin externa. La cabeza de lectura se puede mover demasiado en la lectura de un archivo. - Si una liga se pierde, se perder el archivo completo. Es ineficiente para la implementacin de archivos directos. Se necesita un campo extra para el apuntador.
ASIGNACIN INDEXADA
Como ya se vio, la asignacin ligada resuelve problemas de fragmentacin externa, sin embargo, la asignacin ligada no soporta eficientemente el acceso directo a los archivos. La asignacin indexada resuelve este problema poniendo todos los apuntadores en una sola localidad: El bloque ndice. Cada archivo tiene su bloque ndice, El cual es un arreglo de direcciones de bloques de disco. La i-sima entrada en el bloque ndice apunta al i-simo bloque que conforma el archivo. En el directorio se controla la direccin del bloque ndice de cada archivo
VENTAJAS DESVENTAJAS No produce fragmentacin externa. Eficiente para la implementacin de archivos directos.
Existe desperdicio cuando hay archivos muy chicos. Desbordamiento de bloque ndice. (Solucin: creacin de un esquema ligado; el ltimo bloque ndice apunta a otro ndice)
CONCLUSIN Para concluir se entiende que:
En la memoria principal son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. La memoria virtual es aquella que le ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que pueden usar el espacio de direcciones completo. Las direcciones de memoria son de tres tipo: fsicas, lgicas y lineales. El objetivo del intercambio es dar cabida a la ejecucin de ms aplicaciones de las que pueden residir simultneamente en la memoria del sistema. Las asignacin consiste en determinar cul espacio vaco en la memoria principal es el ms indicado para ser asignado a un proceso.