Anda di halaman 1dari 11

ES14210089

16

MARIO EZEQUIEL
GARCIA HUERTA
Actividad 2 / Unidad 1 / Administracin y jerarqua
de la memoria

Tcnica de
administracin
de memoria

Ventajas

Inconvenientes

Paginacin

1. Es posible comenzar a ejecutar un


programa, cargando solo una parte del mismo
en memoria, y el resto se cargara bajo la
solicitud.
2. No es necesario que las paginas estn
contiguas en memoria, por lo que no se
necesitan procesos de compactacin cuando
existen marcos de pginas libres dispersos en
la memoria.
3. Es fcil controlar todas las pginas, ya que
tienen el mismo tamao.
4. El mecanismo de traduccin de direcciones
(DAT) permite separar los conceptos de
espacio de direcciones y espacios de
memoria.
5. Se libera al programador de la restriccin de
programar para un tamao fsico de memoria,
con lo que s e aumenta su productividad.
6. Al no necesitarse cargar un programa
completo en memoria para su ejecucin, se
puede aumentar el nmero de programas
multiprogramndose.
7. Se elimina el problema de fragmentacin
externa.

Segmentacin

Es posible compilar mdulos separados

1. El costo de hardware y software se


incrementa, por la nueva informacin que
debe manejarse y el mecanismo de
traduccin de direcciones necesario. Se
consume mucho ms recursos de
memoria, tiempo en el CPU para su
implantacin.
2. Se deben reservar reas de memoria
para las PMT de los procesos. Al no ser
fija el tamao de estas, se crea un
problema semejante al de los programas
3. Aparece el problema de fragmentacin
interna. As, si se requieren 5K para un
programa, pero las paginas son de 4K,
debern asignrseles 2 pginas (8k), con
lo que quedan 3K sin utilizar. La suma de
los espacios libres dejados de esta forma
puede ser mayor que el de varias pginas,
pero no podr ser utilizado. Debe
asignarse un tamao promedio a las
pginas, evitando que si son muy
pequeas, se necesiten TABLAS BMT y
PMT muy grandes, y si son muy grandes,
se incremente el grado de fragmentacin
interna.
Hay un incremento en los costos de
hardware y de software para llevar a cabo
la implantacin, as como un mayor
consumo de recursos: memoria, tiempo
de CPU, etc.
Debido a que los segmentos tienen un
tamao variable se pueden presentar
problemas de fragmentacin externas, lo
que puede ameritar un plan de
reubicacin de segmentos en memoria
principal.
Se complica el manejo de memoria
virtual, ya que los discos almacenan la
informacin en bloques de tamaos fijos,
mientras los segmentos son de tamao
variable. Esto hace necesaria la existencia
de mecanismos ms costosos que los
existentes para paginacin.
Al permitir que los segmentos varen de
tamao, puede ser necesarios planes de
reubicacin a nivel de los discos, si los

como segmentos el enlace entre los


segmentos puede suponer hasta tanto se
haga una referencia entre segmentos.
Debido a que es posible separar los mdulos
se hace ms fcil la modificacin de los
mismos. Cambios dentro de un mdulo no
afecta al resto de los mdulos.
Es fcil el compartir segmentos.
Es posible que los segmentos crezcan
dinmicamente segn las necesidades del
programa en ejecucin.
Existe la posibilidad de definir segmentos
que an no existan. As, no se asignara
memoria, sino a partir del momento que sea
necesario hacer usos del segmento. Un
ejemplo de esto, seran los arreglos cuya
dimensin no se conoce hasta tanto no se
comienza a ejecutar el programa.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

segmentos son devueltos a dicho


dispositivo; lo que conlleva a nuevos
costos.

Memoria Virtual

Fragmentacin

Permite optimizar uso de memoria


Mantiene ms procesos en memoria
principal
Permite que un proceso sea ms
grande que toda la memoria principal
Permite multiprogramacin muy
efectiva
Se encarga el Sistema
Operativo donde se evita al usuario la
preocupacin por programar con
superposicin

Bsicamente la fragmentacin es la memoria


desperdiciada, tanto dentro de la memoria
principal como de la secundaria
Esta memoria desperdiciada se produce
cuando ciertos sectores no pueden ser
asignados a ningn proceso o dato y quedan
vacos e inaccesibles. Esto se debe a que
durante los distintos swapeos de procesos y
datos, ciertas partes de la memoria se van
particionado, por lo que ciertos espacios
terminan siendo o muy grandes o muy chicos
para los procesos que se quieren o que son
asignados, generando estos espacios de
memoria libre no utilizada.

No se puede garantizar, que al salir un


segmento de la memoria, este pueda ser
trado fcilmente de nuevo, ya que ser
necesario encontrar nuevamente un rea
de memoria libre ajustada a su tamao.
La comparticin de segmentos permite
ahorrar memoria, pero requiere de
mecanismos adicionales da hardware y
software.
Fallos de direccionamiento:
Se genera interrupcin, indica
fallo de acceso a memoria
Proceso pasa a bloqueado, SO a
ejecucin
SO emite solicitud de E/S al
disco
SO expide otro proceso para que
se ejecute
Tras traer fragmento a memoria,
interrupcin de E/S, control al
SO, que pasa el proceso a listo.
Posible hiperpaginacin
(thrasing):
SO ms tiempo intercambiando
fragmentos que
ejecutando (ejemplo: si saca de
memoria un fragmento que se
iba a usar ya)
No puede corregirse al momento en que
se produce (ya que la memoria asignada
a un proceso no puede partirse y liberarse
sin matar o bloquear el proceso), pero, si
puede evitarse haciendo una buena
planificacin de la administracin de
memoria y usando las mejores tcticas
para cada situacin (particionado o
segmentando de forma similar procesos,
datos y memoria, etc.).

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Jerarqua de memorias
Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria
en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de
una memoria de gran velocidad al coste de una memoria de baja velocidad,
basndose en el principio de cercana de referencias.
La unidad de memoria de un computador se puede ver como una jerarqua de
componentes. Desde el punto de vista del diseador, esta jerarqua impone una
serie de ligaduras que se pueden resumir en los tres parmetros siguientes
Capacidad de la memoria
Velocidad
Coste

La capacidad que se requiere en una memoria es siempre un tema abierto que


depende de las necesidades de cada usuario y de las aplicaciones que utiliza. Si
la capacidad se aumenta es seguro que finalmente se desarrollarn aplicaciones
que la utilizan.
La cuestin de la velocidad es ms fcil de comprender. Para conseguir un
rendimiento ptimo del computador la memoria debe ser capaz de seguir el ritmo
impuesto por la CPU. Es decir, si la CPU est ejecutando un programa no debera
esperar por las instrucciones y los operandos, cuando stos se le transfieran
desde la memoria.
En un computador el coste de la memoria suele estar en consonancia con el de
las otras unidades del sistema. Cada elemento de almacenamiento diferente tiene
un coste asociado. Esta caracterstica puede venir dada en trminos absolutos
referida al coste del dispositivo de almacenamiento en s, o en trminos relativos
referida al coste por unidad de informacin. Por ejemplo, el coste de una unidad
de disco de gran capacidad puede ser superior al de un circuito integrado de
memoria, sin embargo, el coste por bit de informacin almacenado es siempre
menor en el caso del disco.
Los tres parmetros antes mencionados estn ntimamente ligados. Existe un
compromiso entre coste, capacidad y tiempo de acceso. As, una mayor velocidad
suele ir acompaada de un mayor coste y de una menor capacidad, mientras que

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

por el contrario, una gran capacidad implica un menor coste por unidad de
informacin y una velocidad moderada. La Tabla 2.4 resume estas caractersticas.

Menor tiempo de acceso =>


Mayor coste
por bit
Mayor capacidad =>
Menor coste por bit
Mayor capacidad =>
Mayor tiempo de
acceso
Teniendo en cuenta las consideraciones anteriores, resulta obvio el dilema que se
le presenta al diseador. Su objetivo ser utilizar aquellas tecnologas de memoria
que proporcionan una mayor capacidad, ya que ello implica que se tiene tanto la
capacidad que se necesita como un coste bajo por unidad de informacin. No
obstante, para poder cumplir los requisitos impuestos por el diseo se ve obligado
a utilizar memorias rpidas (con tiempos de acceso pequeos), de baja capacidad
y de alto coste. La solucin a este conflicto aparente est en emplear una
jerarqua de memorias en lugar de utilizar una nica tecnologa o componente de
memoria. La Figura muestra una jerarqua tpica de memorias.

Figura: Jerarqua de memorias


Cuando se va hacia los niveles inferiores de la jerarqua ocurre que:
a) El coste por unidad de informacin (bit) disminuye.
b) La capacidad aumenta.
c) El tiempo de acceso aumenta.
d) La frecuencia de acceso a la memoria por parte de la CPU disminuye.
Como consecuencia de esto se deduce que las memorias rpidas, de baja
capacidad y de alto coste, se complementan con las memorias lentas, de gran
capacidad y de bajo coste. La clave del xito de esta organizacin jerrquica est
en la caracterstica d). Esta idea se ver posteriormente, con ms detalle, cuando

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

se estudie el concepto de "memorias cachs". Una explicacin intuitiva de por qu


ocurre as es la siguiente:
Si se organiza la memoria de acuerdo con las caractersticas anteriores a), b) y c)
y si tanto los datos como las instrucciones se pueden distribuir a travs de esta
memoria de acuerdo con la caracterstica d), es decir, situando en los niveles
superiores de la jerarqua los que se necesitan ms frecuentemente, y en los
niveles inferiores los menos utilizados, resulta evidente que este esquema reducir
el coste total, manteniendo al mismo tiempo un nivel dado de prestaciones. El
objetivo final de un sistema de jerarqua de memorias se puede resumir en las dos
caractersticas siguientes:
1) Ofrecer al usuario tanta capacidad de memoria como sea posible al menor
coste.
2) Con una velocidad de acceso cercana a la ms rpida necesaria.
Los puntos bsicos relacionados con la memoria pueden resumirse en:
Cantidad y Velocidad
La Cantidad: cuanta ms memoria haya disponible, ms podr utilizarse.
La Velocidad: Es la que el procesador puede trabajar, de modo que no haya
tiempos de espera entre clculo y clculo, utilizados para traer operandos o
guardar resultados.
En suma, el costo de la memoria no debe ser excesivo, para que sea factible
construir un equipo accesible.
Como puede esperarse los tres factores compiten entre s, por lo que hay que
encontrar un equilibrio. Las siguientes afirmaciones son vlidas:
A menor tiempo de acceso mayor coste
A mayor capacidad mayor coste
A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una
velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que
no sea excesivo. Gracias a un principio llamado cercana de referencias, es
factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al
de la memoria ms rpida.
Los niveles que componen la jerarqua de memoria habitualmente son:
Nivel 0: Registros
Nivel 1: Memoria cach
Nivel 2: Memoria principal
Nivel 3: Disco duro (con el mecanismo de memoria virtual)
Nivel 4: Redes(Actualmente se considera un nivel ms de la jerarqua de
memorias)

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Componentes de la Jerarqua de Memoria:


Registros de procesador: Estos registros interaccionan continuamente con la CPU
(porque forman parte de ella). Los registros tienen un tiempo de acceso muy
pequeo y una capacidad mnima, normalmente igual a la palabra del procesador
(1 a 8 bytes).
Registros intermedios: Constituyen un paso intermedio entre el procesador y la
memoria, tienen un tiempo de acceso muy breve y muy poca capacidad.
Memorias cach: Son memorias de pequea capacidad. Normalmente una
pequea fraccin de la memoria principal. y pequeo tiempo de acceso. Este nivel
de memoria se coloca entre la CPU y la memoria central. Hace algunos aos este
nivel era exclusivo de los ordenadores grandes pero actualmente todos los
ordenadores lo incorporan. Dentro de la memoria cach puede haber, a su vez,
dos niveles denominados cach on chip, memoria cach dentro del circuito
integrado, y cach on board, memoria cach en la placa de circuito impreso pero
fuera del circuito integrado, evidentemente, por razones fsicas, la primera es
mucho ms rpida que la segunda. Existe tambin una tcnica, denominada
Arquitectura Harvard, en cierto modo contrapuesta a la idea de Von Newmann,
que utiliza memorias cach separadas para cdigo y datos. Esto tiene algunas
ventajas como se ver en este captulo.
Memoria central o principal: En este nivel residen los programas y los datos. La
CPU lee y escribe datos en l aunque con menos frecuencia que en los niveles
anteriores. Tiene un tiempo de acceso relativamente rpido y gran capacidad.
Extensiones de memoria central: Son memorias de la misma naturaleza que la
memoria central que amplan su capacidad de forma modular. El tiempo de similar,
a lo sumo un poco mayor, al de la memoria central y su capacidad puede ser
algunas veces mayor.
Memorias de masas o auxiliares: Son memorias que residen en dispositivos
externos al ordenador, en ellas se archivan programas y datos para su uso
posterior. Tambin se usan estas memorias para apoyo de la memoria central en
caso de que sta sea insuficiente (memoria virtual). Estas memorias suelen tener
gran capacidad pero pueden llegar a tener un tiempo de acceso muy lento. Dentro
de ellas tambin se pueden establecer varios niveles de jerarqua.
Gestin de Memoria:
Los lenguajes de programacin actuales generalmente asumen la existencia de
nicamente dos niveles de memoria, memoria principal y almacenamiento
secundario (normalmente en disco). Aunque en lenguaje ensamblador,
ensamblador en lnea y lenguajes como C y C++ podemos direccionar datos
directamente a los registros del procesador.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Para aprovechar de forma ptima las ventajas de la jerarqua de memoria es


necesario cooperacin entre programadores, compiladores y fabricantes de
hardware:
Programadores: deben ser responsables del movimiento entre memoria principal y
disco mediante el uso de ficheros.
Hardware: el movimiento de datos entre la memoria principal y los niveles de
cach es realizado por algoritmos hardware.
Compiladores: son responsables de optimizar el cdigo de modo que el uso de los
registros y la cach sea eficiente.
Tcnicas de gestin de memoria
Memoria Virtual
Es una tcnica que permite utilizar el disco como si fuera memoria RAM. Cuando
un programa es ms grande que el tamao fsico de la RAM, lo que se hace es
pasar a disco las porciones de RAM que no se estn utilizando en un momento
determinado, dejando solo en memoria las partes del programa que se estn
ejecutando. Los programas no se dan cuenta de todo lo que esta ocurriendo por
debajo, sin embargo como la velocidad de acceso a disco es miles de veces mas
lenta que la de la RAM, a la hora de devolver porciones del programa a memoria
desde el disco, el sistema puede comportarse de manera ms lenta (sobre todo
cuando se cargan muchos procesos de forma simultnea).
En Windows por ejemplo cuando queda poca RAM, el gestor de memoria virtual
mueve datos de la RAM a un espacio en disco llamado archivo de paginacin.
Linux, sin embargo emplea una particin especfica para el intercambio entre RAM
y disco denominada particin de intercambio (swap)
Paginacin
Tcnica que consiste en dividir la memoria en zonas iguales llamadas marcos de
pgina. A su vez los los procesos (un proceso es un programa en ejecucin)
tambin se dividen en partes del mismo tamao, denominadas pginas. El SO se
encarga de asignar los marcos de pgina necesarios a cada proceso y mantiene
una estructura llamada tabla de pginas que indica en que marco est cada
pgina y tambin una lista de marcos libres.
La asignacin de los marcos de pgina a las pginas no tiene que ser consecutiva
y un proceso puede estar ubicado en marcos no contiguos.
Uno de los principales inconvenientes de esta tcnica es la Fragmentacin Interna.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Nota: El tamao de los marcos de pgina se disea mediante hardware


Segmentacin
A diferencia de la paginacin, en la segmentacin la memoria se divide en zonas
de tamao variable denominadas segmentos. El SO mantiene una tabla de
segmentos para cada proceso indicando la direccin de carga y la longitud de
cada segmento. La asignacin de segmentos tampoco tiene que ser contigua.
Uno de los principales inconvenientes de esta tcnica es la Fragmentacin
Externa.
Memoria Virtual paginada o segmentada
Tanto en la paginacin como en la segmentacin todas las paginas o segmentos
de un proceso deben estar en memoria principal para que este se ejecute. Sin
embargo esta tcnica permite que se ejecuten procesos sin necesidad de que
todas sus pginas o todos sus segmentos estn en memoria principal. Las
paginas o segmentos se leern cuando se necesiten. La carga de una pagina o
segmento en memoria principal puede requerir descargar otras paginas o
segmentos de memoria al disco.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Fragmentacin
La fragmentacin de la memoria es la memoria que queda desperdiciada al usar
los mtodos de gestin de memoria. La hay de dos tipos: Externa e Interna
1- Fragmentacin Externa
Existe espacio total de memoria para satisfacer un requerimiento, pero no es
contigua. La fragmentacin externa se puede reducir mediante la compactacin
para colocar toda la memoria libre en un solo gran bloque, pero solo es posible si
la relocalizacin es dinmica y en tiempo de ejecucin.

2- Fragmentacin Interna
El hecho de asignar memoria en bloques de tamao fijo y predefinido se traduce
en que la memoria asignada puede ser ligeramente mayor que la que realmente
se necesita, en cuyo caso se desperdicia cierta cantidad. Se podra evitar
permitiendo la asignacin exacta de memoria que necesite cada proceso de forma
dinmica.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.

Observacin
Una estrategia comn para reducir el impacto de la fragmentacin es separar las
zonas del sistema de archivos que experimenten muchas mas lecturas y escrituras
de otras zonas ms voltiles donde se crean y borran continuamente archivos. Por
ejemplo el SO se compone de carpetas estticas que se modifican con mucha
menor frecuencia que los Perfiles de los usuarios donde se suele estar creando y
destruyendo informacin continuamente. Al separar ambas zonas en particiones
independientes logramos que el desfragmentador trabaje de forma mucho ms
eficiente.

Universidad Abierta y a Distancia de Mxico


Centro de Acceso y Apoyo Universitario Unidad Central
Puebla # 143, Piso E3, Col. Roma Norte, C.P. 06700, Delegacin Cuauhtmoc, Mxico D.F.