gestionde memoria.pptx

Embed Size (px)

Citation preview

  • 8/17/2019 gestionde memoria.pptx

    1/18

  • 8/17/2019 gestionde memoria.pptx

    2/18

    Gestión de memoria UNIX

    UNIX es un sistema operativo diseñado para ser instalado sobre unagran variedad de máquinas. Ya que la gestión de la memoria es muydependiente del soporte hardware disponible nos en!ontraremos!on que e"isten di#erentes #ormas de gestión de memoria en UNIX.$s% las primeras implementa!iones de UNIX sobre máquinas &'&()no traba*aban !on memoria virtual. +as implementa!ionesposteriores propor!ionan memoria virtual !on pagina!ión por

    demanda !ombinado !on swapping de pro!esos. $ !ontinua!ióndes!ribiremos la gestión de la memoria en el ,ystem -. &ara !adaentrada de la tabla de páginas se !onsidera la dire!!ión #%si!a delmar!o de página bits de prote!!ión r w "/ bit de valide0 bit dere#eren!ia bit de página modi1!ada y un !ontador de antig2edad dla página. 3stri!tamente sólo la dire!!ión #%si!a y el bit de valide0deben estar obligatoriamente soportados por hardware.

  • 8/17/2019 gestionde memoria.pptx

    3/18

    Inter!ambio ,wapping/

    $signa!ión del espa!io de inter!ambio 4 3l n5!leo asigna gruposde bloques !ontiguos 4 Usa una estru!tura 6$&$ para la gestiónde espa!io libre. 7ada entrada tiene8 9 una dire!!ión de bloqueasignable 9 n5mero de bloques !ontiguos disponibles a partir delanterior 4 $lgoritmo de asigna!ión8 &rimer a*uste

  • 8/17/2019 gestionde memoria.pptx

    4/18

    Inter!ambio de pro!esos al dispositivo : ;a0ones por las que eln5!leo ne!esita espa!io en 6& 4 &ro!esos inter!ambiados debenvolver a 6& 4 +lamada al sistema #or< 4 Inter!ambio pore"pansión8 aumento región pila o datos : 7uando el n5!leode!ide inter!ambiar un pro!eso8 a/ 'e!rementa la !uenta dere#eren!ias de !ada región y la inter!ambia si es = b/ $signaespa!io en el dispositivo de inter!ambio y bloquea al pro!eso !/Guarda la dire!!ión de inter!ambio de la región en la entrada dela >abla de ;egiones

  • 8/17/2019 gestionde memoria.pptx

    5/18

    $so!ia!ión del espa!io de lointer!ambio

    Inter!ambio por e"pansión

  • 8/17/2019 gestionde memoria.pptx

    6/18

    Inter!ambio de pro!esos a 6&

     3l inter!ambiador pro!eso =/ 4 Inter!ambia pro!esos a 6& eintenta inter!ambiar pro!esos a dis!o si ne!esita espa!io en 6& ,e bloquea si no hay traba*o 4 ,e e*e!uta en modo supervisor 4 3relo* lo desbloquea !ada sg y el n5!leo !ada ve0 que se bloqueeun pro!eso y despu?s se plani1!a prioridad @ alta/ : ;equisitode estan!ia8 4 Un pro!eso e*e!utable tiene que estar residente e6& al menos A sg. antes de ser inter!ambiado 4 Igual para lospro!esos e*e!utables pero inter!ambiados

  • 8/17/2019 gestionde memoria.pptx

    7/18

    Asignación del Espacio paraIntercambio por parte del

    Kernel  'ire!!ión map que indi!a qu? map usar @ n5mero unidades pedidas8 B"ito C la dire!!ión

    Dra!aso C =

    $signar espa!io para inter!ambio8

    3l kernel bus!a en mapa )E entrada !on su1!iente espa!io para la peti!ión.

    ,i peti!ión !onsume todos los re!ursos de la entrada del mapa8

    3l kernel quita la entrada del array.

    6apa C Una entrada menos. 3n !aso !ontrario

    $*usta dire!!ión y unidades a!orde a !antidad re!ursos asignados3l kernel bus!a posi!ión ade!uadala dire!!ión

    7asos posibles8

    ;e!ursos liberados llenan un hue!o en el mapa C 7ombinar todos los re!ursos en una entrada en el mapa.

    ;e!ursos liberados llenan par!ialmente un hue!o en el mapa y son !ontiguos a alguna entrada adya!ente Cdire!!ión y unidades de la entrada apropiada de a!uerdo a re!ursos liberados.

    ;e!ursos liberados llenan par!ialmente un hue!o en el mapa y no son !ontiguos a ninguna entrada C 3l kernentrada en el mapa para los re!ursos liberados y la inserta en la posi!ión apropiada.

  • 8/17/2019 gestionde memoria.pptx

    8/18

    'ire!!iónUnidades  

    ) )==== a

    'ire!!iónUnidades  

    )) H=  !  

    'ire!!iónUnidades  

    )=) =  A) HJ=  

    e  

    'ire!!iónUnidades  

    ) )=K) H=  

    g

    'ire!!iónUnidades

     )=) HH==  b

    'ire!!iónUnidades

     A) HJ=  d

    'ire!!iónUnidades

     

    ) )=A) HJ= 

    'ire!!iónUnidades

    ) )====

    h

    Ejemplo. Figura •Dispositivo de swap con 10000 bloques empezando en la dirección 1

    •Secuencia de peticiones liberacion·"l kernel  asigna 100 unidades del recurso

    ·"l k ernel  recibe una petición de #0 ·$ecibe una %ltima petición de 100 unidades ·&ibera #0 unidades empezando en la dirección 101

    ·&ibera 100 unidades empezando en la dirección 1·Demanda 200 unidades

    ·&ibera 3#0 empezando en dirección 1#1. Se asignaron por separado 0

  • 8/17/2019 gestionde memoria.pptx

    9/18

     Intercambiar Procesos fuerade Memoria.

     3l kernel inter!ambia pro!esos al swap si ne!esita espa!io en memoria8 Dor

  • 8/17/2019 gestionde memoria.pptx

    10/18

    D:;O8 &adre no en!uentra su1!iente memoria para !rear el !onte"to delpro!eso hi*o C 3l kernel inter!ambia el pro!eso hi*o al swap no libera lamemoria o!upada por padre.

    Din swap8 )/ 3l pro!eso hi*o e"istirá en el dispositivo de swapM A/ 3l pro!espadre lo pondrá en el estado Plisto para e*e!utarseQ y volverá a modo usua/ 3l swapper lo lleva a memoria !uando el kernel lo plani1que s!heduler

  • 8/17/2019 gestionde memoria.pptx

    11/18

    . Intercambiar Procesos entreMemoria Principal y swap

    &ro!eso = swapper pro!eso del kernel/ C 5ni!o !apa0 de mover pro!esos entre memoria y swap.7omportamiento8

    Din ini!iali0a!ión del sistema C swapper empie0a un bucle infnito.

    Rni!a tarea que tiene que ha!er el swapper es inter!ambiar pro!esos desde swap8 )/ 3"aminapro!esos Plistos para e*e!utarse en área de swapQ y sele!!iona el que haya estado más tiempointer!ambiadoM A/ ,i tiene su1!iente memoria libre disponible asigna memoria #%si!a lee el pro!esodesde el dispositivo de swap y libera la memoria en el mismoM / ,i no tiene su1!iente espa!io enmemoria prin!ipal intenta inter!ambiar pro!esos al dispositivo de swap.

    ,i no hay pro!esos para inter!ambiar a memoria o ninguno de los pro!esos que hay en memoria

    pueden ser inter!ambiados al dispositivo de swap C swapper se duerme y se despierta8 )/ 3l relo*despertará una ve0 !ada segundo en este estado dormido/M A/ el kernel si otro pro!eso va a dormy

    / vuelve a empe0ar desde el prin!ipio bus!ando más pro!esos.

    7riterios del swapper para elegir un pro!eso para e!harlo inter!ambiarlo/ de memoria8 )/ 3"amina!ada uno de los pro!esos que est?n en memoriaM A/ No e"amina ni Sombies ni pro!esos bloqueadoen memoriaM / &re1ere P'ormidosQ a Plistos para e*e!utarseQM K/ 3legir de los P'ormidosQ los quemenos #prioridad tiempo que pro!eso lleva en memoria/ tenganM / 3legir de los Plistos parae*e!utarseQ los que menos #ni!e tiempo que el pro!eso haya estado en memoria/ tengan.

  • 8/17/2019 gestionde memoria.pptx

    12/18

    Estructuras de Datos paraPaginación por Demanda

    (UNI! 3stru!turas de datos para la gestión de memoria a ba*o nivel y demanda de

    páginas sistema de pagina!ión/8

     >abla de páginas C Normalmente hay una tabla por pro!eso !on una entradapara !ada página de la memoria virtual del pro!eso.

    'es!riptores de bloques de dis!o C $so!iado a !ada página de un pro!eso hayuna entrada en la tabla que des!ribe la !opia en el dis!o de la página virtual.

     >abla de mar!os de página p#data/ C 'es!ribe !ada mar!a de la memoria real

    está inde"ada por el n5mero de mar!o.  >abla de uso de swap C 3"iste una tabla de uso de swap por !ada dispositivo d

    inter!ambio !on una entrada para !ada página en di!ho dispositivo.

    3l kernel asigna espa!io para p#data una ve0 durante la vida del sistemaaunque para las otras estru!turas le asigna y desasigna espa!iodinámi!amente. 7ada región !ontiene tablas de páginas para a!!eder amemoria #%si!a.

  • 8/17/2019 gestionde memoria.pptx

    13/18

    "E#$I%N DE MEM&'IA ENINU

    )isión "eneral +inu" !omparte mu!has de las !ara!ter%sti!as de los esquemas de gestión de

    memoria de otras implementa!iones UNIX pero tiene sus !ara!ter%sti!as propias 5ni!as aunque hay que desta!ar que el esquema de gestión de memoria de +inues bastante !omple*o.

    3n lo que respe!ta a memoria virtual el dire!!ionamiento de memoria virtual de+inu" ha!e uso de una estru!tura de tabla de páginas !on tres niveles #ormadapor los siguientes tipos de tablas !ada tabla individual es del tamaño de una

    página/8 )/ 'ire!torio de páginas C un pro!eso a!tivo tiene un solo dire!torio depáginas que es del tamaño de una página. 7ada entrada en el dire!torio depáginas apunta a una página del dire!torio intermedio de páginas. &ara un pro!esa!tivo el dire!torio de páginas tiene que estar en la memoria prin!ipalM A/'ire!torio intermedio de páginas C este dire!torio puede o!upar varias páginas y!ada entrada de este dire!torio apunta a una página de la tabla de páginasM /

     >abla de páginas C esta tabla de páginas tambi?n puede o!upar varias páginas y!ada entrada de la tabla de página ha!e re#eren!ia a una tabla virtual del pro!eso

  • 8/17/2019 gestionde memoria.pptx

    14/18

    Direccionamiento de Memoriaen inu*

    +a memoria es uno de los re!ursos #undamentales para unpro!eso. 3l sistema operativo debe o#re!er la memoria a todoslos pro!esos por igual de una #orma sen!illa y uni#orme. $l mismtiempo el sistema operativo debe tratar !on el hardware realpara reali0ar di!ha #un!ión aprove!hándolo al má"imo. 3ldire!!ionamiento es una parte importante de la gestión dememoria puesto que inTuye mu!ho tanto en la visión de la

    misma por parte de un pro!eso !omo en el aprove!hamiento dehardware y el rendimiento del sistema.

  • 8/17/2019 gestionde memoria.pptx

    15/18

    Espacios de Direcciones

     >res tipos de dire!!iones8  Direcciones lógicas. Generadas por el pro!eso !ada dire!!ión lógi!a !onsiste en un sele!tor de 

    segmento y un despla0amiento oset/ que denota la distan!ia del prin!ipio del segmento a ladire!!ión a!tual.

    Direcciones lineales (direcciones virtuales). :btenidas tras apli!ar una trans#orma!ión a la dire!!iónlógi!a por parte de la 66U. A bits se pueden utili0ar para dire!!ionar KGb es de!ir KAHKHVJAHVdire!!iones #%si!as de memoria/. +as dire!!iones lineales se representan normalmente enhe"ade!imal su rango de valores va desde ="======== hasta =".

    Direcciones ísicas. ;e#eren!ian la memoria #%si!a. ,e obtienen tras apli!ar una trans#orma!ión por parte de la 66U.

    +as trans#orma!iones y el #ormato de las dire!!iones dependen de la arquite!tura. 3n +inu" losespa!ios de dire!!iones lógi!o y lineal son id?nti!os.

    3n los pro!esadores de la arquite!tura iV8

    3l paso de dire!!ión lógi!a a lineal se denomina segmenta!ión.

    3l paso de dire!!ión lineal a #%si!a se denomina pagina!ión. ,i se deshabilita la pagina!ión dire!!ión#%si!a W dire!!ión lineal.

    +a memoria virtual se soporta en la pagina!ión y en bits de presen!ia y re#eren!ia.

  • 8/17/2019 gestionde memoria.pptx

    16/18

    Paginación en inu*

    &ara tener en !uenta arquite!turas de VK bits la pagina!ión en+inu" tiene niveles de tablas de páginas en lugar de A. 3n losiV la tabla de directorio intermedio de tablas de páginas seobvia.

    +inu" gestiona la memoria !entral y las tablas de páginasutili0adas para !onvertir las dire!!iones lineales virtuales/ en

    dire!!iones #%si!as. Implementa una gestión de la memoria quees ampliamente independiente del pro!esador sobre el que see*e!uta.

  • 8/17/2019 gestionde memoria.pptx

    17/18

    "estión de Memoria en inu*.

    emos visto que +inu" ha!e uso de las venta*as de la segmenta!ión y de los!ir!uitos de pagina!ión de los pro!esadores iV para tradu!ir dire!!ioneslógi!as en dire!!iones #%si!as. &odemos tambi?n de!ir que alguna por!ión de;$6 está permanentemente asignada al

  • 8/17/2019 gestionde memoria.pptx

    18/18

    "estión de memoria en+indows

    3l gestor de memoria en indows está he!ho para traba*ar !on paginas que van de losK