Está en la página 1de 8

Correo Chat Videos

Haz starMedia tu pgina de inicio


Runas Luces Fontanera
top bsquedas
nicio Documentos Tests Aulas Chuletas Amor Foros Postales Enva tus apuntes Correo Ayuda Blog
ir a starMedia
Entretenimiento
Avances, noticias y todo lo que
quieres saber del cine!!!
Noticias insIitas
Descubre las cosas curiosas
que suceden en el mundo!!!
publicidad
Administracin de Nemoria
Sistemas operativos. Paginacin de memoria. Fragmentacin. Segmentacin
Ingeniero en Informtica / Sistemas Operativos
Administracin de Nemoria
Ficha resumen del documento
Administracin de Nemoria
Versin PDF
Administracin de Nemoria
Versin para descargar
TEMA 7 ADMINISTRACIN DE LA MEMORIA
JERARQUA DE ALMACENAMIENTO
Cuando el diseador se plantea lo que es la gestin de memoria del sistema debe tener en cuenta que la memoria es unos de los recursos
crticos del sistema, es crtica porque un programa al ejecutarse debe estar cargado en M. entonces cuanta ms memoria tengamos o mejora
la optimicemos ms programas podremos guardar en ella.
Qu quiere un diseador?Que sea barata, gran capacidad y muy rpida.
Pero no se pueden conseguir las tres cosas.
A mayor capacidad el tiempo de acceso es mucho mayor, es ms lenta.
Se observa que ha mayor capacidad menor coste por bit, comparamos Mdulo de memoria y disco duro, no cuesta lo mismo un disco duro de
8 gigas que 8 gigas de memoria Ram.
A menor tiempo de acceso, si queremos memoria ms rpida, el coste se nos dispara.
Los diseadores del sistema no pueden tener un solo tipo de memoria donde alojar todoas las memorias, existe una jerarqua de memoria.
Esa jerarqua intenta solucionar esos inconvenientes a la hora de disear el esquema de memoria.
Registros Jerarqua tradicional de memoria
usuario
Autos Cine CIima Deportes Economa Entretenimiento Estudiantes Humor Juegos Mujer Noticias Vdeos
Carrera Adm. de Empresas
Estudi Adm. de Empresas en Udesa Pens en tu futuro. Consultanos!
www.Udesa.edu.ar/Administracion
Cach
Memoria principal
Disco Magntico
Cinta Magntica
Registros
Cach
Voltil Memoria principal nterna
Cach de disco
No volatil Disco Magntico Externa
Cinta Magntica
Cinta mgntica Disco ptico Jerarqua moderna de memoria
En esa jerarqua podemos ver que se cumplen una seria de condiciones:
Al bajar de nivel aumenta la capacidad de la memoria.
Al bajar de nivel disminuye el coste por bit.
El registro es el ms caro, luego la cache...
Al bajar de nivel se observa que el tiempo de acceso aumenta. Acceder a un disco ptico es ms lento que a un disco magntico.
Si seguimos bajando de nivel, disminuye la frecuencia de acceso:no es lo mismo que el tiempo que es el tiempo que trae el dato, es el
n de veces que accede a esa memoria.
Esta es la clave del funcionamiento de la jerarqua de memoria, esa disminucin de frecuencia se debe sobre todo a lo que se llama como
principio de localidad o cercana de referencia.
Sin embargo ese conjunto va cambiando a lo largo del tiempo.
Ese principio lo que establece es que un proceso durante su funcionamiento hacer referencia a muchas funciones, pero durante un breve
espacio de tiempo el proceso hace referencia a un pequeo grupo de referencias.
La cach va a intentar que el tiempo de acceso sea mucho ms rapido para no tener que acceder a disco o Mp, distinguimos entre M.interna y
M.externa, normalmente lo que es el disco magntico se le suele conocer como M.secundaria.
Vamos a ver los pasos que hay que realizar para la carga de un programa en M.p:
Programa
fuente
Compilador
otros o ensamblador
mdulos biblioteca
objeto Mdulo del
objeto sistema
Enlazador
biblioteca Mdulo
del sistema de carga
cargada
dinmicamente
Cargador
magen del proceso
en memoria
Tenemos un programa fuente, cuando lo compilamos obtenemos un mdulo objeto que luego necesita ser enlazado con el resto del los
mdulos objetos que tenga el sistema, para formar un mdulo de carga que es el que finalmente se introduce en memoria, una vez cargado de
memoria es cuando verdaderamente podemos decir que es un proceso, entonces tenemos toda la imagen del proceso.
Una vez cargado en memoria se puede enlazar con bibliotecas del sistema de forma dinmica.
Esas son las fases por las que pasa el programa para convertirse en proceso.
El proceso est definido por la imagen que si recordamos tena:
El Bloque de control de procesos
Datos relativas
nstrucciones Referencias a datos fisicas
Referencias a intrucciones: lgicas o simblicas:
La Pilas
Si se observa, consta de datos e intrucciones que tienen referencias a memoria, referencias a datos y referencias a sus propias instrucciones.
Esas referencias, o direcciones, en realidad pueden ser de tres tipos:
Lgicas, relativas o absolutas.
Direcciones
simblicas
Direcciones
relativas
Direcciones
absolutas
i
j
PROGRAM
JUMP
LOAD J
DATA
0
400
1200
PROGRAM
JUMp 400
LOAD 1200
DATA
1024
1424
2224
PROGRAM
JUMP 1424
LOAD 2224
DATA
Dir simblicas: no tienen nada que ver con la posterior ubicacin fsica de ese dato, son normalmente las direcciones que emplea el
programador.
Dir relativa: vienen expresadas respecto a un conjunto determinado, normalmente al principio del programa.
Estas direciones normalmente son las que utiliza el cargador y el enlazador.
JUMP 400: desde el principio saltar 400.
Dir. absolutas o fsicas: son las que realmente ocupan de memoria real, de memoria fsica.
Son las que realmente se usan en ejecucin, el programa solo entiende de direciones fsicas, para ellos necesitamos hacer una traduccin de
las simblicas y relativas a las fsicas.
Esa traduccin de direcciones, tambin conocida como ligadura de direcciones se puede hacer en distintos instantes, en cualquiera de las
fases que hemos vistos, por las que pasa el programa a proceso.
Tiempo de compilacin
Tiempo de carga
Tiempo de ejecucin.
Traduccin en tiempo de compiIacin
En tiempo de compilacin o enlazado, observar que lo que tenemos que hacer es generar ya un mdulo de carga con direcciones fsicas, eso
implica que el programador, el cargador o el enlazador tenga que tener conocimiento de la gestin de memoria, qu partes estn libres y qu
partes estn ocupadas.
Por otro lado, el modo de carga que se genera, solamente se puede ejecutar en la zona que se haya especificado, no puede cambiar de lugar,
si vara de zona tiene que volver a compilarlo de nuevo.
Si un proceso sale de memoria y luego entra de nuevo debe ser en la misma zona de memoria.
Para solventar esos problemas la otra manera es que se realice en tiempo de carga.
Traduccin en tiempo de carga
En tiempo de carga por un lado elimina que el programador conozca como se est gestionando la memoria.
En este caso la gestin de memoria la va a realizar el cargador que decide donde va a ubicar el proceso, pero estamos en lo mismo de antes.
Puede que yo introduzca el programa en memoria fsica, y ya tenga las direcciones fsicas, por lo que no puedo cambiarlo de sitio.
Si un proceso se suspende, cuando se vuelve a activar se situa en la misma zona de memoria.
Traduccin en tiempo de ejecucin
En el ltimo momento.
Cuando yo vaya a ejecutar la instruccin es cuando se va a traducir la direccin.
Este esquema es un mtodo muy flexible, porque el proceso puede estar ubicado en cualquier parte, ya que es justo cuando voy a ejecutarlo es
cuando lo traduzco.
Esa traduccin necesita la ayuda del hardware, y tampoo es un hardware muy complejo, el criterio conceda el hardware necesario para realizar
esa traduccin en tiempo de ejecucin.
direccin base lmite
direccin direccin
relativa absoluta si
CPU + <= Memoria
no
error de direccionamiento
El programa que est hubicado en memoria slo tiene direcciones relativas, entonces las CPU va generando todas la direcciones relativas, y
nosotros le sumamos el contenido de un registro hardware que contiene el inicio donde est ubicado el proceso, entonces obtenemos la
direccin absoluta, posteriormente podemos comparar esa dir absoluta con otro registro hardware que lo que contiene es el lmite de la zona
de memoria ocupada por el proceso, si est dentro del lmite podremos acceder a memoira, si est fuera del lmite provocaremos un error de
direccionamiento.
Observar que con dos registros hardware y una suma y comparacin podemos realizar la traduccin
Proporciona un mecanismo de proteccin de la memoria porque si se pasa del lmite que tiene cada proceso daramos un error de
direccionamiento.
Con este esquema el proceso lo puedo poner en cualquier parte de la memoria, porque la traduccin la hago justo cuando lo voy a ejecutar.
Cada vez que cambiemos de proceso o de contesto, esos registros lmite y base deben actualizarse, y deben almacenarse en el BCP para que
cada vez que cambiemos de proceso tengamos un valor vlido.
FUNCIONES DEL ADMINISTRADOR DE MEMORIA
Debe conocer:
Qu zonas de la memoria estn libres y qu zonas ocupadas.
ntroducir los procesos en memoria.
Se encarga de asignar y desasignar memoria a los procesos conforme vayan necesitando y liberando.
Debe controlar el intercambio entre Mp y Ms.
Adems de esas funciones, el administrador de memoria debe cumplir 3 requisitos:
Proteccin:
No solo debe proteger la zona de memoria del proceso, sino de la memoria del sistema operativo u otro proceso.
Comparticin de memoria:
cuando se ejecutan dos procesos iguales, debe permitir que dos procesos compartan la memoria.
Reubicacion:
Un proceso puede cambiar de zona de memoria durante su ejecucin.
Este requisito tiene sentido evidentemente es sistema multiprogramado.
En un sistema monoprogramado no tiene sentido porque si solo hay un proceso, para qu lo voy a cambiar de sitio.
Distintos esquemas de asignacin de memoria
Esquemas de gestin de memoria
Asignacin compIeta y contigua: eI proceso se ejectua en una zona continua
Mquina desnuda
Monoprogramacin
Particiones mtiples:
Particiones fijas
Sistema compaero
Particiones variables.
Asignacin completa y no contigua:
Paginacin
Segmentacin
Segmentacin-paginacin
Asignacin parical y no contigua:
Memoria Virtual
Asignacin compIeta y contigua:
EI proceso se ejectua en una zona continua
Mquina desnuda:Es un sistema donde no hay S.O y no hay gestor de Memoria, quien IIeva Ia cuenta es eI propio programador.
Suelen ser pequeos microprocesadores, seales de humo, dedicados a una sola cosa.
Monoprogramacin: La Memoria. dividida en dos partes:
Una parte en eI S.O. en un exremos de Ia memoria, zona aIta o baja, y eI resto se deja para procesos de usuarios, ejMSDOS.
La eleccin de donde se debe encontrar el S.O. vendr dada por donde se encuentra el vector de interrupciones, lo normal es situarlo junto al
vector de interrupciones, parte alta o baja, algunos sitemas prefieren separarlo.
Es un sistema simple que requiere de una proteccin del S.O, que el proceso de usuario no pueda acceder al S.O. Para ello necesita un
registro hardware, ya sea un nico registro o dos registros.
qu le pasa al MS-DOS? no hay registro lmite y cualquier proceso puede cargarse el S.O facilmente, observar que la proeccion tampoco es
muy complicada, las direcciones que se generan se recuperan con el registro lmite.
Ej. BM1120 y Spectrum : zona baja y 2115B: zona alta
Particiones mtiples:
Particiones fijas
Sistema compaero
Particiones variables.
Sistema
Operativo
+
Usuario
Sistema
Operativo
Registro
Registro
lmite
Vector de
interrupciones
Lmite
Superior
Usuario Lmite Lmite
inferior Usuario
Libre
Sistema
Operativo
+
Vector de
interrupciones
Libre
Libre
Vector de
nterrupciones
Zona baja Zona Alta Sin vector de interrupciones
MULTIPROGRAMACIN CON PARTICIONES FIJAS
Es la estrategia ms simple, consiste en dividir la memoria en una serie de particiones, en cada una de esas particiones se aloja un proceso.
El n y tamao de esas particiones se caracteriza porque es un nmero fijo que se establece en la fase de generacin del sistema.
SeIeccin deI tamao de Ia particin
El diseador del sistema antes de implementar el sistema debe establecer los valores.
Hay que tener en cuenta:
el n de particiones va a determinar el grado de multiprogramacin del sistema, ya que si en cada particion hay un proceso y hay 3
particiones solo podr tener 3 procesos simultaneamen-te, si quiero un grado de multiprogramacin elevado necesitar muchas
particiones.
el tamao determina dos aspectos:
el tamao mximo de un proceso, para que se pueda ejecutar un proceso necesito asignarlo a una particin, por lo tanto el
tamao mximo de un proceso es el tamao mximo de la particin.
el tamao tb va a afectar a la cantidad de memoria que asigne a un proceso, es decir, una vez que establezca las particiones
cuando tengo el proceso le asigno un proceso, y ese proceso puede o no ocuparla entera, si no ocupa toda la particin, hay un
desperdicio de memoria que se conoce como fragmentacin interna.
Tenemos 2 alternativas:
Todas las particiones del mismo tamao: Es una estrategia ms simple, pero es poco flexible,
Particiones de distinto tamao
ALGORITMOS DE COLOCACIN
Yo tengo una serie de procesos, dnde ubico cada proceso?
Estos algoritmos dependen de la particion que hayamos elegido.
Particiones iguales: es trivial el algoritmo, se mete en cualquier particin de forma automtica.
Particiones distintas: hay varias alternativas.
Una cola de procesos por particin: llega el proceso y lo sito en la cola donde menor fragmentacin interna genere. Cuando la particin queda
libre seleciono el primero de la cola
nconveniente: puede haber particiones libres con procesos esperando en otra cola porque su particin est ocupada
Sistema
Operativo
Procesos
Nuevos
Otra alternativa es tener una nica cola de procesos:
Sistema Operativo
Procesos nuevos
Llega un proceso y lo situo en la cola, cuando una particin queda libre tendr que seleccinar que proceso de la cola va en esa particin, es
digamos la seleccin de un proceso.
Para seleccionar ese proceso hay diversos algoritmos, los que ms se suelen emplear son:
Mejor ajuste: Cuando una particin queda libre, elegimos el proceso que menor fragmenta-cin interna produzca.
Primer ajuste: Vamos recorriendo la cola hasta encontrar el primer proceso que quepa en la particin.
Si se observa, toda esta funcin de colocar procesos en memoria, en una particin determinar es en hacer que un proceso sea aceptado en el
sistema, que pase de ese estado de nuevo a un estado de listo, esa transicin de nuevo a listo es del planificador a largo plazo.
Todos estos algoritmos es el planificador a largo plazo.
Proteccin entre particiones: debo evitar que un proceso acceda a zonas de memoria fuera de su particin:
Hay dos alternativas:
dos registros lmites, zona superior y zona inferior de la particin: parto de una direccin absoluta.
lmite inferior lmite superior
dir. absoluta
CPU >= < si Memoria
no no
error de direccionamiento
partimos de una direccin absoluta, y a hay que comprobar que la direccin se encuentre entre los dos lmites
Dos registros,un registro base y otro longitud:
longitud base
dir. relativa dir. absoluta
CPU <= + Memoria
Si S
no
error de direccionamiento
Partimos de una direccin relativa, se compara con la longitud, si est dentro de la particin se puede acceder a el.
Cul es mejor?El de base y longitud: Al ejecutarse direcciones relativas la traduccin de direcciones se produce en el momento de ejecucin,
por lo cual el proceso es reubicable y puede cambiar de particin, mientras que con uno de registro lmite la traduccin debe ser previa a la
ejecucin del proceso.
Con el registro longitud y base, la ventaja que tiene es que al partir de una direccin relativa mientras realiza la proteccin hace la traduccin
direcciones en tiempo de ejecucin y con eso se puede reubicar el proceso en otra particin.
El otro aspecto son los elementos de control que necesitamos para llevar a cabo el control de la memoria, qu zona de la memoria estn libres
y qu zonas estn ocupadas.
En este caso el nico elemento que necesitamos en usa tabla de particiones, que tiene una entrada por particion, y contiene la direccin base
de la particin el tamao y como se encuentra.
Nmero de la particin Base de la particin Tamao de la particin Estado de la particin
0 0K 100K ASGNADA
1 100K 300K LBRE
2 400K 100K ASGNADA
3 500K 250K ASGNADA
4 750K 150K ASGNADA
5 900K 100K LBRE
Esa tabla es la que se crea en el momento de la generacin del sistema.
nconvenientes: Por un lado, presenta fragmentacin interna, si el proceso no ocupa toda la particin se desperdicia espacio.
El tamao de la particin es fijo. Si quiero cambiar el tamao tengo que volver a generar el sistema, esto implica que el grado de
multiprogramacin del sistema sea tambin fijo.
El tamao del proceso est limitado a la mxima particin.
Sistema que lo usan:
BM
OS/MFT (Operative System Multiprograming with a Fixed Number o Task)
MULTIPROGRAMACIN CON PARTICIONES VARIABLES O DINMICAS
El sistema BM o OS/MUT,
ntenta vencer los inconvenientes anteriores.
Usa la memoria que l necesite, se va creando lo que necesita.
Si un sistema se suspende o bloquea se va de memoria y deja ese espacio para otro proceso.
Con este esquema las particiones en n y tamao van cambiando a lo largo del tiempo.
Los procesos son reubicables.
Copyright 2011 Orange Publicidad Contctanos Mapa web Acerca de Orange
EI Rincn deI Vago, en Salamanca desde 1998 - Condiciones de Uso - Contacto
Sistema
Operativo
128k
Sistema
Operativo
128k
Sistema
Operativo
128k
Sistema
Operativo
128k
Espacio
de
procesos
Proceso1 Proceso1 Proceso1
320k 320k 320k
896k

También podría gustarte