100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached 4.2 TrustPilot
logo-home
Summary

Summary Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 3

Rating
-
Sold
-
Pages
80
Uploaded on
26-12-2022
Written in
2018/2019

Andrew Tanenbaum - Sistemas Operativos Modernos - Capitulo 3 en Español

Institution
Course











Whoops! We can’t load your doc right now. Try again or contact support.

Connected book

Written for

Institution
Course

Document information

Summarized whole book?
No
Which chapters are summarized?
Capitulo 3
Uploaded on
December 26, 2022
Number of pages
80
Written in
2018/2019
Type
Summary

Subjects

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.


0 32764
..
.
CMP 16412
16408
16404
16400
16396
16392
16388
JMP 28 16384
0 16380 0 16380 0 16380
.. .. ..
. . .
ADD 28 CMP 28 ADD 28
MOV 24 24 MOV 24
20 20 20
16 16 16
12 12 12
8 8 8
4 4 4
JMP 24 0 JMP 28 0 JMP 24 0
(a) (b) (c)

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.
$5.49
Get access to the full document:

100% satisfaction guarantee
Immediately available after payment
Both online and in PDF
No strings attached

Get to know the seller
Seller avatar
agusmitrobeda

Also available in package deal

Get to know the seller

Seller avatar
agusmitrobeda For everyone
Follow You need to be logged in order to follow users or courses
Sold
0
Member since
2 year
Number of followers
0
Documents
8
Last sold
-

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Frequently asked questions