gestion de memoria

Upload: ramonejimenez

Post on 08-Jan-2016

6 views

Category:

Documents


0 download

DESCRIPTION

Gestion de Memoria

TRANSCRIPT

  • 7/17/2019 Gestion de Memoria

    1/102

    Fundamentos de Computadores II 1Sistemas Operativos

    Captulo 4Gestin de memoria

  • 7/17/2019 Gestion de Memoria

    2/102

    Fundamentos de Computadores II 2Sistemas Operativos

    ndice

    1. Objetivos del sistema de gestin de memoria2. Modelo de memoria de un proceso3. Esquemas de memoria basados en asignacin

    contigua

    4. Memoria virtual5. Arcivos pro!ectados en memoria". #ervicios de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    3/102

    Fundamentos de Computadores II 3Sistemas Operativos

    1. Objetivos del sistema degestin de memoria

  • 7/17/2019 Gestion de Memoria

    4/102

    Fundamentos de Computadores II 4Sistemas Operativos

    $ En sistemas con multiproceso% el #.O. debe &repartir' los

    recursos entre los procesos e(istentes)* +eparto de procesador) Gestin de procesos* +eparto de memoria)Gestin de memoria

    $ Objetivos del ,estor de Memoria

    A. Espacios lgicos independientes-. roteccin entre procesos/./omparticin de Memoria 0procesos ligeros.#oporte a las regiones del procesoE. Ma(imiar el grado de multiprogramacin

    . Mapas de memoria de un tamao adecuado0normalmente grandes

    1. Objetivos del sistema de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    5/102

    Fundamentos de Computadores II 5Sistemas Operativos

    A.Espacios lgicos independientes

    $ A priori no se conoce la posicin de memoria que ocuparunprograma cuando va!a a ejecutarse 0estado de ocupacin de lamemoria

    $ /digo en ejecutable genera re6erencias entre 7 ! 8$ Ejemplo) rograma que copia un vector

    L O A D R 1 , # 1 0 0 0L O A D R 2 , # 2 0 0 0L O A D R 3 , / 1 5 0 0L O A D R 4 , [ R 1 ]

    S T O R E R 4 , [ R 2 ]I N C R 1I N C R 2D E C R 3J N Z / 1 2. . . . . . . . . . . . . . . . .

    C a b e c e r a

    ! c " e r E $ e c % & a b ' e

    04. . . .( )1 0 01 0 41 0 *1 1 2

    1 1 )1 2 01 2 41 2 *1 3 21 3 )

    *9ector destino a partir dedireccin 2777

    *:amao del vector en direccin1577

    *9ector origen a partir de direccin

    1777

    1. Objetivos del sistema de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    6/102

    Fundamentos de Computadores II 6Sistemas Operativos

    #e supone que el cdigo del #O reside en

    las posiciones m;s altas.El programa se carga en la posicin 7 ! paraque se ejecute a de pas;rsele el control0es decir% que el contador del programaapunte a esta posicin.

    $ roblema)/omo se ve% no coinciden las

    direcciones usadas en el programa con laposicin a partir de la cual se carga elprograma. #uponer por ejemplo% que elprograma se cargara a partir de laposicin 17777....

    $ !olucin) "eubicacin de direccioneslgicas a 6

  • 7/17/2019 Gestion de Memoria

    7/102

    Fundamentos de Computadores II 7Sistemas Operativos

    $ "eubicacin) :raducir direcciones lgicas a direcciones 6a

    reubicacin permite crear un espacio lgico independiente para cadaproceso ! el #.O. debe poder acceder a los espacios lgicos para realiarla traduccin.* irecciones lgicas) direcciones de memoria generadas por el

    programa

    * irecciones 6

  • 7/17/2019 Gestion de Memoria

    8/102

    Fundamentos de Computadores II 'Sistemas Operativos

    $ "eubicacin $ard%are) la MM 0memor! management unit seencarga de la traduccin

    $ roceso)* rograma se carga en memoria sin modi6icar* El #.O. almacena por cada proceso su 6uncin de traduccin* El #.O. especi6ica a la MM quB 6uncin aplicar para cada proceso

    L O A D R 1 , # 1 0 0 0L O A D R 2 , # 2 0 0 0L O A D R 3 , / 1 5 0 0L O A D R 4 , [ R 1 ]S T O R E R 4 , [ R 2 ]I N C R 1

    I N C R 2D E C R 3J N Z / 1 2. . . . . . . . . . . . . . . . .

    M e m o r i a

    1 0 0 0 01 0 0 0 41 0 0 0 *1 0 0 1 21 0 0 1 )1 0 0 2 0

    1 0 0 2 41 0 0 2 *1 0 0 3 21 0 0 3 ). . . . . . . . . .

    P r o c e s a d o r

    R . I - & r % c c !

    & r a % c c !

    L O A D R 3 , / 1 5 0 0

    1 1 5 0 01 0 0 0 0

    +1 5 0 0

    C

    *

    1. Objetivos del sistema de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    9/102

    Fundamentos de Computadores II Sistemas Operativos

    $ "eubicacin so&t%are) traduccin dedirecciones durante carga del programa.

    Esta solucin se usa en sistemas sin elard=are espec

  • 7/17/2019 Gestion de Memoria

    10/102

    Fundamentos de Computadores II 1)Sistemas Operativos

    (.roteccin entre procesos>a proteccin es di6erente segCn sea un sistema Mono o Multi programado)

    #istema Monorogramado) >a intrusin se dar; solamente entre elprograma ! el #.O.

    #istema Multirogramado) >a intrusin puede venir tanto de otrosprocesos como de otros usuarios adem;s del riesgo del sistemaMonoprogramado.

    $ Acciones* >a traduccin de direcciones debe crear espacios disjuntos* Es necesario validar todas las direcciones que genera el programa

    $ >a deteccin de alguna intrusin debe realiarla el ard=are delprocesador 0MM% !a que a! que realiarla en tiempo deejecucin

    $ El tratamiento de alguna intrusin lo ace el #O* En sistemas con mapa de ED# ! memoria comCn)* :raduccin permite impedir que los procesos accedan directamente

    a dispositivos de ED#

    1. Objetivos del sistema de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    11/102

    Fundamentos de Computadores II 11Sistemas Operativos

    C. Comparticin de )emoria *procesos ligeros+

    >a comparticin de memoria entre procesos da soporte a la creacin deprocesos ligeros ! est; controlado por el #.O.

    $ Acciones)* >as direcciones lgicas de 2 o m;s procesos se corresponder;n con

    una misma direccin 6a memoria asignada a cada proceso no puede ser !a contigua.

    * >a 6uncin de traduccin en estos casos se va aciendo m;scompleja.

    $ ,entajas)* rocesos ejecutando mismo

    programa comparten sucdigo

    * Mecanismo de comunicacinentre procesos mu! r;pido

    6 a c a r & ! a

    6 a c a r & ! a

    6 a r ! a a 1

    6 a r ! a a 2

    6 a r ! a a 1

    6 a r ! a a 2

    + a a r c e - 1

    + a a r c e - 26 a c a r & ! a

    + e r ! a

    6 a r ! . 1 7 2 8

    6 a r ! . 1 7 1 8

    6 a r ! . 2 7 1 8

    6 a r ! . 2 7 2 8

    1. Objetivos del sistema de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    12/102

    Fundamentos de Computadores II 12Sistemas Operativos

    $ roblemas)

    * +equiere asignacin nocontigua

    * #i la posicin de onacompartida contienere6erencia a otra posicin dela ona compartida% no se

    puede saber a quB direccinse re6iere puesto que cadaproceso ligero ver; esadireccin de 6orma di6erente

    Ejemplo) #i el cdigo% que es comCn%contiene una bi6urcacin% no se

    podr; determinar a quB direccinse debe saltar% dependiendo delproceso que estB ejecutando elcdigo

    6 a c a r & ! a

    6 a c a r & ! a

    + a a r c e - 1

    + a a r c e - 2

    6 a c a r & ! a

    + e r ! a

    1 0 0 0

    2 0 0 0

    9 1 1 0 0 2 1 0 0 :1 0 0 0 0

    1 0 1 0 0

    lgico 6

  • 7/17/2019 Gestion de Memoria

    13/102

    Fundamentos de Computadores II 13Sistemas Operativos

    '. !oporte de las regiones del proceso

    El mapa de memoria de un proceso no es omogBneo% !a que las regionescontienen di6erentes tipos de in6ormacin 0cdigo% datos ! pila

    normalmente ! poseen di6erentes caracter

  • 7/17/2019 Gestion de Memoria

    14/102

    Fundamentos de Computadores II 14Sistemas Operativos

    El reparto de memoria debe ser tal quema(imie el grado de multiprogramacinpara evitar el desperdicio de memoria

    $ )emoria desperdiciada* +estos 0uecos inutiliables

    06ragmentacin* :ablas requeridas por gestor de

    memoria$ Acciones

    * /rear bloques de asignacin demenor tamao

    * ,estionar las tablas de asignacinm;s e6icientemente

    * #e opta por la paginacin* so de memoria virtual para

    aumentar grado demultiprogramacin

    D ! r e c c ! 5 0 e ' r c e - 4

    D ! r e c c ! 1 0 e ' r c e - )

    D ! r e c c ! ( 5 e ' r c e - ;

    D ! r e c c ! 5 ) e ' r c e - *

    D ! r e c c ! 0 e ' r c e - 1 2

    D ! r e c c ! 5 e ' r c e - 2 0

    D ! r e c c ! 0 e ' r c e - 1

    D ! r e c c ! 5 1 e ' r c e - 4

    D ! r e c c ! * * e ' r c e - (

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

    + e r ! a

    0

    1

    2

    3

    4

    5

    )

    N < 1

    N

    Aprovec-amiento de memoriaptimo es irrealiable////0ablas de gestin demasiado

    grandes

    1. Objetivos del sistema de gestin de memoria

    E. )aimiar el grado de multiprogramacin

  • 7/17/2019 Gestion de Memoria

    15/102

    Fundamentos de Computadores II 15Sistemas Operativos

    #. )apas de memoria de un tama2o adecuado

    *normalmente grandes+>os procesos necesitan cada ve mapas m;s grandes) aplicaciones m;snovedosas% m;s recursos gr;6icos% m;s carga computacional....

    $ Acciones* tiliar Memoria 9irtual* @acer que el usuario disponga virtualmente de una enorme cantidad

    de memoria 6

  • 7/17/2019 Gestion de Memoria

    16/102

    Fundamentos de Computadores II 16Sistemas Operativos

    3. )odelo de memoria de unproceso

    3.1. ntroduccin3.3. #ases en la generacin de un ejecutable3.5. )apa de memoria de un proceso3.4. Operaciones sobre regiones

  • 7/17/2019 Gestion de Memoria

    17/102

    Fundamentos de Computadores II 17Sistemas Operativos

    3.1. ntroduccin

    * El #.O. es el responsable de la gestin de memoria de

    cualquier proceso.

    * El mapa inicial de memoria de un proceso est; relacionado

    con el arc-ivo ejecutableque generar; el proceso

    * Cmo generar el mapa de memoria inicial a partir del

    ejecutableF

    * Cmo se organiael mapa de memoriaF

    * /u;les son sus caractersticasb;sicasF* GuB operaciones se pueden realiar en el mapa de

    memoriaF

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    18/102

    Fundamentos de Computadores II 1'Sistemas Operativos

    $ Aplicacin) conjunto de mdulos en lenguaje de alto nivel$ rocesado en dos 6ases) /ompilacin ! Montaje

    $ /ompilacin)* #e asignan direcciones a los

    s

  • 7/17/2019 Gestion de Memoria

    19/102

    Fundamentos de Computadores II 1Sistemas Operativos

    $ :ipos)Estticas) el montaje enlaa los mdulos

    objeto del programa ! de las bibliotecas%dando como resultado un ejecutableautocontenido.

    $ esventajas)* Ejecutables grandes* /digo de 6uncin de biblioteca

    repetido

    * MCltiples copias en memoria delcdigo de 6uncin de biblioteca

    * >a actualiacin de bibliotecaimplicar

    % c ! e b ! b ' ! & e c a 1

    % c ! e b ! b ' ! & e c a 2

    )odelo de memoria de un proceso

    (iblioteca) coleccin de mdulos objeto relacionados. Algunas bibliotecasson proporcionadas a los usuarios 0bibliotecas del sistema% mientras

    que otras abr;n sido creadas por los usuarios 0propias 0por ejemplo%bibliotecas de entrada salida% inclu!endo las 6unciones como print6%getcar% etc% o las llamadas al sistema de O#?H

  • 7/17/2019 Gestion de Memoria

    20/102

    Fundamentos de Computadores II 2)Sistemas Operativos

    'inmicas6 la carga ! montaje se ace en tiempo de ejecucin. Elejecutable contiene Cnicamente el nombre de la biblioteca ! la

    rutina de carga ! montaje en tiempo de ejecucin$ roceso de carga)* >a rutina de carga ! montaje incorpora la biblioteca

    correspondiente.* #e ajustan las instruccionesque realian las re6erencias

    a dico s

  • 7/17/2019 Gestion de Memoria

    21/102

    Fundamentos de Computadores II 21Sistemas Operativos

    $ 9entajas)

    * Menor tamao ejecutables* /digo de rutinas de biblioteca slo en arcivo de biblioteca* rocesos pueden compartir cdigo de biblioteca* Actualiacin autom;tica de bibliotecas) uso de versiones.

    #uele aber en un sistemas varias versiones de la mismabiblioteca. /uando un programa ace re6erencia a uno de

    sus s

  • 7/17/2019 Gestion de Memoria

    22/102

    Fundamentos de Computadores II 22Sistemas Operativos

    $ orma de uso )1. Enlace din;mico implcito) #e especi6ica en tiempo de

    montaje quB biblioteca usar% pero se pospone su carga !montaje a tiempo de ejecucin.

    2. so eplcito)I +equerido por aplicaciones que determinan en tiempo

    de ejecucin quB bibliotecas deben usarI 8o se especi6ica la biblioteca en mandato de montaje

    I Es el programa quien solicita la carga de bibliotecasmediante servicio del sistema 0d"openen 8?H !+oad+i,rar*en Jin32

    I El acceso a los s

  • 7/17/2019 Gestion de Memoria

    23/102

    Fundamentos de Computadores II 23Sistemas Operativos

    $ El uso de bibliotecas din;micas es transparente. Es decir% losmandatos de compilacin ! montaje son idBnticos que en el caso de lasest;ticas

    $ #i la biblioteca din;mica contiene re6erencias internas 0a s

  • 7/17/2019 Gestion de Memoria

    24/102

    Fundamentos de Computadores II 24Sistemas Operativos

    #ic-eros ejecutables

    $ istintos 6abricantes usan di6erentes 6ormatos

    * Ejemplo) En >inu( /0ecuta,"e and +ina,"e Format0E>

    $ Estructura) /abecera ! conjunto de secciones

    $ Cabecera) in6ormacin de control que permite interpretar el contenidodel ejecutable. #uele incluir la siguiente in6ormacin)* 78mero mgico que identi6ica a ejecutable. or ejemplo% en

    6ormato E> el primer b!te debe contener el valor e(adecimal K6%los tres siguientes los caracteres E% > !

    * unto de entradadel programa) es decir% el valor que inicialmentecontendr; el contador del programa

    * 0abla de secciones. ara cada una de ellas se especi6ica) tipo%direccin de comieno en el arcivo ! tamao.

    Ejemplo)I :abla de sista de bibliotecas din;micas usadas

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    25/102

    Fundamentos de Computadores II 25Sistemas Operativos

    C a b e c e r a

    F i c h e r o E j e c u t a b l eN m e r o m g i c o

    C o n t a d o r d e p r o g r a m a i n i c i a l

    T a b l a d e s e c c i o n e s

    C d i g o

    D a t o s c o n a l o r i n i c i a l

    T a b l a d e s ! m b o l o s

    " " " " " " " " " " " " " " " " " " " "

    C d i g o

    D a t o s c o n " i "

    D a t o s s i n " i "

    " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " "

    T " # ! m b o l o s

    $ % % %

    & % % %' ' ' ' ' '

    ( % % %

    ) % % %

    $ % % %

    & % %

    $ % % %

    D e s p l " T a m "

    " " " " " " " " " " " " " " " "

    %

    $ % % %

    & % % %

    ( % % %

    # e c c i o n e s

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    26/102

    Fundamentos de Computadores II 26Sistemas Operativos

    $ >as secciones ms relevantesse volcar;n en el mapa de memoria delproceso) cdigo% datos con valor inicial ! datos sin valor inicial

    * Cdigo0te(to) contiene el cdigo del programa

    * 'atos con valor inicial) variables globales inicialiadas

    * 'atos sin valor inicial) variables globales no inicialiadas) aunque

    aparece en la tabla de secciones no se almacena en el ejecutable% !aque su contenido no es relevante

    $ 8o a! seccin vinculada a variables locales% !a que estas tienencar;cter din;mico 0se crear;n en la pila del proceso% cuando losprocedimientos en que aparecen sean invocados

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    27/102

    Fundamentos de Computadores II 27Sistemas Operativos

    $ ,ariables globales* Est;ticas* #e crean al iniciarse programa* E(isten durante toda la ejecucin del proceso* ireccin 6ija en memoria ! en ejecutable

    $ ,ariables locales 9 parmetros* in;micas* #e crean al invocar la 6uncin* #e destru!en al retornar* >a direccin se calcula en tiempo de ejecucin* +ecursividad) varias instancias de una variable

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    28/102

    Fundamentos de Computadores II 2'Sistemas Operativos

    $ Ejemplo)

    int x=8; /* Variable global con valor inicial */ int y; /* Variable global sin valor inicial */

    f(int t){ /* Parmetro */

    int z; /* Variable local */

    .......

    main(){

    .......

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    29/102

    Fundamentos de Computadores II 2Sistemas Operativos

    $ El mapa de memoria o imagen del proceso estar; compuesto por unconjunto de regiones o segmentosL cada una de ellas almacenacierto tipo de in6ormacin

    $ Cada regin)

    * :iene asociada una in6ormacin 0un &objeto de memoria'* /onsiste en una ona contigua tratada como unidad al proteger o

    compartir* #e caracteria por)

    $ ireccin de comieno ! tamao inicial

    $ #oporte) donde se almacena su contenido inicial 0soporte enarcivo ! sin soporte% es decir% objeto sin contenido inicial$ roteccin) +JH$ so compartido o privado$ :amao 6ijo o variable

    3.5. )apa de memoria de un proceso

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    30/102

    Fundamentos de Computadores II 3)Sistemas Operativos

    $ >a ejecucin de un programa crea un mapa de memoriaa partir

    del arcivo ejecutable. /ada seccin del ejecutable da lugar a unaregin del mapa inicial.

    * /digo 0te(to) compartida% lectura ! ejecucin% tamao 6ijo%soporte en arcivo ejecutable

    * atos con valor inicial) privada% lectura ! escritura% tamao 6ijo%soporte en arcivo ejecutable

    * atos sin valor inicial) privada% lectura ! escritura% tamao 6ijo% sinsoporte 0se rellena a ceros en algunos lenguajes

    * ila) privada% lectura ! escritura% tamao variable% sin soporte. /receacia direcciones m;s bajas. >a pila inicial slo contiene losargumentos de llamada al programa

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    31/102

    Fundamentos de Computadores II 31

    Sistemas Operativos

    /abeceraicero ejecutable7

    1777

    5777

    #ecciones

    777

    8Cmero m;gico/ontador de programa

    inicial

    :abla de secciones

    /digo

    atos con valorinicial

    :abla de s

  • 7/17/2019 Gestion de Memoria

    32/102

    Fundamentos de Computadores II 32

    Sistemas Operativos

    $ 'urante ejecucinde proceso se crean nuevas regiones. Es decir% el mapa

    de memoria tiene un car;cter din;mico. >as nuevas regiones creadas en tiempode ejecucin pueden ser)* +egin de @eap

    $ #oporte de memoria din;mica 0mallocen /$ rivada% lectura ! escritura% tamao variable% sin soporte 0inicialiada a

    cero$ /rece acia direcciones m;s altas

    * Arcivo pro!ectado$ +egin asociada al arcivo pro!ectado$ :amao variable% soporte en arcivo$ roteccin ! car;cter compartido o privado especi6icado en la pro!eccin

    * Memoria compartida$ +egin asociada a la ona de memoria compartida$ /ompartida% tamao variable% sin soporte 0inicialiada a 7

    $ roteccin especi6icada en pro!eccin* ilas de treads$ /ada pila de tread corresponde con una regin.$ Estas regiones constan de las mismas caracter

  • 7/17/2019 Gestion de Memoria

    33/102

    Fundamentos de Computadores II 33

    Sistemas Operativos

    "egin !oporte roteccin Comp:riv 0ama2o

    /digo 4icero +H /ompartida 4ijo

    at. con v.i. 4icero +J rivada 4ijo

    at. sin v.i. #in soporte +J rivada 4ijo

    ilas #in soporte +J rivada 9ariable

    @eap #in soporte +J rivada 9ariable

    4. ro!ect. 4icero por usuario /omp.Driv. 9ariable

    M. /omp. #in soporte por usuario /ompartida 9ariable

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    34/102

    Fundamentos de Computadores II 34

    Sistemas Operativos

    )odelo de memoria de un proceso

  • 7/17/2019 Gestion de Memoria

    35/102

    Fundamentos de Computadores II 35

    Sistemas Operativos

    ara estudiar la evolucin del mapa de memoria a lo largo de la ejecucinde un proceso% se pueden distinguir las siguientes operaciones)

    * /rear regin) ?mpl

  • 7/17/2019 Gestion de Memoria

    36/102

    Fundamentos de Computadores II 36

    Sistemas Operativos

    5. Es;uemas de memoria basadosen asignacin contigua

    5.1. Es;uema -ard%are5.3. Gestin del !O5.5. oltica de asignacin de espacio5.4. ,aloracin del es;uema contiguo

  • 7/17/2019 Gestion de Memoria

    37/102

    Fundamentos de Computadores II 37

    Sistemas Operativos

    El mapa de proceso se ubica en una ona contigua de la memoriaprincipal.

    roceso)* El #.O. busca un -ueco en memoria de tamao su6iciente para

    alojar su mapa de memoria del proceso que comiena.

    * El #.O. reserva la parte del ueco necesaria ! crea en ella elmapa inicial del proceso* #e establece la &uncin de traduccin% de 6orma que las

    direcciones del programa se correspondan con las direccionese(istentes en el ueco asignado.

    @ard=are requerido)* "egistros valla0registro base ! registro los registros valla est;n desocupados cuando el #.O. toma el controlpara acceder a todo el mapa de memoria.

    5.1. Es;uema $ard%are

    Es;. de mem. basados en asignacin contigua

  • 7/17/2019 Gestion de Memoria

    38/102

    Fundamentos de Computadores II 3'

    Sistemas Operativos

    $ "egistro lmite) #e comprobar; que las direcciones usadas por elproceso no e(cedan el valor almacenado en Bl.

    $ "egistro base) na ve realiada la comprobacin anterior% se suma acada direccin el valor contenido en este registro% de 6orma que seobtiene la direccin 6

  • 7/17/2019 Gestion de Memoria

    39/102

    Fundamentos de Computadores II 3

    Sistemas Operativos

    El !.O. almacena en el (C cules son los valores de los registrosvalla.

    edica una estructura para conocer en todo momento el estado de lamemoria% identi6icando quB uecos est;n libres. 8ormalmente se usa

    una lista en la que se almacena la direccin inicial ! el tamao de cadaueco.

    >a gestin de esta lista obliga a comprobar% al desocupar espacio% si elnuevo espacio libre puede unirse a uecos vecinos.

    roblema)#egCn se van ejecutando procesos van quedando 6ragmentos dememoria libres% que debido a su tamao no podr;n ser usados enasignaciones de espacio a memoria. Este problema se denomina&ragmentacin eterna ! conlleva una mala gestin de memoria.

    #olucin tradicional) /ompactar los uecos de 6orma que quedencontiguos. ara ello es necesario reajustar los registros valla de losprocesos. ?8E?/?E8:E.

    5.3. Gestin del !O

    Es;. de mem. basados en asignacin contigua

  • 7/17/2019 Gestion de Memoria

    40/102

    Fundamentos de Computadores II 4)

    Sistemas Operativos

    El !.O. debe considerar quB espacio% de los uecos libres% se usar;intentando encontrar un equilibrio entre buen aprovecamiento deespacio ! tiempo de respuesta corto% es decir% se aplica un algoritmode decisin ;ue debe ser e&iciente.

    Este problema es un cl;sico) Cmo asignar espacio para suaprovec-amiento ptimoF. E(isten tres posibles en6oques)

    a Mejor ajuste 0bestQ6it. #e elige la ona libre m;s pequea dondequepa el mapa del proceso.$ roblema) /onlleva crear nuevos uecos de tamao pequeo.

    Adem;s% elegir el ueco m;s pequeo obliga a mantenerordenados por tamao los uecos disponibles. 8o es e6iciente

    b eor ajuste. #e busca el ueco m;s grande% intentando evitar la

    generacin de uecos pequeos. #igue precisando mantener elcontrol de los tamaosc El primero que ajuste 06irstQ6it. #uele ser la mejor pol

  • 7/17/2019 Gestion de Memoria

    41/102

    Fundamentos de Computadores II 41

    Sistemas Operativos

    5.4. ,aloracin del es;uema contiguo

    $ 9aloracion)* Espacios independientes para procesos) mediante registros valla* roteccin) mediante registros valla* /ompartir memoria) no es posible* #oporte de regiones)

    $ 8o e(iste 0no a! mecanismo de permisos sobre el espacio

    asignado a cada proceso$ #e reserva espacio para uecos% !a que el espacio asignado al

    proceso en primera instancia debe servir para todo su tiempo devida

    * Ma(imiar rendimiento)$ Mal aprovecamiento de memoria por 6ragmentacin e(terna

    * Mapas de M9 de tamao adecuado)$ 8o permite memoria virtual

    Es;. de mem. basados en asignacin contigua

  • 7/17/2019 Gestion de Memoria

    42/102

    Fundamentos de Computadores II 42

    Sistemas Operativos

    4. ntercambio

  • 7/17/2019 Gestion de Memoria

    43/102

    Fundamentos de Computadores II 43

    Sistemas Operativos

    BuD -acer si no caben todos los programas en memoria principalF

    sar disco 0dispositivoswap como respaldo de la memoria principal. #ino caben en memoria todos los procesos activos% se elige un procesoresidente ! se copia en disco su imagen de memoria

    Epulsar *swap-out+ a los procesos blo;ueados. El proceso dee(pulsin no implica copiar toda la imagen del proceso 0por ejemplo% no

    es preciso ocupar los uecos ni el cdigo% al poder recuperarse6;cilmente del ejecutable. n proceso e(pulsado vuelve a cargarse0swap-in cuando estB listo para ejecutar ! a!a espacio en memoria.

    olticas de asignacin de espacio en s%ap)reasignacin) al crear el proceso se reserva espacio de s=ap.

    8O reasignacin) slo se reserva espacio de s=ap al e(pulsar.0#emejana con estado &suspendido'F

    ntercambio

  • 7/17/2019 Gestion de Memoria

    44/102

    Fundamentos de Computadores II 44

    Sistemas Operativos

    >. )emoria virtual

    >.1. ntroduccin>.3. aginacin>.5. !egmentacin>.4. !egmentacin paginada

    >.>. aginacin por demanda>.. olticas de reemplao>.F. oltica de asignacin de marcos de

    pgina>.@. $iperpaginacin>.. Gestin del espacio de s%ap>.1?. Operaciones sobre las regiones de un

    proceso

  • 7/17/2019 Gestion de Memoria

    45/102

    Fundamentos de Computadores II 45

    Sistemas Operativos

    >a tBcnica de la M9 se usa pr;cticamente en todos los ##OO modernos.Esta tBcnica se basa en trans&erir in&ormacin entre memoriaprincipal 9 memoria secundaria0por lo que involucra varios nivelesde la jerarqu

  • 7/17/2019 Gestion de Memoria

    46/102

    Fundamentos de Computadores II 46

    Sistemas Operativos

    9entajas)

    a Aumento del grado de multiprogramacin. or tanto% aumentoen el rendimiento del sistema

    b osibilidad de ejecutar programas ms grandes que la M9disponible

    El uso de la M9 no implica ;ue se acelere la ejecucin del programa0m;s bien al contrario% debido a la sobrecarga asociada a losmovimientos de in6ormacin entre niveles de la jerarqu

  • 7/17/2019 Gestion de Memoria

    47/102

    Fundamentos de Computadores II 47

    Sistemas Operativos

    $ gina6 Iona contigua de memoria de determinado tama2o. 0ormotivos de e6iciencia se suele trabajar siempre con tamaos potenciade 2. Ej)4 R-.

    $ Organiacin)S El mapa de memoria del proceso se considera dividido en p;ginas.

    S >a memoria principal se considera dividida en marcos de p;gina0tamao de marco T tamao de p;gina.S >os marcos contendr;n p;ginas de los procesos en ejecucinS >a tabla de pginas 0: relaciona cada p;gina con el marco que

    la contiene. El ard=are de traduccin 0MM usa la tabla dep;ginas para traducir direcciones lgicas a 6

  • 7/17/2019 Gestion de Memoria

    48/102

    Fundamentos de Computadores II 4'

    Sistemas Operativos

    * /ada entrada de la tabla de p;ginas contendr;% adem;s del nCmerode marco asociado con la p;gina)

    a+ n&ormacin de proteccin) tipo de acceso permitido +JHb+ (it de pgina vlida:invlida) para indicar si dica entradacontiene una traduccin asociada% es decir% si se corresponderealmente con un marco

    c+ (it de pgina accedida *Ref+) activado cuando se acceded+ (it de pgina modi&icada *Mod+) activado cuando se escribee+ (it de desactivacin de cac-D) se usa cuando la entrada

    corresponde con direcciones de ED#$ :amao de p;gina) >a eleccin de tama2o de pgina est;condicionada por diversos 6actores% entre los que a! que conseguirequilibrio)* otencia de 2 ! mCltiplo del tamao del bloque de disco* mejor pequeo por)

    $ Menor 6ragmentacin$ #e ajusta mejor al conjunto de trabajo

    * mejor grande por)$ :ablas m;s pequeas$ Mejor rendimiento de dispositivos de ED#

    * /ompromiso 0entre 2R ! 1"R

    )emoria virtual

    i i l

  • 7/17/2019 Gestion de Memoria

    49/102

    Fundamentos de Computadores II 4

    Sistemas Operativos

    $ ireccin)na direccin lgica se obtiene a partir de)

    nU p;gina P desplaamiento$ roblema)

    * >a paginacin no o&rece una solucin ptima. >o idealser

  • 7/17/2019 Gestion de Memoria

    50/102

    Fundamentos de Computadores II 5)

    Sistemas Operativos

    ;gina -!te

    +egistro base de la :0+?E

    7123

    n

    ireccin lgica

    M) direcciones 6

  • 7/17/2019 Gestion de Memoria

    51/102

    Fundamentos de Computadores II 51

    Sistemas Operativos

    $ roblema) ragmentacin% la memoria asignada es ma!or que lamemoria requerida ! por lo tanto% se desperdicia cierta cantidad deespacio

    :. ;ginas roceso 1;gina 7

    ;gina 1

    ;gina M

    Marco 2

    Marco 3

    Marco 8

    ..............

    :. ;ginas roceso 2;gina 7

    ;gina 1

    ;gina

    Marco 4

    Marco 1

    Marco 7

    ..............

    Marco 7

    Memoria

    Marco 1

    Marco 2

    Marco 3

    Marco 4

    Marco 8

    ;g. 1 r. 2

    ............

    ;g. 7 r. 1

    ;g. 1 r. 1

    ;g. M r. 1

    ;g. 7 r. 2

    ;g. r. 2

    )emoria virtual

    ) i i t l

  • 7/17/2019 Gestion de Memoria

    52/102

    Fundamentos de Computadores II 52

    Sistemas Operativos

    $ Otras cuestiones)* En este esquema% el #.O. mantiene una tabla de pginas por

    cada proceso. /uando se produce un cambio de conte(to se indicaa la MM quB tabla de p;ginas usar* El #.O. mantiene una 8nica tabla de pginas para s mismo. As

  • 7/17/2019 Gestion de Memoria

    53/102

    Fundamentos de Computadores II 53

    Sistemas Operativos

    $ ?mplementacin de la tabla de p;ginas)* >as tablas de p;ginas se mantiene normalmente en memoria

    principal. roblemas) e6iciencia ! gasto de almacenamientoa+E&iciencia) cada acceso lgico requiere dos accesos a memoriaprincipal% a la tabla de p;ginas P al propio dato o instruccin.#olucin) cacde traducciones *V :>-

    b+Gasto de almacenamiento) tablas mu! grandes. Ejemplo)p;ginas 4R% dir. lgica 32 bits ! 4 b!tes por entrada% la tabla dep;ginas de cada proceso tendr; 4M-. #olucin) tablas

    multinivel! tablas invertidas$ 9aloracin)* Espacios independientes para procesos) mediante tablas de p;ginas* roteccin) mediante tablas de p;ginas* /ompartir memoria) entradas corresponden con mismo marco 0bajo

    supervisin del #O dos procesos pueden compartir una p;ginaasociada al mismo marco

    * #oporte de regiones) bits de proteccin% bit de valide) no sereserva espacio para -uecos

    * Ma(imiar rendimiento) #i% al permitir esquemas de memoria m;s6le(ibles

    * Mapas de tamao adecuado) s

  • 7/17/2019 Gestion de Memoria

    54/102

    Fundamentos de Computadores II 54

    Sistemas Operativos

    :>- 0:ranslation >ooNQaside -u66er) /onsta de una memoria asociativaconin6ormacin sobre Cltimas p;ginas accedidas.

    $ ara el multiproceso% e(isten varias posibilidades)

    * >a :>- no inclu9e in&ormacin del proceso. En este caso% abr; queinvalidar la :>- en los cambios de conte(to* Entradas en :>- inclu9en in&ormacinsobre proceso) en este caso%

    debe e(istir un registro de / para mantener la identi6icacin delproceso actual

    $ ?mplementacin* $J) >a MM consulta la :>- ! si 6alla% se usa la : en memoria.

    $ 9entajas) Es un proceso mu! r;pido$ ?nconvenientes) Actualiar la : en cambios de conte(to ! a! que

    invalidar la :>- cuando se produce un cambio de conte(to 0si no tienein6ormacin del ?

    * !J6 >a MM no usa la :% sino que slo consulta :>-. En caso de 6allo%se activa el #O% que a de buscar la entrada en la tabla de p;ginas0mediante programa% e insertar en la :>- la traduccin eca% de 6ormaque se pueda reutiliar.

    $ 9entajas) 6le(ibilidad% !a que la tabla de p;ginas puede ser de6inida aconveniencia% sin restricciones impuestas por el ard=are

    $ ?nconvenientes) Es menos e6iciente% !a que parte del proceso detraduccin se realia mediante programa.

    )emoria virtual

    ) i i t l

  • 7/17/2019 Gestion de Memoria

    55/102

    Fundamentos de Computadores II 55

    Sistemas Operativos

    na de las opciones disponibles para disminuir el tamao requerido por lastablas de p;ginas es la tabla de pginas multinivel

    $ Organiacin)#e trata de una tabla de p;ginas organiadas en M niveles)* Entrada de : de nivel R apunta a : de nivel RP1* Entrada de Cltimo nivel apunta a marco de p;gina

    $ ireccin) >a direccin lgica especi6ica la entrada a usar en cada nivel

    $ 1 campo por nivel P desplaamiento

    $ Accesos)n acceso lgico supone M P 1 accesos a memoria. #olucin)uso de :>-

    $ ?nvaliadacin)#i todas las entradas de una : son inv;lidas% no se

    almacena esa : ! se pone inv;lida la entrada correspondiente de la :superior

    $ Aorro de espacio)#i el proceso usa una parte pequea de su espaciolgico% se consigue aorro en espacio para almacenar :s

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    56/102

    Fundamentos de Computadores II 56

    Sistemas Operativos

    1ernivel 2U nivel -!te

    +egistro base de la :0+?E

    7123

    n

    ireccin lgica

    M) direcciones 6

  • 7/17/2019 Gestion de Memoria

    57/102

    Fundamentos de Computadores II 57

    Sistemas Operativos

    $ Ejemplo) roceso que usa 12M- superiores ! 4M- in6eriores

    * 2 niveles% p;ginas de 4R% dir. lgica 32 bits 017 bits por nivel ! 4b!tes por entrada

    * :amao) 1 : 81P 4 : 82T 5 W 4R- T 27R- 06rente a 4M-

    $ 9entajas adicionales) permite compartir :s intermedias ! slo serequiere que estB en memoria la : de nivel superior. >as restantes

    pueden estar en disco ! traerse por demanda

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    58/102

    Fundamentos de Computadores II 5'

    Sistemas Operativos

    , e , # r ! a

    r ! , e r ! / e '

    T a b ' a e @ ? ! a -

    .

    .

    .

    & a b ' a - e @ ? ! a -

    - e ? % # ! / e '

    .

    .

    .

    .

    .

    .

    .

    .

    .

    r ! , e r ! / e '

    T a b ' a e @ ? ! a -

    A

    A

    A

    A

    I

    I

    @ ? ! a 0

    @ ? ! a 1 0 2 3

    @ ? ! a 1 0 2 4

    @ ? ! a 2 0 4 ;

    @ ? ! a 2 0 4 *

    @ ? ! a 3 0 ; 1

    @ ? ! a 1 0 4 * 5 ; 5 7 2 B 2 0 < 1 8

    @ ? . 1 0 4 ; 5 5 2 7 2 B 2 0 < 1 0 2 4 8

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    59/102

    Fundamentos de Computadores II 5

    Sistemas Operativos

    Otra alternativa para disminuir el espacio necesario por la tabla de p;ginases la tabla de pginas invertida

    $ Organiacin)* >a tabla contendr; tantas entradas como marcos de p;gina a!a.* /ada entrada almacena la p;gina cargada en dico marco junto con

    sus caractera MM usa una :>- convencional% pero si 6alla la traduccin se

    accede a la tabla de p;ginas invertida. Al estar la tabla organiada pormarcos no se puede acer una bCsqueda directa. eber

  • 7/17/2019 Gestion de Memoria

    60/102

    Fundamentos de Computadores II 6)

    Sistemas Operativos

    pid p;gina

    -!te;ginapid

    ireccin lgica

    -!tei

    i

    ireccin 6

  • 7/17/2019 Gestion de Memoria

    61/102

    Fundamentos de Computadores II 61

    Sistemas Operativos

    /on la paginacin la MM no dispone de in6ormacin sobre las regionesde los procesos! slo entiende de p;ginas. or esta ran% el #O debemantener una lista de las pginas ;ue componen cada regin% loque supone varias desventajas)$ Al crear una regin a! que cuidar que todas las p;ginas

    asociadas tengan la misma in6ormacin de control$ ara poder compartir una regin es preciso que las entradas de

    varios procesos apunten a los mismos marcos

    !egmentacin) es un esquema @J que intenta dar soporte directo a lasregiones. En Bl se considera el mapa de memoria como compuesto por

    varios segmentos.#e puede considerar que consisten en una generaliacin de los

    registros valla base 9 lmite% pero usando un par de registros porcada segmento

    >.5. !egmentacin

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    62/102

    Fundamentos de Computadores II 62

    Sistemas Operativos

    $ ireccin)na direccin lgica estar; compuesta por un nCmero desegmento ! un desplaamiento en el mismo.

    $ :raduccin) >a 6orma de realiar la traduccin puede apreciarse en laimagen siguiente)

    e r ! a

    & a b ' a e - e ? e & -

    ' ! & e b a - e

    -

    ! r e c c ! ' ? ! c a

    E c e c !

    * +

    S I

    N O

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    63/102

    Fundamentos de Computadores II 63

    Sistemas Operativos

    $ :abla de segmentos)En este caso% la MM usa una tabla de segmentos0:#.

    $ Organiacin)* El #O mantiene una :# por proceso% de 6orma que en cada cambio

    de conte(to se noti6ica a MM cu;l debe usar* /ada entrada de :# contiene 0entre otros)

    $ +egistro base ! l

  • 7/17/2019 Gestion de Memoria

    64/102

    Fundamentos de Computadores II 64

    Sistemas Operativos

    $ 9aloracin6

    * Espacios independientes para procesos) mediante su propia :#% quecrea un espacio lgico independiente

    * roteccin) mediante :#% o6reciendo espacios disjuntos de memoria* /ompartir memoria) bajo control del #O es posible que dos o m;s

    procesos tengan un segmento asociado a la misma ona dememoria

    * #oporte de regiones) bits de proteccin* Ma(imiar rendimiento ) 8o lo ma(imia% por la 6ragmentacine(terna

    * Mapas de tamao adecuado) 8o cumple este objetivo porque nopermite implementar e6icientemente un sistema de memoria virtual

    or tanto% tal ! como se a presentado se usa en mu9 pocos!O reales

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    65/102

    Fundamentos de Computadores II 65

    Sistemas Operativos

    #e intenta aunar las ventajas de ambos es;uemas) segmentacin !paginacin)* #egmentacin) soporte para regiones.* aginacin) mejor uso del espacio de memoria.

    $ Organiacin)* Entrada en :# apunta a una : para el segmento.* El espacio del segmento est; compuesto de varias p;ginas% de 6orma

    que su espacio no tiene que ser contiguo.

    >.4. !egmentacin paginada

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    66/102

    Fundamentos de Computadores II 66

    Sistemas Operativos

    e r ! a

    & a b ' a e - e ? e & -

    ' ! & e ! r . T . @ ? .

    ! r e c c ! ' ? ! c a

    E c e c !

    *S I

    N O

    -

    ! r e c c ! = - ! c a

    & a b ' a e @ ? ! a - a r a - e ? e & -

    )emoria virtual

    $:raduccin)>a traduccin se lleva a cabo segCn se indica.

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    67/102

    Fundamentos de Computadores II 67

    Sistemas Operativos

    $ 9aloracin)

    * Espacios independientes para procesos) mediante :#* roteccin) mediante :#* /ompartir memoria) bajo control del #O% podemos acer que una

    misma entrada apareca en di6erentes :# 0es decir% pueda ser usadopor varios procesos

    * #oporte de regiones) bits de proteccin

    * Ma(imiar rendimiento) la paginacin aproveca e6icientemente elespacio de memoria.* Mapas de tamao adecuado) permite esquemas de memoria virtual

    $ 9entajas) rente a paginacin sin segmentos 6acilita al #O la gestin delas regiones% pero requiere @J m;s complejo

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    68/102

    Fundamentos de Computadores II 6'

    Sistemas Operativos

    na ve analiados los di6erentes esquemas ard=are vamos a ver cmose articulan para construir un esquema de memoria virtual 0estosesquemas tambiBn pueden usarse sin memoria virtual% pero en laactualidad su uso est; siempre vinculado a la memoria virtual

    $ 8ormalmente la memoria virtual se constru!e sobre esquemas de

    paginacin pura o segmentada. e esta 6orma% la unidad de in6ormacinintercambiada entre memoria principal ! secundaria es la p;gina.

    $ 8ormalmente la trans6erencia de in6ormacin se lleva a cabo bajodemanda 0paginacin por demanda. e esta 6orma% cuando unproceso necesita acceder a una p;gina que no est; en memoria

    principal% se genera un 6allo de p;gina ! el #O se encarga de trans6erirladesde la memoria secundaria. #i al traerla no a! espacio su6iciente enM% ser; necesario desalojar alguna de las p;ginas actuales 0ello seace mediante un algoritmo de reemplazo

    >.>. aginacin por demanda

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    69/102

    Fundamentos de Computadores II 6

    Sistemas Operativos

    $ >a construccin de un sistema de memoria virtual sobre un procesadorcon paginacin implica usar un bit de valide en las entradas de la

    tabla de pginas% que indica si la p;gina es v;lida. Estar;n marcadascomo inv;lidas todas las p;ginas que no residen en M% as< como las queconstitu!en uecos en el mapa de memoria.

    $ ara las entradas correspondientes a p;ginas no residentes en M% laentrada principal% en lugar de almacenar el marco donde reside

    contendr; la direccin del dispositivo de memoria en ;ue seencuentra almacenada. e 6orma que cuando se produce un acceso auna de estas p;ginas% se produce una e(cepcin ! se activa el #O%responsable de acer la trans6erencia desde memoria secundaria.

    $ Algunos sistemas tambiBn usan la tBcnica de prepaginacin. Al ocurrir

    un 6allo de p;gina no slo traen la p;gina en cuestin% sino tambiBn lascercanas% al suponerse que se usar;n en un corto plao de tiempo. >ae6ectividad de esta tBcnica depender; del acierto de la prediccin.

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    70/102

    Fundamentos de Computadores II 7)

    Sistemas Operativos

    9eamos cmo se gestiona la ocurrencia de un &allo de pgina)$ >a MM genera una e(cepcin. 8ormalmente deja en un registro

    especial la direccin que caus el 6allo$ #e activa el #O% que comprueba)

    * #i la p;gina es inv;lida% se aborta el proceso 0solucin normal%aunque tambiBn podr

  • 7/17/2019 Gestion de Memoria

    71/102

    Fundamentos de Computadores II 71

    Sistemas Operativos

    $ En el peor de los casos un 6allo de p;gina puede suponer dosoperaciones de ED#)

    a #alvaguarda de la p;gina e(pulsadab >ectura de la p;gina nueva

    os pol

  • 7/17/2019 Gestion de Memoria

    72/102

    Fundamentos de Computadores II 72

    Sistemas Operativos

    $ Objetivo) Minimiar la tasa de 6allos de p;gina.

    $ /ada algoritmo descrito tiene versin local ! global)* >ocal) criterio se aplica a las p;ginas residentes del proceso* ,lobal) criterio se aplica a todas las p;ginas residentes

    $ Algoritmos a estudiarA. Xptimo-. ?O/. +eloj 0o segunda oportunidad. >+

    E. -u%%erin#de p;ginas. +etencin de p;ginas en memoria

    >.. olticas de reemplao

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    73/102

    Fundamentos de Computadores II 73

    Sistemas Operativos

    A+ Algoritmo ptimo

    $ /riterio) ;gina residente que tardar; m;s en accederse$ ?mplementacin) ?rrealiable% !a que supone disponer de una prediccin

    6iable del uso de las p;ginas en un 6uturo a medio plao$ 9ersin local ! global$ ?nterBs para estudios anal

  • 7/17/2019 Gestion de Memoria

    74/102

    Fundamentos de Computadores II 74

    Sistemas Operativos

    $ /riterio) se elimina la p;gina que lleva m;s tiempo residente

    $ ?mplementacin) ;cil* ;ginas residentes en orden ?O *V se e(pulsa la primera* 8o requiere ard=are especial

    * En el caso de estrategia local se mantiene una lista de p;ginas porcada proceso. En el caso global% basta con una Cnica lista

    $ roblema)* na p;gina que lleva muco tiempo residente puede seguir

    accediBndose 6recuentemente.

    * #u criterio no se basa en el uso de la p;gina.* Anomal

  • 7/17/2019 Gestion de Memoria

    75/102

    Fundamentos de Computadores II 75

    Sistemas Operativos

    #e trata de una modi6icacin del algoritmo ?O% para evitar que unap;gina residente desde ace tiempo sea desalojada pese a estar siendousada. ara ello se usa el bit de re&erenciae% de las p;ginas% con loque se detecta su uso

    $ /riterio)* #i la p;gina elegida por ?O no tiene activo el bit e% es la p;ginae(pulsada

    * #i lo tiene activo se da 2Y oportunidad antes de e(pulsar) sedesactiva el bit e% se pone p;gina al 6inal de ?O% se aplicacriterio a la siguiente p;gina

    $ ?mplementacin) #e puede implementar el orden ?O mediante unalista circular con una re6erencia a la primera p;gina de la lista) sevisualia como un reloj donde la re6erencia a la primera p;gina es laaguja del reloj

    C+ Algoritmo de segunda oportunidad o del reloj

    )emoria virtual

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    76/102

    Fundamentos de Computadores II 76

    Sistemas Operativos

    $ /riterio) -asado en pro(imidad temporal de re6erencias) p;ginaresidente menos recientemente usada como p;gina a eliminar

    $ ?mplementacin)osible implementacin con @J espec

  • 7/17/2019 Gestion de Memoria

    77/102

    Fundamentos de Computadores II 77

    Sistemas Operativos

    $ /riterio)Esta tBcnica intenta evitar el problema con las pginasmodi&icadas que an de ser desalojadas. En este caso% el tratamientodel 6allo de p;gina implica realiar dos accesos a disco% uno paraalmacenar la p;gina modi6icada ! para traer la nueva

    $ ?mplementacin)* Mantiene una reserva de marcos libres. /uando se produce un

    6allo de p;gina% siempre se usa un marco libre 0es decir% en verdadno a! reemplao* /uando el nCmero de marcos libres queda por debajo de cierto

    umbral se activa un &demonio de paginacin'% que aplicarepetidamente el algoritmo de reemplao)

    $ ;ginas no modi6icadas pasan a lista de marcos libres$ ;ginas modi6icadas pasan a lista de marcos modificados:

    cuando se escriban a disco pasan a lista de libresL suelenescribirse en tandas 0lo que mejora el rendimiento

    * #i se re6erencia una p;gina mientras est; en estas listas) serecupera directamente de la lista 0no a! ED#% lo que puedemejorar el comportamiento de algoritmos poco e6icientes

    E+ (u&&ering de pginas

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    78/102

    Fundamentos de Computadores II 7'

    Sistemas Operativos

    $ /riterio67o todas las p;ginas son reemplaables

    $ Aplicacin)* #e aplica a p;ginas del propio #.O) si sus p;ginas est;n 6ijas en

    memoria% su gestin es m;s sencilla

    * :ambiBn se aplica mientras se ace MA sobre una p;gina. >ap;gina no ser; reemplaable asta que 6inalice la operacin sobreella

    $ ?mplementacin) Algunos #.O. o6recen a las aplicaciones un serviciopara &ijar en memoria una o m;s p;ginas de su mapa) adecuado para

    procesos de tiempo real% aunque puede a6ectar al rendimiento delsistema. En O#?H se trata del servicio mlock

    #+ "etencin de pginas en memoria

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    79/102

    Fundamentos de Computadores II 7

    Sistemas Operativos

    El #O deber; decidir cu;ntos marcos de p;gina asigna a cada proceso)a Asignacin ijab Asignacin in;mica

    A Asignacin 6ija

    $ 78mero constante de marcos asignados al proceso. uede dependerde las caractera arquitectura impone el 7K mnimo de marcos de pgina) m.F. oltica de asignacin de marcos de pgina

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    80/102

    Fundamentos de Computadores II ')

    Sistemas Operativos

    $ El n8mero de marcos asignados a un proceso es variabledependiendo del comportamiento del proceso 0! posiblemente de losdem;s procesos.

    $ !e adaptaa las di6erentes 6ases por las que puede pasar un proceso$ #e pueden usar tanto estrategias de reemplao global como local.

    * Asignacin din;mica P reemplao local) el proceso va aumentando odisminu!endo su conjunto residente dependiendo de sucomportamiento 0comportamiento relativamente predecible

    * Asignacin din;mica P reemplao global) los procesos compiten por

    el uso de las p;ginas entre ellos 0comportamiento di6

  • 7/17/2019 Gestion de Memoria

    81/102

    Fundamentos de Computadores II '1

    Sistemas Operativos

    $ e6inicin):asa e(cesiva de 6allos de p;gina de un proceso o en elsistema% debido a que el nCmero de marcos de p;gina asignados esinsu6iciente para albergar el conjunto residente

    * /on asignacin 6ija. @iperpaginacin en el proceso i siconjunto residente de iZ conjunto de trabajo i

    * /on asignacin variable. @iperpaginacin en el sistema sinU marcos disponibles Z conjuntos de trabajo de los procesos

    $ roblema) decae el grado de uso de la /. >os procesos est;n casisiempre en colas de dispositivo de paginacin.

    $ #olucin) controlar la carga)

    * isminuir el grado de multiprogramacin%* #uspender uno o m;s procesos liberando sus p;ginas residentes

    $ /mo detectar esta situacinF

    >.@. $iperpaginacin *t-ras-ing+

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    82/102

    Fundamentos de Computadores II '2

    Sistemas Operativos

    ? r a e % ' & ! r ? r a a c !

    E

    &!'!6

    a

    c

    !1

    0

    4

    e

    'a

    E

    C

    5

    #e ver;n a continuacin algunas estrategias de control de la carga detrabajo)A. Estrategia del conjunto de :rabajo-. Estrategia de administracin basada en la 6recuencia de 6allos

    de p;gina/. Estrategia de control de carga para algoritmos de reemplao

    globales

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    83/102

    Fundamentos de Computadores II '3

    Sistemas Operativos

    A+ Estrategia del conjunto de trabajo

    $ Objetivo) eterminar el conjunto de trabajo de cada proceso% es decir% lasp;ginas usadas por el proceso en las Cltimas 8 re6erencias

    $ roceso)* #i el conjunto de trabajo decrece se liberan marcos.* #i el conjunto de trabajo crece se asignan nuevos marcos.* #i no a! marcos disponibles se suspender; algCn0os proceso0s% que

    se reactivan cuando a!a marcos su6icientes

    $ /ondicin) #i el #O es capa de detectar el conjunto de trabajo de cadaproceso% puede especi6icarse una estrategia de asignacin dinmicacon reemplao local

    $ ?mplementacin) 'i&cil% !a que precisar

  • 7/17/2019 Gestion de Memoria

    84/102

    Fundamentos de Computadores II '4

    Sistemas Operativos

    $ Objetivo) /ontrolar la tasa de 6allos de p;gina por proceso$ roceso)* #i tasa Z l

  • 7/17/2019 Gestion de Memoria

    85/102

    Fundamentos de Computadores II '5

    Sistemas Operativos

    $ Objetivo) /ontrolar la iperpaginacin utiliando un algoritmo de controlde carga. #e da en algoritmos de reemplao global.

    $ roceso) Ejemplo) 8?H 4.3 -#

    * +eemplao global con algoritmo del reloj. 9ariante con dos&manecillas') a! dos punteros en ve de uno* so de ,u%%erin#de p;ginas. n demonio de paginacin controla el

    nCmero de marcos libres* #i el nCmero de marcos libres Z umbral% el demonio de paginacin

    aplica reemplao

    * #i se repite con 6recuencia la 6alta de marcos libres) un proceso&s=apper' suspende procesos

    C+ Estrategia de control de carga para algoritmos dereemplao globales

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    86/102

    Fundamentos de Computadores II '6

    Sistemas Operativos

    >a asignacin del espacio de s=aping puede seguir dos tBcnicas)a reasignacin de s=ap)Al crear la nueva regin se reserva espacio de s=ap para ella. Al

    e(pulsar una p;gina% con esta estrategia% !a abr; espacio des=ap para almacenar su contenido

    b #in preasignacin de s=ap)

    Al crear una regin no se ace reserva de s=ap. >as p;ginas de laregin se ir;n tra!endo a M por demanda desde el soporte dela regin. #lo se reserva espacio de s=ap para una p;ginacuando es e(pulsada por primera ve

    :endencia actual) #e suele utiliar m;s la estrategia sin preasignacin%

    puesto que la preasignacin de s=ap conlleva un peor aprovecamientode memoria secundaria 0toda p;gina debe tener reservado espacio des=ap.

    >.. Gestin del espacio de s%ap

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    87/102

    Fundamentos de Computadores II '7

    Sistemas Operativos

    #e considerar;n a continuacin las siguientes operaciones sobre lasregiones de un proceso en un sistema con memoria virtual)a /reacin de regin)

    Al crear el mapa inicial o por solicitud posteriorb >iberacin de regin)

    Al terminar el proceso o por solicitud posterior

    c /ambio de tamao de regin)Aumento de tamao) a! que comprobar que no se solape con

    otra regin ! equiparar las nuevas p;ginas a las !a e(istentesen la regin.

    El caso de e(pansin de la pila es algo m;s complejo.isminucin de tamao

    d uplicado de regin)Operacin requerida por el servicio forkde O#?H#e duplica todo ! se trata de una operacin costosa

    >.1?. Operaciones sobre regiones de un proceso

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    88/102

    Fundamentos de Computadores II ''

    Sistemas Operativos

    a /reacin de nueva reginAcciones)

    $ Al crear una regin no se asigna M 0 se ar; por demanda.$ #e marcar;n las p;ginas como no residentes 9 vlidas 06allo de

    p;gina cuando se intenten acceder$ El #.O. actualia la tabla de regiones ! guarda la in6ormacin

    correspondiente a las p;ginas de la regin% rellenando las entradas de la:. ebe buscar un ueco en el mapa de memoria para asignar a nueva

    regin.$ #egCn el soporte)* #oporte en arc-ivo) ;ginas marcadas como Car#ar de arcivo

    (C.$ * se almacena direccin del bloque del arcivo correspondiente* #in soporte) ;ginas marcadas como e""enar con ceros (C$ ! se

    inicialia cuando a! un 6allo de p;gina$ #i la regin es privada con preasignacin de sap% se reserva espacio

    de sap$ #i la regin es la pila)

    * #e copian los argumentos iniciales del proceso en bloque0s de sap

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    89/102

    Fundamentos de Computadores II '

    Sistemas Operativos

    $ Algoritmo de e(pulsin)* #i la regin es privada se escribe p;gina en sap #i no a!

    preasignacin de espacio s=ap% en la primera e(pulsin se reservaespacio. osteriores 6allos se sirven de ese bloque de sap

    * #i la regin es compartidase escribe p;gina en soporte% para quetodos los procesos puedan ver las modi6icaciones. :odos los 6allos sesirven del soporte

    $ En la creacin del mapa inicial 0servicio execen O#?H% se crean lasregiones segCn sus caracteros uecos se marcan como p;ginas inv;lidas% tanto para el @J comopara el #.O.

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    90/102

    Fundamentos de Computadores II )

    Sistemas Operativos

    T a b ' a e @ ? ! a -

    . . . . . . . . . . . . . . . . . . . . . . . . . . .

    > ' G % e T 7 a r c " . 8R H A

    > ' G % e 7 a r c " . 8R A

    R e ' ' e a r c 0R A

    > ' G % e S 7 - a 8R A

    . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . .

    S a A r c " ! E $ e c % & a b ' e

    C ! ?

    D a & - c a ' r ! ! c ! a '

    . . . . . . . . . . . . . . . .

    C a b e c e r a

    ! ' a> ' G % e S

    > ' G % e T

    > ' G % e

    1 @ ? .C ! ?

    1 @ ? .D a & . . ! .

    1 @ ? .

    D a & . . . ! .

    1 @ ? . ! ' a

    Estado inicial de ejecucin en un sistema sin preasignacin de s=ap

    )emoria virtual

  • 7/17/2019 Gestion de Memoria

    91/102

    Fundamentos de Computadores II 1

    Sistemas Operativos

    b >iberacin de regin

    $ Acciones)* Actualiar tabla de regiones para eliminar regin* Marcar como inv;lidas p;ginas asociadas* #i la regin es privada% se libera el espacio de sap asociado

    $ /uando)* #olicitud e(pl

  • 7/17/2019 Gestion de Memoria

    92/102

    Fundamentos de Computadores II 2

    Sistemas Operativos

    c /ambio de tamao

    $ Acciones)* #i disminu!e)$ #e ajusta la tabla de regiones.$ #e marcan p;ginas como inv;lidas.$ #e libera espacio de s=ap

    * #i aumenta)$ #e comprueba que no a!a solapamiento.

    $ #e 6ijan nuevas p;ginas como no residentes ! con las mismascaracter

  • 7/17/2019 Gestion de Memoria

    93/102

    Fundamentos de Computadores II 3

    Sistemas Operativos

    d uplicado de una regin$ Acciones)

    * #e duplican las regiones privadas del padre ! se comparten las noprivadas

    $ >a copia de una regin de un proceso en el mapa de memoria de otroproceso es una operacin costosa% !a que tambiBn se debe copiar elcontenido.

    $ roblema) >a ejecucin de forkser

  • 7/17/2019 Gestion de Memoria

    94/102

    Fundamentos de Computadores II 4

    Sistemas Operativos

    $ ?mplementacin de /OJ* #e comparten las p;ginas de regiones duplicadas

    * #e marcan de slo lectura ! con bit de /OJ.* Al realiar la primera escritura se produce un 6allo de protecccin !se genera una copia privada para el proceso que escribe.

    * >o normal es que a!a varios procesos con misma regin duplicada%por lo que e(iste un contador de uso por p;gina.

    * /ada ve que se crea copia privada se decrementa contador% !a quea! un proceso menos trabajando sobre la copia compartida.

    * #i llega a 1% se desactiva el bit /OJ% al no aber duplicados

    $ O+R con /OJ. #e comparten todas las regiones. >as regiones privadasse marcan como /OJ en padre e ijo% el resultado de la optimiacin esque en ve de duplicar todo el espacio de memoria slo se duplica la :.

  • 7/17/2019 Gestion de Memoria

    95/102

    Fundamentos de Computadores II 5

    Sistemas Operativos

    >. Arc-ivos pro9ectados en

    memoria

    Arc-ivos pro9ectados en memoria

  • 7/17/2019 Gestion de Memoria

    96/102

    Fundamentos de Computadores II 6

    Sistemas Operativos

    $ En quB consisteF* +ecordemos que en un sistema con M9 se acen corresponder las

    entradas de la : con bloques de un arcivo ejecutable.* >a tBcnica de la pro!eccin permite usar esta misma idea% pero con

    cualquier arcivo.* El #.O. permite que un programa solicite la correspondencia de una

    ona de su mapa de memoria con los bloques de un arcivocualquiera 0!a sea completo o en parte.

    * En la solicitud el programa indicar; el tipo de acceso que desea paralas p;ginas asociadas al arcivo.

    $ #ervicio)* >a generaliacin de la tBcnica de memoria virtual permite o6recer a

    los usuarios una &orma alternativa de acceder a los arc-ivos.

    Arc-ivos pro9ectados en memoria

  • 7/17/2019 Gestion de Memoria

    97/102

    Fundamentos de Computadores II 7

    Sistemas Operativos

    T a b ' a e @ ? ! a -

    . . . . . . . . . . . . . . . . . . . . . . . . . . .> ' # G % e 0 7 a r c " . 8R 3 A

    > ' # G % e N 7 a r c " . 8R 3 A

    . . . . . . . . . . . . . . . . . . . . . . . . . . .

    . . . . . . . . . . . . . . . . . . . . . . . . . . . A r c " ! / #

    > ' # G % e 0

    > ' # G % e 1

    > ' # G % e 2

    > ' # G % e N

    > ' # G % e 2

    . . . . . . . . . . . . .

    1 0 2 4 0

    + a a e , e , # r ! a

    C ! ? #

    D a & # - c # / a ' # r ! ! c ! a '

    D a & # - - ! / a ' # r ! ! c ! a '

    5 ! ' a

    A r c " !/ # 5 r # K e c & a #

    1 J @ ? .A r c " ! / #

    L ' & ! , a @ ? .A r c " ! / #

    $roceso) #e rellenan las entradas de la : correspondientes con )S;gina no residente%

    S/A 0cargar de arcivo%SrivadaDcompartida !Sroteccin 0indicada en la llamada.

    e esta 6orma%cuando el

    programa accedea una posicinde memoriaasociada alarcivo pro!ectado%est; accediendo

    realmenteal arcivo

    Arc-ivos pro9ectados en memoria

  • 7/17/2019 Gestion de Memoria

    98/102

    Fundamentos de Computadores II '

    Sistemas Operativos

    $ 9entajas) #e trata por tanto de una 6orma alternativa de acceso aarcivos% 6rente a las llamadas readDrite e esta 6orma se producen)

    * )enos llamadas al sistema lo que se traduce en una notablemejora de los tiempos de acceso.

    * !e evitan copias intermedias de la in6ormacin !a que el #.O.trans6iere directamente la in6ormacin entre la regin de memoria !el arcivo.

    * !e &acilita la programacin% !a que una ve pro!ectado se accede

    al arcivo como si 6uera una estructura de datos en memoria

    $ Ejemplo) :

  • 7/17/2019 Gestion de Memoria

    99/102

    Fundamentos de Computadores II

    Sistemas Operativos

    . !ervicios de gestin de

    memoria

    !ervicios de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    100/102

    Fundamentos de Computadores II 1))

    Sistemas Operativos

    El gestor de memoria realia 6unciones internas. or eso% o6rece pocosservicios directos para las aplicaciones. -;sicamente est;n relacionados

    con la pro!eccin de arcivos)

    * O#?H$ ro!ectar un arcivo) mmap$ espro!ectar un arcivo) munmap

    * Jin32$ ro!ectar un arcivo) 2 pasos)

    * /rear pro!eccin) CreateFileMapping* +ealiar pro!eccin) MapViewOfFile

    $ espro!ectar un arcivo) UnmapViewOfFile

    !ervicios de gestin de memoria

  • 7/17/2019 Gestion de Memoria

    101/102

    Fundamentos de Computadores II 1)1

    Sistemas Operativos

    void 8mmap(void 8direc si9e!t "on int prot int indic int desc o%%!t desp$:

    Establece la pro!eccin entre el espacio de direcciones de un proceso ! unarcivo.

    * evuelve la direccin de memoria donde se a pro!ectado el arcivo direc: direccin donde pro!ectar. ,eneralmente se utilia 8>>%

    con lo que el #.O. elige la direccin por su cuenta

    lon:especi6ica el nCmero de b!tes a pro!ectar prot: el tipo de acceso% lectura 0+O:[+EA% escritura0+O:[J+?:E o ejecucin 0+O:[EHE/% o cualquier combinacinde ellas

    indic:propiedades sobre la regin% compartida 0MA[#@A+E% unproceso ijo compartir; la regin con el padre% privada0MA[+?9A:E% el ijo obtiene copia propia de la regin% 6ija

    0MA[?HE% el arcivo a de pro!ectarse en una direc\cinespec

  • 7/17/2019 Gestion de Memoria

    102/102

    void munmap(void 8direc si9e!t "on$:

    espro!ecta parte del espacio de direcciones de un proceso desde ladireccin direcasta direc+lon.