Вы находитесь на странице: 1из 38

TEORA DE LOS SISTEMAS OPERATIVOS

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL.


INTRODUCCIN.

La memoria real se puede nombrar de distintas maneras: memoria principal, memoria primaria, memoria interna, memoria fsica, etc., sin embargo todos estos nombres tienen un significado equivalente. En un sistema monoprogramado, la memoria principal esta dividida en dos partes: una para el sistema operativo y otra para el programa que se est ejecutando en ese momento. En un sistema multiprogramado, la parte de memoria utilizada por el usuario, debe subdividirse aun ms, para hacer sitio a varios procesos. La tarea de subdivisi n la realiza el sistema operativo dinmicamente y toma el nombre de gesti n de memoria. La organizaci n y administraci n de la memoria principal, tiene una importancia vital para mantener la actividad del procesador, por lo tanto, debe ser uno de los factores ms importante a considerar en el dise!o de los sistemas operativos. En este tema se plantea un enfoque de la tecnologa, que se puede aplicar a la organizaci n y administraci n de memoria, considerando los distintos esquemas de gesti n que se pueden utilizar, partiendo de la necesidad de que un programa, para que se pueda ejecutar, tiene que estar cargado en la memoria principal. La gesti n de memoria consiste principalmente, en la asignaci n de una parte de la memoria fsica, que tiene una capacidad finita, a los procesos que la soliciten, ya que ning"n proceso puede ser activado, antes de que una cierta cantidad de memoria real le haya sido asignada. #na segunda funci n de la gesti n de memoria consiste en que los procesos que estn temporalmente inactivos, pueden ser retirados de la memoria, con objeto de dejar espacio libre a otros procesos. En conjunto, la utilizaci n de los recursos as como otros criterios de ejecuci n de un sistema informtico, son afectados por la actuaci n del modulo de gesti n de memoria. La coe$istencia de m"ltiples espacios de direcciones, pertenecientes a los procesos residentes en la memoria principal, requiere algunos procedimientos de protecci n, para evitar que los accesos a ellos realizados, equivocadamente o intencionadamente, puedan destruir contenidos de sus espacios de direcciones. %l mismo tiempo, procesos que cooperan entre s, deben de estar provistos de alg"n medio de compartir datos comunes. #na buena gesti n de memoria, en un entorno de multiprogramaci n, debe soportar ambas protecciones simultneamente, es decir, aislamiento para separar los espacios de direcciones y uso compartido, permitiendo que los procesos que cooperan entre s, puedan acceder a reas comunes de memoria. &e analizarn los distintos esquemas para la gesti n de memoria, basados en la asignaci n de espacio contiguo, es decir, la asignaci n de memoria es llevada a cabo de tal manera, que cada objeto l gico colocado en memoria, ocupa un conjunto de posiciones consecutivas. % continuaci n se analizarn los esquemas para la gesti n de memoria no contigua, en los cuales la memoria se asigna de tal modo, que las partes de un solo objeto l gico, pueden ser colocadas en reas no contiguas de la memoria fsica.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#na manera muy com"n de abordar la asignaci n de espacio contiguo, consiste en dividir la memoria fsica disponible en particiones y posteriormente satisfacer las peticiones de memoria, asignando las particiones libres si e$isten. 'uando un proceso residente en la memoria termina, su partici n es liberada y queda disponible para ser asignada a otro peticionario. Las particiones de memoria pueden ser definidas estticamente durante la generaci n del sistema o dinmicamente en respuesta a las demandas del usuario. 'uando el particionamiento es esttico, se produce un desaprovechamiento de la memoria, cuando se carga un objeto de menor tama!o que la partici n y al espacio que se desaprovecha, se le denomina fragmentaci n interna. El particionamiento dinmico, elimina este problema, haciendo cada partici n tan grande como sea necesario para ajustarse al objeto dado, por lo tanto, cuando se lleva un objeto fuera de la memoria, la partici n ocupada por (l, se devuelve a la reserva de espacio libre. )espu(s de alg"n tiempo de funcionamiento, el particionamiento dinmico produce una dispersi n de espacio libre en reas discontinuas, que son de un tama!o insuficiente para albergar otro objeto. % este tipo de desaprovechamiento de la memoria, se le denomina fragmentaci n e$terna. *especto a la manera de abordar la asignaci n de memoria no contigua, se pueden utilizar las dos t(cnicas siguientes: La +aginaci n. La &egmentaci n.

En la +aginaci n, la memoria principal se divide en un conjunto de marcos de pgina de igual tama!o y cada proceso se divide en una serie de pginas del mismo tama!o, que los marcos de pgina en que se ha dividido la memoria principal. El proceso se cargar situando todas sus pginas en los marcos libres, que no necesariamente sern contiguos. La utilizaci n de la +aginaci n, elimina la fragmentaci n e$terna, pero puede producirse una peque!a fragmentaci n e$terna en la "ltima pgina de un proceso. En la &egmentaci n los programas se dividen en m dulos y cada m dulo se convierte en un segmento durante la compilaci n del programa. #n proceso se cargar, situando todos sus segmentos, en particiones dinmicas, que no necesariamente tienen que ser contiguas. La utilizaci n de la &egmentaci n, elimina totalmente la fragmentaci n interna, pero puede producirse fragmentaci n e$terna, que se elimina con la compactaci n. ,ndependientemente del tipo de asignaci n de la memoria que se utilice, la posible eficacia de un gestor de memoria, es mayor en sistemas donde los programas son reubicables, es decir, que puedan ser cargados en las distintas reas de memoria, disponibles en un momento dado. 'on objeto de proporcionar unas bases comunes, para la evaluaci n de cada esquema analizado, se establecen los siguientes criterios de medida: -emoria desaprovechada. 'omplejidad en el tiempo. +rocesos suplementarios de acceso a memoria.

La memoria desaprovechada se considera que es la fracci n de memoria fsica sin usar, que un esquema de gesti n de memoria dado, es incapaz de asignar, cuando procesa una secuencia de peticiones de memoria.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

La complejidad en el tiempo, se refiere a la dificultad del clculo que es preciso realizar, para la asignaci n o desasignaci n de la memoria, utilizado por un esquema determinado de gesti n de la memoria. Los procesos suplementarios de los accesos a memoria, se refieren a la duraci n de las operaciones adicionales, llevadas a cabo por un esquema de gesti n de memoria dado, cuando accede a la memoria. #na definici n ms amplia de la memoria desaprovechada, consiste en la posibilidad de mantener residentes en memoria, m"ltiples copias de un "nico objeto com"n, debido a un deficiente o restringido uso compartido. #n gestor de memoria ideal debe: -inimizar: La memoria desaprovechada. La complejidad en el tiempo. Los procesos suplementarios de acceso a memoria. #na buena protecci n de memoria. #n uso compartido fle$ible.

+roporcionar:

Estos requerimientos no son realizables simultneamente, por los esquemas de gesti n de memoria que se van a describir, por lo tanto, un dise!ador de un sistema operativo, tendr que identificar y establecer la prioridad de un dise!o particular, para crear un esquema de gesti n de memoria apropiado a los requerimientos del sistema dado.
REQUISITOS PARA LA GESTIN DE MEMORIA.

%l realizar un estudio de los diversos mecanismos y polticas relacionadas con la gesti n de memoria, conviene tener presente los requisitos que se deben satisfacer, en el dise!o de un m dulo de gesti n de memoria: *eubicaci n. +rotecci n. 'ompartici n. .rganizaci n l gica. .rganizaci n fsica.

*especto a la reubicaci n, se podra decir que en un sistema multiprogramado, la memoria disponible se encuentra compartida por varios procesos y adems en ciertos momentos, ser preciso poder cargar y descargar los procesos activos, que se encuentran en la memoria principal, para ma$imizar el uso del procesador, manteniendo una gran reserva de procesos listos para ejecutarse. 'uando un proceso haya sido descargado al almacenamiento secundario, ser preciso conocer, si cuando ese proceso vuelva a ser cargado, debe situarse en la misma regi n de memoria principal, en la que estaba situado anteriormente o bien, puede situarse en posiciones diferentes a las que tena en el instante en que fue descargado. Esta situaci n plantea algunos asuntos t(cnicos relativos al direccionamiento, tal y como se e$presa, en la figura que representa la imagen de un proceso. &in duda alguna, el sistema operativo tiene que conocer, la ubicaci n de la informaci n de control del proceso y de la pila de ejecuci n, as como el punto de partida para comenzar la ejecuci n del proceso.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

+uesto que el sistema operativo, gestiona la memoria y es el responsable de traer el proceso a la memoria principal, todas las direcciones necesarias para la ejecuci n del proceso deben ser fciles de conseguir, por lo tanto, el hard/are del procesador y el soft/are del sistema operativo, deben ser capaces de traducir las referencias a la memoria l gica encontradas en el c digo del programa, a las direcciones fsicas reales, que reflejen la posici n actual del programa en memoria principal.
+#01. )E E01*%)% %L +*.2*%-%

'3),2.

',-% %'1#%L )E L% +,L%

)%1.& +,L%

4L.5#E )E '.01*.L )E +*.'E&.

4.'.+

)urante ejecuciones diferentes de un mismo programa, pueden ser asignadas direcciones de carga diferentes, por tanto, es preciso distinguir, una direcci n l gica o virtual, que es la que percibe el usuario, de una direcci n fsica o real, que es el lugar de la memoria, donde el programa y sus datos son almacenados, durante una determinada ejecuci n. -s especficamente, podramos decir, que las direcciones l gicas o virtuales son identificaciones usadas para referenciar la informaci n, dentro del espacio de direcciones de un proceso, mientras que las direcciones fsicas, designan la posici n actual de la memoria real, donde los elementos de informaci n son almacenados en tiempo de ejecuci n. )ependiendo de cuando y como tiene lugar, la proyecci n desde el espacio de direcciones l gicas o virtuales, hacia el espacio de direcciones fsicas o reales, en un esquema de gesti n de memoria dado, la reubicaci n del programa, puede ser considerada como esttica o dinmica. La reubicaci n esttica implica, que la reubicaci n es llevada a cabo, durante la carga del programa en memoria, por un programa que se denomina cargador reubicable. El programa traductor normalmente prepara (l modulo objeto, suponiendo que la direcci n fsica cero, es la direcci n de comienzo del programa. 'uando el programa es cargado en la memoria por el m dulo del sistema operativo denominado cargador, todas las posiciones del programa, que necesitan reubicaci n, son modificadas de acuerdo con la direcci n fsica de la memoria, que le ha sido asignada al proceso. #na vez que el proceso est en memoria los valores que necesitan reubicaci n, no se distinguen de aquellos que no la necesitan, por lo tanto, los valores de reubicaci n se pierden despu(s de la carga y un programa reubicable estticamente, ejecutado en parte en un rea de memoria, no puede ser trasladado a otra y esperar que contin"e ejecutndose correctamente. En consecuencia, en sistemas con reubicaci n esttica, un proceso que fue descargado dinmicamente, debe ser cargado, en la misma partici n de memoria, donde estaba situado, antes de que se realizara la descarga dinmica. La reubicaci n dinmica, implica que la proyecci n del espacio de direcciones l gicas o virtuales, en el espacio de direcciones fsicas o reales, es llevado a cabo en tiempo de ejecuci n, normalmente con alguna asistencia del hard/are de la maquina. Los procesos imagen en sistemas con reubicaci n dinmica, se preparan tambi(n, suponiendo que la direcci n de comienzo es la direcci n l gica o virtual cero y se cargan en la memoria sin ninguna modificaci n debida a la reubicaci n.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

'uando dichos procesos son ejecutados, todas sus referencias a memoria son reubicadas durante la ejecuci n de las instrucciones, antes de que se acceda a la memoria fsica o real. Este proceso es implementado, por medio de un registro base, que contiene la direcci n fsica de la memoria, donde est cargado el proceso y este valor se obtiene del correspondiente 4loque de 'ontrol de +roceso 64'+7. 'ada referencia a memoria generada por la ejecuci n del proceso, se convierte en la correspondiente direcci n fsica, con solo sumarle el contenido del registro base.
8.999 899 '+#
),*E'',30 L32,'%

8.899 :
),*E'',30 ;<&,'%

8.999
+ ,-%2E0

-E-.*,%

#n proceso imagen preparado suponiendo que la direcci n de comienzo es la direcci n l gica o virtual cero, se mantendr inalterada, antes y despu(s de ser cargado en la memoria. La reubicaci n dinmica, hace posible mover un proceso parcialmente ejecutado en un rea de memoria a otra, sin que se produzcan inconvenientes de direccionamiento, en los accesos a las instrucciones y datos en el nuevo espacio. Esta caracterstica es muy provechosa para mantener la descarga dinmica, sin tener que ligar los procesos a las particiones y por tanto, podr ser utilizado en el particionamiento dinmico, que estudiaremos posteriormente. *especto a la protecci n, no hay duda de que cada proceso debe protegerse contra las interferencias no deseada de otros procesos, tanto las que se produzcan de forma accidental como las intencionadas. )e esta manera, el c digo de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin la debida autorizaci n. =asta cierto punto, satisfacer las e$igencias de reubicaci n aumenta la dificultad de satisfacer las e$igencias de protecci n, puesto que se desconoce la ubicaci n de un proceso en la memoria principal y es imposible comprobar las direcciones absolutas durante la compilaci n, para asegurar la protecci n. 1odas las referencias a memoria generadas por un proceso, deben comprobarse durante la ejecuci n, para asegurar que solo hacen referencia al espacio de memoria destinado a dicho proceso y como se ver posteriormente, los mecanismos que respaldan la reubicaci n, tambi(n forman parte bsica del cumplimiento de las necesidades de protecci n. Las e$igencias de protecci n de memoria pueden ser satisfechas por el procesador 6hard/are7 en lugar de por el sistema operativo 6soft/are7 para ello es preciso e$tender el sistema de protecci n establecido anteriormente para el sistema operativo, es decir, colocar un bit de protecci n en cada posici n de memoria, a un sistema multiprogramado, en el cual sera necesario colocar ms de un bit. Este problema se podra resolver estableciendo la protecci n por reas de memoria de 8 >, ? >, @>, etc.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

6 9
?99.999 B99.999 D99.999 E99.999

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

-.0,1.* *E2. 4%&E C B99.999 *E2, L,-,1E C ?99.999


*E2. 4%&E *E2. 4%&E : 1%-%F..

1*%4%A. 8 1*%4%A. ? 1*%4%A. B

+*.'E&%).*

&,

&,

0.
E**.* )E ),*E'',30

<
0.
E**.* )E ),*E'',30

E . * , %

*especto a la compartici n, es preciso considerar, que cualquier mecanismo de protecci n que se implemente, debe tener la fle$ibilidad necesaria, para permitir el acceso de varios procesos a la misma zona de memoria principal, ya que si varios procesos estn ejecutando el mismo programa, lo normal es, que todos ellos puedan acceder a la misma copia del programa, del mismo modo, si varios procesos tienen que cooperar en la misma tarea, debern poder acceder a unas estructuras de datos comunes. +or ejemplo en un sistema de uso compartido, utilizado fundamentalmente para el desarrollo de programas. &i consideramos que una media de ?9 usuarios, estn editando sus programas y el editor ocupa D9 >b de memoria, sin la utilizaci n del uso compartido, estos usuarios estarn ocupando 8 -b de memoria para situar las ?9 copias del editor, sin embargo, utilizando el uso compartido, con una "nica copia del editor sera suficiente. El sistema de gesti n de memoria debe permitir accesos controlados a las reas compartidas de la memoria, sin comprometer la protecci n bsica y de nuevo ser preciso repetir, que los mecanismos empleados para respaldar la reubicaci n, forman parte de las capacidades de compartici n. *especto a la organizaci n l gica se puede decir, que actualmente la mayora de los programas se organizan en m dulos, alguno de los cuales no son modificables, es decir, que son de solo lectura, solo ejecuci n, etc. .tros en cambio, contienen datos que se pueden modificar.

-3)#L. +*,0',+%L

-3)#L. 8

E&1*#'1#*%& )E )%1.& -3)#L. ? -3)#L. B

&i el sistema operativo y el hard/are del computador, pueden tratar de forma efectiva los programas de usuario y los datos que necesitan en forma de m dulos de alg"n tipo, se conseguirn las siguientes ventajas:
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

Los m dulos se pueden escribir y compilar independientemente, mientras que el sistema operativo resuelve durante la ejecuci n, todas las referencias de un m dulo a otro. 'on un escaso coste adicional, pueden otorgarse varios grados de protecci n a los distintos m dulos, es decir, solo lectura, solo ejecuci n, etc. Es posible introducir mecanismos, mediante los cuales, los procesos puedan compartir m dulos y la ventaja de ofrecer compartici n a nivel m dulo es que esto se corresponde con la visi n del problema que tiene el usuario y por lo tanto, es fcil para el usuario especificar la compartici n que desea.

El m(todo que ms fcilmente satisface estas necesidades es la segmentaci n, que es una de las t(cnicas de gesti n de memoria, que se analizarn a continuaci n. *especto a la organizaci n fsica, es preciso recordar que la memoria del computador se organiza en al menos dos niveles: La memoria principal. La memoria secundaria.

La memoria principal es peque!a, ofrece un acceso rpido con un coste relativamente bajo y es voltil, es decir, no proporciona almacenamiento permanente, por lo tanto, solo ser capaz de mantener los programas y los datos de uso actual. La memoria secundaria es ms lenta y ms econ mica que la memoria principal, pero proporciona un almacenamiento de gran capacidad, que permite mantener los programas y los datos durante un largo tiempo En este esquema de dos niveles, la organizaci n del flujo de la informaci n entre la memoria principal y la secundaria, debe ser resuelto, por el sistema operativo. La asignaci n de la responsabilidad de este flujo al programador seria impracticable debido a dos razones. La memoria principal disponible para un programa y sus datos, puede ser insuficiente, por lo tanto, el programador tendra que aplicar una t(cnica, que se conoce con el nombre de superposici n 6overlay7, en la cual el programa y los datos se organizan de tal forma, que puede haber varios m dulos que se asignen a la misma regi n de la memoria, con un programa principal responsable del intercambio de los m dulos seg"n se necesite. En un entorno multiprogramado, el programador no conoce durante la codificaci n cuanto espacio habr disponible o donde estar este espacio. Estas dos razones nos indican con toda claridad, que la tarea de mover la informaci n entre estos dos niveles de memoria, debe ser responsabilidad del sistema operativo y corresponder l gicamente al m dulo de gesti n de memoria.
CARGA DE PROGRAMAS EN LA MEMORIA PRINCIPAL.

La tarea central de cualquier sistema de gesti n de memoria, ser la de incorporar los programas a la memoria principal para su ejecuci n en el procesador, utilizando para ello los m(todos de asignaci n de memoria ya citados anteriormente: %signaci n contigua. %signaci n no contigua.

+ara la asignaci n de espacio contiguo, las t(cnicas que se han venido utilizando, en los sistemas operativos tradicionales, consisten en dividir el espacio de memoria disponible en particiones: +articiones fijas o estticas. +articiones variables o dinmicas.
ANGEL GLEZ. DEL ALBA

APUNTES DE SISTEMAS OPERATIVOS

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

+ara la asignaci n espacio no contiguo, las t(cnicas que se utilizan normalmente, son la &egmentaci n simple y la +aginaci n simple, que generalmente no se usan en solitario, sino ms bien en combinaci n con la utilizaci n de la memoria virtual. 0o obstante el estudio de la memoria virtual resultar ms sencillo si se consideran estas dos t(cnicas sin tener en cuenta la memoria virtual. % continuaci n se trata de analizar con detalle todas estas t(cnicas, que se han ido utilizando en los distintos sistemas operativos tradicionales, para la gesti n de la memoria contigua y no contigua y posteriormente nos introduciremos en el estudio de los sistemas de gesti n de memoria virtual, que son los que se utilizan en la actualidad.
MONITOR DE PROCESO "NICO. MONITOR RESIDENTE.

Los primeros sistemas informticos, solo permitan la utilizaci n de la maquina a un usuario, por lo tanto, todos los recursos incluida la memoria, estaban a su disposici n y no e$istan, los sistemas operativos actuales. % este concepto de utilizaci n se le denomina maquina desnuda. +ara facilitar el trabajo de los distintos usuarios, se estableci un c digo com"n para todos los usuarios, en el que se implement el sistema de control de EG& 6,.'&7, que fue el comienzo del concepto actual de los sistemas operativos. 9
-.0,1.* *E&,)E01E 4.*)E )E L% -E-.*,% H*E% )E +*.'E&.& 1*%0&,1.*,.& -%I 1E'=. )E L% -E-.*,%

El monitor de proceso "nico, fue el origen de los sistemas monoprogramados y es la manera ms simple de realizar la gesti n de memoria y en ella la memoria se divide en dos reas contiguas: #na de ellas esta permanentemente asignada al sistema operativo, que debe estar residente en memoria 6-onitor7. La otra es asignada a los procesos transitorios, los cuales son cargados de uno en uno, en respuesta a las rdenes del usuario.

1anto los procesos de usuario, como las partes del sistema operativo, que no estn residentes en memoria, deben ejecutarse en el rea de los procesos transitorios. Esta forma de gesti n de memoria, fue utilizada por los primeros sistemas operativos, fundamentalmente, en los microcomputadores u ordenadores personales de proceso "nico que en la actualidad han desaparecido, ya que el rendimiento obtenido es muy bajo. 4sicamente el sistema operativo necesitaba guardar siempre, la primera y "ltima posiciones transitorias: La primera es la inmediatamente siguiente al monitor residente y se denominaba borde de la memoria. La "ltima estaba determinada por la capacidad de la memoria instalada en una configuraci n determinada y se denominaba techo de la memoria.

+ara poder suministrar un rea contigua de memoria libre a los procesos transitorios, el sistema operativo estaba situado en uno de los e$tremos de la memoria. La elecci n de un e$tremo
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

de la memoria, es decir, la parte alta o la baja, estaba normalmente influenciada, por la posici n del rea del vector de interrupciones para el hard/are subyacente. +ara proteger estos datos vitales del sistema, el vector de interrupciones se considera como parte del sistema operativo, por lo tanto, este estar situado en el mismo e$tremo de la memoria, donde reside el vector de interrupciones. .tras partes del sistema operativo, tales como el cargador o bien el interprete de rdenes del usuario, pueden estar situados en el e$tremo opuesto de la memoria, dejando as una "nica rea contigua de memoria libre en el centro. 'uando el proceso que se est ejecutando en el rea de procesos transitorios finaliza, el sistema operativo carga otro proceso de los que estn en la cola de espera. En un monitor de proceso "nico, no e$iste protecci n entre procesos, ya que solo puede haber un proceso residente en memoria, sin embargo, ser preciso proteger el sistema operativo de posibles destrucciones, por parte del proceso transitorio en ejecuci n. Los mecanismos de protecci n utilizados son los ya e$puestos anteriormente, que consistan en la utilizaci n de registros base y registros limite, as como la utilizaci n de los bits de protecci n, que permiten distinguir, entre la ejecuci n de un proceso del sistema operativo 6-odo &upervisor7 o un proceso de usuario 6-odo #suario7. .tro m(todo de protecci n de la memoria, consiste en asociar a cada posici n de memoria un bit de protecci n, quedando dividida la memoria en dos zonas de tama!o arbitrario, en una de las zonas los bits de protecci n estn a cero y en la otra a uno. El uso compartido de programas y datos en memoria, no tiene mucho sentido en un entorno de proceso "nico. 'on una asignaci n de memoria sencilla y con la ausencia de las complejidades de la multiprogramaci n, un monitor de proceso "nico es relativamente sencillo de dise!ar, no obstante, de la falta de un soporte de multiprogramaci n, se obtiene generalmente como resultado un bajo rendimiento, tanto en el procesador como en la memoria: El procesador es desaprovechado al no e$istir ms que un proceso, por lo tanto, el procesador quedar inactivo, cuando se produzca una interrupci n del sistema. La memoria es utilizada por debajo de sus posibilidades debido a que, una porci n de ella, la comprendida entre el espacio final del espacio de direcciones del proceso y el final del rea de procesos transitorios, es desaprovechada.

SUPERPOSICIONES. $OVERLAYS%.

+uesto que todo el espacio l gico de direcciones de un proceso, debe encontrarse en la memoria fsica antes de ejecutar el proceso, la dimensi n del proceso esta limitada por el tama!o de la memoria fsica. 1eniendo en cuenta, que las capacidades de la memoria, comenzaron siendo muy peque!as y han ido creciendo con el avance de la electr nica, para que un proceso pueda ser mayor, que la cantidad de memoria fsica que se le asigna, se utiliza la t(cnica denominada superposiciones 6.verlays7. Esta t(cnica consiste en conservar en memoria, solamente aquellas instrucciones y datos, que se necesitan de una manera permanente, el resto de las instrucciones, que solo son necesarias en determinados momentos de la ejecuci n, se pueden cargar en un rea com"n cuando el proceso las requiera. +ara que esta t(cnica se pueda utilizar, ser preciso dividir la zona de memoria asignada en tres partes: #na zona para las instrucciones que se necesitan de una manera permanente.
ANGEL GLEZ. DEL ALBA APUNTES DE SISTEMAS OPERATIVOS

1&

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#na zona peque!a donde residirn las instrucciones necesarias para gestionar las superposiciones. #na zona com"n donde se cargaran las instrucciones que no son necesarias de forma permanente.

+or ejemplo, supongamos que tenemos un programa, que tiene un m dulo principal que controla la total ejecuci n de un programa, que realiza dos funciones consecutivas, necesitando la ejecuci n de dos m dulos independientes, el programa se ejecutar en dos pasos sucesivos.
&,&1E-% .+E*%1,J. D9> 89> L9> -3)#L. +*,0',+%L 2E&1,30 )E &#+E*+.&,',.0E& M.0% '.-N0 E9 > -3)#L. ? K9 > +%*% '%*2%* L% 1.1%L,)%) )EL +*.2*%-% &E*<%0 0E'E&%*,%& ?99 >

-3)#L. 8

ASIGNACIN POR INTERCAMBIO. $S'APPING%.

*ealmente se podra decir que un intercambio 6&/apping7, es una compartici n asncrona de la memoria, ya que se sabe que para que un proceso pueda ejecutarse necesita estar en la memoria principal, sin embargo, un proceso puede intercambiarse temporalmente, saliendo de la memoria principal, para situarse en el almacenamiento secundario y regresar posteriormente a la memoria principal para continuar su ejecuci n.
&... +8 +? +B +@ &O%+P,0 6E01*%)%7 &O%+P9#1 6&%L,)%7 +8 +D

&i suponemos un entorno de multiprogramaci n en una memoria restringida, con un algoritmo circular para la asignaci n del procesador, es decir, un sistema de tiempo compartido. 'uando un cuanto e$pira, el gestor de memoria comenzar a intercambiar el proceso que acaba de terminar, para incorporar otro proceso al espacio de memoria que acaba de liberarse, mientras tanto, el planificador del procesador asignar un nuevo cuanto a otro proceso en memoria y cada vez que un proceso finalice su cuanto, se intercambia con otro. Es preciso que el gestor de memoria pueda intercambiar los procesos con la velocidad suficiente, para que siempre haya procesos en memoria listos para ejecutarse, cada vez que el planificador del procesador desee introducir un nuevo proceso. El tiempo establecido para un cuanto, debe ser suficiente, para que se efect"en las operaciones necesarias, para la realizaci n de un intercambio. +ara algoritmos basados en prioridades, se emplea tambi(n esta poltica de intercambio. &i llega un proceso de mayor prioridad y desea ejecutarse, el gestor de memoria puede intercambiarlo con un proceso de menor prioridad, para as cargar y ejecutar el de mayor prioridad.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

11

'uando este proceso de mayor prioridad termina, puede devolver el proceso de menor prioridad y continuar su ejecuci n. Esta variante de intercambios se denomina salida y entrada por intercambios, es decir, &/apPout y &/apPin. 0ormalmente un proceso que sale de un intercambio, regresar al mismo espacio de memoria que antes ocupaba, aunque como veremos posteriormente, esta restricci n la determina el tipo de reubicaci n: &i la reubicaci n es esttica, el direccionamiento se lleva a cabo durante la carga, el proceso, por lo tanto, no podr moverse a otras localidades de memoria. &i la reubicaci n es dinmica, el direccionamiento se lleva a cabo durante la ejecuci n, entonces si ser posible intercambiar un proceso a un espacio de memoria distinto.

Los intercambios requieren un espacio en el almacenamiento secundario, situado generalmente en un disco de la mayor velocidad de acceso posible o en un tambor magn(tico y debe tener la capacidad suficiente, para contener copias de la imagen de todos los procesos de usuario ofreciendo acceso a esta imagen. El sistema mantiene una cola de procesos listos para ejecutarse, que consiste en el almacenamiento de la informaci n de control, de los procesos cuya imagen de memoria se encuentra en el almacenamiento secundario o en la memoria principal. 'uando el planificador del procesador, decide ejecutar un proceso, comprueba si el siguiente proceso de la cola esta en memoria, si no est y no se dispone de una regi n de memoria libre, el planificador intercambia un proceso en memoria con el proceso deseado, obviamente el tiempo de cambio de conte$to en un sistema de este tipo es bastante alto. +ara obtener una utilizaci n eficiente del procesador, el tiempo de ejecuci n para cada proceso debe ser mayor que el tiempo de intercambio. Ejemplo: &e supone que un proceso de usuario, tiene un tama!o de D8? >b y el almacenamiento secundario es un disco con una velocidad de transferencia de 8 -bGseg. La transferencia del proceso de D8? >b, de la memoria o bien hacia ella durar:
D8? >b G 89?@ >b C 8 G ? seg. C D99 msg.

&uponiendo un tiempo de posicionamiento de E msg. y un tiempo de latencia de ? msg. El tiempo de intercambio es de D89 msg. %hora bien, como el intercambio debe ser de salida y entrada, el tiempo total de intercambio es de 89?9 msg. La mayor parte del tiempo de intercambio se invierte en la transferencia y el tiempo de transferencia total es directamente proporcional a la cantidad de memoria que se intercambia. +or lo tanto, si tenemos unos datos de tipo medio: Longitud media de los programas C ?DQ>. 1iempo de posicionamiento C E msg. 1iempo de latencia media C ? msg. *atio de transferencia C 89?@> G sg.
&.. -E-.*,% 89 msg. : ?DQ > G 8.9?@ R C ?Q9 msg. 89 msg. : ?DQ R G 8.9?@ >C ?Q9 msg.
T. INTERCAMBIO ( 26& ) 26& ( 52& MSG.

),&'.

#na forma de disminuir el tiempo necesario para la realizaci n de un intercambio, consiste en solapar la ejecuci n y el intercambio mediante la creaci n de tres zonas de memoria o buffers:
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

12

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#na dedicada a contener el programa que esta ejecutando actualmente. .tra para el programa que se acaba de ejecutar y que se debe transferir al soporte e$terno. La "ltima para almacenar el programa que debe ser ejecutado a continuaci n.

El programa que tiene el control de la '+#, estar situado en la memoria, para de esta manera, continuar con el proceso descrito. La cola activa esta compuesta por todos los programas incluidos en la memoria y en condiciones de ser ejecutados y requiere de un planificador a medio plazo que tendr la misi n de seleccionar el pr $imo programa a ejecutar, entregando el control al distribuidor para localizarlo, bien en la memoria o bien en el soporte y a continuaci n efectuar el cambio, de la manera que se e$presa en la figura. Esta t(cnica se denomina &/apping a trav(s de buffers y se representa a continuaci n:
+*,-E*% ;%&E +*.2*%-% )EL #&#%*,. E0 EAE'#',30 4#;;E* ? 4#;;E* 8 &,&1E-% .+E*%1,J. -E-.*,% +*.2*%-% % E;E'1#%* % '.01,0#%',30 +*.2*%-% 5#E %'%4% )E EAE'#1%*&E

),&'.

&E2#0)% ;%&E

4#;;E* ? 4#;;E* 8 &,&1E-% .+E*%1,J.

&E %A#&1%0 L.& '.01E0,).& )E L%& ),;E*E01E& M.0%& )E -E-.*,% +%*% L% &,2#,E01E E1%+% )EL &O%+

E$isten otras restricciones para los intercambios, ya que si se quiere intercambiar un proceso, debe asegurarse que este completamente inactivo, pues cualquier solicitud de EG& que este pendiente tiene una importancia especial. &upongamos que la operaci n de EG& esta en una cola porque el dispositivo estaba ocupado. &i se intercambia por ejemplo el proceso +8 que esta en la memoria con el proceso +? que est en el almacenamiento secundario, la operaci n de EG& que tenia pendiente el proceso +8, podra intentar usar la memoria que ahora pertenece al proceso +?. Las dos soluciones para resolver este problema son: 0unca intercambiar un proceso con operaciones de EG& pendientes. Ejecutar las operaciones de EG&, solo en los buffers del sistema operativo.

ASIGNACIN ESTATICA DE LA MEMORIA PARTICIONADA.

En la mayora de los esquemas de gesti n de memoria, se puede suponer que el sistema operativo ocupa una parte fija de la memoria principal y el resto de la memoria est disponible para ser usado por varios procesos. El esquema ms sencillo de gesti n de la memoria disponible es dividirla en particiones con lmites fijos. Las particiones pueden ser del mismo o de distinto tama!o, pero generalmente sern de distinto tama!o.
+%*1,',.0E& )EL APUNTES DE SISTEMAS OPERATIVOS +%*1,',.0E& )E ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS -,&-. 1%-%F. &.. D8? > D8? > D8? > D8? > ),&1,01. 1%-%F. &.. 8?E > ?DQ > D8? > 8.9?@ >

13

&i las particiones son del mismo tama!o, la ubicaci n de un proceso en la memoria es trivial, ya que mientras haya una partici n libre, puede cargarse un proceso en esa partici n. 'uando todas las particiones estn ocupadas por procesos que no estn listos para ejecutarse, uno de esos procesos debe sacarse y hacer sitio para un nuevo proceso. &i las particiones son de distinto tama!o, hay dos maneras posibles de asignar los procesos a las particiones: La forma ms simple es asignar cada proceso a la partici n ms peque!a en la que quepa, es decir, *+,+ -. ,/ 01- 2-3+4 *- /5/67- , para lo cual es preciso conocer la cantidad m$ima de memoria, que necesitara cada uno de los procesos y realmente esta informaci n no siempre se conocer. En este caso, ser necesaria una cola de planificaci n para cada partici n, que albergue los procesos listos para ejecutarse, cuyo destino es esa partici n. La ventaja de este enfoque es que los procesos estn siempre asignados de forma que se minimiza la memoria desaprovechada dentro de cada partici n. Este enfoque que parece ptimo desde el punto de vista de una partici n individual, no lo es, desde el punto de vista del sistema global, ya que si tenemos particiones grandes y los procesos que van llegando son todos peque!os, las colas de las particiones grandes permanecern sin usar, incluso aunque alg"n proceso ms peque!o pudiera haber sido asignado a las mismas. #na soluci n mejor sera emplear una sola cola para todos los procesos y cuando se va a cargar un proceso en memoria principal, se selecciona la partici n ms peque!a disponible que pueda albergar al proceso. &i todas las particiones estn ocupadas, se debe tomar una decisi n de intercambio y puede darse preferencia al intercambio de la partici n ms peque!a, que pueda contener el proceso entrante. 1ambi(n es posible considerar otros factores, tales como, prioridades y preferencia para descargar procesos bloqueados antes que procesos listos.

El uso de particiones de distinto tama!o proporciona cierto grado de fle$ibilidad a las particiones fijas, adems, ambos tipos de esquema de partici n fija son relativamente simples y e$igen un soft/are del sistema operativo sencillo y una sobrecarga de procesamiento mnima.
#0% '.L% )E +*.'E&.& +.* '%)% +%*1,',30 &... 8?E > ?DQ > #0% '.L% )E +*.'E&.& N0,'% &... 8?E > ?DQ >

D8? >

D8? >

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

14

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL 8.9?@ > 8..?@ >

El particionamiento fijo consiste en la asignaci n esttica de la memoria particionada, que es una forma de hacer posible la multiprogramaci n, dividiendo la memoria fsica disponible en varias particiones, cada una de las cuales puede ser asignada a diferentes procesos. )ependiendo de como y cuando son creadas y modificadas esas particiones, el particionamiento de la memoria, puede ser esttico o dinmico. % continuaci n vamos a estudiar el particionamiento esttico y posteriormente analizaremos el particionamiento dinmico.
PARTICIONAMIENTO EST8TICO.

El particionamiento esttico se realiza durante el proceso de generaci n del sistema, estableciendo (l numero de particiones fijas y el tama!o de cada una de ellas, teniendo en cuenta la capacidad de la memoria fsica disponible, adems el grado de multiprogramaci n deseado y el tama!o tpico de los procesos ms frecuentemente utilizados en la instalaci n. Esto tendr que realizarse en funci n de las estadsticas recogidas durante el funcionamiento real del sistema.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

15

#n ejemplo de memoria particionada esta representado en la siguiente figura:


9> 899 > @99 > D99 > KD9 > L99 > 8.999 > &,&1E-% .+E*%1,J. L,4*E +8 +? +B L,4*E

)e las seis particiones en que esta dividida la memoria, una de ellas, se supone que esta ocupada por el sistema operativo, otras tres por procesos de usuario y las dos particiones restantes, estn libres y disponibles para la asignaci n. #na vez que las particiones estn definidas, el sistema operativo necesita guardar informaci n de su estado, tal como, si la partici n esta libre, o bien est asignada, para posteriormente utilizar esta informaci n en el momento de la asignaci n. El estado actual y los atributos de las particiones, estn recopilados en una estructura de datos, denominada 1abla de )escripci n de +articiones 6+)17, +artitionP)escription 1able. 1al y como se indica en dicha tabla, cada partici n esta descrita por su direcci n de comienzo 64ase7, su tama!o y su estado. 'uando una partici n esttica es usada, en la +)1 solo variara el campo correspondiente al estado, ya que los restantes campos son estticos y contienen los valores establecidos en el momento de la definici n de las particiones.
TABLA DE DESCRIPCIN DE LAS PARTICIONES 0S )E +%*1,',30 9 8 ? B @ D 4%&E 9> 899 > @99 > D99 > KD9 > L99 > 1%-%F. 899 > B99 > 899 > ?D9 > 8D9 > 899 > E&1%). %&,20%)% L,4*E %&,20%)% %&,20%)% %&,20%)% L,4*E

'uando un proceso va a ser creado o activado, el sistema operativo intenta asignarle una partici n de memoria libre de tama!o suficiente, consultando las entradas en la +)1, si la encuentra, el campo correspondiente a la entrada seleccionada, es marcado como asignada y el proceso imagen es cargado en la partici n correspondiente. El formato descrito para la +)1, no nos proporciona ninguna indicaci n de cual es el proceso que esta ocupando una partici n dada, por lo tanto la identidad de la partici n asignada debe ser establecida en el bloque de control del proceso 6+'47. 'uando el proceso termina o bien es descargado dinmicamente, la informaci n del bloque de control de proceso, ser utilizada para localizar la partici n correspondiente y actualizar la +)1, cambiando su estado de asignada a libre.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

16

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

'on objeto de implementar estas ideas bsicas, necesitamos solucionar dos problemas: Estrategia a utilizar para la asignaci n de una partici n. 5ue ocurre cuando no hay ninguna partici n adecuada disponible para ser asignada.

Las estrategias a utilizar para la asignaci n de una partici n, se fundamentan en los siguientes criterios: +rimera en adaptarse, ;irstP;it 6;;7. La que mejor se adapte, 4estP;it 64;7.

El primer criterio consiste, en asignar la primera partici n libre suficientemente grande, para contener el proceso que esta siendo creado. El segundo criterio consiste, en asignar la partici n libre ms peque!a, capaz de satisfacer los requerimientos del proceso. 'uando se va a decidir entre estos dos m(todos, se debe hacer una elecci n entre velocidad de ejecuci n y utilizaci n de la memoria. %mbos m(todos deben e$plorar la +)1, para identificar una partici n libre de tama!o adecuado, sin embargo, el primero termina en el momento que encuentra la primera partici n, que cumple los requerimientos y el segundo debe analizar todas las entradas de la +)1, para identificar la que mejor se ajuste. El resultado que se obtiene es el siguiente: El primer m(todo obtiene mayor rapidez. El segundo m(todo consigue una mejor utilizaci n de la memoria.

'omo ejemplo de como trabajar las dos estrategias de asignaci n de particiones, considerando la +)1 anterior, queremos crear un proceso de K9 >b y la situaci n de la +)1 es la e$presada anteriormente: El primer m(todo le asignara la partici n 8 y se producira una fragmentaci n interna de ?B9 >b, que no podrn ser utilizadas hasta que el proceso termine o bien sea descargado dinmicamente. El segundo m(todo, tendr que analizar algunas entradas ms de la +)1 y asignara la partici n D, resultando una fragmentaci n interna de B9 >b, que no podrn ser utilizadas.

&i (l n"mero de particiones fijas es peque!o, las diferencias en tiempo de ejecuci n entre los dos m(todos, no ser significativo. En general la demanda de particiones debe proceder de dos fuentes principales: La creaci n de nuevos procesos. La reactivaci n de procesos que anteriormente fueron descargados dinmicamente.

El m dulo de gesti n de memoria intenta satisfacer estas peticiones, con la reserva de particiones libres, sin embargo, hay ciertas situaciones en las que el gestor no puede hacerlo as: 0inguna partici n es suficientemente grande para contener el proceso entrante. 1odas las particiones estn asignadas. %lgunas particiones estn libres, pero ninguna de ellas, es suficientemente grande para contener el proceso entrante.

&i el proceso que va a ser creado es demasiado grande, para encajar en cualquiera de las particiones del sistema, se emitir un mensaje de error. Esta situaci n es bsicamente un error de dise!o, que puede ser remediado volviendo a definir las particiones de una manera ms adecuada.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

.tra opci n es reducir los requerimientos de memoria por parte del programa, codificndolo de nuevo o tambi(n utilizando la t(cnica de superposici n. El caso de que todas las particiones est(n asignadas, se puede resolver aplazando la carga del proceso, hasta que una partici n adecuada, le pueda ser asignada. #na alternativa podra ser, forzar a un proceso residente en memoria a abandonarla, para dejar disponible una partici n suficientemente grande, para almacenar el proceso. %mbos, aplazamiento y descarga dinmica, son tambi(n aplicables para resolver el tercer caso, donde hay particiones libres pero son inadecuadas.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

1!

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

&i optamos por el aplazamiento, el rendimiento en cuanto a la utilizaci n de la memoria ser alto, si el sistema operativo continua asignando particiones a otros procesos, que estn en la cola de espera y cuyos requerimientos de memoria son menores, sin embargo, haciendo esto se puede violar el orden de activaci n de procesos, propuesto por el algoritmo de planificaci n y posteriormente puede afectar al funcionamiento del sistema. Las situaciones descritas ilustran la estrecha relaci n e interacci n entre la gesti n de memoria y la planificaci n de los procesos, por parte del sistema operativo. En estos sistemas con particionamiento esttico de la memoria, (l n"mero de particiones establece, (l limite mayor de procesos residentes en memoria y por lo tanto, el grado de multiprogramaci n. )entro del lmite, la utilizaci n de la '+# puede ser mejorada incrementando la proporci n entre procesos disponibles y residentes, esto puede ser llevado a cabo, retirando de la memoria los procesos bloqueados temporalmente, cuando e$istan procesos listos para ser cargados en las particiones ocupadas por aquellos. #n proceso retirado es normalmente guardado en el almacenamiento secundario, hasta que todos los recursos que necesita para su ejecuci n, e$cepto la memoria y la '+#, puedan serle asignados.
DESCARGA DIN8MICA.

'onsiste en retirar de la memoria los procesos que estn bloqueados y su subsiguiente regreso, cuando los recursos que necesita para su ejecuci n, a e$cepci n de la memoria y la '+#, le son concedidos. La descarga dinmica, se utiliza para implementar la multiprogramaci n, en sistemas con una memoria restrictiva, tambi(n puede ser provechosa para mejorar la utilizaci n de la '+#, en entornos de memoria particionada, incrementando la proporci n entre procesos preparados y residentes. 'uando el planificador decide admitir un nuevo proceso, para el cual no se ha podido encontrar una partici n adecuada, se produce la descarga dinmica de uno de los procesos bloqueados, que ocupe una partici n suficientemente grande, para satisfacer las necesidades del proceso entrante. +ara realizar la elecci n del proceso, que abandonar la memoria y pasar al almacenamiento secundario, se tendr en cuenta, adems de la capacidad de la partici n, la prioridad del proceso, que recursos que est esperando, ya que si el recurso que le mantiene en espera, es un recurso lento, e$iste una cierta probabilidad de que este proceso este suspendido, durante un periodo de tiempo ms largo. .tra consideraci n que se deber tener en cuenta, en la elecci n del proceso que abandonar la memoria, ser el tiempo que lleva ese proceso en la memoria, con objeto de evitar la retirada de la memoria de un proceso inmediatamente despu(s de su admisi n. #n proceso est tpicamente preparado para la ejecuci n y sometido al sistema operativo en forma de archivo, que contiene un programa en formato ejecutable y los datos relacionados con (l, adems de la pila necesaria para guardar las direcciones de las llamadas y regresos a los distintos procedimientos que componen el programa. Este proceso puede tambi(n contener, atributos del proceso tales como: prioridad, requerimientos de memoria, etc. que figuran en el bloque de control del espacio denominado proceso imagen. El archivo de descarga del sistema se crea en el momento de la creaci n del proceso y esta situado en un soporte del almacenamiento secundario, que utiliza el sistema operativo y que normalmente suele ser el ms rpido, para reducir as el tiempo de intercambio.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

1#

,ndependientemente del tipo de archivos de descarga utilizados, la necesidad de acceder a la memoria secundaria, hace que la descarga dinmica sea una operaci n lenta, si es comparado, con el tiempo de ejecuci n de una instrucci n por parte de la '+#. %s por ejemplo, la descarga de un proceso de ?DQ >4, utilizando un disco con un tiempo de posicionamiento medio de E msg, un tiempo de latencia medio de ? msg. La velocidad de transferencia es de D-bGseg, consume por termino medio 89 msg en posicionar las cabezas de lecturaGescritura para comenzar la transferencia que tardar al menos D9 msg en completarla.

DT ?

?9

PPPPPPPPP 8999 msg $

$C

? E T ? 89 T 8999 8999 = = D9msg ?9 D T ? ?9

?DQ T ? 89 PPPPPP

La carga de otro proceso de ?DQ >b en la partici n vaca, puede llevar otros Q9 msg. El tiempo total ser de 8?9 msg. )urante este tiempo, al menos, ?DQ >b de memoria principal estn inactivos, por tanto, ser preciso tenerlo en cuenta, cuando se decide realizar una descarga dinmica. #n asunto importante en los sistemas que soportan la descarga dinmica, es si la relaci n entre el proceso y la partici n es esttica o dinmica, es decir, si un proceso que fue descargado, puede ahora ser cargado, solo en la partici n especifica desde la que fue retirado o por el contrario, en cualquier partici n del tama!o adecuado. En general, esta relaci n es esttica en los sistemas con particionamiento esttico de la memoria, independientemente de que la descarga dinmica sea soportada o no. En los procesos que no estn permanentemente ligados a una partici n especifica, son mucho ms fle$ibles y tienen mayor capacidad para hacer un uso eficiente de la memoria.
REUBICACIN DE MEMORIA.

El concepto de reubicaci n de memoria, se refiere a la capacidad de cargar y ejecutar un programa dado, en un lugar arbitrario de la memoria. )urante ejecuciones diferentes de un mismo programa, pueden ser asignadas direcciones de carga diferentes, por tanto, es preciso distinguir, una direcci n l gica o virtual, que es la que percibe el usuario, de una direcci n fsica o real, que es el lugar de la memoria, donde el programa y sus datos son almacenados, durante una determinada ejecuci n. -s especficamente, podramos decir, que las direcciones l gicas o virtuales son identificaciones usadas para referenciar la informaci n, dentro del espacio de direcciones de un proceso, mientras que las direcciones fsicas, designan la posici n actual de la memoria real, donde los elementos de informaci n son almacenados en tiempo de ejecuci n. )ependiendo de cuando y como tiene lugar, la proyecci n desde el espacio de direcciones l gicas o virtuales, hacia el espacio de direcciones fsicas o reales, en un esquema de reubicaci n dado, la reubicaci n del programa, puede ser considerada como esttica o dinmica. La reubicaci n esttica implica, que la reubicaci n es llevada a cabo, durante la carga del programa en memoria, por un programa que se denomina cargador reubicable. El programa traductor normalmente prepara (l modulo objeto, suponiendo que la direcci n fsica cero, es la direcci n de comienzo del programa. 'uando el programa es cargado en la memoria por el m dulo del sistema operativo denominado cargador, todas las posiciones del programa, que necesitan reubicaci n, son modificadas de acuerdo con la direcci n fsica de la memoria, que le ha sido asignada al proceso. #na vez que el proceso est en memoria los valores que necesitan reubicaci n, no se distinguen de aquellos que no la necesitan, por lo tanto, los valores de reubicaci n se pierden despu(s de la carga y un programa reubicable estticamente, ejecutado en parte en un rea de memoria, no puede ser trasladado a otra y esperar que contin"e ejecutndose correctamente.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

2&

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

En consecuencia, en sistemas con reubicaci n esttica, un proceso que fue descargado dinmicamente, debe ser cargado, en la misma partici n de memoria, donde estaba situado, antes de que se realizara la descarga dinmica. La reubicaci n dinmica, implica que la proyecci n del espacio de direcciones l gicas o virtuales, en el espacio de direcciones fsicas o reales, es llevado a cabo en tiempo de ejecuci n, normalmente con alguna asistencia del hard/are de la maquina. Los procesos imagen en sistemas con reubicaci n dinmica, se preparan tambi(n, suponiendo que la direcci n de comienzo es la direcci n l gica o virtual cero y se cargan en la memoria sin ninguna modificaci n debida a la reubicaci n. 'uando dichos procesos son ejecutados, todas sus referencias a memoria son reubicadas durante la ejecuci n de las instrucciones, antes de que se acceda a la memoria fsica o real. Este proceso es implementado, por medio de un registro base, que contiene la direcci n fsica de la memoria, donde est cargado el proceso y este valor se obtiene de la correspondiente tabla de descripci n de particiones 6+)17. 'ada referencia a memoria generada por la ejecuci n del proceso, se convierte en la correspondiente direcci n fsica, con solo sumarle el contenido del registro base.
8.999 '+# 899
),*E'',30 L32,'%

8.899
),*E'',30 ;<&,'%

8.999
+ ,-%2E0

-E-.*,%

#n proceso imagen preparado suponiendo que la direcci n de comienzo es la direcci n l gica o virtual cero, se mantendr inalterada, antes y despu(s de ser cargado en la memoria. La reubicaci n dinmica, hace posible mover un proceso parcialmente ejecutado en un rea de memoria a otra, sin que se produzcan inconvenientes de direccionamiento, en los accesos a las instrucciones y datos en el nuevo espacio. Esta caracterstica es muy provechosa para mantener la descarga dinmica, sin tener que ligar los procesos a las particiones y por tanto, podr ser utilizado en el particionamiento dinmico, que estudiaremos posteriormente.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS PROTECCIN Y USO COMPARTIDO.

21

La integridad o la protecci n de un sistema de multiprogramado, depende entre otras cosas, del aislamiento de los distintos espacios de direcciones, es decir no solamente, el sistema operativo debe ser protegido de intromisiones no autorizadas por parte de los procesos de usuario, sino que cada proceso, debe estar prevenido contra los accesos que accidentalmente o intencionadamente se puedan realizar en reas de memoria asignadas a otros procesos. El acceso incontrolado al espacio de memoria de un proceso, adems de causar frecuentes problemas en el funcionamiento del sistema, se pueden producir interacciones no deseadas entre procesos que estn intermitentes y que son difciles de detectar, ya que las consecuencias pueden manifestarse mucho tiempo despu(s, de que el proceso deteriorado haya abandonado el sistema, produciendo de esta manera, errores en otros procesos. Estas consideraciones nos indican que las operaciones multiusuario, no deberan ser proporcionadas en sistemas que no dispongan de un adecuado sistema de protecci n de memoria. 0ormalmente, para un sistema de particionamiento esttico, la protecci n de memoria puede estar implementada por los mecanismos generales de protecci n por soft/are, basados en la utilizaci n de registros base y registros lmite, que proporcionan el debido aislamiento de los espacios de direcciones e$istentes, tanto al sistema operativo como a los restantes procesos. .tro m(todo de protecci n es por hard/are, que consiste en grabar los derechos de acceso en el propio espacio de la propia memoria. El m(todo de un bit por cada direcci n de memoria, ya descrito anteriormente, no es apropiado para los sistemas de multiprogramados, porque se pueden separar solamente dos espacios de direcciones distintos. Este problema puede ser resuelto, a!adiendo ms bits para designar la identidad de cada direcci n de memoria, pero esto sera muy costoso. #na versi n ms econ mica, consiste en asociar varios bits a la protecci n de grandes bloques de memoria, as por ejemplo, algunos sistemas utilizan cuatro bits, denominados clave de protecci n, por cada bloque de memoria de 8 >b, ? Rb, @ Rb, etc. )e esta manera, cuando el proceso es cargado en memoria, su identidad es grabada en los bits de protecci n de los bloques que ocupa. La validaci n de las referencias de memoria es establecida en tiempo de ejecuci n, comparando la identidad del proceso que se est ejecutando, con el contenido de los bits de protecci n del bloque de memoria, que est siendo accedido, por lo tanto si no coinciden, el acceso se considerar ilegal. %l sistema operativo se le asigna una clave maestra "nica, es decir cero, que le da acceso sin ninguna restricci n a todos los bloques de memoria. La manera ms fcil de implementar el uso compartido, es confiar los objetos compartidos al sistema operativo, ya que la utilizaci n del sistema operativo para controlar el acceso a los recursos compartidos y el mecanismo para invocar los servicios del sistema operativo, no necesitan incorporar ning"n suministro adicional, para soportar el uso compartido. Esta forma tan simple de abordar esta cuesti n, no es muy conveniente por las razones que e$ponen a continuaci n: Estimula el crecimiento del sistema operativo. El c digo adicional que se incorpora al sistema operativo, consigue el mismo nivel de fiabilidad y privilegio que tiene el n"cleo, cuyo comportamiento es sumamente fiable. El fragmento de c digo que se obtiene, veda todas las reglas del desarrollo, prueba y mantenimiento de la programaci n. 0ormalmente la mayora de los sistemas, permiten la incorporaci n de rutinas escritas por el usuario dentro del sistema operativo, pero solamente durante el proceso de generaci n del sistema, por lo tanto, no siendo de esta manera, el uso compartido en los sistemas de particionamiento fijo de
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

22

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

la memoria es bastante difcil, por la utilizaci n de los mecanismos de protecci n e$puestos anteriormente, basados fundamentalmente en el aislamiento de los distintos espacios de direcciones. #na soluci n sencilla del problema pero altamente costosa, es tener una copia fsica de los objetos compartidos, en cada espacio de direcciones de los procesos que los utilizan, de esta manera, no hay accesos comunes, es decir, cada proceso se ejecuta usando su proyecci n local de los objetos compartidos, por lo tanto, cuando se hace una modificaci n en el objeto compartido, esta debe ser propagada por todas las copias, para guardar la consistencia entre ellas. El sistema operativo se encarga de copiar los datos compartidos, desde el espacio de direcciones del proceso en ejecuci n a todas las particiones que participan. *ealmente esta soluci n no tiene mucho sentido, ya que no proporciona ning"n ahorro de memoria.
ASIGNACIN DIN8MICA DE LA MEMORIA PARTICIONADA.

La fragmentaci n interna y otros problemas atribuibles al particionamiento esttico de la memoria, como pueden ser la introducci n de procesos de gran tama!o, pueden ser solucionados definiendo las particiones dinmicamente, de acuerdo con los requerimientos de cada proceso. +artiendo del estado inicial del sistema, las particiones deben ser creadas dinmicamente, para adaptarse a las necesidades de cada proceso solicitante, por lo tanto, cuando un proceso termina o es descargado dinmicamente, el gestor de memoria devuelve el espacio desocupado al rea de memoria libre, desde la cual se realizan las asignaciones de memoria a los procesos que la van solicitando. En principio, ni el tama!o ni el n"mero de particiones de memoria asignadas dinmicamente, necesita ser limitado en tiempo de generaci n del sistema o en cualquier otro momento y prcticamente, el gestor de memoria, puede seguir creando y asignando particiones a los procesos que lo solicitan, hasta que toda la memoria fsica este ocupada o bien hasta que se haya alcanzado el grado m$imo de multiprogramaci n. Este "ltimo limite, debe ser establecido en algunos sistemas, por las restricciones en el dise!o de la longitud de las colas en el bloque de control de trabajo 6 +'47 y otras estructuras de datos utilizadas por el sistema operativo.
PARTICIONAMIENTO DIN8MICO.

'on objeto de determinar la especificaci n de las estructuras de datos necesarias, para soportar la definici n y asignaci n dinmica de las particiones, se estudiar brevemente la naturaleza de las operaciones, que un gestor de memoria de este tipo tiene que realizar. 'uando el gestor de memoria recibe la orden de cargar un proceso imagen, el m dulo de gesti n de memoria del sistema operativo, intenta crear una partici n de memoria adecuada, para asignrsela al proceso en cuesti n. El primer paso en esta actividad, es localizar un rea contigua de memoria libre, si la hubiera, de tama!o igual o mayor al del proceso que la solicita. &i esta rea libre es encontrada, el m dulo de gesti n de memoria obtiene de esta zona, una partici n del tama!o e$acto dictado por las necesidades del proceso y se introduce su base, tama!o y estado en la tabla de descripci n de particiones 6+)17. El sistema operativo controla el espacio disponible en memoria, mediante una estructura de datos, denominada lista de fragmentos disponibles, que consiste en una tabla en la que en cada entrada se almacenan la direcci n fsica de comienzo y (l n"mero de posiciones libres. 'uando un proceso residente en la memoria termina o es descargado dinmicamente, el sistema operativo libera la partici n asociada a (l y devuelve el espacio ocupado por la partici n a la lista de fragmentos disponibles.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

23

1eniendo en cuenta la relaci n que e$iste entre la +'4 64loque de control de procesos7 y la +)1 61abla de )escripci n de +articiones7, para determinar la situaci n de un proceso, cuando el proceso es descargado dinmicamente, el sistema operativo anula el campo de la +'4, donde normalmente es guardada la identidad de la partici n asignada. &upongamos que tenemos un espacio de ?.D99 >b de memoria disponible y un sistema operativo residente de @99 >b. Esta situaci n reflejada en la figura 6a7, deja ?.899 >b para los procesos de usuario, que estn situados en una cola de entrada como la que se e$presa a continuaci n: +rocesos
+8 +? +B +@ +D

-emoria
Q99 >b 8.999 >b B99 >b K99 >b D99 >b

1iempo de '+#
89 D ?9 E 8D

% partir de la cola de entrada e$presada anteriormente y con una planificaci n de trabajos quedar un espacio de de la cola de entrada. Esta situaci n queda reflejada en la figura 6b7.
;';&, podemos asignar memoria de inmediato a los procesos +8, +? y +B y nos ?99 >b, que no es suficiente para contener ninguno de los procesos restantes 9> @99 > 9> @99 > +8 8999 > +? ?999 > ?D99 > ?B99 > ?D99 > +B Libre ?999 > ?B99 > ?D99 > 8999 > Libre +B Libre 9> @99 > +8 8999 > +@ 8K99 > ?999 > Libre +B ?B99 > ?D99 > Libre 9> @99 > +8 8999 > 8K99 > ?999 > ?B99 > ?D99 > +@ Libre 9> @99 > Libre &. .. &. .. &. .. &. .. &. .. 9> @99 > +D L99 > 8999 > Libre +@ 8K99 > Libre ?999 > +B Libre &...

+B ?B99 > Libre ?D99 >

6a7

6b7

6c7

6d7

6e7

6f7

#tilizando un algoritmo de planificaci n circular de la '+#, con un cuanto de una unidad de tiempo, el proceso +? terminar en el instante 8@, por haber consumido D unidades de tiempo, liberando su asignaci n de memoria. Esta situaci n est representada en la figura 6c7, volviendo a la cola de trabajos iniciamos el proceso +@, obteniendo la situaci n de la figura 6d7. El proceso +8 terminar en el instante ?E, cuando cumpla las 89 unidades de tiempo y producir la situaci n 6e7, en cuyo momento, se iniciar el proceso +D, que da como resultado la situaci n 6f7. Este ejemplo ilustra varios puntos, ya que en cualquier momento hay un conjunto de espacios de distintos tama!os y dispersos por toda la memoria. La tabla de segmentos disponibles tiene que reflejar los espacios disponibles correspondientes a cada una de las situaciones anteriormente citadas:
&,1#%',30 6a7 6b7 6c7 APUNTES DE SISTEMAS OPERATIVOS ),*E'',30 ;<&,'% )E '.-,E0M. @99 ?B99 8999 +.&,',.0E& L,4*E& ?899 ?99 8999 ANGEL GLEZ. DEL ALBA

24
6d7 6e7

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL ?B99 8K99 ?B99 @99 8K99 ?B99 L99 8K99 ?B99 ?99 B99 ?99 Q99 B99 ?99 899 B99 ?99

6f7

'uando llega un proceso y necesita memoria, buscamos en ese conjunto, un espacio con el tama!o suficiente para el proceso. &i el espacio es demasiado grande, se divide en dos y una parte se le asigna al proceso que llega y la otra queda libre, en la tabla de fragmentos disponibles. 'uando termina un proceso, libera su espacio de memoria, el cual pasa a la tabla de fragmentos disponibles. &i el espacio que queda libre, es adyacente a otros espacios libres, se fusionan formando un espacio mayor y a esta operaci n se la denomina combinaci n. 'uando se realiza una combinaci n, es preciso comprobar si hay procesos esperando memoria, que puedan ser introducidos en ese espacio. +ara la asignaci n dinmica de almacenamiento, el sistema operativo selecciona el ms adecuado en funci n de las siguientes estrategias: +rimer ajuste -ejor ajuste +eor ajuste ;irstP;it. 4estP;it. OorstP;it.

El primer ajuste, consiste en asignar el primer espacio disponible al proceso que lo solicita. El mejor ajuste, consiste en asignar el espacio ms peque!o, que tenga el tama!o suficiente para albergar el proceso. +ara ello es preciso recorrer toda la tabla de fragmentos disponibles, a menos que dicha tabla est( ordenada por tama!o. El peor ajuste, consiste en asignar el espacio ms grande. En este caso tambi(n ser necesario recorrer la tabla completa. Las simulaciones han demostrado, que tanto el primer ajuste como el mejor ajuste, son mejores que el peor ajuste, en cuanto a la reducci n del tiempo y de la utilizaci n del almacenamiento. 0i el primer ajuste ni el mejor ajuste son definitivamente superiores, uno respecto al otro, en relaci n con la utilizaci n del almacenamiento, pero por lo general, el primer ajuste es el ms rpido. Estos algoritmos producen fragmentaci n e$terna conforme los procesos se cargan y se e$traen de la memoria, el espacio de memoria se divide en peque!as partes. )ependiendo de la cantidad total de memoria y del tama!o promedio de los procesos, la fragmentaci n e$terna puede ser un problema mayor o menor. %s por ejemplo el anlisis estadstico del primer ajuste revela que, incluso con cierto perfeccionamiento, dados 0 bloques asignados, se perdern 9,D bloques debido a la fragmentaci n, es decir, un tercio de la memoria puede estar utilizada. % este estudio estadstico se le conoce con el nombre de regla del D9 por ciento.
1%4L% )E )E&'*,+',30 )E +%*1,',.0E& &,1#%',30 6b7 0S )E +%*1,',30 9 4%&E 9 1%-%F. @99 E&1%). %&,20%)%

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS


8 ? B @ 6c7 9 8 ? B @ 9 8 ? B @ D 9 8 ? B @ D 9 8 ? B @ D Q @99 8999 ?999 ?B99 9 @99 8999 ?999 ?B99 9 @99 8999 8K99 ?999 ?B99 9 @99 8999 8K99 ?999 ?B99 9 @99 L99 8999 8K99 ?999 ?B99 Q99 8999 B99 ?99 @99 Q99 8999 B99 ?99 @99 Q99 K99 B99 B99 ?99 @99 Q99 K99 B99 B99 ?99 @99 D99 899 K99 B99 B99 ?99 %&,20%)% %&,20%)% %&,20%)% L,4*E %&,20%)% %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% %&,20%)% %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% %&,20%)% L,4*E %&,20%)% L,4*E %&,20%)% L,4*E

25

6d7

6e7

6f7

La fragmentaci n interna se produce normalmente en la asignaci n esttica de la memoria, pero en ciertas ocasiones, tambi(n se puede producir en la asignaci n dinmica de la memoria. &upongamos que en un momento determinado la situaci n de la memoria es la siguiente:
&. .. +8 E&+%',. )E ?9.BKD 4U1E& +?

&i consideramos que la siguiente solicitud es de ?9.BK9 4ytes, tendremos que al asignar dicha solicitud, en el espacio e$istente, quedara un espacio de D 4ytes libres.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

26

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

El sistema operativo interpreta que el procesamiento adicional necesario para asignar ese espacio ocupara un espacio mayor que el propio espacio que est libre, adems de la dificultad de encontrar una solicitud de un espacio tan peque!a. La estrategia general que utiliza el sistema operativo, consiste en asignar ese espacio tan peque!o a la solicitud anterior, por lo tanto, en ciertas situaciones puede ocurrir que la memoria asignada sea algo mayor que la memoria solicitada y producir as una peque!a fragmentaci n interna que no se usar. *esumiendo podramos decir, que seg"n van entrando los procesos en el sistema, se van colocando en una cola de entrada, en espera de que el planificador a largo plazo, teniendo en cuenta los requisitos de memoria de cada proceso y la cantidad de memoria disponible, determine a que procesos se les asigna. 'uando a un programa se le asigna espacio, se carga en memoria, se relocaliza si es necesario y de esta manera puede competir por la asignaci n del procesador. L gicamente, el +lanificador a largo plazo puede ordenar la cola de entrada de acuerdo con alg"n algoritmo de planificaci n. 'on este esquema de gesti n de memoria, se elimina en la mayor parte de los casos la fragmentaci n interna, ya que las particiones se crean con el tama!o solicitado por el proceso, sin embargo, si podemos tener fragmentaci n e$terna. E$aminando el conjunto de asignaciones anteriormente e$puesto, podemos ver dos situaciones de este tipo: En la situaci n 6b7 se presenta una fragmentaci n e$terna de ?Q9 >, un espacio demasiado peque!o para satisfacer los requisitos de alguno de los procesos restantes +@ y +D. En la situaci n 6d7, sin embargo, tenemos una fragmentaci n e$terna total de DQ9 >, es decir, 6B99 > : ?Q9 >7, este espacio sera suficiente para ejecutar el proceso +D, que requiere D99 >, pero esta memoria libre no es contigua, ya que est fragmentada en dos partes, ninguna de la cuales tiene el tama!o suficiente para satisfacer la solicitud del proceso +D.

Este problema de fragmentaci n puede ser grave, ya que se puede tener un bloque de memoria libre entre cada dos procesos. La selecci n de la estrategia de primer ajuste y mejor ajuste, puede afectar a la cantidad de fragmentaci n.
COMPACTACIN.

#na soluci n para el problema de la fragmentaci n e$terna es la compactaci n, que tiene por objeto desplazar el contenido de la memoria hacia uno de los e$tremos para que toda la memoria libre se sit"e en un solo espacio de gran tama!o. +or ejemplo, en el conjunto de asignaciones e$presado anteriormente, en la situaci n 6f7, puede compactarse la memoria de la forma que se e$presa a continuaci n:
9> @99 > L99 > 8999 > 8K99 > ?999 > ?B99 > ?D99 > &. .. +D 899 > +@ B99 > +B ?99 > ?D99 > 9> @99 > L99 > 8Q99 > '.-+%'1%',30 8L99 > &. .. +D +@

+B

Q99 >

Los espacios de 899 >, B99 > y ?99 > pueden compactarse en un espacio de Q99 >.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

La compactaci n no siempre es posible, ya que para mover los procesos +B y +@ y que posteriormente, estos puedan ejecutarse en las nuevas posiciones, hay que reubicar todas las direcciones internas. &i la reubicaci n es esttica, es decir, se realiza en el momento de la carga, la compactaci n no puede realizarse, solamente ser posible si la reubicaci n es dinmica y se efect"a por lo tanto, en el momento de la ejecuci n. &i las direcciones se reubican dinmicamente, solo ser necesario trasladar el programa y los datos y despu(s cambiar el registro base para situar la nueva direcci n de carga. 'uando la compactaci n es posible, el algoritmo ms sencillo consiste en mover todos los procesos hacia un e$tremo de la memoria y todos los espacios libres se mueven en sentido contrario, produciendo un gran espacio de memoria. Este esquema de compactaci n puede ser bastante costoso, por tanto vamos a estudiar una forma de realizar la compactaci n de menor coste con un ejemplo:
9> B99 > D99 > Q99 > &. .. +8 +? @99 > 8999 > 8?99 > 8D99 > +B B99 > 9> B99 > D99 > Q99 > E99 > 8?99 > +? +B +@ 8999 > 8?99 > &... +8 9> B99 > D99 > Q99 > +? +@ +B L99 > &... +8 9> B99 > D99 > Q99 > &... +8 +?

8D99 > L99 > L99 > 8L99 > ?899 > &E -#EJE0 Q99 > ?899 > &E -#EJE0 @99 > ?899 > +@

+@ 8L99 > ?899 >

?99 > %&,20%',30 .*,2,0%L

+B &E -#EJE0 ?99 >

1ambi(n se puede combinar el intercambio con la compactaci n, ya que un proceso puede descargarse de la memoria principal al almacenamiento secundario y reincorporarse ms tarde. 'uando el proceso se descarga, se libera su memoria y quiz el espacio se pueda utilizar para otro proceso. 'uando el proceso tiene que reincorporarse por intercambio, pueden aparecer varios problemas: &i se utiliza la reubicaci n esttica, el proceso debe reincorporarse e$actamente a las mismas posiciones de memoria que ocupaba anteriormente, esta restricci n puede requerir, que todos los dems procesos se descarguen para liberar esa memoria. &i se emplea reubicaci n dinmica, entonces el proceso se puede reincorporar a una localidad cualquiera de la memoria.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

2!

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#na estrategia que se puede utilizar para la compactaci n, consiste en descargar los procesos que hay que mover y reincorporarlos a localidades de memoria diferentes. &i los intercambios o la t(cnica de descargar y reincorporar los procesos, ya forma parte del sistema, el c digo adicional para la compactaci n puede ser mnimo.
PROTECCIN Y USO COMPARTIDO.

El problema principal que se produce, con el esquema de particiones de tama!o variable es la fragmentaci n e$terna. #na forma de reducir la fragmentaci n e$terna, consiste en dividir en varias partes la memoria que necesita un proceso, de esta manera cada parte, es menor que la memoria ocupada por el proceso completo, por lo tanto, siempre ser ms fcil de acomodar en la memoria. +ara utilizar esta estrategia hay que proporcionar varios pares de registros base y registros lmite, con un mecanismo apropiado, para traducir las direcciones l gicas a direcciones fsicas. #na forma de lograr esto, consiste en dividir la memoria en dos partes disjuntas y el sistema establecer dos pares de registros base y limite, para ello, la memoria se divide por la mitad utilizando el bit de direcci n de orden superior. La memoria baja, se puede relocalizar y limitar, usando el par cero de registros base y lmite, la memoria alta se podra relocalizar y limitar, utilizando el par uno de registros base y limite. +or convenci n o dise!o, los compiladores y ensambladores colocan valores de solo lectura, es decir, constantes e instrucciones, en la memoria alta y las variables en la memoria baja. %s se puede asociar una protecci n diferente a cada par de registros asegurando, que la memoria alta sea solo de lectura. Esta disposici n permite compartir programas almacenados como de solo lectura en la memoria alta entre varios procesos de usuario, cada uno con su propio segmento en la memoria baja. #na manera de lograr esto consiste en separar un programa en dos partes: c digo y datos. La unidad de control del procesador al realizar la funci n de descodificaci n, sabe si quiere realizar la b"squeda de una instrucci n o bien la b"squeda o almacenamiento de datos, por lo tanto, se proporcionan dos pares de registro base y limite, uno para las instrucciones que ser solo de lectura y otro para los datos, de esta manera se podrn compartir los programas entre los distintos usuarios. 'on estos esquemas, al separar programas y datos, realizando la relocalizaci n por separado, podemos compartir programas entre varios usuarios, utilizando as mejor la memoria y reduciendo tanto la fragmentaci n como las copias m"ltiples del mismo c digo, en especial, el c digo de uso com"n como el de compiladores, editores, etc. +ara finalizar la descripci n realizada del particionamiento de la memoria, se puede observar, que tanto las particiones de tama!o fijo, como las de tama!o variable, hacen un uso ineficiente de la memoria, las primeras generan fragmentaci n interna, mientras que las segundas originan fragmentaci n e$terna. % continuaci n vamos a estudiar los esquemas de gesti n de memoria basados en la asignaci n de memoria no contigua, que tienen por objeto, asignar las distintas partes de un objeto l gico a reas no contiguas de la memoria fsica. La traducci n de direcciones, efectuada durante la ejecuci n de las instrucciones, establece la correspondencia necesaria, entre un espacio l gico contiguo y las direcciones fsicas de la memoria no contiguas, que determinan las posiciones reales, en donde residen los objetos en la memoria fsica, durante el tiempo de ejecuci n. El objetivo principal de estos esquemas de gesti n de memoria, ser conseguir una mejor utilizaci n de la memoria, reduciendo, tanto la fragmentaci n interna como la fragmentaci n e$terna.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS LA SEGMENTACIN.

2#

La generalizaci n del concepto de dividir la memoria en varias partes, definido anteriormente, introduce un aspecto importante en la administraci n de la memoria, que consiste en la separaci n de la perspectiva que el usuario tiene de la memoria l gica o virtual y la memoria fsica o real. La perspectiva que el usuario tiene de la memoria, se fundamenta en la organizaci n l gica de un programa en la actualidad, que no se corresponde con el concepto de la memoria fsica real, pero si e$iste, una correspondencia entre la perspectiva del usuario y la estructura de la memoria fsica, que permite establecer la diferencia entre la memoria l gica y la memoria fsica. La memoria fsica est formada por un vector lineal de palabras, algunas con instrucciones y otras con datos, sin embargo, el usuario no considera la memoria como un vector lineal de palabras, si no ms bien, como un conjunto de partes claramente definidas por la funci n que cumplen en el desarrollo del programa. 'ada una de esas partes esta agrupada de tal forma, que puedan ocupar posiciones contiguas de la memoria, pero las partes entre s, pueden estar separadas y en cualquier orden. %l espacio que ocupan cada una de esas partes es a lo que se denomina segmento. #n programa desde el punto de vista del usuario, est formado por un m dulo principal y varios secundarios, los cuales utilizan unos m dulos de c digo y unas estructuras de datos determinadas. 'ada uno de los m dulos o partes del programa tiene un nombre, que define el usuario sin preocuparse por las direcciones que estas partes van a ocupar en la memoria. 'ada una de esas partes ocupa un segmento, que tiene una longitud variable y que est definida intrnsecamente por el prop sito de ese segmento en el programa. Los elementos de informaci n que contiene un segmento, se identifican por su desplazamiento, a partir del inicio del segmento correspondiente. 1eniendo en cuenta estas consideraciones, la direcci n de un elemento de informaci n determinado, deber indicarse dando el nombre del segmento y el desplazamiento dentro de (l. El nombre del segmento el sistema operativo lo convertir en un numero y de esta forma la direcci n vendr e$presada por los siguientes componentes: 6s,d7 s d 0ombre del segmento. )esplazamiento dentro de (l.

La segmentaci n es un esquema de administraci n de memoria, que se apoya en la perspectiva que el usuario tiene de la memoria.
-.)#L. +*,0',+%L &E2-E01. 9 -.)#L. 8 &E2-E01. 8 -.)#L. ? &E2-E01. ? @99 > MEMORIA LGICA DE UN PROCESO D99 > E&1*#'1#*%& )E )%1.& 8 &E2-E01. B E&1*#'1#*%& )E )%1.& ? &E2-E01. @ 8.999 > 8.899 >

8.999 >

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

3&

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#n espacio de direcciones de un programa, se compone de un conjunto de segmentos, cada uno de los cuales tiene un nombre y una longitud. 'uando un programa de usuario se traduce, el compilador construye automticamente los segmentos que constituyen el programa de entrada. Los antiguos procesadores E9EQ utilizaban la segmentaci n como "nico esquema de administraci n de la memoria.
COMO ACT"A LA SEGMENTACIN.

%unque el usuario se puede referir a los objetos de un programa utilizando direcciones l gicas bidimensionales, la memoria fsica real sigue siendo una secuencia unidimensional de bytes o palabras. +or todo ello, debemos definir una forma de implantar la correspondencia entre direcciones l gicas bidimensionales, definidas por el usuario y direcciones fsicas unidimensionales. Esta correspondencia se logra por una estructura de datos que se denomina tabla segmentos.
9 ),*E'',30 )E #0 &E2-E01. 0. &E2-E01. 6&14*7 9 8 ? B 6&1L*7 @

6s,d7
4%&E 8.?99 Q.B99 @.B99 B.?99 @.K99

8.?99 ?.?99 B.?99 @.B99 @.E99 D.E 99 Q.B99

L.02,1#) 8.999 @99 D99 8.899 8.999

&E2-E01. 9

&E2-E01. B &E2-E01. ? &E2-E01. @

1%4L% )E &E2-E01.&

&14* &1L*

&E2-E01 1%4LE 4%&E *E2,&1E* &E2-E01 1%4LE LE021= *E2,&1E*

Q.K99

&E2-E01. 8 -E-.*,% ;<&,'%

% continuaci n se trata de e$poner como se utilizan las tablas de segmentos teniendo en cuenta que una direcci n l gica tiene dos componentes: #n numero de segmento 6s7. #n desplazamiento 6d7.
& V &1L* 1%4L% )E &E2-E01.& &14* &

&, 0.

&

&E2-E01 1%4LE 4%&E *E2,&1E*

#'+

6s,d7

L.02.

4%&E &1L* 4%&E -E-.*,% &E2-E01 1%4LE LE021= *E2,&1E*

E**.*

d V L.02
&, 0. E**.*

El n"mero de segmento, se utiliza como ndice en la tabla de segmentos, cada entrada en esta tabla, tiene una base 6s7 que determina el comienzo del segmento y una longitud del segmento, el desplazamiento 6d7 de la direcci n l gica, debe estar entre 9 y la longitud del segmento, ya que si no
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

31

es as, se producir un error de direccionamiento. &i el desplazamiento es valido, se suma a la base del segmento para producir, la direcci n de memoria fsica de la palabra deseada.
IMPLANTACIN DE LAS TABLAS DE SEGMENTOS.

La segmentaci n est estrechamente relacionada con los modelos de administraci n de memoria por particiones, que hemos estudiado anteriormente, con la "nica diferencia de que un programa puede estar formado por varios segmentos. 'omo consecuencia del empleo de segmentos de distinto tama!o, el concepto de segmentaci n, resulta similar a las particiones dinmicas y en ausencia de un esquema de superposici n o del uso de memoria virtual, sera necesario cargar en memoria todos los segmentos de un programa para su ejecuci n. La diferencia, en comparaci n con las particiones dinmicas, radica en que con segmentaci n, un programa puede ocupar ms de una partici n y estas no tienen necesidad de ser contiguas. La segmentaci n elimina la fragmentaci n interna, pero como en las particiones dinmicas, produce fragmentaci n e$terna, sin embargo, debido a que los procesos se dividen en un conjunto de partes ms peque!as, la fragmentaci n e$terna ser menor. Las estrategias que se utilizan para la situaci n de los segmentos en la memoria, son las mismas que se utilizan en las particiones dinmicas. La segmentaci n es un concepto ms complejo que las particiones, de esta manera, una tabla de segmentos debe ubicarse en registros rpidos o en memoria, para poder hacer referencias a una velocidad mayor y ahorrar tiempo en las operaciones que se necesitan para localizar un elemento determinado. 'uando un programa est formado por un gran numero de segmentos, ser muy necesario conservar la tabla de segmentos en memoria y establecer un registro base de la tabla de segmentos 6&14*7, &egment 1able 4ase *egister, que apunta a la tabla de segmentos. %s mismo, teniendo en cuenta, que el n"mero de segmentos que utiliza el programa, puede variar considerablemente, se usa un registro de longitud de la tabla de segmentos 6&1L*7, &egment 1able Length *egister. +ara una direcci n l gica 6s,d7, primero comprobamos si el numero de segmento 6s7 es legal, para lo cual & V &1L*. +osteriormente sumamos el n"mero de segmento al &14*, que nos proporciona la direcci n 6&14* : &7 en memoria, de la entrada de la tabla de segmentos. Esta entrada se lee de la memoria y continuamos como antes, comparamos el desplazamiento con la longitud del segmento y calculamos la direcci n fsica de la palabra deseada, como la suma de la base del segmento ms el desplazamiento.
PROTECCIN Y USO COMPARTIDO.

#na ventaja particular de la segmentaci n, es la asociaci n de la protecci n a los segmentos, ya que cada uno de los segmentos representa una parte del programa, es probable que todos los elementos de informaci n del segmento, se utilicen de la misma manera, as, algunos segmentos contendrn instrucciones y otros contendrn datos.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

32

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

En una arquitectura moderna las instrucciones no se modifican a s mismas, es decir, el c digo es reentrante, por lo tanto, los segmentos de instrucciones pueden definirse de solo lectura o solo ejecuci n. El hard/are de transformaci n de memoria, consultar los bits de protecci n asociados a cada entrada de la tabla de segmentos, para evitar accesos ilegales a la memoria, como un intento de escribir en un segmento de solo lectura o utilizar como datos un segmento de solo ejecuci n. &i colocamos esos bits en su propio segmento, el hard/are de administraci n de memoria, verificar automticamente, que los ndices de la tabla de segmento sean legales y no salgan de los limites establecidos. )e esta manera, el hard/are detectar muchos errores comunes en los programas, antes de que puedan causar serios da!os. .tra ventaja de la segmentaci n es la posible compartici n de c digo o datos, de esta manera, cada proceso tiene una tabla de segmentos asociada a su bloque de control de proceso 6+'47, utilizada por el despachador, para definir la tabla de segmentos del hard/are, cuando se asigna la #'+ a este proceso. Los segmentos se comparten, cuando las entradas de las tablas de segmentos de dos procesos distintos, apuntan a las mismas localidades fsicas +or ejemplo vamos a considerar el uso de un editor de te$tos en un sistema de uso compartido. #n editor completo puede ser bastante grande por lo tanto vamos a compartir la situaci n del editor en la memoria entre los procesos de usuario +8 y +?.
@9.999 Q9.999 Q@.999 L9.999 LE.999 E),1.* )%1.& 8 E),1.* segmento 9 )%1.& 8 segmento 8 )%1.& ? E),1.* &egmento 9 -E-.*,% ;<&,'% )%1.& ? segmento 8 segmento 9 segmento 8 L,-,1E segmento 9 segmento 8 ?9.999 @.999 4%&E @9.999 Q9.999

L,-,1E ?9.999 E.999

4%&E @9.999 L9.999

LA PAGINACIN.

La paginaci n es un esquema de gesti n de memoria muy utilizado actualmente, que consiste en dividir la memoria principal, en bloques iguales de tama!o fijo y relativamente peque!os, que se denominan marcos de pagina. )e igual modo, los procesos se dividen tambi(n en bloques de tama!o fijo y de igual tama!o que los de la memoria principal, que se denominan pginas. )e esta manera, las paginas en que se ha dividido un proceso, pueden asignarse a los marcos libres de la memoria principal.

+*.'E&.

-E-.*,% *E%L

El modelo de paginaci n de la memoria es el que se representa a continuaci n:


0S )E -%*'.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS


9 8 +%2,0% 9 +%2,0% 8 +%2,0% ? +%2,0% B -E-.*,% L32,'% 9 8 ? B 8 @ B K ? B @ D Q K +H2,0% B -E-.*,% ;<&,'% +H2,0% ? +H2,0% 8 +H2,0% 9

33

1%4L% )E +H2,0%&

En la figura que se e$presa a continuaci n se presenta el apoyo del hard/are necesario para la utilizaci n de la paginaci n:

),*E'',30 L32,'%

),*E'',30 ;<&,'%

#'+

d
+14*

-E-.*,% ;<&,'%

0.

&, +V+1L*

E**.*

+1L* 1%4L% )E +%2,0%&

+%2E 1%4LE 4%&E *E2,&1E* +%2E 1%4LE LE021= *E2,&1E*

+14* +1L*

'ada direcci n l gica generada por el procesador de divide en dos partes: un n"mero de pagina 6p7 y un desplazamiento en la pgina 6d7. El n"mero de pgina se utiliza como ndice en una tabla de pginas, que contiene el n"mero del marco de la memoria fsica, que contiene esa pgina. La direcci n fsica se consigue, multiplicando el n"mero del marco por su tama!o y se le suma el desplazamiento en la pgina, obteniendo de esta manera una direcci n de memoria fsica o real. 1anto el tama!o de la pgina como el tama!o del marco, esta definido por el hard/are y adems es preciso a!adir, que el tama!o de la pgina generalmente es una potencia de ?, dependiendo todo ello de la arquitectura del ordenador. La selecci n de una potencia de ? como tama!o de pgina, facilita la traducci n de una direcci n l gica a un n"mero de marco y un desplazamiento dentro del marco. &i el tama!o de la pgina es ? n unidades de direccionamiento, que pueden ser bytes o palabras, entonces, los n bits de orden inferior de la direcci n l gica representan el desplazamiento en la pgina y los bits restantes de orden superior indican el n"mero de pgina.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

34

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

#n ejemplo sencillo seria el siguiente:


9 9 8 ? B @ D Q K E L 89 88 8? 8B 8@ 8D % 4 ' ) E ; 2 = , A > L 0 . + 9 @ 8Q ?9

9 8 ? B

D Q 8 ?

1%4L% )E +H2,0%&

8?

, A > L 0 + 5

?@

?E B?

% 4 ' ) E ; 2 =

-E-.*,% L32,'% 1%-%F. )E +H2,0% C @ +%L%4*%&

-E-.*,% ;<&,'% B? +%L%4*%& C E +%2,0%&

#tilizando un tama!o de pgina de @ palabras y una memoria fsica de B? palabras, es decir, ocho pginas, se muestra un ejemplo de como puede efectuarse la correspondencia entre la memoria l gica desde el punto de vista del usuario y la memoria fsica.
),*E'',30 L32,'% 9 C 9999 C + C 9 ) C9 + C8 ) 9 + C ? ) C? + C B ) C 8 -%*'. C D ),*E'',30 ;<&,'% C 6D T @7 : 9 C ?9

),*E'',30 L32,'% @ C 9899 C

-%*'. C Q

),*E'',30 ;<&,'% C 6Q T @7 : 9 C ?@

),*E'',30 L32,'% 89 C 8989 C

-%*'. C 8

),*E'',30 ;<&,'% C 68 T @7 : ? C Q

),*E'',30 L32,'% 8B C 8898 C

-%*'. C ?

),*E'',30 ;<&,'% C 6 ? T @7 : 8 C L

&e puede observar que la paginaci n es una forma de relocalizaci n dinmica, es decir, cada direcci n l gica esta enlazada a la direcci n fsica, mediante el hard/are de paginaci n, siendo la paginaci n semejante al uso de una tabla de registros base, uno para cada marco de memoria. La utilizaci n de este esquema de gesti n de memoria permite asegurar, que no se va a producir fragmentaci n e$terna, ya que cualquier marco libre, se puede asignar al proceso que lo necesite y que solo se producir una peque!a fragmentaci n interna, en la "ltima pagina del proceso, ya que los marcos se asignan como unidades, por lo tanto, si los requisitos de memoria de un proceso, no coinciden con los limites de las paginas, el "ltimo marco asignado puede estar parcialmente vaco. %s por ejemplo, si las pginas son de ?.9@E bytes, un proceso de 89.KQ9 bytes, necesitara D pginas ms D?9 bytes, l gicamente al proceso se le asignaran Q marcos completos y se producira una fragmentaci n interna de 8.D?E bytes.
89.KQ9 G ?.9@E C D : D?9 G ?.9@E

;ragmentaci n ,nterna C ?.9@E W D?9 C 8.D?E.

En el peor de los casos, un proceso necesitara n pginas, ms una palabra, en este caso, se le asignaran n : 8 marcos, produciendo una fragmentaci n interna de casi un marco completo. &e puede decir, que si el tama!o del proceso es independiente del tama!o de pgina, se puede esperar una fragmentaci n interna de media pagina por proceso.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

35

Esta consideraci n nos indica, que son deseables tama!os de pagina peque!os, para disminuir la fragmentaci n interna, pero l gicamente aumentara el n"mero de entradas en la tabla de pginas, que disminuira si las pginas son ms grandes. &upongamos que en un instante dado, una serie de marcos de la memoria estn en uso y otros estn libres, l gicamente, el m dulo de gesti n de memoria del sistema operativo, debe mantener una lista de marcos libres. 'uando un proceso llega para ejecutarse el planificador a largo plazo e$amina su tama!o, el cual estar e$presado en pginas, a continuaci n el planificador comprueba la memoria disponible en la lista de marcos libres. 'ada pgina del proceso necesita un marco, por lo tanto, si el proceso esta formado por n pginas debe haber n marcos disponibles en la memoria, si e$isten, el planificador a largo plazo se los asignar al proceso, creando una tabla de pginas que establecer la correspondencia entre las pginas del proceso y los marcos de la memoria donde estn situadas esas pginas. )e esta manera, la primera pgina del proceso se carga en uno de los marcos asignados y el n"mero del marco se registra en la tabla de pginas creada para ese proceso, la siguiente pgina se carga en otro marco y su n"mero de marco se coloca en la tabla de paginas y as sucesivamente.
L,&1% )E -%*'.& L,4*E& 8@ 8B 8E ?9 8D 8B 8@ 8D 8Q 8K 8E 8L ?9 ?8 9 8 ? B 8@ 8B 8E ?9 L,&1% )E -%*'.& L,4*E& 8D 8B 8@ 8D 8Q 8K 8E 8L ?9 ?8 +%2,0% 8 +%2,0% 9

0#EJ. +*.'E&. +%2,0% +%2,0% +%2,0% +%2,0% 9 8 ? B

+%2,0% ?

1%4L% )E +%2,0%& )EL 0#EJ. +*.'E&.

+%2,0% B

'ada sistema operativo tiene sus propios m(todos para almacenar las tablas de pginas y la mayora asigna una tabla de pginas para cada proceso. En el bloque de control de proceso se almacena un apuntador a la tabla de pginas y cuando al despachador se le indica que inicie un proceso debe volver a cargar la tabla de pginas correspondiente.
IMPLANTACIN DE LA TABLA DE P8GINAS.

La implantaci n mediante hard/are de la tabla de pginas, se puede realizar mediante un conjunto de registros dedicados de muy alta velocidad, para que la traducci n de direcciones sea muy eficiente, ya que cada acceso a memoria debe pasar por la tabla de pginas, por lo tanto, la eficiencia es un elemento principal.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

36

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

La utilizaci n de los registros de la tabla de pginas es satisfactoria si esta es razonablemente peque!a, sin embargo, la mayora de los ordenadores actuales permiten que la tabla de pginas sea muy grande y en estas maquinas no es factible el uso de registros de alta velocidad para implantar la tabla de pginas. En este caso, la tabla de pginas se conserva en la memoria principal y se utiliza un registro base de la tabla de pginas, +14* 6+age 1able 4ase *egister7 que apunta a la tabla de pginas. +ara cambiar entre tablas de pginas, solo sera necesario modificar este registro, lo que reduce en gran medida el tiempo de traducci n. El problema con este planteamiento, es el tiempo que se requiere, para acceder a una localidad de memoria del usuario, ya que si se quiere llegar a la localidad i, primero debemos utilizar el registro +14* como base de la tabla de pginas y el n"mero de pgina como desplazamiento dentro de la tabla de pginas, para llegar al marco de memoria donde esta situada la localidad i, que combinado con el desplazamiento dentro de la pgina, proporcionara la direcci n buscada. En este esquema se necesitan dos accesos a memoria para tener acceso a una palabra, uno para la entrada de la tabla de pginas y otro para la palabra que se desea localizar, de esta manera, el acceso a memoria se vuelve ms lento por un factor de dos, demora que puede ser intolerable en la mayora de las circunstancias. La soluci n com"n para este problema, consiste en utilizar una memoria especial de tama!o peque!o, consistente en una serie de registros asociativos o buffers de traducci n con b"squeda anticipada 1L4 61ranslation looRPaside buffers7. #n conjunto de registros asociativos se construye con memoria de muy alta velocidadX cada registro consta de dos partes: una clave y un valor. 'uando se presenta un elemento a los registros asociativos, se compara simultneamente con todas las claves y si el elemento se encuentra se devuelve el valor correspondiente. La b"squeda es muy rpida pero el hard/are es muy costoso. Los registros asociativos se utilizan con las tablas de paginas de la forma que se e$presa a continuaci n:
),*. .*,2E0 )E 1%4L% +H2,0%& a p 1L4 a:p p pY pY 0 -%*'. p pY pY )E&+L%M%-,E01. d ),*. *E%L * C pYT1p : d

0S +H2,0% p

)E&+L%M%-,E01. d

),* J,*1#%L J C 6p,d7

1%4L% +H2,0%&

Los registros asociativos, es decir la 1L4, contienen solo algunas de las entradas de la tabla de pginas. 'uando el procesador genera una direcci n l gica, su n"mero de pgina se presenta al conjunto de registros asociativos, que contienen como clave, el n"mero de pgina y como valor, el n"mero de marco correspondiente. &i el n"mero de pgina se encuentra en los registros asociativos, su n"mero de marco est inmediatamente disponible y se utiliza para acceder a la memoria. Esta tarea puede consumir menos del 89Z del tiempo que se utilizara en una referencia directa a memoria.
APUNTES DE SISTEMAS OPERATIVOS ANGEL GLEZ. DEL ALBA

TEORA DE LOS SISTEMAS OPERATIVOS

&i el n"mero de pgina no se encuentra en los registros asociativos, entonces hay que efectuar una referencia a la tabla de pginas, para obtener el n"mero de marco que permita el acceso a la memoria deseada. %dems se a!adir, los n"meros de pgina y marco a los registros asociativos, para que puedan localizarse con rapidez en la siguiente referencia. El porcentaje de ocasiones que se encuentra un n"mero de pgina en los registros asociativos se denomina tasa de aciertos. #na tasa de aciertos del E9Z significa, que en los registros asociativos se ha encontrado (l n"mero de pgina deseado, en un E9Z de las ocasiones. &i para buscar en los registros asociativos, se emplean ?9 nanosegundos y 899 nanosegundos para el acceso a memoria, entonces un acceso a memoria con correspondencia, requiere 8?9 nanosegundos cuando (l n"mero de pgina se encuentra en los registros asociativos. &i (l n"mero de pgina no se encuentra en los registros asociativos, se consumirn ?9 nanosegundos en dicho acceso, posteriormente acudir a la memoria para obtener la tabla de paginas y el n"mero de marco, que serian 899 nanosegundos ms y por "ltimo acceder a la palabra deseada de la memoria, que serian otros 899 nanosegundos, sumando un total de ??9 nanosegundos. +ara determinar el tiempo de acceso efectivo a memoria, debemos de ponderar cada caso por su probabilidad: 1iempo de acceso efectivo C 9,E9 T8?9 : 9,?9 T ??9 C 8@9 nanosegundos. En este ejemplo, el tiempo de acceso a memoria es el ?LZ ms lento, ya que pasa de 899 a 8@9 nanosegundos. +ara una tasa de aciertos del L9Z tenemos: 1iempo de acceso efectivo C 9,L9 T 8?9 : 9,89 T ??9 C 8B9 nanosegundos. Esta tasa de aciertos mayor produce solo un aumento del ?BZ en el tiempo de acceso a memoria. La tasa de aciertos esta evidentemente relacionada con (l n"mero de registros asociativos. %s, con 8Q a D8? registros asociativos puede obtenerse una tasa de aciertos del E9Z al LEZ, todo depende del procesador que se est( utilizando.
PROTECCIN Y USO COMPARTIDO.

La protecci n de memoria en un entorno paginado, se puede lograr asociando una serie de bits de protecci n a cada marco de pgina. 0ormalmente, estos bits se conservan en la tabla de pginas y permiten definir si una pgina es de solo lectura, ejecuci n, actualizaci n, etc. 'ada referencia a memoria pasa por la tabla de pginas para encontrar el n"mero de marco correcto, por lo tanto, al mismo tiempo que se calcula la direcci n fsica, se puede consultar los bits de protecci n, para verificar que no se efect"en actualizaciones en una pgina de solo lectura, si eso ocurre, se produce una interrupci n de hard/are para el sistema operativo, consistente en una violaci n de la protecci n de memoria. Esta estrategia de protecci n puede ampliarse fcilmente, para ofrecer un nivel de protecci n ms fino, creando hard/are para brindar protecci n de solo lectura, lecturaGescritura, o de solo ejecuci n, o bien, proporcionando bits de protecci n separados para cada tipo de acceso, permitiendo cualquier combinaci n de estos accesos y produciendo una interrupci n al sistema operativo si se presenta alg"n intento de violaci n.

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

3!

GESTIN Y ADMINISTRACIN DE LA MEMORIA REAL

Es poco com"n que un proceso utilice todo su intervalo de direcciones, en realidad muchos procesos, solo utilizan una peque!a fracci n del espacio de direcciones del que disponen. En estos casos, seria un derroche crear una tabla de paginas, con entradas para cada pagina del intervalo de direcciones, ya que la mayor parte de esta tabla no se utilizara, pero ocupara un valioso espacio de memoria. %lgunos sistemas ofrecen hard/are que indica el tama!o de la tabla de paginas, a trav(s de un registro de longitud de la tabla de paginas, +1L* 6+age 1able Length *egister7. Este valor se compara con cada direcci n l gica, para asegurar que la direcci n se encuentra en el intervalo valido para el proceso, si no supera esta prueba se genera una interrupci n para el sistema operativo. #na de las ventajas de la +aginaci n es la probabilidad de compartir un c digo com"n, que tiene especial importancia en un entorno de tiempo compartido. +ara ello vamos a considerar un sistema de tiempo compartido, que brinde servicio a @9 usuarios, cada uno de los cuales ejecuta un editor de te$tos.
>

&i el editor de te$tos, consta de 8D9 > de c digo y D9 > de espacio de datos, necesitamos E.999 para apoyar a los @9 usuarios.

&i el c digo es reentrante, es decir, que no se puede modificar a s mismo, en este caso el c digo puede compartirse entre varios usuarios, pero cada proceso deber tener su propio espacio para contener los datos durante la ejecuci n, ya que esos datos variarn para cada proceso. &olo es necesario conservar una copia del editor en la memoria fsica, por lo tanto, cada tabla de pginas de los procesos de usuario, har corresponder las pginas de cada proceso de usuario a la misma copia fsica del editor, pero las pginas de datos, correspondern a marcos de pgina diferentes. )e esta manera para apoyar a los @9 usuarios, "nicamente se requiere una copia del editor 68D9 >7, ms @9 copias del espacio de datos de D9 > de cada uno de los usuarios. Esto significa, que ahora solamente seran necesarios: 8D9 > : ?.999 > C ?.8D9 >, en lugar de, E.999 > necesarias sin la compartici n. El ahorro que se produce con la compartici n ser mayor a medida que crezca el n"mero de usuarios en el sistema.
1:+%2. B @ Q 8 +8 1. +%2. B @ Q ? +? E) 8 E) ? E) B )%1 B +*.'. +B +B 1. +%2 B @ Q K 9 8 ? B @ D Q K E L 89 -E-.*,% *E%L )%1 8 )%1 ? E) 8 E) ?

E). 8 E) ? E) B )%1 8 +*.'. +8 E) 8 E) ? E) B )%1 ? +*.'. +?

E) B )%1 B

APUNTES DE SISTEMAS OPERATIVOS

ANGEL GLEZ. DEL ALBA

Вам также может понравиться