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