You are on page 1of 12

Instituto Tecnolgico de Cerro Azul

MATERIA:
Sistemas operativos

TRABAJOS:
Investigacin de la unidad 3 Administracin de memoria

DOCENTE:
Ing. Luis Raymundo Arn Snchez

EQUIPO 5:
Reyes Picn Emmanuel
Francisco Prez Diana
Cruz Ramrez Gema

ESPECIALIDAD:
Ingeniera en Sistemas Computacionales

CERRO AZUL, VER. 21 DE NOVIEMBRE DEL 2014

UNIDAD 3 ADMINISTRACIN DE MEMORIA


La parte del S. O. que administra la memoria se llama administrador de la memoria:

Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que
no.
Asigna espacio en memoria a los procesos cuando estos la necesitan.
Libera espacio de memoria asignada a procesos que han terminado.
La memoria principal es un recurso costoso, por lo que su uso debe optimizarse.

3.1 POLTICAS Y FILOSOFA


Filosofa:
La memoria principal puede ser considerada como un arreglo lineal de localidades de
almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada
una direccin que la identifica.
Una de las funciones bsicas que debe implementar un SO es la Administracin de la
Memoria para tener un control sobre los lugares donde estn almacenados los procesos y
datos que actualmente se estn utilizando.
Sea cual sea el esquema de organizacin del almacenamiento que se adopte para un sistema
especfico, es necesario decidir qu estrategias se deben utilizar para obtener un
rendimiento ptimo. Las estrategias de administracin del almacenamiento determinan el
comportamiento de la administracin de memoria cuando se siguen ciertas polticas:
Cundo se toma un nuevo programa para colocarlo en memoria?
Se toma el programa cuando el sistema lo solicita especficamente o intenta anticiparse a
las peticiones del sistema?
En qu lugar del almacenamiento principal se coloca el programa por ejecutar?
Se colocan los programas lo ms cerca unos de otros en los espacios disponibles de la
memoria principal para reducir al mnimo el desperdicio de espacio, o se colocan los
programas lo ms rpido posible para reducir al mnimo el tiempo de ejecucin?
Si se necesita colocar un nuevo programa en el almacenamiento principal y ste est lleno,
Cul de los otros programas se desaloja?
Se han realizado sistemas que utilizan cada una de estas estrategias de administracin.

Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o
para poder hacer referencia de ellos. Los que no se necesitan de inmediato pueden
guardarse en el almacenamiento secundario.
Por ejemplo el caso de Unix permite procesos mltiples y un proceso puede generar otro
fcilmente. La planificacin del procesador usa un algoritmo basado en prioridades. La
administracin de memoria es un algoritmo de regiones variables con intercambios.
Inicialmente los algoritmos realizados se eligieron por sencillez, no por velocidad ni
complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeo de memoria.
Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por
lo que UNIX intercambiaba el contenido en memoria de los procesos.
Polticas.
Organizacin de la memoria.- Forma de considerar este almacenamiento:

se coloca un solo programa de usuario o varios?


Si se encuentran varios programas de usuario:
se les concede la misma cantidad de espacio o particiones de diferente tamao?
se usa un esquema rgido de nmero y tamao de particiones o un esquema
dinmico y adaptable?
se requiere que los trabajos funcionen en una particin especfica o en cualquiera
donde quepan? o se requerir o no que cada trabajo sea colocado en un bloque
contiguo de memoria?

Independiente del esquema de organizacin hay que decidir las estrategias que se usarn
para optimizar el rendimiento.
Las estrategias de administracin deben considerar:

Cmo se consigue un nuevo programa para colocar en la memoria: cuando el


sistema lo pide o intenta anticiparse a las peticiones?
Dnde se colocar el programa que se ejecutar a continuacin: se prioriza el
tiempo de carga o la optimizacin en el uso de la memoria?
Con qu criterio se desplazarn programas

3.2 MEMORIA REAL


Cantidad de memoria principal con que cuenta un equipo
Memoria secundaria auxiliar.- la soportada generalmente en discos.

Para que un programa pueda ser ejecutado, l y sus datos deben estar en memoria principal.
Para mejorar el rendimiento del cpu se pueden repartir sus servicios entre varios programas
que necesitan estar cargados simultneamente en memoria compartindola.
La memoria real o principal se considera el recurso central, ya que tanto el cpu como los
dispositivos e/s la acceden para leer o grabar.
Hay 2 parmetros relacionados con la velocidad de r/w en memoria real:
Tiempo de acceso.- Tiempo que transcurre del inicio al fin de una operacin r/w.
Tiempo de ciclo de memoria.- Retraso que impone el hardware entre una operacin y otra.
Direccionamiento
La memoria se puede ver como una sucesin de bytes, cada uno con su direccin y se
puede acceder a ellos indicando dicha direccin.
Asignacin de direcciones
En qu direcciones cargar los datos y programas? El programador disea su programa sin
saber dnde se cargar. Simplemente definir una sentencia de inicio que marcar el
comienzo de sus instrucciones y a partir de ella describir el resto del programa. El
compilador traducir a lenguaje mquina y asignar a las instrucciones y variables un
desplazamiento respecto a la sentencia inicial (cero relativo). Esta operacin se llama
asignacin de direcciones relativas. Cuando el programa se enlaza, el linker lo colocar en
memoria asignando el cero relativo a una direccin real y el resto de direcciones basadas en
los desplazamientos (Transformacin de direcciones relativas a absolutas o reales).
Jerarqua.
Nivel 0: Registros
Nivel 1: Memoria cach
Nivel 2: Memoria principal
Nivel 3: Disco duro (con el mecanismo de memoria virtual)
Registro.- memoria de alta velocidad y poca capacidad, integrada en el cpu, que permite
guardar y acceder a valores muy usados, generalmente en operaciones matemticas.
Estn en la cumbre de la jerarqua de memoria, y son la manera ms rpida que tiene el
sistema de almacenar datos. Se miden generalmente por el nmero de bits que almacenan;
"registro de 8 bits" o "registro de 32 bits". Se implementan en un banco de registros

Los CPUs tienen adems otros registros usados con un propsito especifico, como el
contador de programa. Memoria cach.- tipo especial de memoria que se sita entre el cpu
y la RAM para almacenar datos que se usan frecuentemente. Agiliza la transmisin de
datos entre el CPU y la memoria principal. Es de acceso directo y mucho ms rpida que la
RAM. Memoria principal.- Son circuitos integrados capaces de almacenar informacin
digital, a los que tiene acceso el CPU. Poseen una menor capacidad de almacenamiento que
la memoria secundaria, pero una velocidad millones de veces superior. Hay dos tipos:

ROM (Read Only Memory) "Memoria de solo lectura" que almacenan cdigos de
programa grabados de fbrica. (BIOS)
RAM (Random Access Memory) "Memoria de acceso aleatorio", almacena datos
que pueden ser escritos y borrados atendiendo a los procesos de computacin.
"Aleatorio" indica que sus localidades pueden ser accedidas directamente, dando
rapidez a los procesos. El CPU direcciona las posiciones de la RAM para poder
acceder a los datos almacenados en ellas y para colocar los resultados de las
operaciones. Memoria secundaria.- dispositivo encargado de almacenar informacin
de forma permanente.
Memoria secundaria.- dispositivo encargado de almacenar informacin de forma
permanente. Los programas y datos deben estar en memoria principal para poder
ejecutarse o ser referenciados. Los programas y datos que no son necesarios de
inmediato pueden mantenerse en memoria secundaria.

Estrategia de administracin de memoria.


Estn dirigidas a la obtencin del mejor uso posible del recurso de la memoria principal.
Se dividen en las siguientes categoras:
estrategias de bsqueda.- establecen cundo obtener el siguiente fragmento de
programa de datos para su insercin en la memoria principal.
bsqueda por demanda.- el siguiente fragmento de programa o de datos se carga
a memoria principal cuando algn programa en ejecucin lo referencia.
bsqueda anticipada.- puede producir un mejor rendimiento del sistema ya que
no espera a que se efecte la peticin, sino que trata de anticiparse a sta.
estrategias de colocacin.- determinan el lugar de la memoria dnde se colocar
(cargar) un programa nuevo.
estrategias de reposicin.- determinan cul fragmento de programa o datos
liberar para dar lugar a los programas nuevos.
Asignacin contigua vs no contigua.
asignacin contigua.- cada programa ocupa un bloque contiguo de localidades de
memoria.
asignacin no contigua.- un programa se divide en varios bloques o segmentos que
pueden almacenarse en direcciones que no tienen que ser necesariamente adyacentes, por lo
que es ms compleja pero ms eficiente que la asignacin continua.

Asignacin Contigua de Memoria de Un Solo Usuario


El tamao de los programas est limitado por la cantidad de memoria principal, pero
se puede superar este lmite con tcnicas de recubrimientos, con las siguientes
caractersticas: Si una seccin particular del programa ya no es necesaria, se carga
otra seccin desde la memoria secundaria ocupando las reas de memoria liberadas
por la seccin que ya no se necesita.
La administracin manual por programa del recubrimiento es complicada y dificulta
el desarrollo y el mantenimiento.
Proteccin en los sistemas de un solo usuario
El usuario tiene un completo control sobre la totalidad de la memoria principal:
La memoria se divide en porciones que contienen el S. O., el programa del usuario y una
porcin sin usar.
El programa del usuario podra destruir reas del S. O. que podran: bloquear el sistema o
producir salidas errneas.
El S. O. debe estar protegido contra el proceso usuario por medio de un registro de lmites
o registro frontera:
Contiene la direccin de la instruccin ms alta usada por el S. O.
Si se intenta ingresar al S. O. la instruccin es interceptada y el proceso finaliza.
Multiprogramacin de particin fija, particin variable, con intercambio de
almacenamiento.
Multiprogramacin de Particin Fija
Los sistemas de un usuario desperdician gran cantidad de recursos computacionales debido
a que:
Cuando ocurre una peticin de e/s el cpu normalmente no puede continuar el
proceso hasta que concluya la operacin de e/s requerida.
Los perifricos de e/s frenan la ejecucin de los procesos ya que comparativamente
el cpu es ms rpido que los dispositivos de e/s.

3.3 ORGANIZACIN DE LA MEMORIA VIRTUAL


Memoria virtual.- capacidad de direccionar un espacio de memoria mucho mayor que el
disponible en la memoria primaria.
Los mtodos ms comunes de implementacin son mediante: Tcnicas de paginacin.
Tcnicas de segmentacin. Combinacin de ambas.

Las direcciones generadas por los programas en su ejecucin no son necesariamente, las
contenidas en la memoria primaria (real), ya que las direcciones virtuales suelen
seleccionarse dentro de un nmero mucho mayor de direcciones que las disponibles dentro
de la memoria primaria.
Evolucin de las organizaciones de almacenamiento.
Real: Sistemas dedicados a un usuario.
Real: Sistemas de multiprogramacin en memoria real:
Multiprogramacin en particin fija:

Relocalizable (reubicable).
o Multiprogramacin en particin variable.
Virtual: Multiprogramacin en memoria virtual:
o Paginacin pura.
o Segmentacin pura.
o Combinacin paginacin / segmentacin.
Conceptos Bsicos de Memoria Virtual
La clave del concepto de memoria virtual est en la disociacin de:
Las direcciones a las que hace referencia un programa.
Las direcciones disponibles en la memoria real (primaria).
Los principales conceptos son los siguientes:
Direcciones virtuales: las referidas por un proceso en ejecucin.
Direcciones reales: las disponibles dentro de la memoria primaria.
Espacio de direcciones virtuales (v) de un proceso: nmero de direcciones
virtuales que puede referenciar el proceso.
Espacio de direcciones reales (r) de una computadora: nmero de direcciones
reales disponibles en la computadora.
Los procesos hacen referencia a direcciones virtuales pero stas deben ejecutarse
en la memoria real:

Las direcciones virtuales deben ser transformadas dentro de las direcciones reales,
mientras el proceso est en ejecucin.
La traduccin de direcciones deber hacerse rpidamente para no degradar al
sistema.
Existen varios medios para asociar las direcciones virtuales con las reales
Paginacin.
La necesidad de asignar memoria en cantidades contiguas para cada programa es el mayor
inconveniente para un buen aprovechamiento de la misma. La paginacin es una tcnica de
gestin que permite asignar la memoria de forma discontinua. La memoria fsica se divide
en trozos de tamao fijo llamados frames y la lgica en bloques de igual tamao llamados
pginas. El sistema operativo mantiene una tabla de pginas donde relaciona cada pgina
cargada en memoria con el frame que la contenga o sea su direccin inicial en memoria
real.
Cada direccin que genera el CPU ser interceptada y dividida en dos componentes, un
nmero de pgina (p) y un desplazamiento en la pgina (d). Usando p como ndice, el
gestor de memoria recorre la tabla de pginas hasta localizar dicha pgina, y a continuacin
sumar d a la direccin de carga correspondiente obteniendo la direccin real.
El tratamiento anterior exige que se realice por hardware.
Cada programa se divide en pginas, y stas se cargan en frames libres que no tienen que
ser contiguos.
Administracin de la memoria.
La paginacin es una forma de reasignar direcciones dinmicamente. El sistema analiza
cada nuevo trabajo que se disponga a entrar para conocer el nmero de pginas que ocupa y
buscar en su lista de frames libres un nmero igual de ellos. Si existen, cargar en ellos las
pginas del programa y construir la correspondiente tabla de pginas actualizando la lista
de frames libres. Cada trabajo en memoria tendr su propia tabla de pginas apuntadas por
el pcb. As se logra evitar la fragmentacin externa ya que cualquier frame libre es
asignable a un trabajo que lo necesite. Seguir existiendo fragmentacin interna porque
generalmente los trabajos no ocupan el total de la pgina. Esta fragmentacin se reduce si la
pgina tiene un tamao pequeo, pero se necesita una tabla de pginas mayor.
Rendimiento. Memoria Cach. Registros asociativos.
Para agilizar la conversin de direcciones el sistema mantiene en memoria la tabla de
pginas de los trabajos activos y usa un registro especial llamado registro base, para indicar
la direccin de la tabla de pginas del proceso en ejecucin. As cuando se conmute de un
trabajo a otro se restaura la direccin de la tabla de pginas correspondiente.
Para transformar cada direccin lgica (p,d) generada por el cpu en su direccin real, el
sistema accede en primer lugar a la tabla de pgina correspondiente (registro base + p) y

despus a la direccin real (frame + d). As cada direccin provoca dos accesos a memoria
y se duplican los tiempos de ejecucin. Se mejora el uso de la memoria pero los procesos
son ms largos.
Para resolver esto se recurre a memorias pequeas de muy alta velocidad (muy caras)
donde se puedan mantener las entradas a las tablas de pginas ms usadas. Esta memoria
(cach) es similar a la principal pero con menor tiempo de acceso y con eso se reduce el
retraso producido por la paginacin.
En sistemas pequeos, con tablas de pginas de pocas entradas se usa un conjunto de
registros hardware para contener dichas tablas (registros asociativos).
Pginas compartidas.
La paginacin permite que varios procesos compartan pginas en memoria. Esto es bueno
para los sistemas de tiempo compartido. Imaginemos un sistema con 20 usuarios que usan
un editor de textos, en el sistema se cargar una sola vez el programa correspondiente y ste
ser usado por todos ellos aunque los datos sean propios de cada uno. Cada usuario
contendr en su tabla de pginas las entradas correspondientes al editor, apuntando todas
ellas a los mismos frames y a distintos para los datos.
Es comn usar pginas compartidas, su contenido debe permanecer inalterado y tener
cdigo reentrante (durante la ejecucin no se altera ningn valor interno).
Si el contenido de las pginas compartidas no debe modificarse, deben protegerse contra
todo intento de escritura. Se necesita un sistema de proteccin de pginas en memoria que
controle las direcciones a las que se puede acceder y el modo en que se hace dicho acceso.
Para ello se aaden a las entradas de la tabla de pginas una serie de bits de proteccin
(direccin de la pagina), el esquema de proteccin se complementa con otro bit por entrada
de la tabla de pginas llamado bit de validez (modo r o w).

3.4 ADMINISTRACIN DE MEMORIA VIRTUAL


Los sistemas de gestin de la memoria vistos hasta ahora estn sujetos a la exigencia de que
un programa, para ejecutarse, debe de estar cargado en memoria principal en su totalidad.
Sin embargo, no todas las partes del programa se ejecutan a la vez.
El programador disea rutinas que slo se ejecutan en determinadas circunstancias. Por
ejemplo, las rutinas de error. As, no parece necesario que todo el programa est cargado en
memoria para poder ser procesado.
La memoria virtual es una tcnica de gestin que, combinando hardware y software,
permite la ejecucin de programas parcialmente cargados en memoria real.
Esta forma de trabajar aporta ventajas importantes:

Si los programas se pueden ejecutar por partes, la memoria lgica puede ser mayor
que la real disponible.

Puesto que cada programa ocupa menos memoria real, se puede elevar el ndice de
multiprogramacin, y por tanto, la eficiencia del sistema.

Al cargar menos cantidad de cada programa, se necesitan menos operaciones de


entrada/salida para las operaciones de carga e intercambio de los mismos.

Estrategias de administracin.
Las diferentes partes de un programa se van cargando en memoria a medida que se
necesitan, y por ello, esta tcnica debe considerar tres aspectos importantes:
Carga. Las porciones del programa se cargan cuando se necesiten (demanda) o se
cargan por adelantado (anticipacin).
Colocacin. Los sistemas de memoria virtual que utilicen segmentacin deben
decidir, al cargar un nuevo segmento, si lo hacen en el hueco ms adecuado (best
fit) o bien en el primero posible (first fit).
Reemplazo. Lo normal ser que toda la memoria real est ocupada, y cuando se
necesite cargar una nueva parte de un programa habr que reemplazar alguna de las
existentes. Es importante definir la seleccin de la parte a reemplazar.
Tcnicas de reemplazo de pginas.
La tcnica de peticin de pginas permite reducir la memoria ocupada por cada programa
durante su proceso.
Todos los sistemas que usan la tcnica de memoria virtual sobreutilizan en mayor o menor
medida la memoria fsica para obtener un mejor rendimiento. Para ello, deben hacerse algo
ms complejos:
Supongamos que uno de esos programas intenta acceder a una direccin cuya pgina no
est en memoria. El hardware la intercepta y cede el control al sistema operativo que,
despus de comprobar que es una direccin legal, la trata como una falta de pgina.
Buscar un hueco en memoria. En este punto al analizar la lista de frames libres comprueba
que no hay hueco disponible y, como responsable de la gestin de la memoria, debe
resolver la situacin sin afectar al programa.
Una posible solucin es sacar de memoria algn programa cargado y usar los frames que
deja libres, pero esto lleva consigo una sobrecarga importante en la operacin de
intercambio (swap).
La solucin adoptada, generalmente, es sustituir alguna de las pginas cargadas (reemplazar
pginas). Para ello, la rutina del sistema que gestiona la interrupcin de falta de pgina
deber trabajar de la siguiente manera: Encontrar la pgina solicitada en el almacenamiento
secundario. Encontrar un frame libre. Si existe, usarlo. Si no existe, usar un algoritmo de
reemplazamiento para seleccionar la pgina a reemplazar. Salvar la pgina reemplazada en
el almacenamiento secundario, actualizando las tablas afectadas. Llevar la pgina solicitada
al frame libre y actualizar las tablas correspondientes.
Algoritmos de reemplazamiento.

El algoritmo ptimo ser aquel que seleccione la pgina que vaya a tardar ms en ser usada
para sustiturla. Cuando se produce una falta de pgina, la memoria est ocupada por un
grupo de pginas y una de ellas, la que provoc la falta, va a ser usada inmediatamente y,
por tanto, no debe ser sustituida. De las otras, algunas se necesitarn al cabo de unas pocas
instrucciones, otras al cabo de algunas ms. Es evidente que la mejor solucin es
reemplazar la que tarde ms instrucciones en ser necesitada, ya que su ausencia tardar ms
en hacerse sentir y durante ese intervalo pueden acabar otros procesos con la consiguiente
liberacin de frames.
La dificultad de esta solucin radica en la imposibilidad de prever el comportamiento
futuro de los procesos, pero como en otras muchas situaciones de la vida cotidiana, se
puede prever, en cierta medida dicho comportamiento, partiendo de la experiencia del
pasado (heurstica), de las referencias a memoria que hasta el momento han realizado los
procesos.
Los algoritmos que se han ideado para controlar el reemplazamiento parten del uso pasado
de las pginas para aproximarse a la solucin ptima. Su idoneidad quedar definida por
dos factores: nmero de faltas de pgina que provoca y el costo de su uso (la sobrecarga
que produce en el sistema).
Un factor que condiciona el nmero de faltas de pgina es el nmero de frames disponibles
en el hardware. En general, a ms frames menos faltas.

BIBLIOGRAFA
Administracin de memoria [online], extrado el 20 de noviembre del 2014 de:
http://www.ac.itdurango.mx/acreditacion/4Proceso_E_A/LI/Evidencias/4.5%20M%E9todo
s%20de%20Ense%F1anza/APUNTES%20DEL%20MAESTRO/Sistemas%20Operativos/
ApuntesU3_SistemasOperativosISC.pdf
Administracin de memorias [online], extrado el 20 de noviembre del 2014 de:
http://administraciondeprocesos2.blogspot.mx/2011/10/unidad-3-administracion-dememorias.html
Segmentacin de memoria [online], extrado el 20 de noviembre de:
http://sistemasoperativosinacap.blogspot.mx/2010/11/fragmentacion-interna-y-externay.html
Gestin de memoria [online], extrado el 20 de noviembre de:
http://sobitacora.blogspot.mx/2011/10/3.html

You might also like