Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD 3
1. INTRODUCCIÓN
Para que un programa pueda ser ejecutado en una computadora, tanto el programa como los
datos que vayan a manejar deben estar almacenados en la memoria principal o física.
MEMORIA
Procesador Dispositivos de E/S
PRINCIPAL
Al ser la memoria un recurso tan caro y tan influyente en el rendimiento general de una
computadora, debe ser manejado de la forma más eficiente posible. Por este motivo, el
sistema operativo dedica gran parte de su software a su gestión (gestor de memoria),
buscando la utilización más adecuada al servicio que debe dar.
2.1 Monoprogramación
31
Administración de Memoria 32
termine su trabajo no cederá el control al siguiente programa que será cargado en memoria,
sustituyendo al anterior.
Formas de gestión de memoria en aquellos sistemas que utilizan este modo de trabajo.
• La memoria dedicada
Las primeras computadoras utilizaban lo que se denomina régimen dedicado, consiste en
que el programador accedían directamente al hardware y gestionaba la memoria en sus
programas. En estos primeros equipos se programaba en lenguaje de máquina, sin existir
sistema operativo y por lo tanto tampoco gestor de memoria.
MEMORIA PRINCIPAL
Programa de usuario
Zona no utilizada
MEMORIA PRINCIPAL
Monitor residente
Programa de usuario
Zona no utilizada
Protección de la memoria
32
Administración de Memoria 33
Por tanto, se establece una dirección frontera que limita la zona del sistema operativo.
Cualquier dirección de memoria que solicite el programa de usuario se compara con la
dirección frontera, permitiendo el acceso o no, según corresponda.
Reasignación de direcciones
Intercambio de almacenamiento
Cuando un programa cargado en memoria quede a la espera de una nueva orden, el sistema
operativo lo descargará (swap-out) en dispositivos rápidos de almacenamiento secundario.
En su lugar cargará el de otro usuario (swap-in), traído de dichos dispositivos.
33
Administración de Memoria 34
Se puede reducir la influencia del cambio del programa si se solapa con la ejecución. Para
ello, el sistema divide la zona de usuario en dos partes. Mientras en una está ejecutándose
un programa, en la otra se está cargando otro.
2.2 Multiprogramación
Protección de la memoria
Esta técnica exige que las direcciones generadas sean asignadas bien durante la
compilación o durante la carga del programa. En ambos casos la asignación será estática.
Otra solución más flexible, carga un registro con la dirección de comienzo de la partición y
el otro con el tamaño de la misma, denominándose registro base y registro límite. En este
caso es posible la asignación dinámica de direcciones ya que bastará actualizar el contenido
del registro base para apuntar a otra zona de memoria.
Se puede gestionar la memoria con particiones continuas de tamaño fijo, de tal forma que el
número de ellas y sus tamaños se definirán al inicializar el sistema, quedando inamovibles
para toda la sesión hasta que se apague el equipo. Por ejemplo, si tenemos una computadora
de 640K de memoria principal, de las que 128K son utilizadas por el sistema operativo,
quedaran 512K para programas de usuario. Se puede inicializar el sistema con tres
particiones de 128K, 128K y 256K, quedando de esta forma distribuida la memoria.
34
Administración de Memoria 35
MEMORIA PRINCIPAL
Sistema Operativo
Cuando un programa tenga que cargarse para su ejecución, el sistema operativo le asignará
una partición que pueda contenerlo, para ello es necesario que los programas declaren sus
necesidades de memoria al sistema.
Las primeras técnicas que utilizaron este tipo de partición de la memoria realizaban la
gestión por medio de colas de espera, de tal forma que al entrar un programa en ejecución,
el sistema operativo le asignaba a una cola de acuerdo con la memoria que solicita.
MEMORIA PRINCIPAL
Sistema Operativo
Se puede utilizar otra técnica consistente en una sola cola de espera, y será el sistema por
medio del Planificador de Trabajos el encargado de seleccionar que programa cargar y en
que partición.
MEMORIA PRINCIPAL
Sistema Operativo
35
Administración de Memoria 36
El desarrollo de esta técnica presentó un notable avance respecto a los anteriores. Sin
embargo, su eficacia queda condicionada por la elección del tamaño y el número de
particiones en relación con las características de los programas a tratar.
Si se analiza este tipo de particiones, se originas dos problemas:
b) Por otra parte podemos tener un programa de 130K en la partición de 256K y otro de
100K en una de 128K, presentándose una petición por parte de un programa de 140K
que no podrá ser cargado en la partición libre, mientras por otra parte existe, en teoría
memoria total suficiente. A este suceso se le denomina fragmentación externa.
MEMORIA PRINCIPAL
Sistema Operativo
100K
130K
En este caso, el sistemas operativo mantendrá una tabla interna donde registrara las zonas
de memoria disponible o huecos, asignando a cada trabajo una partición del tamaño
solicitado. Esta técnica es denominada particiones contiguas de tamaño variable.
MEMORIA PRINCIPAL
Sistema Operativo
T1 (130K)
T2 (100K)
T3(140K)
142K
Cuando se arranca el sistema, a medida que van apareciendo trabajos en la cola, se van
asignando las sucesivas particiones hasta que la memoria se completa, aunque siempre
aparece una pequeña fragmentación externa (parte final de la memoria). A medida que van
terminando los distintos trabajos, el planificador va sustituyendo un programa por otro, de
tal forma que van apareciendo huecos mientras existan trabajos en espera que quepan en
ellos. Lo hará buscando el primer trabajo que quepa en el hueco o aquel que se acople
mejor.
36
Administración de Memoria 37
Cuando aparecen huecos contiguos, el gestor de la memoria tiende a unificarlos, por lo que
en ningún momento existirá dos particiones contiguas vacías.
Con esta técnica, la memoria sufre un constante proceso de fragmentación. Para evitarlo,
surge la idea de recolocar las zonas de memoria utilizadas para lograr cada cierto tiempo un
único hueco de memoria disponible. Esta operación se denomina compactación y no es
sencillo de realizar, pues existen diversas formas de recolocar varios programas en la
memoria y con diferente coste. Además, es necesario que los programas sean reubicables
para poder cambiar de zona de memoria principal.
162K
3. PAGINACIÓN
Cada programa se divide en paginas, y estas se cargan en frame libres que no tienen porque
ser contiguos.
37
Administración de Memoria 38
Memoria cache
A todos estos procedimientos que se realiza hace que mejore la utilización de memoria,
pero, la duración de los procesos es mayor. Para solventar este problema, se recurre a
memorias pequeñas de muy alta velocidad (también muy caras). Esta memoria, conocida
como memoria cache, es similar a la memoria principal pero con menor tiempo de acceso y
con ello se logra reducir notablemente el retraso producido por la paginación.
4. SEGMENTACIÓN
La segmentación es una técnica distinta de gestión de memoria que pretende acercarse más
al punto de vista del usuario.
Contadores
Rutina de errores
Rutina principal
Tabla de datos
. . .
38
Administración de Memoria 39
5. MEMORIA VIRTUAL
Los sistemas de gestión de la memoria vistos hasta ahora están sujetos a la exigencia de que
un programa, para ejecutarse, debe estar cargado en memoria principal en su totalidad. Sin
embargo, no todas las partes del programa se ejecutan normalmente.
Esta técnica es difícil de llevar a la practica. Los sistemas que la utilizan son complejos,
pero a la vez, deben ser muy eficientes. De lo contrario, la ejecución de los programas
puede empeorar notablemente.
39
Administración de Memoria 40
B1
B2
A1
A2
A3
40