RESUMEN
DEL VIDEO GESTIÓN DE MEMORIA
La memoria es uno de los principales
recursos de la computadora, la cual debe de administrarse con mucho cuidado.
Aunque actualmente la mayoría de los sistemas de cómputo cuentan con una alta
capacidad de memoria, de igual manera las aplicaciones actuales tienen también
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 estén utilizando y aquellas
que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la
necesiten y liberándola 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 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 y los que no.
El propósito principal de una
computadora es el de ejecutar programas, estos programas, junto con la
información que accesan deben de estar en la memoria principal (al menos
parcialmente) durante la ejecución.
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 administración
tanto del procesador como de la memoria. La selección de uno de ellos depende
principalmente del diseño del hardware para el sistema. A continuación se
observarán los puntos correspondientes a la administración de la memoria.
El proceso de compactación del punto
anterior es una instancia particular del problema de asignación de memoria
dinámica, el cual es el cómo satisfacer una necesidad de tamaño n con una lista
de huecos libres. Existen muchas soluciones para el problema. El conjunto de
huecos es analizado para determinar cuál hueco es el más indicado para
asignarse. Las estrategias más comunes para asignar algún hueco de la tabla
son:
Primer
ajuste: Consiste
en asignar el primer hueco con capacidad suficiente. La búsqueda puede iniciar
ya sea al inicio o al final del conjunto de huecos o en donde terminó la última
búsqueda. La búsqueda termina al encontrar un hueco lo suficientemente grande.
Mejor
ajuste: Busca
asignar el espacio más pequeño de los espacios con capacidad suficiente. La
búsqueda se debe de realizar en toda la tabla, a menos que la tabla esté
ordenada por tamaño. Esta estrategia produce el menor desperdicio de memoria
posible.
Peor
ajuste: Asigna el
hueco más grande. Una vez más, se debe de buscar en toda la tabla de huecos a
menos que esté organizada por tamaño. Esta estrategia produce los huecos de
sobra más grandes, los cuales pudieran ser de más uso si llegan procesos de tamaño
mediano que quepan en ellos
Fragmentación
La fragmentación es la memoria que
queda desperdiciada al usar los métodos de gestión de memoria que se vieron en
los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor
producen fragmentación externa.
La fragmentación es generada cuando
durante el reemplazo de procesos quedan huecos entre dos o más procesos de
manera no contigua y cada hueco no es capaz de soportar ningún proceso de la
lista de espera.
La fragmentación puede ser:
Fragmentación Externa: existe el
espacio total de memoria para satisfacer un requerimiento, pero no es contigua.
Fragmentación Interna: la memoria
asignada puede ser ligeramente mayor que la requerida; esta referencia es
interna a la partición, pero no se utiliza.
La fragmentación externa se puede
reducir mediante la compactación para colocar toda la memoria libre en un solo
gran bloque, pero est a solo es posible si la relocalización es dinámica y se
hace en tiempo de ejecución.
Paginación
Es una técnica de manejo de memoria, en
la cual el espacio de memoria se divide en secciones físicas de igual tamaño,
denominadas marcos de página. Los programas se dividen en unidades lógicas,
denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De
esta forma, se puede cargar una página de información en cualquier marco de
página.
Las páginas sirven como unidad de
almacenamiento de información y de transferencia entre memoria principal y
memoria auxiliar o secundaria. Cada marco se identifica por la dirección de
marco, que esta en la posición física de la primera palabra en el marco de
página.
Las páginas de un programa necesitan
estar contiguamente en memoria, aunque el programador lo observe de esta forma.
Los mecanismos de paginación permiten la correspondencia correcta entre las
direcciones virtuales (dadas por los programas) y las direcciones reales de la
memoria que se reverencien.
Segmentación
Es un esquema de manejo de memoria
mediante el cual la estructura del programa refleja su división lógica;
llevándose a cabo una agrupación lógica de la información en bloques de tamaño
variable denominados segmentos. Cada uno de ellos tienen información lógica del
programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de
programa consiste de una colección de segmentos, que generalmente reflejan la
división lógica del programa.
Segmentación
Paginada
Paginación y segmentación son técnicas
diferentes, cada una de las cuales busca brindar las ventajas enunciadas
anteriormente.
Para la segmentación se necesita que
estén cargadas en memoria, áreas de tamaños variables. Si se requiere cargar un
segmento en memoria; que antes estuvo en ella y fue removido a memoria
secundaria; se necesita encontrar una región de la memoria lo suficientemente
grande para contenerlo, lo cual no es siempre factible; en cambio
"recargar" una pagina implica solo encontrar un merco de pagina
disponible.