Administracion de La Memoria

download Administracion de La Memoria

If you can't read please download the document

description

Administracion de la memoria en un SO

Transcript of Administracion de La Memoria

  • UNIVERSIDAD MARIANO GLVEZ DE GUATEMALA

    CENTRO REGIONAL DE HUEHUETENANGO

    FACULTAD DE INGENIERA EN SISTEMAS

    CURSO: SISTEMAS OPERATIVOS

    Cat.: Ing. Jorge Giovanni Lpez Prez

    TEMA: Administracin de la memoria

    ALUMNO: No. DE CARN:

    Jos Alberto Rodrguez Alvarado 4490-12-8825

    Huehuetenango 14 de octubre del 2014

  • ADMINISTRACION DE MEMORIA

    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. Por lo general esta memoria es de

    mayor costo que la memoria secundaria, pero el acceso a la informacin contenida en ella es de ms rpido

    acceso. Solo la memoria cache es ms rpida que la principal, pero su costo es a su vez mayor.

    Memoria virtual

    El termino memoria virtual se asocia a dos conceptos que normalmente a parecen unidos:

    1. El uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusin de tener

    mas memoria RAM de la que realmente hay en el sistema. Esta ilusin de existe tanto a nivel del sistema,

    es decir, teniendo en ejecucin mas aplicaciones de las que realmente caben en la memoria principal, sin

    que por ello cada aplicacin individual pueda usar mas memoria de la que realmente hay o incluso de forma

    mas general, ofreciendo a cada aplicacin mas memoria de la que existe fsicamente en la maquina.

    2. Ofrecer a las aplicaciones la ilusin de que estn solas en el sistema, y que por lo tanto, pueden usar el

    espacio de direcciones completo. Esta tcnica facilita enormemente la generacin de cdigo, puesto que el

    compilador no tiene porque preocuparse sobre dnde residir la aplicacin cuando se ejecute.

    Espacio De Direcciones

    Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos:

    Direcciones fsicas: son aquellas que referencian alguna posicion en la memoria fsica.

    Direcciones lgicas : son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones ,

    realizadas por el procesador (la MMU), antes de convertirse en direcciones fsicas.

    Direcciones lineales: direcciones lineales se obtienen a partir de direcciones logicas tras haber aplicado una

    transformacin dependiente de la arquitectura.

    Los programas de usuario siempre tratan con direcciones virtuales ; nunca ven las direcciones fisicas reales..

    Unidad De Manejo De Memoria

    La unidad de manejo de memoria (MMU) es parte del procesador. Sus funciones son:

    Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas.

    Comprobar que la conversin se puede realizar. La direccin lgica podra no tener un direccin fsica asociada.

    Por ejemplo, la pagina correspondiente a una direccin se puede haber trasladado a una zona de

    almacenamiento secundario temporalmente.

    Comprobar que el proceso que intenta acceder a una cierta direccion de memoria tiene permisos para ello.

    La MMU se Inicializa para cada proceso del sistema. Esto permite que cada procesop pueda usar el rango

    completo de direcciones lgicas (memoria virtual), ya que las conversiones de estas direcciones sern distintas

    para cada proceso.

    En todos los procesos se configura la MMU para que la zona del ncleo solo se pueda acceder en modo

    privilegiado del procesador.

    La configuracin correspondiente al espacio de memoria del ncleo es idntica en todos los procesos.

    Intercambio

    El objetivo del intercambio es dar cabida a la ejecucin de mas aplicaciones de las que pueden residir

    simultneamente en la memoria del sistema:

    http://www.monografias.com/trabajos7/coad/coad.shtml#costohttp://www.monografias.com/trabajos5/sisope/sisope.shtml#cachehttp://www.monografias.com/trabajos12/dispalm/dispalm.shtmlhttp://www.monografias.com/trabajos11/memoram/memoram.shtmlhttp://www.monografias.com/trabajos12/eticaplic/eticaplic.shtmlhttp://www.monografias.com/Fisica/index.shtmlhttp://www.monografias.com/trabajos6/arma/arma.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos15/direccion/direccion.shtmlhttp://www.monografias.com/trabajos15/logica-metodologia/logica-metodologia.shtmlhttp://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml#PROCEhttp://www.monografias.com/trabajos10/gesmem/gesmem.shtml#VIRTUhttp://www.monografias.com/trabajos16/objetivos-educacion/objetivos-educacion.shtml
  • Consiste en trasladar el cdigo y los datos de un proceso completo de memoria al sistema de almacenamiento

    secundario , para cargar otro previamente almacenado, no permite a un proceso utilizar mas memoria RAM de

    la que realmente existe en el sistema. Esta tcnica puede ser ineficiente ya que se tiene que hacer el intercambio

    completo del proceso, aunque ste solo vaya a ejecutar una pequea porcin del cdigo.

    Durante el intercambio un proceso puede ser sacado temporalmente de memoria y llevado a un lugar especial

    del disco y posteriormente vuelto a memoria y continuada su ejecucin..

    El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como para acomodar copias

    de las imgenes de meoria de todos los usuarios.

    Asignacion Contigua

    La memoria principal normalmente se divide en dos particiones:

    Sistema operativo residente, normalmente en la parte baja de memoria con los vectores de interrupcin.

    Procesos de usuario en la parte alta.

    Asignacin de particin simple:

    Puede utilizarse un esquema de registro de relocalizacin y limite para proteger un proceso de usuario de otro

    y de cambios del cdigo y datos del sistema operativo .

    El registro de relocalizacin contiene la direccin contiene la direccin fsica mas pequea; el registro limite

    contiene el rango de las direcciones lgicas cada direccin lgica debe ser menor al registro limite

    Asignacin de particiones mltiples:

    Bloques de distintos tamaos estn distribuidos en memoria , cuando llega un proceso se le asigna un hueco

    suficientemente grande para acomodarle.

    El sistema operativo debe tener informacin sobre:

    a. Particiones asignadas

    b. Particiones libres (huecos)

    Asignacin de particin dinmica

    El proceso de compactacin 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. Existen

    muchas soluciones para el problema. El conjunto de huecos es analizado para determinar cul hueco es el ms

    indicado para asignarse. 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.

    Se ha demostrado mediante simulacros que tanto el primer y el mejor ajuste son mejores que el peor ajuste en

    cuanto a minimizar tanto el tiempo del almacenamiento. Ni el primer o el mejor ajuste es claramente el mejor en

    trminos de uso de espacio, pero por lo general el primer ajuste es ms rpido.

    Problema: La fragmentacin.

    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.

    http://www.monografias.com/trabajos11/basda/basda.shtmlhttp://www.monografias.com/trabajos11/memoram/memoram.shtmlhttp://www.monografias.com/trabajos3/color/color.shtmlhttp://www.monografias.com/trabajos35/vectores/vectores.shtmlhttp://www.monografias.com/trabajos34/cinematica-dinamica/cinematica-dinamica.shtmlhttp://www.monografias.com/trabajos14/soluciones/soluciones.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos11/henrym/henrym.shtmlhttp://www.monografias.com/trabajos901/evolucion-historica-concepciones-tiempo/evolucion-historica-concepciones-tiempo.shtmlhttp://www.monografias.com/trabajos11/metods/metods.shtmlhttp://www.monografias.com/trabajos15/sistemas-control/sistemas-control.shtml
  • La fragmentacin es generada cuando durante el reemplazo de procesos quedan huecos entre dos o ms

    procesos de manera no contigua y cada hueco no es capaz de soportar ningn proceso de la lista de espera.

    La fragmentacin puede ser:

    Fragmentacin Externa: existe el espacio total de memoria para satisfacer un requerimiento, pero no es

    contigua.

    Fragmentacin Interna: la memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es

    interna a la particin, pero no se utiliza.

    La fragmentacin externa se puede reducir mediante la compactacin para colocar toda la memoria libre en un

    solo gran bloque, pero est a solo es posible si la relocalizacin es dinmica y se hace en tiempo de ejecucin.

    Paginacin

    Es una tcnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones fsicas de igual

    tamao, denominadas marcos de pgina. Los programas se dividen en unidades lgicas, denominadas pginas,

    que tienen el mismo tamao que los marcos de pginas. De esta forma, se puede cargar una pgina de

    informacin en cualquier marco de pgina.

    Las pginas sirven como unidad de almacenamiento de informacin y de transferencia entre memoria principal

    y memoria auxiliar o secundaria. Cada marco se identifica por la direccin de marco, que esta en la posicin

    fsica de la primera palabra en el marco de pgina.

    Las pginas de un programa necesitan estar contiguamente en memoria, aunque el programador lo observe de

    esta forma. Los mecanismos de paginacin permiten la correspondencia correcta entre las direcciones virtuales

    (dadas por los programas) y las direcciones reales de la memoria que se reverencien.

    Cada pagina consiste en z palabras contiguas; un espacio de direcciones N de un programa consiste de n

    -1) (n*z direcciones virtuales) y el espacio de memoria consiste de m marcos de paginas

    -1)z)(m*z posiciones). Una direccin virtual a es equivalente a una direccin dada como una dupla

    (p, d), en la cual p es el nmero de la pgina y d el nmero de la palabra dentro de la pgina, de acuerdo con

    la relacin:

    a=p*z+d (0

  • El espacio de direcciones lgico de un proceso puede ser no contiguo.

    Se divide la memoria fsica en bloques de tamao fijo llamados marcos (frames).

    Se divide la memoria en bloques de tamao llamados paginas.

    Se mantiene informacin en los marcos libres.

    Para correr un programa de n paginas de tamao, se necesitan encontrara n marcos y cargar el programa.

    Se establece una tabla de paginas para trasladar las direcciones lgicas a fsicas.

    Se produce fragmentacin interna.

    Ventajas de la 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 paginas 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. Todo el mecanismo es transparente al usuario.

    5. Se libera al programador de la restriccin de programar para un tamao fsico de memoria, con lo que s e

    aumenta su productividad. Se puede programar en funcin de una memoria mucho ms grande a la

    existente.

    6. Al no necesitarse cargar un programa completo en memoria para su ejecucin, se puede aumentar el

    numero de programas multiprogramndose.

    7. Se elimina el problema de fragmentacin externa.

    Desventajas de la paginacin

    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 mas 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 (como asignar un tamao ptimo sin desperdicio de

    memoria, u "ovearhead" del procesador).

    3. Aparece el problema de fragmentacin interna. As, si se requieren 5K para un programa, pero las paginas

    son de 4K, debern asignrseles 2 paginas (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 paginas, pero no podr ser utilizados. 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.

    Traduccin de Direcciones

    La direccin generada por la CPU se divide en:

    Numero de pagina (p): utilizado como indice en la tabla de pagins que contiene la direccin base de cada pagina

    en la memoria fisica.

    Offset de la pagina (d): combinado con la direccin base dfine la direccion fisica que ser enviada a la unidad

    de memoria.

    Segmentacin

    Es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su divisin lgica;

    llevndose a cabo una agrupacin lgica de la informacin en bloques de tamao variable denominados

    segmentos. Cada uno de ellos tienen informacin lgica del programa: subrutina, arreglo, etc. Luego, cada

    http://www.monografias.com/trabajos32/traductor/traductor.shtmlhttp://www.monografias.com/trabajos6/prod/prod.shtmlhttp://www.monografias.com/Computacion/Software/http://www.monografias.com/trabajos15/todorov/todorov.shtml#INTRO
  • espacio de direcciones de programa consiste de una coleccin de segmentos, que generalmente reflejan la

    divisin lgica del programa.

    La segmentacin permite alcanzar los siguientes objetivos:

    1. Modularidad de programas: cada rutina del programa puede ser un bloque sujeto a cambios y

    recopilaciones, sin afectar por ello al resto del programa.

    2. Estructuras de datos de largo variable: ejm. Stack, donde cada estructura tiene su propio tamao y este

    puede variar.

    3. Proteccin: se puede proteger los mdulos del segmento contra accesos no autorizados.

    4. Comparicin: dos o ms procesos pueden ser un mismo segmento, bajo reglas de proteccin; aunque no

    sean propietarios de los mismos.

    5. Enlace dinmico entre segmentos: puede evitarse realizar todo el proceso de enlace antes de comenzar a

    ejecutar un programa. Los enlaces se establecern solo cuando sea necesario.

    Ventajas de la segmentacin

    El esquema de segmentacin ofrece las siguientes ventajas:

    El programador puede conocer las unidades lgicas de su programa, dndoles un tratamiento particular.

    Es posible compilar mdulos separados 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 modulo 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 aun no existan. As, no se asignara memoria, sino a partir del

    momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los arreglos cuya dimensin

    no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podra retardar la

    asignacin de memoria hasta el momento en el cual se referencia el arreglo u otra estructura de dato por primera

    vez.

    Desventajas de la segmentacin

    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 segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos.

    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 comparticion de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales da hardware

    y software.

    Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como Segmentacin paginada.

    Segmentacin Paginada

    Paginacin y segmentacin son tcnicas diferentes, cada una de las cuales busca brindar las ventajas

    enunciadas anteriormente.

    Para la segmentacin se necesita que estn cargadas en memoria, reas de tamaos variables. Si se requiere

    http://www.monografias.com/trabajos13/segmenty/segmenty.shtmlhttp://www.monografias.com/trabajos16/objetivos-educacion/objetivos-educacion.shtmlhttp://www.monografias.com/trabajos4/costos/costos.shtmlhttp://www.monografias.com/trabajos35/consumo-inversion/consumo-inversion.shtmlhttp://www.monografias.com/trabajos15/calidad-serv/calidad-serv.shtml#PLANThttp://www.monografias.com/trabajos7/plane/plane.shtmlhttp://www.monografias.com/trabajos6/juti/juti.shtml
  • cargar un segmento en memoria; que antes estuvo en ella y fue removido a memoria secundaria; se necesita

    encontrar una regin de la memoria lo suficientemente grande para contenerlo, lo cual no es siempre factible;

    en cambio "recargar" una pagina implica solo encontrar un merco de pagina disponible.

    A nivel de paginacin, si quiere referenciar en forma cclicas n paginas, estas debern ser cargadas una a una

    generndose varias interrupciones por fallas de paginas; bajo segmentacin, esta pagina podra conformar un

    solo segmento, ocurriendo una sola interrupcin, por falla de segmento. No obstante, si bajo segmentacin, se

    desea acceder un rea muy pequea dentro de un segmento muy grande, este deber cargarse completamente

    en memoria, desperdicindose memoria; bajo paginacin solo se cargara la pgina que contiene los tems

    referenciados.

    Puede hacerse una combinacin de segmentacin y paginacin para obtener las ventajas de ambas. En lugar

    de tratar un segmento como una unidad contigua, este puede dividirse en pginas. Cada segmento puede ser

    descrito por su propia tabla de pginas.

    Los segmentos son usualmente mltiplos de pginas en tamao, y no es necesario que todas las pginas se

    encuentren en memoria principal a la vez; adems las pginas de un mismo segmento, aunque se encuentren

    contiguas en memoria virtual; no necesitan estarlo en memoria real.

    Las direcciones tienen tres componentes: (s, p,d), donde la primera indica el numero del segmento, la segunda

    el numero de la pagina dentro del segmento y la tercera el desplazamiento dentro de la pagina. Se debern

    usar varias tablas:

    SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la SMT se almacena la

    informacin descrita bajo segmentacin pura, pero en el campo de direccin se indicara la direccin de la PMT

    (tabla de mapas de pginas) que describe a las diferentes pginas de cada segmento.

    PMT (tabla de mapas de pginas): una por segmento; cada entrada de la PMT describe una pgina de un

    segmento; en la forma que se presento la pagina pura.

    TBM (tabla de bloques de memoria): para controlar asignacin de pginas por parte del sistema operativo.

    JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se

    ejecutan en memoria.

    En el caso, de que un segmento sea de tamao inferior o igual al de una pagina, no se necesita tener la

    correspondiente PMT, actundose en igual forma que bajo segmentacin pura; puede arreglarse un bit adicional

    (S) a cada entrada de la SMT, que indicara si el segmento esta paginado o no.

    Ventajas de la segmentacin paginada

    El esquema de segmentacin paginada tiene todas las ventajas de la segmentacin y la paginacin:

    Debido a que los espacios de memorias son segmentados, se garantiza la facilidad de implantar la comparticion

    y enlace.

    Como los espacios de memoria son paginados, se simplifican las estrategias de almacenamiento.

    Se elimina el problema de la fragmentacin externa y la necesidad de compactacin.

    Desventajas de la segmentacin paginada

    Las tres componentes de la direccin y el proceso de formacin de direcciones hace que se incremente el costo

    de su implantacin. El costo es mayor que en el caso de de segmentacin pura o paginacin pura.

    Se hace necesario mantener un nmero mayor de tablas en memoria, lo que implica un mayor costo de

    almacenamiento.

    http://www.monografias.com/trabajos2/mercambiario/mercambiario.shtmlhttp://www.monografias.com/trabajos16/memorias/memorias.shtml