Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Todo ordenador tiene una memoria principal que utiliza para albergar los programas en ejecución.
En los sistemas operativos más sencillos, sólo hay un programa a la vez en la memoria. Para ejecutar
un segundo programa, es preciso desalojar el primero y colocar el segundo en la memoria.
Los sistemas operativos algo más sofisticados permiten que haya varios programas en la memoria al
mismo tiempo. Para evitar que se interfieran (y que interfieran con el sistema operativo), es
necesario algún tipo de mecanismo de protección. Aunque este mecanismo tiene que estar en el
hardware, es controlado por el sistema operativo. El punto de vista anterior tiene que ver con la
gestión y la protección de la memoria principal del ordenador. Un aspecto distinto, pero igualmente
importante, relacionado con la memoria es la gestión del espacio de direcciones de los procesos.
Normalmente, cada proceso tiene algún conjunto de direcciones que puede usar y que normalmente
va desde 0 hasta algún máximo. En el caso más sencillo, la cantidad máxima de espacio de
direcciones que tiene un proceso es menor que la memoria principal. De esa manera, un proceso
puede llenar su espacio de direcciones habiendo suficiente espacio en la memoria principal para
contenerlo. Sin embargo, en muchos ordenadores las direcciones son de 32 o 64 bits, lo que significa
espacios de direcciones de 232 o 264 bytes,
respectivamente. ¿Qué sucede si el espacio
de direcciones de un proceso es mayor que
la memoria principal del ordenador y el
proceso quiere hacer uso de todo su
espacio? En los primeros ordenadores no
se podía ejecutar ese desafortunado
proceso. Actualmente existe una técnica
denominada memoria virtual, en la cual el
sistema operativo mantiene una parte de
su espacio de direcciones en la memoria
principal y otra parte en el disco, y transfiere fragmentos entre ambos lugares según sea necesario.
Esta importante función del sistema operativo, y otras relacionadas con la administración.
ORGANIZACIÓN DE LA MEMORIA
Históricamente el almacenamiento
principal se ha considerado como un
recurso costoso, por lo cual su
utilización debía optimizarse. La
memoria está dividida en primaria y
secundaria. El traspaso de
información entre éstas es
la preocupación más grande del
sistema; esta responsabilidad puede
ser asignada al programador, pero
ésto sería una gran pérdida de
tiempo, por esto el sistema debe
ocuparse de ello.
ADMINISTRACIÓN
Según Andrew S. Tanenbaum-1994. La memoria principal es el lugar donde el CPU lee las
instrucciones a ejecutar, asi como algunos datos a emplear. Una de las funciones básicas que debe
implementar un SO es la Administracion de la Memoria para tener un control sobre los lugares
donde están almacenados los procesos y datos que actualmente se están utilizando.
Independientemente del esquema de organización hay que decidir las estrategias que se utilizarán
para optimizar el rendimiento. Se refiere a los distintos métodos y operaciones que se encargan de
obtener la máxima 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 operación principal que realiza es la de trasladar la información que deberá
ser ejecutada por el procesador, a la memoria principal. Actualmente esta administración se conoce
como Memoria Virtual ya que no es la memoria física del procesador sino una memoria virtual que la
representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria
más extensa teniendo la misma memoria real, con lo que esta se puede utilizar de manera más
eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.
· Partición fija:que es la división de la memoria libre en varias partes (de igual o distinto tamaño)
· Partición dinámica, que son las particiones de la memoria en tamaños que pueden ser
variables, según la cantidad de memoria que necesita cada proceso.
1. La reubicación: Que consiste en trasladar procesos activos dentro y fuera e la memoria
principal para maximizar la utilización del procesador
2. La protección: Son mecanismos que protegen los procesos que se ejecutan de interferencias de
otros procesos.
3. Uso compartido de códigos y datos: con lo que el mecanismo de protección permite que ciertos
procesos de un mismo programa que comparten una tarea tengan memoria en común.
JERARQUÍA
Se refiere a los diferentes medios de almacenamiento. Pueden ser sólo dos: disco duro y disco
óptico, o bien disco duro y cinta. Más usual son tres: disco duro, disco óptico y cinta. En todos los
casos, los medios removibles se manejan en forma automática por los dispositivos robóticos
correspondientes: un jukebox para discos ópticos, o bien una biblioteca automatizada o
autocargardor para cinta.
Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser
referenciados. Los programas y datos que no son necesarios de inmediato pueden mantenerse en el
almacenamiento secundario. El almacenamiento principal es más costoso y menor que el secundario
pero de acceso más rápido.
Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el
movimiento de programas y datos entre niveles (ver Figura).
Un nivel adicional es el “caché” o memoria de alta velocidad, que posee las siguientes
características:
· Los programas en la memoria caché ejecutan mucho más rápido que en la memoria principal.
o La sobrecarga que supone el traspaso de programas de un nivel de memoria a otro sea mucho
menor que la mejora en el rendimiento obtenida por la posibilidad de una ejecución mucho más
rápida en la caché.
Jerarquía de almacenamiento
Los componentes fundamentales de las computadoras de propósito general son la CPU, el
espacio de almacenamiento y los dispositivos de entrada/salida. La habilidad para almacenar las
instrucciones que forman un programa de computadora y la información que manipulan las
instrucciones es lo que hace versátiles a las computadoras diseñadas según la arquitectura de
programas almacenados
Esta forma de gestión consiste en dividir la memoria en varias zonas, pudiendo ser cada zona de un
tamaño diferente. Esto se ilustra en la figura 6.3. El tamaño de las zonas podrá ser modificado
eventualmente por algún usuario responsable de la administración del ordenador. Los trabajos se
traducían mediante compiladores y ensambladores absolutos, para ejecutarse en
una partición específica. Una vez introducido un proceso en una partición, permanece en ella hasta
su finalización. Si un trabajo se iniciaba, y la partición para la que estaba compilado estaba ocupada,
tenía que esperar, aunque estuvieran libres otras particiones. Esto provoca una pérdida de
eficiencia.
Protección: Si se tiene el esquema hardware del registro base, para lograr la protección de las zonas
de memoria basta con añadir un nuevo registro, denominado registro límite. Este registro guarda la
última dirección de la partición, y forma también parte del PCB del proceso. El hardware, después de
sumar el registro base a la dirección relativa, comprueba que la dirección obtenida no supere el valor
del registro límite. Si se supera el valor, se está intentando acceder a una zona que no corresponde
al proceso; en esta situación, el hardware genera una interrupción.
FRAGMENTACIÓN
Condensación
Unir o fusionar espacios o “huecos” adyacentes para formar uno más grande.
Por ejemplo, si hay una solicitud de usuario de 5k y en la memoria hay disponibles 2 “huecos”
contíguos pero uno es de 2k y el otro es 3k, entonces, para poder atender ésa solicitud de usuario, se
“unen” los 2 “huecos” que formarían un sólo “hueco” de 5k, por tanto ahora si cabría la solicitud en
el “hueco” que hay disponible.
Compactación;
Una solución para el problema de la fragmentación externa es la compactación. El objetivo consiste
en desplazar el contenido de la memoria para colocar junta toda la memoria libre en un solo bloque
de gran tamaño.
• Técnica que consiste en trasladar todas las áreas ocupadas del almacenamiento hacia
algún extremo de la memoria.
• Es una solución de la fragmentación externa.
• El objetivo consiste en desplazar el contenido de la memoria libre en un sólo bloque de gran
tamaño.
• La compactación no siempre es posible, sólo es posible si la relocalización es dinámica
y se efectúa en el momento de la ejecución.
• Este esquema puede ser bastante costoso.
Estrategias de colocación
Permiten determinar en qué lugar de la memoria principal se deben colocar los programas y datos
entrantes.
Tipos:
Mejor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.
¨ Primer Ajuste. Colocar el trabajo en el primer hueco de la lista de almacenamiento libre en el
que quepa.
Compactación de Memoria
El proceso de compactación son
unas instancias particulares del
problema de asignación de
memoria dinámica, y esta
se refiere a satisfacer una
necesidad de tamaño (N) en una
lista de huecos libres. Entre
tantas posibilidades existe una
que determina el hueco
más indicado en el momento de asignar. A continuación estrategias comunes para la asignación de
algún hueco en la tabla.
PEOR AJUSTE: En este algoritmo se busca que el tamaño del hueco concuerde con el tamaño del
proceso. Es decir que sea el tamaño del hueco sea igual o mayor que el del proceso, sin importar que
se pueda perder gran cantidad de espacio en la memoria.
Almacenamiento Virtual
La memoria virtual es una técnica de gestión de la memoria que permite que el sistema operativo
disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria
que la disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria:
registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoriaRAM y el disco
duro. En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor
velocidad.
Muchas aplicaciones requieren acceso a más información (código y datos) que la que se puede
mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples
procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar
mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de
su información en disco, moviéndola a la memoria principal cuando sea necesario. En este caso es
cuando es útil el espacio de intercambio: el sistema operativo puede buscar un proceso poco activo,
y moverlo al área de intercambio (el disco duro) y de esa forma liberar la memoria principal para
cargar otros procesos. Mientras no haga falta, el proceso extraído de memoria puede quedarse en el
disco, ya que ahí no utiliza memoria física. Cuando sea necesario, el sistema vuelve a hacer
un intercambio, pasándolo del disco a memoria RAM. Es un proceso lento (comparado con usar sólo
la memoria RAM), pero permite dar la impresión de que hay más memoria disponible
ESTRATEGIAS DE COLOCACIÓN.
De las diversas organizaciones de memoria tratadas en el tema anterior únicamente las que realizan
una asignación no contigua (paginación, segmentación y segmentación paginada) del
almacenamiento permiten implantar una administración virtual de la memoria. Para cualquiera de
las tres formas de organizar esta memoria virtual habrá que determinar:
v Estrategias de obtención. Determinan cuándo se debe transferir una página o un segmento del
almacenamiento secundaria al primario. Las estrategias de obtención por demanda esperan a que
un proceso en ejecución haga referencia a una página o a un segmento antes de traerla/lo. Los
esquemas de obtención anticipada intentan determinar por adelantado a qué páginas o segmentos
hará referencia un proceso. Si la probabilidad de una referencia es alta y hay espacio disponible,
entonces se trae al almacenamiento primario la página o segmento antes de que se haga la
referencia explícitava Estrategias de colocación. Determinan en qué lugar de la memoria principal se
debe colocar una página o un segmento entrante. Los sistemas de paginación vuelven trivial la
decisión de colocación, porque una página entrante se puede ubicar en cualquier marco de página
disponible. Los sistemas con segmentación requieren estrategias de colocación como las tratadas en
el contexto de los sistemas de multiprogramación con particiones dinámicas.
v Estrategias de reemplazo. Sirven para decidir qué página o segmento se debe desplazar para dejar
espacio a una página o segmento entrante cuando está completamente ocupada la memoria
principal. Una estrategia de asignación de memoria determina el lugar donde será cargado un nuevo
proceso en base a un criterio. Las estrategias de asignación son:
1. PRIMER AJUSTE. El Sistema Operativo asigna el primer bloque de memoria libre con espacio
suficiente para satisfacer la información. La búsqueda de este bloque es de manera secuencial.
2. MEJOR AJUSTE. El sistema operativo busca el bloque de memoria que represente el menor
desperdicio según el requerimiento.
3. PEOR AJUSTE. El sistema operativo asigna el bloque más grande que encuentre.