Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 1
Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 2
Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 5
All for this textbook (6)
Written for
National University Arturo Jauretche (UNAJ

)
I3003
All documents for this subject (7)
Seller
Follow
agusmitrobeda
Content preview
3
ADMINISTRACIÓN DE MEMORIA
La memoria principal (RAM) es un importante recurso que debe administrarse con cuidado. Aun-
que actualmente una computadora doméstica promedio tiene 10,000 veces más memoria que la
IBM 7094, la computadora más grande en el mundo a principios de la década de 1960, los progra-
mas están creciendo con más rapidez que las memorias. Parafraseando la ley de Parkinson diría que
“los programas se expanden para llenar la memoria disponible para contenerlos”. En este capítulo
estudiaremos la forma en que los sistemas operativos crean abstracciones de la memoria y cómo las
administran.
Lo que todo programador quisiera es una memoria privada, de tamaño y rapidez infinitas, que
también sea no volátil, es decir, que no pierda su contenido cuando se desconecta de la potencia
eléctrica. Y ya que estamos en ello, ¿por qué no hacerla barata también? Por desgracia, la tecnolo-
gía no proporciona tales memorias en estos momentos. Tal vez usted descubra cómo hacerlo.
¿Cuál es la segunda opción? A través de los años se ha elaborado el concepto de jerarquía de
memoria, de acuerdo con el cual, las computadoras tienen unos cuantos megabytes de memoria ca-
ché, muy rápida, costosa y volátil, unos cuantos gigabytes de memoria principal, de mediana velo-
cidad, a precio mediano y volátil, unos cuantos terabytes de almacenamiento en disco lento,
económico y no volátil, y el almacenamiento removible, como los DVDs y las memorias USB. El
trabajo del sistema operativo es abstraer esta jerarquía en un modelo útil y después administrarla.
La parte del sistema operativo que administra (parte de) la jerarquía de memoria se conoce co-
mo administrador de memoria. Su trabajo es administrar la memoria con eficiencia: llevar el re-
gistro de cuáles partes de la memoria están en uso, asignar memoria a los procesos cuando la
necesiten y desasignarla cuando terminen.
175
,176 ADMINISTRACIÓN DE MEMORIA CAPÍTULO 3
En este capítulo investigaremos varios esquemas distintos de administración de memoria, que
varían desde muy simples hasta muy sofisticados. Como generalmente el hardware es el que se en-
carga de administrar el nivel más bajo de memoria caché, en este capítulo nos concentraremos en
el modelo del programador de la memoria principal y en cómo se puede administrar bien. Las abs-
tracciones y la administración del almacenamiento permanente, el disco, son el tema del siguiente
capítulo. Analizaremos primero los esquemas más simples posibles y después progresaremos de
manera gradual hacia esquemas cada vez más elaborados.
3.1 SIN ABSTRACCIÓN DE MEMORIA
La abstracción más simple de memoria es ninguna abstracción. Las primeras computadoras main-
frame (antes de 1960), las primeras minicomputadoras (antes de 1970) y las primeras computado-
ras personales (antes de 1980) no tenían abstracción de memoria. Cada programa veía simplemente
la memoria física. Cuando un programa ejecutaba una instrucción como
MOV REGISTRO1, 1000
la computadora sólo movía el contenido de la ubicación de memoria física 1000 a REGISTRO1. Así,
el modelo de programación que se presentaba al programador era simplemente la memoria física,
un conjunto de direcciones desde 0 hasta cierto valor máximo, en donde cada dirección correspon-
día a una celda que contenía cierto número de bits, comúnmente ocho.
Bajo estas condiciones, no era posible tener dos programas ejecutándose en memoria al mismo
tiempo. Si el primer programa escribía un nuevo valor en, por ejemplo, la ubicación 2000, esto bo-
rraría cualquier valor que el segundo programa estuviera almacenando ahí. Ambos programas falla-
rían de inmediato.
Incluso cuando el modelo de memoria consiste en sólo la memoria física hay varias opciones
posibles. En la figura 3-1 se muestran tres variaciones. El sistema operativo puede estar en la parte
inferior de la memoria en la RAM (Random Access Memory, Memoria de acceso aleatorio), como
se muestra en la figura 3-1(a), puede estar en la ROM (Read Only Memory, Memoria de sólo lec-
tura) en la parte superior de la memoria, como se muestra en la figura 3-1(b), o los controladores
de dispositivos pueden estar en la parte superior de la memoria en una ROM y el resto del sistema
en RAM más abajo, como se muestra en la figura 3-1(c). El primer modelo se utilizó antes en las
mainframes y minicomputadoras, pero actualmente casi no se emplea. El segundo modelo se utili-
za en algunas computadoras de bolsillo y sistemas integrados. El tercer modelo fue utilizado por las
primeras computadoras personales (por ejemplo, las que ejecutaban MS-DOS), donde la porción
del sistema en la ROM se conoce como BIOS (Basic Input Output System, Sistema básico de en-
trada y salida). Los modelos (a) y (c) tienen la desventaja de que un error en el programa de usua-
rio puede borrar el sistema operativo, posiblemente con resultados desastrosos (la información del
disco podría quedar ininteligible).
Cuando el sistema se organiza de esta forma, por lo general se puede ejecutar sólo un proceso
a la vez. Tan pronto como el usuario teclea un comando, el sistema operativo copia el programa so-
licitado del disco a la memoria y lo ejecuta. Cuando termina el proceso, el sistema operativo mues-
,SECCIÓN 3.1 SIN ABSTRACCIÓN DE MEMORIA 177
0xFFF … Drivers de
Sistema dispositivos
operativo en ROM
en ROM
Programa
de usuario Programa
de usuario
Programa
de usuario
Sistema Sistema
operativo operativo
en RAM en RAM
0 0 0
(a) (b) (c)
Figura 3-1. Tres formas simples de organizar la memoria con un sistema operativo y
un proceso de usuario. También existen otras posibilidades.
tra un carácter indicador de comando y espera un nuevo comando. Cuando recibe el comando, car-
ga un nuevo programa en memoria, sobrescribiendo el primero.
Una forma de obtener cierto grado de paralelismo en un sistema, sin abstracción de memoria,
es programar con múltiples hilos. Como se supone que todos los hilos en un proceso ven la misma
imagen de memoria, el hecho de que se vean obligados a hacerlo no es un problema. Aunque esta
idea funciona, es de uso limitado ya que lo que las personas desean a menudo es que los programas
no relacionados se ejecuten al mismo tiempo, algo que la abstracción de los hilos no provee. Ade-
más, es muy poco probable que un sistema tan primitivo como para no proporcionar una abstrac-
ción de memoria proporcione una abstracción de hilos.
Ejecución de múltiple programas sin una abstracción de memoria
No obstante, aun sin abstracción de memoria es posible ejecutar varios programas al mismo tiem-
po. Lo que el sistema operativo debe hacer es guardar todo el contenido de la memoria en un archi-
vo en disco, para después traer y ejecutar el siguiente programa. Mientras sólo haya un programa a
la vez en la memoria no hay conflictos. Este concepto, el intercambio, se analiza a continuación.
Con la adición de cierto hardware especial es posible ejecutar múltiples programas concurren-
temente, aun sin intercambio. Los primeros modelos de la IBM 360 resolvieron el problema de la
siguiente manera: la memoria estaba dividida en bloques de 2 KB y a cada uno se le asignaba una
llave de protección de 4 bits, guardada en registros especiales dentro de la CPU. Un equipo con
una memoria de 1 MB sólo necesitaba 512 de estos registros de 4 bits para totalizar 256 bytes de
almacenamiento de la llave. El registro PSW (Program Status Word, Palabra de estado del progra-
ma) también contenía una llave de 4 bits. El hardware de la 360 controlaba mediante un trap cual-
quier intento por parte de un proceso en ejecución de acceder a la memoria con un código de
protección distinto del de la llave del PSW. Como sólo el sistema operativo podía modificar las lla-
ves de protección, los procesos de usuario fueron controlados para que no interfirieran unos con
otros, ni con el mismo sistema operativo.
, 178 ADMINISTRACIÓN DE MEMORIA CAPÍTULO 3
Sin embargo, esta solución tenía una gran desventaja, que se ilustra en la figura 3-2. Como
muestran las figuras 3-2(a) y (b), se tienen dos programas, cada uno con un tamaño de 16 KB. El
primero está sombreado para indicar que tiene una llave de memoria diferente a la del segundo y
empieza saltando a la dirección 24, que contiene una instrucción MOV; el segundo, saltando a la
dirección 28, que contiene una instrucción CMP. Las instrucciones que no son relevantes para este
análisis no se muestran. Cuando los dos programas se cargan consecutivamente en la memoria, em-
pezando en la dirección 0, tenemos la situación de la figura 3-2(c). Para este ejemplo, suponemos
que el sistema operativo está en la parte alta de la memoria y no se muestra.
Figura 3-2. Ilustración del problema de reubicación. (a) Un programa de 16 KB. (b)
Otro programa de 16 KB. (c) Los dos programas cargados consecutivamente en la me-
moria.
Una vez que los programas se cargan se pueden ejecutar. Como tienen distintas llaves de me-
moria, ninguno de los dos puede dañar al otro. Pero el problema es de una naturaleza distinta. Cuan-
do se inicia el primer programa, ejecuta la instrucción JMP 24, que salta a la instrucción, como se
espera. Este programa funciona de manera normal.
Sin embargo, después de que el primer programa se ha ejecutado el tiempo suficiente, el siste-
ma operativo tal vez decida ejecutar el segundo programa, que se carga encima del primero, en la
dirección 16,384. La primera instrucción ejecutada es JMP 28, que salta a la instrucción ADD en el pri-
mer programa, y no a la instrucción CMP a la que se supone debe saltar. Es muy probable que
el programa falle en menos de 1 segundo.
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller agusmitrobeda. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $5.49. You're not tied to anything after your purchase.