Professional Documents
Culture Documents
Sistemas Operativos
Sistemas Operativos
128K
are, Se] tok [60¢] ————=> 128K
case =] 130K | =<» 250K
Figura 7.14. Particiones con colas de espera,
Esta técnica es simple y facil de desarrollar, pero su eficacia est muy condicionada por
Jas exigencias de memoria de los programas y su orden de llegada.
Para solucionar problemas que pueden aparecer en el método anterior, se puede utilizar
otra técnica consistente en una sola cola de espera, y sera el sistema por medio del Planifi-
cador de Trabajos el encargado de seleccionar qué programa cargar y en qué particién,
En este caso, el planificador de trabajos puede realizar la seleccidn de varias formas:
'* Respetando el orden de Hegada (FIGO-First In, First Out). Método facil de programar,
pero provoca en ocasiones infrautilizacién de la memoria.
* Seleccionar el trabajo de tamaiio mis adecuado a la particién libre (el més adecuado 0
Best Fit). Se realiza analizando la cola de espera y eligiendo el de tamaiio mis adecua-
do a la particién libre.
* Seleccionar el primer trabajo que queda en Ia particién disponible (el primero disponible
o First Fit), De caracteristicas similares al anterior.
La Figura 7.15 muestra esta técnica de gestion.
MEMORIA PRINCIPAL
Sistema operative
> 128K
ot __ Sipe I
i s**| 110K | 130K |60K) 70K 128K
tL» 256K
Figura 7.15. Particiones con cola de espera tinica. +102 Sistemas Opertivas
Se mejora notablemente el rendimiento si se afiade a la gestion de las particiones téoni-
cas de intercambio, de tal forma que un programa pendiente de un suceso o interrupcién
puede ser sustituido por otro.
El desarrollo de esta técnica de gestién representd un notable avance respecto a esque-
mas anteriores. Sin embargo, su eficacia queda condicionada por la eleccién del tamaiio y
niimero de las particiones en relacién con las caracteristicas de los programas a tratar.
Si se analiza la utlizacién de las particiones, aparecen dos problemas originados por la
propia estructura de las mismas que disminuyen la efectividad de In gestidn, éstos son los
siguientes:
* Si un programa necesita 100K de memoria y se encuentra en una particidn de 128K,
se desaprovechan 28K cenomindndose cl suceso fragmentacién interna (Figura 7.16).
* Por otra parte podemos tener un programa de 130K en la particion de 256K y otro
de 100K en una de 128K, presentindose una peticion por parte de un programa de
140K. que no podri ser cargado en la particién libre, mientras por otra parte existe,
en teoria, memoria total suficiente, A este suceso se le denomina fragmentacién exter-
na (Figura 7.16).
MEMORIA PRINCIPAL
Sistema operative
Fragmentacin
—— ‘externa
a U
140K | 100K | 130K
I ti
p=
Figura 7.16. Fragmentacién de la memoria.
™ Particiones contiguas de tamaiio variable
Los inconvenientes de la técnica anterior nacen de la dificultad de definir unas particiones
de tamatio adecuado para todos fos trabajos que se deben tratar. Este problema se afronté
desarrollando una nueva técnica de gestién que asigna dinamicamente la memoria a los tra-
‘bajos de acuerdo con su tamaho.
En este caso, el sistema operative mantendré una tabla interna donde registrar las z0-
nas de memoria disponible o huecos, asignando a cada trabajo una particién del tamatio so-
licitado, Esta técnica es Ia denominada de particiones contiguas de tamaiio variable (Figu-
1a 7.17),Gestin de la memoria prieepat 103,
MEMORIA PRINCIPAL
Sistema operative
T1.(130K)
T2 (100K)
73 (140K), p
Figura 7.17, Carga de trabajos en particiones variables.
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 apa-
rece una pequeia fragmentacién externa (parte final de la memoria). A medida que van ter-
minando los distintos trabajos, el planificador va sustituyendo un programa por otro, de tal
forma que van apareciendo huecos libres distribuidos entre las zonas ocupadas. El sistema
asignari estos huecos mientras existan trabajos en espera que quepan en ellos. Lo hard bus-
cando el primer trabajo que quepa en el hueco a asignar (First Fit) 0 aquel que se acople
mejor (Best Fil)
Cuando aparecen huecos contiguos, el gestor de la memoria tiende a unificarlos, por lo
que en ningin momento existiran dos particiones contiguas vacias:
Con esta técnica, la memoria sufre un constante proceso de fragmentacién. Para evitar-
Jo, surge la idea de recolocar las zonas de memoria utilizadas para lograr cada cierto tiempo
tun 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 memo-
ria y con diferente coste. Ademis, es necesario que los programas sean reubicables para po-
der cambiar de zona de memoria principal (Figura 7.18).
MENORIA PRINCIPAL MEMORIA PRINCIPAL
‘Sitema operative Stems eneraivo
75 (1008) 75 (100K)
Te (60K)
"T6 (60K), en i
74 (200K),
Fi
a 7.18. Compactacién de trabajos.104 Sisters Operatives
Con las particiones variables se logra un mejor aprovechamiento de memoria que con
las particiones fijas. Ahora bien, la fragmentacién que sufre la memoria es su mayor incon
veniente debido a la sobrecarga que se origina en el procesador para realizar la compact
cidn con la consiguiente pérdida de tiempo.
7.4.3. Paginacién
La necesidad de asignar memoria en cantidades contiguas para cada programa es el mayor
inconveniente para un buen aprovechamiento de la misma. La paginacién es una técnica de
gestién que permite asignar la memoria de forma discontinua, Con este fin, se divide la me-
moria en trozos de tamaiio fijo llamados armazones 0 frames y !a logica en bloques de igual
tamaiio denominados paginas. El sistema operativo mantiene internamente una tabla de pé-
ginas donde relaciona cada pigina cargada en memoria con el frame que la contenga, es do-
cir, su direecién inicial en memoria real (Figura 7.19).
MEMORIA LOGICA TABLA DE PAGINAS MEMORIA FISICA,
— I Frames
PI tf
— PI
P2 2| Fa 7
paginas ¢ |
Pa 3] Fa Pa
+ P2
Pa alr
Figura 7.19, Paginaci
Cada direcci6n que genere el provesador serd interceptada y dividida en dos componen-
tes, un méimero de pigina (p) y un desplazamiento en Ia psigina (@). Utilizando p como indice,
el gestor de memoria del sistema recorrerd la tabla de paginas hasta localizar dicha pagina,
y-a continuacidn sumaré d a la direccién de carga correspondiente, obteniendo asi la direc-
cin real adecuada.
El tratamiento anterior exige que se realice por hardware, pues de no ser asi, se intro-
duciria un retraso excesivo (Figura 7:20),
Cada programa se divide en péginas, y éstas se cargan en frames libres que no tienen
por qué ser contiguos. En general, un frame sucle tener un tamaiio potencia de 2 como es
habitual, y éste se establece en el disefio de la arquitectura de la computadora (por ejemplo,
Ja computadora 370 de IBM dependiendo del sistema operativo que utilice, tiene paginas
de 2.048 0 4.096 bytes).
© Gestion de la memoria
La paginacién es una forma de reasignar direcciones dindmicamente. El sistema analizaré
cada muevo trabajo que se disponga a entrar para conocer el mimero de paginas que ocupaGest de ts memoria principal — OB
MEMORIA FISICA,
procesapor |—>[p |_| fi 4a |=
Tabla de
paginas
Figura 7.20. Hardware de paginacién.
¥y buscard en su lista de frames libres un nimero igual de ellos. Si éstos existen, eargar’i en
ellos las paginas del programa y construiré la correspondiente tabla de paginas, actualizando
la lista de frames libres. Cada trabajo en memoria tendrd su propia tabla de paginas apun-
tada por el bloque de contro! del proceso.
De esta manera, se logra evitar la fragmentacién externa ya que cualquier frame libre es
asignable a un trabajo que lo necesite.
Por otro lado, seguira existiendo fragmentacién interna puesto que, en general, los tra-
bajos no ocupardn un tamafio miltiplo del tamafio de la pagina. Esta fragmentacién se re-
duce si la pigina tiene un tamafio pequefio, pero se necesitaria una tabla de paginas mayor,
= Rendimiento, Memoria cache. Registros asociativos
Para agilizar la conversion de direociones, el sistema mantiene en memoria la tabla de pa
ginas de cada uno de los trabajos activos, y utiliza un registro especial, llamado registro base,
para indicar la direcciéa de la tabla de paginas del trabajo en ejecucién en ese momento.
De esta forma cuando se conmute de un trabajo a otro, se restaura la direeeién de la tabla
de péginas correspondiente.
Para transformar cada direocién lgica (p.d) generada por el provesador en su direccién
real, el sistema accede en primer lugar a la tabla de paginas correspondionte (Registro base
+ p)y posteriormente a la direccién real (frame + d), De esta manera, cada direccién pro-
vvoca dos accesos a memoria y se duplican los tiempos de ejecueién, Con ello, hemos logra-
do mejorar la utilizacién de la memoria, sin embargo, ls duracién on los procesos es mayor.
Para solventar este problema, se recurre a memorias pequefias de muy alta velocidad
(también muy cares) donde se pueden mantener las entradas a las tablas de paginas mas uti-
lizadas, 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 pro-
ducido por la paginacién,
En el caso de sistemas pequefios, con tablas de piiginas de pocas entradas, se puede uti-
lizar un conjunto de registros hardware para contener dicha tabla. Estos registros son los.
llamados registros asociativos (Figura 7.21).|
106 Sistemas Operadins
rn
divecoién real
CE
Figura 7.21. Registros asociativos.
Se define como tiempo efcetive de acceso a memoria al tiempo medio de acceso de todas
las direcciones esté o no su entrada de pdgina en la memoria cache.
= Pginas compartidas
La técnica de la paginacién permite que varios procesos o usuarios compartan piginas car-
gadas en memoria, Esta posibilidad es especialmente positiva para los sistemas de tiempo
compartido, Imaginemos un sistema con 20 usuarios que utilizan el programa editor de tex-
tos, en él se cargaré una sola vez el programa correspondiente, y éste sera utilizado por to-
dos ellos aunque los datos sean propios de cada uno. Para ello, cada usuario contendrd en
su tabla de paginas las entradas correspondientes al editor, apuntando todas ellas a los mis-
mos frames y a distintos para los datos.
Puesto que es muy comin utilizar paginas compartidas, el contenido de éstas debe per-
‘manecer inalterado. Las paginas que se deseen compartir dében tener cédigo reentrante, es
decir, que durante su ejecucién no se altera ningin valor interno.
Si el contenido de las paginas compartidas no debe modificarse, debemos protegerlas con-
tra todo intento de escritura. Necesitamos un sistema de proteccién de las paginas en me-
moria que no sélo controle las direeciones a las que se puede acceder, sino también el modo
en que se realiza dicho acceso. Para ello, se afiaden a las entradas de la tabla de paginas una
serie de bits de proteceién.
El esquema de proteccién se complementa con otro bit por entrada de la tabla de paigi-
‘nas que se denomina bit de validez.
Con la paginacién se produce una quiebra importante entre Ta vision que tiene el usua-
rio de la memoria y la forma en que la utiliza. El usuario desarrolla su programa conside-
rando la memoria como algo contiguo, pero éste se carga troceado o paginado en zonas di
contiguas de la memoria real, El encargado de hacer cortesponder el espacio logico de di
recciones (continuo) y el espacio fisico de direcciones (discontinuo) es el hardware de trasla-
cién dindmica de direcciones,Gestin de a miemoria peinipal — 107
7.4.4. Seomentacién
La segmentacién es una técnica distinta de gestion de memoria que pretende acerearse mis
al punto de vista del usuario,
Los programas se desarrollan, generalmente, en torno a un niicleo central /principal) des-
de el que se bifuurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc.)
Desde este punto de vista, un programa es un conjunto de componentes légicos de tamaiio
variable 0 un conjunto de segmentos, es decir, el espacio légico de direcciones se considera
como un conjunto de segmentos, cada uno definido por su tamatio y un niimero (Figura 7.22).
i eR a
CONTADORES:
Rutina de errores
Rutina principal
Tabla de datos
[|
Figura 7.22. Espacio logico de direcciones.
La segmentacién de un programa la realiza el compilador y en ella cada direccién logica
se expresard mediante dos valores: mimero de segmento (8) y desplazamiento dentro del seg-
mento (4).
© Hardware de segmentacion
Puesto que la memoria fisica se direcciona linealmente, sera necesario transformar cada di-
reecion légica (6d) en una dircccién real /r). Esta conversion la realiza un dispositivo espe-
cial de hardware consultando la tabla de segmentos correspondiente (Figura 7.23)
= Rendimiento
Esta tGenica permite reducir la fragmentacién interna de la memoria provocada por Ta pa-
sinacién, ya que asigna a cada programa la cantidad de memoria que requiere.
eens108 Sivemas Operantoe
Tabla da
suginentos
>
Th
direccion
Procesapon | ——> L
I6giea st direocién
COMPARACION> => > | MEMORIA REAL
jr L
ERROR
Figura 7.23. Hardware de segmentaci6n,
La carga de un programa en memoria exige la busqueda de los huecos adecuados a sus
segmentos, y puesto que éstos son de tamafio variable, se ajustariin lo més posible a las ne-
cesidades, produciéndose huecos pequedios. En este caso se produce fragmentacién externa,
La eficacia de la segmentacién requiere, de igual forma que la paginacion, el uso de me-
morias cache para lograr unos tiempos de acceso adecuados.
De igual forma que en la paginacién, se pueden compartir segmentos entre varios pro-
esos,
Hemos visto que, tanto la paginacién como la segmentacién, tienen ventajes e inconvenien-
tes, ¥ parece ldgico intentar combinar ambas técnicas para aprovechar sus caracteristicus po-
sitivas.
En todo sistema se define, por su arquitectura, un espacio maximo de direcciones logi-
cas, tamafio maximo de cualquier programa que quicra ejecutarse, e implica un nimero de
paginas. Por esto, algunos sistemas (Serie 370 de IBM) utilizan una técnica de pas
segmentada consistente en segmentar la tabla de paginas adecuandola al amafio del progra-
ma. Para ello, mantiene una tabla de segmentos cuyas eitradas indican la direccién de i
de cada tabla de paginas y su tamafio. Se utiliza un hardware especial (Figura 7.24).
Otros sistemas (MULTICS, GE 645) optan por paginar los segmentos, es decir, utilizan
segmentos cuyo tamaiio siempre es un nimero entero de paginas, Esta técnica se denomina
segmentacién paginada.
La tabla de segmentos dela segmentacion pura cambia de contenido y sus entradas ya
‘no apuntan al inicio del segmento correspondiente indicando su tamafio, sino que apuntan
a una tabla de paginas del segmento indicando su longitud (Figura 7.25).estén de a memoria principal — 109
1 _— a
—— Komas>
ive
ERROR
>) — > [ora TP. oe
Tabla de
] péginas
Table de =
weer] amet LD
‘abla de segmantas 5
MEMORIA REAL
Figura 7.24. Hardware de paginacién segmentada,
PROCESADOR
Direcsion eT 4
sid
F Cowranscion pig
R No
|
ORT ls
MEMORIA
tt
REAL
| Ele.
‘aireceion real
Rogistio base segmenitos
tabla da segmentos,
Tabla do
paginas
Figura 7.25. Hardware de segmentacin paginada,110 Sistemas Operatinas
De esta forma se evita la fragmentacién externa propia de la segmentacién, pues cual
aqier buoeo seré de una pégina como miimo, y por tanto utlizable para cualquier segmen-
to que lo necesit
7.4.6. Memoria virtual
Los sistemas de gesti6n de la memoria vistos hasta ahora estén sujetos a la exigencia de que
tun programa, para ejecutarse, debe estar eargado en memoria principal en su totaidad. Sin
embargo, no todas las partes del programa se ejecutan normalmente,
EI programador diseia rutinas que sélo se cjecutan en determinadas circunstancias, Por
ejemplo, aquellas que tratan situaciones de error. Con este enfoque no parece nevesario que
todo el programa esté cargado en memoria para poder ser procesaio,
‘La memoria virtual es una técnica de gestion que, combinando hardware y software, per-
mite la ejecucién de programas parcialmente cargados en memoria real
‘Feta forma de trabajar aporta ventajas importantes:
«@ Silos programas se pueden ejecutar por partes, la memoria gien puede ser mayor
aque la real disponible.
« Puesto que cada programa ocupa menos memoria real, se puede elevar el indice de
multiprogramaciéa, y por tanto, la eficiencia del sistema.
Al cargar menos cantidad de cada programa, se nevesitan menos operaciones de en-
trada/salida para las operaciones de carga e intercambio de los mismos,
Las diferentes partes de un programa se van cargando en memoria a medida que se ne-
cesitan, y por ello, esta técnica debe considerar tres aspectos importantes:
«Carga. Las porciones del programa se cargan cuando se necesiten(peticion de pagina)
oo bien se pueden cargar por adelantado (anticipacién o prepaginacion),
«© Colocacién, Los sistemas de memoria virtual que utilicen segmientacién deben decidir,
al cargar un nuevo segmento, silo hacen en el hueco mis adecuado o bien en el pri
mero posible.
© Sustitucién, Lo normal serd que toda la memoria real esté ocupada, y cuando se ne-
snste cargar una nueva parte de un programa habré que reemplazar alguna de Tas exis-
tentes. Es importante definir la seleccién de la parte a reemplazar.
Esta técnica es dificil de evar a Ia prictica. Los sistemas que la utiizan son complejos,
pero a la vez, deben ser muy eficientes, De lo contrario, la ejecucion de los programas pus
de empeorar notablemente.
= Carga por peticién de piginas
Este es el esquema de carga mais comin cuando se utiliza la téenica de memoria virtual. Su
fancionamiento es similar al de un sistema de paginacién con intercambio (Figura 7.26).Gestin de ta memavia principal — VAL
MEMORIA SECUNDARIA MEMORIA PRINCIPAL
> =a
1 a
{ snap ea Bz
es -
AL
a et
ma
Figura 7.26. Paginas ¢ intercambio.
Ahora el algoritmo de intercambio no llevara a memoria todo el programa, sino que slo
cargaré aquellas paginas que se le pidan.
Cuando el procesador genere una direccién que pertenezca a una pagina que no se en-
cuentre en memoria falta de piiginas», la buscard, y a continuacién, la traetd a memoria
desde ol correspondiente dispositivo de memoria secundaria,
La técnica de la memoria virtual se puede levar a la préctica con ef mismo hardware
que la paginacién de memoria real y un software mas complejo.
El tratamiento de las faltas de pagina introduce un retraso adicional en la ejecucién de
Jos programas y afecta por tanto al rendimiento general del sistema. El disefio del software
necesario debe ser especialmente cuidadoso en este aspecto
© Reemplazamiento de paginas
La técnica de peticién de piginas permite reducir, como ya se ha dicho, la memoria ocupa-
da por cada programa durante su proceso.
Todos Jos sistemas que utilizan la técnica de memoria virtual sobrentilizan en mayor o
menor medida la memoria fisica para obtener un mejor rendimiento. Pero para ello, deben
hhacerse algo més complejos, veamos por qué.
Supongamos que uno de esos programas intenta acceder a una direccién cuya pagina
no esti en memoria. El hardware la intercepta y cede el control al sistema operalivo que,
después de comprobar que es una direccién legal, la trata como una falta de pagina, Busca.
iT pagina correspondiente en el almacenamiento secundario y, una ver, localizada, le bus-
card un hueco en memoria, En. este punto al analizar la lista de frames libres comprucha
que no hay hueco disponible y, como responsable de la gestién de la memoria, debe resolver
la situacién sin afectar al programa,
‘Una posible solucién es sacar de memoria alguno de los programas cargados y utilizar
los frames que deja libres, pero esto lleva consigo una sobrecarga importante en la opera
cién de intereambio (wap).
_ ..112 Sistemas Operativos
La solucién adoptada, generalmente, es sustituir alguna de las paginas cargadas (reem-
plazar piginas). Para ello, la rutina del sistema que gestiona la interrupcién de falta de pé-
gina deberd trabajar de la siguiente manera:
* Encontrar la pagina solicitada en el almacenamiento secundario,
* Encontrar un frame libre.
* Si cxiste, utilizarlo.
© Si no existe, utilizar un algoritmo de reemplazamiento para seleccionar la pigina a
reemplazar.
* Salvar la pagina reemplazada en el almacenamiento secundario, actualizando las tablas
afectadas.
Lievar la pigina solicitada al frame libre y actualizar las tablas correspondientes.
™ Algoritmos de reemplazamiento
El algoritmo dptimo seri aquel que seleccione para su sustitucién la pagina que vaya a tar-
dar mas en ser ulilizada. Cuando se produce una falta de pagina, la memoria est ocupada
por un grupo de paginas y una de ellas, la que provocd la falta, va a ser usada inmediata-
mente y, por tanto, no debe ser sustituida. De las otras, algunas se necesitarin al cabo de
‘unas pocas instrucciones, otras al cabo de algunas mas, Es evidente que la mejor solucién
es reemplazar la que tarde mas instrucciones en ser necesitada, ya que su ausencia tardard
mas en hacerse sentir y durante ese intervalo pueden acabar otros procesos con la consi-
guiente liberacién de frames,
La dificultad de esta solucién radica en Ia imposibilidad de prever el comportamiento
futuro de los procesos, pero como en otras muchas situaciones de la vida cotidiana, se pue-
de prever, en cierta medida dicho comportamiento, partiendo de la experiencia de! pasado,
de las referencias a memoria que hasta e! momento han realizado los procesos.
Los algoritmos que se han ideado para controlar el reemplazamiento parten de la utili-
zacion pasada de las paginas para aproximarse a la solucién éptima, Su idoneidad quedard
Gefinida por dos factores: mimero ce faltas de pagina que provoca y el coste de su utiliza-
cién (la sobrecarga que produce en el sistema).
‘Un factor que condiciona el niimero de faltas de pagina es el niimero de frames dispo-
nibles en el hardware, En general, a més frames menos faltas (Figura 7.27).
FALTAS DE.
PAGINA
No FRAMES
Figura 7.27. Niimero de frames y faltas de pagina,OOOO
Gestin de ka memoria principal — WA3
© Algoritmo de reemplazamiento FIFO
Fate es ol més sencillo. Cuando se necesite sustituir una pagina, se elegiré aquella que lleve
mis tiempo en memoria (primera en llegar, primera en salit-First In, First Out).
Para controlar el tiempo de permanencia en memoria de las paginas, este algoritmo uti-
liza una cola de llegada a memoria de las mismas. La primera de la cola ser aquella que
lieve més tiempo cargada y, segin el criterio FIFO, serd la primera en ser sustituida.
Un criterio de seleccién tan simple es facil de programar y a la vez produciré poca so-
brecarga en el sistema, pero su eficacia es relativa.
No ¢s improbable que la razén por la que una pagina lleve més tiempo en memoria sea
su mayor utilizacién, y en ese caso, este algoritmo sustituird la pagina menos adecuada, Pen-
semos en un sistema de tiempo compartido con varios usuarios utilizando un editor de tex-
tos, compartiendo paginas del mismo, Normalmente serdn estas las més antiguas en memo-
ria y, aunque su utilizacién es muy alta, el criterio FIFO las reemplazara provocando inme-
diatamente una sucesidn de falta de paginas.
Este algoritmo es inadecuado para sistemas de tiempo compartido, pero puede ser ttil
en entornos batch.
® Algoritmo LRU
Este algoritmo es una buena aproximacién a la solucién Sptima, considerando que aquellas
paginas muy usedas en el pasado reciente Jo serdn también en el futuro, En el mismo sen-
tido, las paginas’ poco utilizadas en el pasado seguirin siéndolo en el futuro, y se deberd sus-
tituir aquella que haya sido menos usada recientemente (Least Recently Used),
En este caso, la utilizacién del tiempo de uso es un criterio que refleja mucho mejor el
comportamiento de los procesos en su utilizacién de la memoria. ;
Ponerlo en prictica es relativamente dificil, ya que el sistema debe contabilizar, de algu-
na forma, cl tiempo en el que se produce cada referencia a memoria para poder clasificar
Jas paginas segiin su uso. Este control se puede realizar de varias maneras:
* Contadores de hardware. La solucién més simple es incorporar un contador de refe-
rencias a memoria y aiiadir un campo a las entradas de la tabla de paginas que pueda
almacenar el valor del contador. Para servir una falta de pagina, el sistema busca el
valor del contador registrado que sea menor,
© Matrices de hardware. En este caso, si la computadora dispone de N frames, el hard-
ware debe mantener una matriz de N = N bits puestos inicialmente a cero. Al acceder-
se a.una pagina K, el hardware pone a 1 todos los bits de la fila Ky a 0 todos los bits
dela columna K. En cualquier momento, la pigina menos usada recientemente es aque-
Ta cuya fila tenga el menor valor binario.
* Pilas, Otra alternativa es mantener una pila de los niimeros de las paginas utilizadas,
Cada vez que se utiliza una pagina, su mimero se coloca al principio de la pila. En un
momento determinado la pagina menos recientemente utilizada sera la del fondo de la
pila.114 Sistemas Operativas
En todas estas opciones del algoritmo LRU se exige disponer de un hardware especial,
¥ por ello, su aplicacién se limita a aquellas computadoras que dispongan de Ios elementos
necesarios.
® Otros algoritmos
Dadas las dificultades del algoritmo LRU, se ha tratado de encontrar algoritmos mas sen-
cillos y menos costosos de realizar.
Una prictica bastante extendida es la utilizacién de un bit de referencia asociado a cada
entrada de la tabla de péginas. Cada vez que se utiliza una pagina, el hardware activa el bit,
correspondiente. Conforme se van utilizando las distintas paginas cargadas en memoria se
activan sus bits de referencia y, en un instante dado, aquellas cuyos bits estén a cero, serin
candidatas a ser reemplazadas. En general, los bits de referencia se restauran cada cierto tiem-
‘po (puesta a cero).
Otro algoritmo es el denominado menos frecuentemente usado (LFU-Least Frequently
Used). Consiste en asociar un contador a cada pagina, de tal forma que, a intervalos regu-
lares, se produce una interrupeién que pasa control al sistema y éste afiade al contador de
cada pagina el valor del bit de referencia, poniendo después a () todos los mencionados bits
de referencia, Cuando se produce una falta de pagina se sustituiré aquella cuyo valor del con-
tador sea menor.
En ocasiones, algunos algoritmos se complementan utilizando un bit de modificacién por
cada pigina, indicando si el contenido de la misma ha variado 0 no desde que se cargé en
memoria, Se deben sustituir preferentemente aquellas paginas que no se hayan modificado,
pues asi se evita tener que salvar su contenido en el almacenamiento secundario, con el con-
siguiente ahorro en operaciones de entrada/salida.
7.4.1. Criterios de reemplazamiento de paginas
Si se produce una falta de pagina en nuestro sistema, cualquiera de los algoritmos analiza
dos nos puede ayudar, con mayor o menor efectividad, a seleccionar la pagina a sustituir,
Pero, jentre qué paginas elegimos?, las del propio proceso o entre todas las existentes? En
el primer caso hacemos una seleeci6n local o por proceso, y en el segundo, lo haremos global
o general.
En Ja Figura 7.28 tenemos tres procesos: A, B y C, ocupando la memoria con una serie
de paginas. Al lado de cada una de ellas se especifica la edad 0 tiempo que cada una lleva
en memoria. Supongamos que el proceso A necesita traer otra de sus paginas a memoria
produciendo la correspondiente fulta de pagina. Si aplicamos el criterio local de seleccion,
{a pagina sustituida serd la tercera del proceso A(A3), y si se aplica el criterio global se sus-
tituird la tercera de B(B3).Gestin de la memorie principal 115,
Edad
— 10
i
5
3 G—=———=—— SELECCION Local (Aa)
a
4
6
2 == SELECTION GLOBAL (A4)
5
8
6
4
‘Figura 7.28. Reemplazamiento local y general
7.4.8. Asignacién de memoria
En el disefio de un sistema operativo se debe afrontar otro aspecto importante de la gestion
de la memoria como es determinar cudintos frames asignar a cada proceso activo. La propia
arquitectura de una computadora impone unos minimos de asignacién por proceso, por tan-
10, el propio sistema debe asegurar a todo proceso un nimero minimo de paginas en me-
moria (minimo estructural).
Si por cualquier raz6n un proceso se queda con menos frames de los indicados, el siste-
ma deberd suspenderlo y sacarlo (swap-out).
Aunque en principio el mimero de frames asignados a un proceso podri reducirse hasta
ese minimo, de hecho, cualquier proceso en un momento dado esté utilizando un miimero
mayor. Suponiendo que por su prioridad u otra razén, un proceso no pueda robarle frames
4 otros procesos, deberd sustituir una de sus piginas activas provocando, casi inmediata-
mente, otra falta de pagina, y asi sucesivamente, A esta situacidn se le denomina hiperpagi
nacidn o trashing en la que se consume mis tiempo paginando que procesando.
* Localidad de los procesos
Para evitar situaciones como las descritas, es necesario asignar a cada proceso el nimero de
frames que necesite en cada momento de su ejecucidn. El problema radica en cémo conocer
ese mimero.
Afortunadamente, el comportamiento de los procesos permite afrontar el problema, ya
que todo programa esta compuesto por varias partes o subrutinas de forma que su ejecu-
cién se realiza por fases, una detras de otra. En cualquier momento el proceso direcciona,
sélo una pequeita parte de sus paginas. Este comportamiento se conoce con el nombre de
localidad de referencias de los pracesos, y con su ayuda, podemos conocer el niimero mini-
mo de frames que requiere un proceso para evitar una situacién de hiperpaginacién.116 Sisteanas Operatives
® Frecuencia de falta de pigina
‘Una forma directa de controlar la asignacién de memoria y evitar situaciones no deseadas
se basa en el control de la frecuencia con que un proceso produce faltas de pagina. Puesto
que la hiperpaginacién se caracteriza por un gran niimero de dichas faltas, el objetivo es man-
tener la frecuencia de las mismas entre unos limites preestablecidos (Figura 7.29).
FRECUENCIA
De FALTAS
DE PAGINAS,
Ne FRAMES
Figura 7.29. Frecuencia de faltas de pagina.
Sila frecuencia de faltas de pagina de un proceso sobrepasa el limite superior, el sistema
le asignaré mis frames, y si cae por debajo del limite inferior, indica que al proceso se le
pueden reducir el mimero de frames asignados.
7.5. CONSIDERACIONES DE DISENO
Disefiar el componente de gestién de la memoria de un sistema operativo no queda limitado
a elegir los algoritmos mas adecuados para la asignacién de frames y reemplazamiento de
paginas, hay otros factores que deben tenerse en cuenta para lograr un funcionamiento efec-
tivo.
Uno de esos factores es el tamafio de las paginas, que afecta notablemente al rendimien-
to del sistema. Este factor esta limitado por las caracteristicas constructivas de la propia com-
putadora y decidir su tamafio adecuado no es sencillo puesto que hay que equilibrar diver-
s0s factores
© Tabla de péginas. Estas se encuentran en memoria principal y es necesario reducir al
maximo su tamafio, Jo que nos condiciona a diseftar paginas grandes (tablas con pocas
filas).
© Fragmentaciin, El tamafio de los programas no suele ser un miiltiplo exacto de pagi-
nas, lo gue nos produce la ya mencionada fragmentacin de la memoria, Ello nos re-
comienda paginas pequefias
© Transferencia, Llevar una pagina del almacenamiento secundario a memoria y vicever-
sa es una operacién larga, y el factor mas determinante es el tiempo de latencia y bis-
queda del dispositive. Desde este punto de vista, es bueno que las piginas sean gran-
des para transferir mas bytes en cada operacién de entrada/salida.* Faltas de pagina. A mayor tamafio de pis
y ina se producirdn menos faltas de pagina
reduciéndose la sobrecarga que conllevan.
El tamaiio de las paginas es siempre una potencia de 2, variando entre 512 y 4.096 bytes,
Cada fabricante optaréi por el més adecuado a los objetivos que se pretenden,
La gestion de la memoria debe posibilitar también compartir piginas entre procesos y,
Para ello, dichas paginas deberdn llevar un indicativo que les asegure un tratamiento especial.
7.6. TENDENCIAS ACTUALES
El desarrollo tecnoligico actual ha permitido reducir considerablemente el coste de las uni-
dades de memoria, y gracias a ello es posible disponer hoy de memorias de altas prestacio-
es a costes aceptables. Consecuentemente, las exigencias de disefio impuestas por el tamz-
fio de la memoria en el pasado han desaparecido.
Eslas nuevas técnicas permiten no slo tener memorias mas grandes y de costos més ba-
4s, sino también més ripidas, permitiendo cambios notables en el disefio de los nuevos sis-
temas operativos (mayores capacidades de direccionamiento, uso elevado de memorias ca-
che, ete).
Tas computadoras pequeiias y medias actuales ya tienen memoria de varios megabytes,
Por lo que permiten sistemas operativos mayores como son, por ejemplo, UNIX y OS/2,
En los de mayor tamaio, la tendencia esta marcada por la introduccidn de niveles de me.
moria ultrarrépida para almacenar el c6digo mis utilizado.
La utilizacion de estas nuevas facilidades del hardware han obligado a desarrollar nuevas
'éonicas de gestién de la memoria principal y, en definitiva, nuevos sistemas operativos.As
Sistertus Operaitvos
‘Por qué se hace necesario compartir Ja memoria entre varios programas?
{Cuiles son y qué representan los dos parémetros relacionados con la lectura y escritura de da-
tos en la memoria principal?
{Qué tipos de computadoras existen segiin el tamaiio de In memoria a la que se accede en cada
operacion de lectura o escritura?
En un sistema informético, ;qué tipos de memoria suclen existir y cudl es su jerarquia?
You might also like