You are on page 1of 14

MEMORIA REAL

La memoria real o principal es en donde son ejecutados los programas y


procesos de una computadora y es el espacio real que existe en memoria para
que se ejecuten los procesos. Solo la memoria cache es ms rpida que la
principal, pero su costo es a su vez mayor.
SIN INTERCAMBIO
1.1.1.- Mono programacin sin intercambio o paginacin
Cuando solo se tiene un proceso que ocupe la memoria a la vez. Sin embargo,
ste mtodo ya no tiene aplicacin en la actualidad, ya que era visto en
las computadoras con sistemas operativos de un solo usuario y una sola tarea.
1.1.2.- Multiprogramacin y uso de memoria
Esta organizacin facilita la programacin de una aplicacin al dividirla en dos
o ms procesos. Adems ofrece la capacidad de tener ms de un proceso a la
vez en memoria as puede ofrecer servicios a varios usuarios a la vez.
1.1.3.- Multiprogramacin con particiones fijas
Para poder implementar la multiprogramacin, se puede hacer uso de
particiones fijas o variables en la memoria. En el caso de las particiones fijas, la
memoria se puede organizar dividindose en diversas partes, las cuales
pueden variar en tamao. Esta particin la puede hacer el usuario en
forma manual, al iniciar una sesin con la mquina.
CON INTERCAMBIO
1.2.1.- Multiprogramacin con particiones variables
Este esquema fue originalmente usado por el sistema operativo IBM OS/360
(llamado MFT), el cual ya no est en uso.
El sistema operativo lleva una tabla indicando cules partes de la memoria
estn disponibles y cules estn ocupadas. Inicialmente, toda la memoria est
disponible para los procesos de usuario y es conside
Fig. 3. Ejemplo de una divisin inicial de memoria y una lista de
trabajos.

Fig. 4. Ejemplo de asignacin de procesos en la memoria principal.

1.2.1.1.- Compactacin de memoria


Cuando un proceso llega y necesita memoria, el sistema operativo busca en la
tabla de huecos alguno lo suficientemente grande para el proceso. Si el hueco
es muy grande, lo parte en dos. Una parte es asignada al proceso y la otra se
identifica como hueco. Cuando el proceso termina y la memoria es liberada, el
espacio es identificado como un hueco ms en la tabla y si el nuevo hueco es
adyacente con otro, ambos huecos se unen formando un solo hueco ms
grande.
1.2.1.2.- Asignacin dinmica
El proceso de compactacin del punto anterior es una instancia particular del
problema de asignacin de memoria dinmica, el cual es el cmo satisfacer
una necesidad de tamao n con una lista de huecos libres. Las estrategias ms
comunes para asignar algn hueco de la tabla son:

Primer ajuste: Consiste en asignar el primer hueco con capacidad


suficiente. La bsqueda puede iniciar ya sea al inicio o al final del
conjunto de huecos o en donde termin la ltima bsqueda. La
bsqueda termina al encontrar un hueco lo suficientemente grande.

Mejor ajuste: Busca asignar el espacio ms pequeo de los espacios


con capacidad suficiente. La bsqueda se debe de realizar en toda la
tabla, a menos que la tabla est ordenada por tamao.
Esta estrategia produce el menor desperdicio de memoria posible.

Peor ajuste: Asigna el hueco ms grande. Una vez ms, se debe de


buscar en toda la tabla de huecos a menos que est organizada por
tamao. Esta estrategia produce los huecos de sobra ms grandes, los
cuales pudieran ser de ms uso si llegan procesos de tamao mediano
que quepan en ellos.

1.2.2.- Administracin de la memoria con mapas de bits


Este tipo de administracin divide la memoria en unidades de asignacin, las
cuales pueden ser tan pequeas como unas cuantas palabras o tan grandes
como varios kilobytes. A cada unidad de asignacin le corresponde un bit en el
mapa de bits, el cual toma el valor de 0 si la unidad est libre y 1 si est
ocupada (o viceversa).
1.2.3.- Administracin de la memoria con listas ligadas
Otra forma de mantener un registro de la memoria es mediante una lista ligada
de los segmentos de memoria asignados o libres, en donde un segmento
puede ser un proceso o un hueco entre dos procesos.
1.2.4.- Asignacin del hueco de intercambio
En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un
hueco en el disco asignado a l. Cuando deba intercambiarse, se deber
asignar un hueco para l en el rea de intercambio del disco

1.2.5.- Fragmentacin
La fragmentacin es la memoria que queda desperdiciada al usar
los mtodos de gestin de memoria que se vieron en los mtodos anteriores.
Tanto el primer ajuste, como el mejor y el peor producen fragmentacin
externa.

MEMORIA VIRTUAL
PAGINACIN
Hasta ahora, los mtodos que hemos visto de la administracin de la memoria
principal, nos han dejado con un problema: fragmentacin, (huecos en la
memoria que no pueden usarse debido a lo pequeo de su espacio) lo que nos
provoca un desperdicio de memoria principal.
2.1.1.- Tablas de pginas
Cada pgina tiene un nmero que se utiliza como ndice en la tabla de pginas,
lo que da por resultado el nmero del marco correspondiente a esa pgina
virtual. Si el bit presente / ausente es 0, se provoca un sealamiento (trap)
hacia el sistema operativo. Si el bit es 1, el nmero de marco que aparece en la
tabla de pginas se copia en los bits de mayor orden del registro de salida,
junto con el ajuste (offset) de 12 bits, el cual se copia sin modificaciones de la
direccin virtual de entrada. Juntos forman una direccin fsica de 15 bits. El
registro de salida se coloca entonces en el bus de la memoria como la direccin
en la memoria fsica.
Sin embargo hay que enfrentar dos aspectos fundamentales:

1. La tabla de pginas puede ser demasiado grande.

2. La asociacin debe ser rpida.

2.1.2.- Algoritmos de reemplazo de pginas


Con el uso del mtodo de paginacin se puede llegar a saturar la memoria si se
incrementa demasiado el nivel de multiprogramacin. Por ejemplo, si se corren
seis procesos, cada uno con un tamao de diez pginas de las cuales en
realidad slo utiliza cinco, se tiene un mayor uso del CPU y con marcos de
sobra. Pero pudiera suceder que cada uno de esos procesos quiera usar las
diez pginas resultando en una necesidad de 60 marcos, cuando solo hay 40
disponibles.
2.1.2.1.- Algoritmo aleatorio
Este algoritmo consiste simplemente en reemplazar aleatoriamente cualquier
pgina de la memoria principal, sin hacer ningn esfuerzo de prediccin.
Es el algoritmo ms sencillo dado que no requiere tener ninguna informacin,
sin
embargo,
por
no
hacer
uso
de
dicha
informacin
sobre
el comportamiento del proceso, no puede lograr un buen desempeo.
2.1.2.2.- Algoritmo de reemplazo de pginas ptimo
Este algoritmo debe de tener el menor ndice de fallos de pgina de todos los
algoritmos. En teora, este algoritmo debe de reemplazar la pgina que no va a
ser usada por el periodo ms largo de tiempo.

2.1.2.3.- Algoritmo de reemplazo de pginas segn el uso no tan


reciente
Este algoritmo hace uso de los dos bits de estado que estn asociados a cada
pgina. Estos bits son: R, el cual se activa cuando se hace referencia
(lectura / escritura) a la pgina asociada; y M, que se activa cuando la pgina
asociada es modificada (escritura).
Cuando ocurre un fallo de pgina, el sistema operativo revisa ambos bits en
todas las pginas y las clasifica de la siguiente manera:
Clase 0: La pgina no ha sido referenciada, ni modificada.
Clase 1: La pgina no ha sido referenciada, pero ha sido modificada.
Clase 2: La pgina ha sido referenciada, pero no ha sido modificada.
Clase 3: La pgina ha sido referenciada y tambin modificada.
2.1.2.4.- Algoritmo de reemplazo "Primero en entrar, primero en salir"
(FIFO)
El algoritmo ms sencillo para remplazo de pginas es el FIFO (First In First
Out). Este algoritmo asocia a cada pgina el momento en que sta fue trada a
memoria. Cuando una pgina debe ser reemplazada se selecciona a la ms
antigua.
2.1.2.5.- Algoritmo
oportunidad

de

reemplazo

de

pginas

de

la

segunda

Este algoritmo es una modificacin del FIFO. El algoritmo hace uso del bit de
referencia de la pgina. Cuando una pgina ha sido seleccionada para
reemplazo, se revisa el bit de referencia. Si tiene valor de 0, se procede a
reemplazar la pgina. Si por el contrario, el bit de referencia es 1 se le da a la
pgina una segunda oportunidad.

Fig. 10. Algoritmo de la segunda oportunidad.


Cuando esto sucede, se le cambia el bit de referencia a 0 y se actualiza su
tiempo de llegada al tiempo actual para que la pgina se colocada al final de la
cola. De esta manera, la pgina espera todo un ciclo completo de pginas para
ser entonces reemplazada.
2.1.2.6.- Algoritmo de reemplazo de pginas del reloj
Modificando el algoritmo de la segunda oportunidad (que a su vez es una
modificacin de FIFO) obtenemos el algoritmo aumentado de la segunda
oportunidad o algoritmo del reloj. Usamos la misma clasificacin vista en el
algoritmo de uso no tan reciente

2.1.2.7.- Algoritmo de reemplazo de pginas "la de menor uso


reciente" (LRU)
Este algoritmo es una buena aproximacin al ptimo y se basa en
al observacin de que las pginas de uso frecuente en las ltimas instrucciones
se utilizan con cierta probabilidad en las siguientes.

Contadores: En el caso ms sencillo, se asocia cada entrada tablapgina un campo de tiempo-de-uso y se le agrega al CPU un reloj lgico
o contador. Este reloj es incrementado en cada referencia de memoria.

Pilas: Otra aproximacin para implementar el reemplazo LRU es la de


tener una pila con los nmeros de pginas. Siempre que se hace
referencia a una pgina, se quita de la pila y se pone en la parte
superior. De esta manera, la parte superior de la pila es la pgina de uso
ms reciente y la de abajo es la LRU, tal como se muestra en la figura
12.

SEGMENTACIN
Otra opcin para el manejo de la memoria es usar una forma de liberar al
programador de la tarea del control de las tablas en expansin y contraccin,
de la misma forma que la memoria virtual elimina la preocupacin por
organizar el programa en una serie de proyectos.
2.2.1.- Segmentacin pura
La implantacin de la segmentacin difiere del caso de la paginacin en un
sentido esencial: las pginas tienen un tamao fijo y los segmentos no.
Fig. 13. Comparacin de paginacin y segmentacin.
Este fenmeno de fragmentacin externa o checkboarding, desperdicia la
memoria correspondiente a los huecos, pero es fcilmente corregido mediante
el uso de la compactacin. De esta forma los huecos son unificados, generando
as un hueco de tamao suficiente para albergar algn otro segmento ms.
2.2.2.- Segmentacin con paginacin: MULTICS
En el sistema MULTICS, una direccin lgica est formada por un nmero de
segmento de 18-bit y un offset de 16 bit. Aunque este esquema crea un
espacio de direccin de 34-bit, la sobrecarga en la tabla de segmentos es
tolerable; solo se requiere de las suficientes localidades en la tabla de
segmentos como haya segmentos, puesto que no debe haber localidades
vacas.
Fig. 15. Segmentacin paginada en el GE 645 (MULTICS)
Ahora se debe de tener una tabla de pginas individual para cada segmento.
Sin embargo, dado que cada segmento est limitado en tamao por su

ubicacin en la tabla de segmentos, la tabla de pginas no tiene que ser de


tamao completo, solo requiere de los espacios que son realmente necesarios.
2.2.3.- Segmentacin con paginacin: Intel 386
El sistema operativo IBM OS/2 de 32 bits es un sistema operativo que corre con
las arquitecturas del procesador Intel 386 y 486. El 386 una la segmentacin
con paginacin para su manejo de memoria. El nmero mximo de segmentos
por proceso es de 16K y cada segmento puede llegar a ser de hasta 4
gigabytes. El tamao de pgina es de 4K.
Fig. 16. Traduccin de direccin en el Intel 80386
El espacio de direcciones lgicas est dividido en dos particiones. La primera
particin consiste en segmentos de hasta 8K los cuales son privados para ese
proceso. La segunda particin tambin consiste en segmentos de hasta 8K, los
cuales son compartidos entre todos los procesos. La informacin de la primera
particin es guardada en la tabla descriptora local (LDT Local Descriptor
Table), y la de la segunda particin es guardada en la tabla descriptora global
(GDT Global Descriptor Table). Cada registro de las tablas LDT y GDT consiste
de 8 bytes con informacin detallada sobre un segmento en particular
incluyendo la ubicacin base y longitud del segmento.

Asignacin de memoria
La asignacin de memoria consiste en el proceso de asignar memoria para
propsitos especficos, ya sea en tiempo de compilacin o de ejecucin. Si es
en tiempo de compilacin es esttica, si es en tiempo de ejecucin
es dinmica y si son variables locales a un grupo de sentencias se
denomina automtica.
Asignacin esttica de memoria
La Asignacin esttica de memoria consiste en el proceso de asignar memoria
en tiempo de compilacin antes de que el programa asociado sea ejecutado, a
diferencia de laasignacin dinmica o la automtica donde la memoria se
asigna a medida que se necesita en tiempo de ejecucin.
Asignacin automtica de memoria
Las variables automticas son variables locales a un bloque de sentencias
(subrutina, funcin o procedimiento). Pueden ser asignadas automticamente
en la pila de datoscuando se entra en el bloque de cdigo. Cuando se sale
del bloque, las variables son automticamente desasignadas. 3 Las variables
automticas tendrn un valor sin definir cuando son declaradas, por tanto es
buena prctica de programacin inicializarlas con un valor vlido antes de
usarlas.
Asignacin dinmica de memoria
En ciencia de la computacin, asignacin dinmica de la memoria es la
asignacin de almacenamiento de memoria para utilizacin por parte de un
programa de computador durante el tiempo de ejecucin de ese programa. Es
una manera de distribuir la propiedad de recursos de memoria limitada entre
muchas piezas de cdigo y datos.
Soluciones para los problemas de asignacin
La tarea de satisfacer una peticin de asignacin, la cual conlleva encontrar un
bloque de memoria sin usar de cierto tamao en el heap, es un problema
complicado. Se han propuesto una amplia variedad de soluciones, incluyendo
listas de bloques libres, Paginacin, y Asignacin buddy de memoria.
Asignacin de bloques de tamao fijo
Una solucin es tener una lista enlazada LIFO de bloques de memoria de
tamao fijo. Esto funciona bien para sistemas empotrados simples.
Algoritmo Buddy
Otra solucin es tener un asignador buddy de bloques binarios. En este
sistema, la memoria se asigna desde un gran bloque de memoria que es
tamao potencia de dos. Si el bloque es ms del doble de grande de lo
necesario, se parte en dos. Se selecciona una de las dos mitades, y el proceso

se repite (comprobando el tamao otra vez y partiendo si se necesita) hasta


que el bloque sea justamente el necesitado.

Asignacin de memoria basada en Heap


En la asignacin de memoria basada en heap, la memoria es asignada desde
un gran rea comn de memoria libre (sin usar) llamada heap (tambin
llamada almacn de libres o 'memoria del montn'). "El heap" no tiene nada
que ver con la estructura de datos Heap (o Montculo).
ADMINISTRACION DE LA MEMORIA
La parte del sistema operativo que administra la memoria se llama
administrador de la memoria. Para ello existen diferentes esquemas de
administracin de memoria desde los mas simples hasta los mas elaborados
entre los cuales se ubican:
Administracin de la memoria sin intercambio o paginacin.

Monopogramacin sin intercambio o paginacin.


Es en forma secuencial pues solo se tiene un objeto en memoria en cada
instante, el usuario carga toda la memoria con un programa, esto implica que
cada proceso debe contener controladores de dispositivo para cada uno de los
dispositivos E/S que utilice.
Multiprogramacin y uso de la memoria.
La multiprogramacin facilita la programacin de una aplicacin al dividirla en
dos o mas procesos. La mayora de los procesos tardan cierto tiempo en la
espera de datos de dispositivos E/S.Un modelo para el uso y aprovechamiento
de la CPU es el modelo probabilstico dado por la frmula: Uso de la CPU = 1 pn
Multiprogramacin con particiones fijas
El objetivo en todo esto es tener mas de un proceso en memoria a la vez,
solucin posible sera dividir la memoria en n partes al inicio de una sesin de
uso de la mquina, pero an as se obtiene el desperdicio de particiones
grandes con una tarea pequea, la respuesta puede ser tener particiones
pequeas tambin.
Intercambio
En un sistema por lotes la organizacin de la memoria en particiones fijas es
adecuado pero en un ambiente multiusuario la situacin es distinta con el
tiempo compartido, ya que existen mas usuarios de los que puede albergar la
memoria, por lo que es conveniente albergar el exceso de los procesos en
disco
Multiprogramacin con particiones variables.

Mediante un algoritmo de administracin de memoria las particiones variables


varan de forma dinmica durante el uso de la mquina, evitando desperdicio
de memoria
Otros mtodos de administracin de memoria que tenemos son:

administracin de memoria con mapa de bits


la memoria se divide en unidades de asignacin, a cada asignacin le
corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla
para llevar un registro de las palabras de la memoria en una cantidad fija de
memoria.
la administracin de memoria con listas ligadas
otra forma de mantener un registro en memoria es mediante una lista ligada
donde cada entrada de la lista especfica un hueco o un proceso.
la administracin de memoria con el sistema de los asociados
basado en el sistema binario o utiliza para las direcciones.
Memoria Virtual
El mtodo diseado por Fotheringham en 1961 se conoce como Memoria
Virtual, la idea es que el tamao combinado de la pila, programa y datos
puede exceder la memoria fsica disponible para ello. El S.O. mantiene en
memoria aquellas partes del programa que se deben permanecer en memoria
y el resto lo deja en disco, las partes entre el disco y la memoria se
intercambian de modo que se vayan necesitando.
Paginacin
El espacio de direcciones de cada proceso se divide en bloques de tamao
uniforme llamados pginas, los cuales se pueden colocar dentro de cualquier
para pgina marco disponible en memoria.
Existen distintos niveles de paginacin y a su vez distintos modelos de
computadoras han trabajado con ellas.
Paginacin de nivel 1: PDP-11
Paginacin de 2 niveles: la VAX
Paginacin de 3 niveles: la SPARC
Paginacin de 4 niveles: la 68030
Memoria asociativa
En los algoritmos de paginacin las tablas de pginas se mantienen en la
memoria debido a su gran tamao, en potencia este diseo tiene un efecto
enorme en el rendimiento.
Algoritmos de reemplazo de pginas.
Cuando ocurre un fallo de pgina el sistema operativo debe elegir una pgina
para retirarla de la memoria y hacer un espacio para la pgina por recuperar.
Algoritmo de reemplazo de pginas optimo

Mejor algoritmo posible para reemplazo de pginas pero irrealizable en la


prctica.
Algoritmo de pgina de uso no muy reciente.
En un fallo de pgina , el sistema operativo inspecciona todas las pginas y las
divide en cuatro categoras segn los valores actuales de los bits R y M
Clase 0: No se ha hecho referencia ni ha sido modificada
Clase 1: No se ha hecho referencia pero ha sido modificada
Clase 2: Se ha hecho referencia pero no ha sido modificada
Clase 3: Se ha hecho referencia y ha sido modificada
Algoritmo de reemplazo " primero en entrar, primero en salir FIFO"
El sistema operativo tiene una lista de todas las pginas que se encuentran en
memoria, siendo la primera pgina la mas antigua y la ltima la mas reciente,
en un fallo de pgina, se elimina la primera pgina y se aade la nueva al final
de la lista.
Algoritmo de reemplazo de pginas de la segunda oportunidad
Una modificacin simple del FIFO que evita deshacerse de una pgina de uso
frecuente inspecciona el bit R de la pgina mas antigua, busca una pgina
antigua sin referencias durante el anterior intervalo de tiempo.
Algoritmo de reemplazo de pginas del reloj
Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las
pginas en una lista circular con la forma de un reloj, una manecilla apunta
hacia la mas antigua. Al ocurrir un fallo de pgina se inspecciona la pgina a la
que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la
nueva pgina en su lugar en el reloj y la manecilla avanza una posicin, si R=1
la manecilla avanza una posicin y el bit se limpia, esto continua hasta
encontrar una pgina con R=0.
Segmentacin
La memoria virtual que hemos analizado hasta ahora es unidimensional,
puesto que cada segmento constituye un espacio independiente de
direcciones, los distintos segmentos pueden crecer o reducirse en forma
independiente sin afectar a los dems.
Bit que se activa si se hace referencia a la pgina en cuestin
Bit que se activa si se modifica la pgina

You might also like