Está en la página 1de 11

SISTEMAS OPERATIVOS II

UNIDAD I: ADMINISTRACIÓN DE MEMORIA PRINCIPAL

ORGANIZACIÓN INTERNA DE LA MEMORIA PRINCIPAL.


Una memoria principal se compone de un conjunto de celdas básicas
dotadas de una determinada organización. Cada celda soporta un bit de
información. Los bits se agrupan en unidades direccionables denominadas
palabras. La longitud de palabra la determina el número de bits que la componen
y constituye la resolución de la memoria (mínima cantidad de información
direccionable). La longitud de palabra suele oscilar desde 8 bits (byte) hasta 64
bits.

Cada celda básica es un dispositivo físico con dos estados estables (o


semi-estables) con capacidad para cambiar el estado (escritura) y determinar su
valor (lectura). Aunque en los primeros computadores se utilizaron los materiales
magnéticos como soporte de las celdas de memoria principal (memorias de
ferritas, de película delgada, etc.) en la actualidad sólo se utilizan los materiales
semiconductores.
La organización y administración de la “memoria principal”, “memoria
primaria” o “memoria real” de un sistema ha sido y es uno de los factores más
importantes en el diseño de los S. O.
Los términos “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 rápido 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 están 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.

Organización del almacenamiento:


La organización del almacenamiento es la forma de considerar el
almacenamiento principal, bajo los siguientes esquemas de organización:

- sistemas de usuario único


SISTEMAS OPERATIVOS II
- multiprogramación con particiones fijas, con traducción y carga con
reubicación
- multiprogramación con particiones fijas, con traducción y carga absoluta
- multiprogramación con particiones variables
- sistemas de intercambio de almacenamiento
Sea cual sea el esquema de organización de la memoria que se adopte,
hay que decidir qué estrategias de deben utilizar para obtener un rendimiento
óptimo de la misma.
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 esto sería una gran pérdida de tiempo, por esto
el sistema debe ocuparse de ello.
Por organización del almacenamiento se entiende la manera de
considerar este almacenamiento:
 ¿Se coloca un solo programa de usuario o varios?
 Si se encuentran varios programas de usuario:
 ¿Se concede a cada uno la misma cantidad de espacio o se divide el
almacenamiento en porciones o “particiones” de diferente tamaño?
 ¿Se utilizará un esquema rígido de número y tamaño de particiones o un esquema
dinámico y adaptable?
 ¿Se requerirá que los trabajos de los usuarios sean diseñados para funcionar en
una partición específica o se permitirá que se ejecuten en cualquiera donde
quepan?
 ¿Se requerirá o no que cada trabajo sea colocado en un bloque contiguo de
memoria?

La Organización de almacenamiento Realiza funciones en relación a:


 Número de usuarios en memoria
 Cantidad de procesos de un usuario
SISTEMAS OPERATIVOS II
 Forma estática o dinámica.
 Almacenamiento continuo o disperso
 Los programas deben almacenarse en un sitio específico o puede variar

ADMINISTRACIÓN
La administración de almacenamiento define el comportamiento de una
forma de organización, también se define como: Serie de estrategias diseñadas
para obtener un rendimiento óptimo
Según Andrew S. Tanenbaum-1994. La memoria principal es el lugar
donde el CPU lee las instrucciones a ejecutar, así como algunos datos a
emplear. Una de las funciones básicas que debe implementar un SO es la
Administración 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.
Las técnicas que existen para la carga de programas en la memoria son:
 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.
Entre las principales operaciones que desarrolla la administración de
memoria se encuentran
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.
SISTEMAS OPERATIVOS II

Independientemente del esquema de organización hay que decidir las


estrategias que se utilizarán para optimizar el rendimiento.
Las “estrategias de administración” deben considerar:
 ¿Cuándo se consigue un nuevo programa para colocar en la memoria?:
 ¿Cuándo el sistema lo pide específicamente o se intenta anticiparse a las
peticiones?
 ¿Dónde se colocará el programa que se ejecutará a continuación?:
 ¿Se prioriza el tiempo de carga o la optimización en el uso del almacenamiento?
 ¿Con qué criterio se desplazarán programas?

JERARQUIA DE ALMACENAMIENTO
Considera las transferencias de información entre los diversos niveles de
memoria
Los niveles de almacenamiento incluyen:
 Almacenamiento primario: memoria principal.
 Almacenamiento secundario: discos, cintas, etc.
 Almacenamiento “caché”: memoria muy veloz diseñada para aumentar la
velocidad de ejecución de los programas: Aloja la parte (instrucciones y datos)
en ejecución de un programa.
Los niveles de almacenamiento crean “jerarquías de almacenamiento”:
caché, almacenamiento primario, almacenamiento secundario.
Al bajar en la jerarquía:
o Descienden el costo y la velocidad.
o Aumenta la capacidad.
“Espacio de direcciones”: conjunto de todas las direcciones disponibles para un
programa
Los programas y datos necesitan estar en el almacenamiento principal para ser
ejecutados o para poder hacer referencia de ellos.
Los programas o datos que no se necesitan de inmediato pueden guardarse en
el almacenamiento secundario hasta que se necesiten, y en ese momento se
transfieren al almacenamiento principal para ser ejecutados o hacer referencia a
ellos.
SISTEMAS OPERATIVOS II

Los sistemas con varios niveles de almacenamiento requieren destinar recursos


para administrar el movimiento de programas y datos entre niveles
La memoria caché o memoria de alta velocidad es mucho más rápida
que el almacenamiento principal. La memoria caché es extremadamente cara,
por lo que sólo se utilizan memorias caché relativamente pequeñas.
La memoria caché introduce un nivel adicional de transferencia de
información en el sistema, los programas son traspasados de la memoria
principal al caché antes de su ejecución.
Los programas en la memoria caché se ejecutan mucho más rápido que
en la memoria principal.
Al utilizar memoria caché se espera que 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é.

PARTICIONES
El sistema operativo (S. O.) es el responsable de asignar memoria
principal a los procesos para que puedan ser ejecutados.
SISTEMAS OPERATIVOS II

En un modelo de memoria con asignación contigua, todo el espacio lógico


de un proceso (Código, Datos, Pila) ha de estar ubicado de forma contigua en
memoria principal, es decir en direcciones físicas consecutivas

Cuando un proceso finaliza libera la memoria ocupada.

Particiones Múltiples de Memoria


En este esquema, la memoria principal se encuentra dividida de forma
lógica en múltiples particiones de tamaño fijo.

Cada partición es considerada como un único hueco donde se ubicará un


único proceso.
El grado máximo de multiprogramación (número máximo de procesos que
pueden ejecutarse concurremente) en estos sistemas es igual al número de
particiones.
Un proceso únicamente puede ser ubicado en una partición, si el tamaño de
dicha partición es igual o mayor que el de su espacio lógico.

El tamaño de las particiones no varía con la evolución de la memoria.


SISTEMAS OPERATIVOS II
Particiones Múltiples de Memoria con Múltiples Colas

Disponemos de un conjunto de colas donde esperan los procesos para


asignarlesmemoria.
Existen tantas colas como tamaños diferentes de particiones tenga la
memoria.
Cada proceso es colocado en una cola u otra en función del tamaño de
memoria que solicita.
Las solicitudes de memoria para cada cola se satisfacen por orden de
llegada (FIFO).
Los procesos no abandonan su cola de solicitud mientras no se les asigne
memoria.
Cuando un proceso finaliza libera la partición de memoria que ocupaba y
otro proceso de dicha cola puede ser ubicado en ella.

FRAGMENTACIÓN DE MEMORIA

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.
Si un proceso requiere m palabras en memoria principal para correr y se
ejecutan en una partición de n palabras, y si n es mayor que m la diferencia entre
n-m es una fragmentación interna.
Si los programas no ocupan siempre todo el espacio disponible de
memoria se denomina fragmentación Interna.
SISTEMAS OPERATIVOS II
La fragmentación interna viene dada por todos aquellos espacios
de memoria no utilizados en las particiones ocupadas por procesos cuyo tamaño
es inferior al de la partición que se le ha asignado.

Fragmentación Externa. Ocurre cuando una partición está disponible y


no es usada, es decir es muy pequeña para que pueda correr un proceso.

La fragmentación externa se puede reducir mediante la compactación


para colocar toda la memoria libre en un solo gran bloque, pero esta sólo es
posible si la relocalización es dinámica y se hace en tiempo de ejecución.

CONDENSACION
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.

COMPACTACION
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. Por
ejemplo el siguiente mapa de memoria de la Figura # 12, que puede
compactarse.
Los tres huecos de 100K, 300K y 260K pueden compactarse en un hueco
de 660K. La compactación no siempre es posible. En la figura 12 se han movido
los procesos P4 y P3. Para que estos procesos puedan ejecutarse en sus nuevas
posiciones, hay que relocalizar todas las direcciones internas. Si la
relocalización es estática y se efectúa durante el ensamblado, o la carga, la
compactación sólo es posible si la relocalización es dinámica y se efectúa en el
momento de la ejecución.
Puede ocurrir que los agujeros (áreas libres) separados distribuidos por
todo el almacenamiento principal constituyan una cantidad importante de
memoria:
 Podría ser suficiente (el total global disponible) para alojar a procesos
encolados en espera de memoria.
 Podría no ser suficiente ningún área libre individual (ver Figura 3.10).
SISTEMAS OPERATIVOS II

La técnica de compresión de memoria implica pasar todas las áreas ocupadas


del almacenamiento a uno de los extremos de la memoria principal:
 Deja un solo agujero grande de memoria libre contigua.
 Esta técnica se denomina “recogida de residuos” (ver Figura 3.11).

Principales desventajas de la compresión


Consume recursos del sistema (ver Figura 3.12).
SISTEMAS OPERATIVOS II
El sistema debe detener todo mientras efectúa la compresión, lo que
puede afectar los tiempos de respuesta.
Implica la relocalización (reubicación) de los procesos que se encuentran
en la memoria:
 La información de relocalización debe ser de accesibilidad inmediata.
Una alta carga de trabajo significa mayor frecuencia de compresión que
incrementa el uso de recursos.

ESTRATEGIAS DE COLOCACION

Las “estrategias de colocación” están relacionadas con la determinación del


lugar de la memoria donde se colocará (cargará un programa nuevo).
Se utilizan para determinar el lugar de la memoria donde serán colocados los
programas y datos que van llegando y se las clasifica de la siguiente manera:
 “Estrategia de mejor ajuste”:
Un trabajo nuevo es colocado en el agujero en el cual quepa de forma más
ajustada:
Debe dejarse el menor espacio sin usar.
 “Estrategia de primer ajuste”:
Un trabajo nuevo es colocado en el primer agujero disponible con tamaño
suficiente para alojarlo.
 “Estrategia de peor ajuste”:
Consiste en colocar un programa en el agujero en el que quepa de la peor
manera, es decir en el más grande posible:
El agujero restante es también grande para poder alojar a un nuevo programa
relativamente grande.
Las estrategias de colocación determinan en qué lugar del
almacenamiento primario se debe colocar una página o segmento entrante.

NOTA: Esto es trivial, porque una página o segmento entrante se puede ubicar
en cualquier marco de página disponible.
SISTEMAS OPERATIVOS II
ADMINISTRACION DE MEMORIA VIRTUAL
Es un método mediante el cual, un sistema operativo simula tener más
memoria principal que la que existe físicamente. Para implementar la memoria
virtual se utiliza un medio de almacenamiento secundario de alta velocidad de
acceso, generalmente en disco duro de la máquina. Un sistema de memoria
virtual se implementa utilizando paginación como método de administración de
memoria básica y algún mecanismo de intercambio (para descargar páginas de
la memoria principal hacia el disco duro y para cargar esas páginas de nuevo a
la memoria).
La memoria virtual es una técnica para proporcionar la simulación de un
espacio de memoria mucho mayor que la memoria física de una máquina. Esta
“ilusión” permite que los programas se hagan sin tener en cuenta el tamaño
exacto de la memoria física. La ilusión de la memoria virtual esta soportada por
el mecanismo de traducción de memoria, junto con una gran cantidad de
almacenamiento rápido en disco duro. Así en cualquier momento el espacio de
direcciones virtual hace un seguimiento de tal forma que una pequeña parte del,
está en memoria real y el resto almacenado en el disco, y puede ser referenciado
fácilmente.

ESPACIOS DE DIRECCIONES LOGICAS VS FISICAS


Espacio de direcciones lógico: conjunto de direcciones lógicas o virtuales
generadas por un programa.
Espacio de direcciones físico: conjunto de direcciones físicas
correspondientes a las direcciones lógicas en un instante dado.

También podría gustarte