memoria - sistemas operativos

Upload: angel-maillo

Post on 04-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Memoria - Sistemas Operativos

    1/62

    1

    Gestin de Memoria

    Captulo 3

    3.1 Gestin bsica de memoria

    3.2 Intercambio (swapping)3.3 Memoria virtual

    3.4 l!oritmos de sustitucin de p!inas

    3." Modelando al!oritmos de sustitucin de p!inas

    3.# Cuestiones de dise$o en sistemas pa!inados3.% Cuestiones de implementacin

    3.& 'e!mentacin

  • 7/21/2019 Memoria - Sistemas Operativos

    2/62

    2

    Introduccin (1)

    Idealmente los pro!ramadores *uieren memoria+ muc,a rpida no voltil barata

    -istoria+ 1&/0s M' (#4) monousuario C5M overla6s

    + 1&/0s 78 (4Mb) multiusuario (docenas)

    + 2///0s 9indo:s #4Mb (normal "12 Mb)

    ;erar*ua de memorias+ Cac,s un problema de costes

  • 7/21/2019 Memoria - Sistemas Operativos

    3/62

    3

    Introduccin (2)

    ?raba@os del !estor de memoria+ Au< memoria est libre5ocupada

    + si!nacin5liberacin de memoria a procesos

    + Intercambio =MBdisco Clases de !estores de memoria

    + Con intercambio

    ':appin! 6 pa!inacin

    + 'in intercambio

  • 7/21/2019 Memoria - Sistemas Operativos

    4/62

    4

    'olo un pro!rama en memoria (@unto con el ') 'e car!a 6 se *ueda a, ,asta *ue acaba (C5M)

    M''

    DI'

    (Dasic Inputuput '6stem)

    palmTop, empotradosminis

    Gestin bsica de memoria (1)Monopro!ramacin sin intercambio ni pa!inacin

  • 7/21/2019 Memoria - Sistemas Operativos

    5/62

    "

    Gestin bsica de memoria (2)Multipro!ramacin con particiones Ei@as

  • 7/21/2019 Memoria - Sistemas Operativos

    6/62

    #

    Planificacin *ueda libre una particin F*u< traba@o car!ar

    + >l primero en la cola *ue *uepa

    Hra!mentacin interna+ >l ms !rande de la cola *ue *uepa

    'e per@udica a los pe*ue$os (6 debe ser al rev

  • 7/21/2019 Memoria - Sistemas Operativos

    7/62%Ka utiliLacin de C es Euncin del nN. de procesos en memoria

    Grado de multiprogramacin

    Gestin bsica de memoria (4)Modelo de multipro!ramacin

  • 7/21/2019 Memoria - Sistemas Operativos

    8/62&

    BKos procesos son independientesBn !rado de multipro!ramacin

    Bp Eraccin de tiempo *ue un proceso est esperando una I5

    BtiliLacin de la C O 1 + pn

    BKos procesos no son independientes 1 sola CBP los otros en preparados (esperando).

    proJimacin vlida. >@emplo

    32Mb memoria

    el ' ocupa 1#Mb

    cada proceso de usuario 4Mb OP n O 4Q si pO/.& C O #/R

    'i compramos 1#Mb OP n O &Q si pO/.& C O &3RQ !anancia 3&R

    'i compramos otros 1#Mb CO3RQ !anancia 12R

    Gestin bsica de memoria (")Modelo de multipro!ramacin

    (Ka seccin 4.1.4 no entra para el eJamen)

  • 7/21/2019 Memoria - Sistemas Operativos

    9/62

    Reubicacin Fdnde reside un pro!rama esttica dinmicaLas direcciones de un programa suelen ser relativas a su direccin de comienzo.PERO ... al montar un programa no se sabe dnde se va a ejecutar.

    SOLUCIOES

    !odi"icacin de direcciones durante la carga #est$tico%

    Registro de Reubicacin #o registro base% #permite reubicacin din$mica%

    &ir.'irtual

    Registro deReubicacin

    &ireccinReal(

    6000

    5166

    4418

    4200

    2854

    512

    0

    A

    B

    C

    A

    B

    C

    1345

    0

    747

    0

    2341

    0

    Espacio 'irtual Espacio Real

    Ra) *+,-Rb) --+

    Rc) ,*

    Gestin bsica de memoria (#)=eubicacin 6 proteccin

  • 7/21/2019 Memoria - Sistemas Operativos

    10/62

    1/

    Proteccin acceso indiscriminado a cual*uier rea de memoria

    RegistroL/mite

    Registro0ase

    &ireccin'irtual ( SEA!E53CI>

  • 7/21/2019 Memoria - Sistemas Operativos

    23/62

    23

    Memoria 7irtual (2). a!inacin

    osicin 6 Euncin de la MM

  • 7/21/2019 Memoria - Sistemas Operativos

    24/62

    24

    Ka memoria virtual se divide enp!inas

    Ka memoria Esica en marcos de p!inatama$o p!ina O tama$o marco

    Conversin:

    MOV R!" #$%ireccin # est& en '&ina #$ P&ina # est& en arco *$ %ireccin f+sica es ,1-*

    MOV R!" ,1-*$%ireccin ,1-* est& en '&ina *$ P&ina * est& en arco $ %ireccin f+sica es *45/

    0 MOV R!" */,# 2

    Memoria 7irtual (3).a!inacin

  • 7/21/2019 Memoria - Sistemas Operativos

    25/62

    2"

    Memoria 7irtual (4). a!inacin

    32%&/ est en la p!ina & (32%#&)

    Ka p!ina tiene 8Ka MM !enera un ?=

    3T de P6!78:

    1. leir v+ctia*. scribir a disco (si 9ace falta)

    . Carar la nueva '&ina.4. Reiniciar MOV R!" */,#

    P.ee:1. V+ctia la del arco 1.*. 0escribir2 7ndicar ;ue '&ina 1: n un ordenador los procesos tienen un espacio de direccionamiento de1/24 p!inas 6 mantienen en memoria su tabla de p!inas. Ka sobrecar!a por

    lectura de una palabra desde la tabla de p!inas es de " ns. ara reducir esta

    sobrecar!a el ordenador tiene una ?KD con 32 entradas (p!ina virtual num.

    marco) *ue tarda 1 ns en realiLar una consulta. FCul debe ser la tasa de aciertos

    en dic,a memoria asociativa para reducir la sobrecar!a a 2 ns.

    M i 7i t l (1")

  • 7/21/2019 Memoria - Sistemas Operativos

    36/62

    3#

    Memoria 7irtual (1")?abla de p!inas invertida5,as,

    ?abla de p!inas Velocidad de traduccin

    (roceso p!ina virtual)

  • 7/21/2019 Memoria - Sistemas Operativos

    37/62

    3%

    Memoria 7irtual (1#).

    T4.*1n ordenador con p!inas de &SD memoria principal de 2"#MD 6 un espaciode direccionamiento virtual de #4GD utiliLa una tabla de p!inas invertida paraimplementar su memoria virtual. FCmo de !rande debera ser la tabla ,as, para

    ase!urar *ue por t

  • 7/21/2019 Memoria - Sistemas Operativos

    38/62

    3&

    Memoria 7irtual (1%)

    T4.1*na m*uina tiene un espacio de direcciones de 32 bits 6 una p!ina de &S. latabla de p!inas est en ,ard:are con una palabra de 32 bits por cada entrada. liniciar un proceso la tabla de p!inas se copia al ,ard:are desde la memoria con una

    palabra cada 1// ns. 'i cada proceso se e@ecuta durante 1// ms (inclu6endo el tiempo

    de car!a de la tabla de p!inas) Fcul es la Eraccin del tiempo de C *ue se dedica

    a la car!a de las tablas de p!inas

  • 7/21/2019 Memoria - Sistemas Operativos

    39/62

    3

    l!oritmos de sustitucin de p!inas (1)

    'e produce una Ealta de p!ina 6 no ,a6 memoria libre

    1. >le!ir victima

    2. Klevar victima a disco (si sucia)

    3. >n ? victima no presente

    4. ?raer nueva p!ina al marco donde estaba la vctima". ctualiLar ? nueva est presente 6 marco 6 dems inEo

    FCmo ele!ir la vctima

    l!oritmos de sustitucin de p!inas

    roblemas similares Memoria cac,< Cac,< de un servidor :eb

  • 7/21/2019 Memoria - Sistemas Operativos

    40/62

    4/

    b@etivo de todos los al!oritmos de sustitucin

    >le!ir p!inas *ue !eneren el menor nUmero de Ealtas de p!ina.

    >n todos los al!oritmos ,a6 una constante el nN de marcos eJistentes

    lorito 'tio de sustitucin de '&inas

    Auitar la p!ina *ue tardar ms tiempo en ser reEerenciada

    Imposible implementar

    l!oritmos de sustitucin de p!inas (2)

  • 7/21/2019 Memoria - Sistemas Operativos

    41/62

    41

    8o utiliDada recienteente (8RB: 8ot RecentlE Bsed)

    Dasado en los bits R(reEerenciada) 6 M(modiEicada ensuciado)Inicialmente todas las p!inas (en ?) =O/ MO/

    Cada interrupcin de relo@ todas las p!inas =O/

    R MClase / / / no reEerenciada no modiEicada

    Clase 1 / 1 no reEerenciada modiEicada

    Clase 2 1 / reEerenciada no modiEicada

    Clase 3 1 1 reEerenciada modiEicada

    'eleccionar una p!ina de la menor clase no vaca.

    For *u< es me@or eliminar de la clase 1 antes *ue de la clase 2

    l!oritmos de sustitucin de p!inas (3)

  • 7/21/2019 Memoria - Sistemas Operativos

    42/62

  • 7/21/2019 Memoria - Sistemas Operativos

    43/62

    43

    373O (nomala de Delad6)'uposicin cuantos ms marcos menos Ealtas de p!ina \\ >= ]]

    l!oritmos de sustitucin de p!inas (")

  • 7/21/2019 Memoria - Sistemas Operativos

    44/62

    44

    Feunda O'ortunidad (Fecond C9ance)7ariante del HIH para evitar sacar una p!ina (vie@a) mu6 utiliLada

    'i es la ms vie@a 6 no ,a sido reEerenciada (=O/) es la vctima

    'i es la ms vie@a 6 ,a sido reEerenciada (=O1) entonces

    B =O/

    B poner al Einal de la cola (como si Euese la ms nueva)

    B Mirar la si!uiente p!ina en la lista

    l!oritmos de sustitucin de p!inas (#)

  • 7/21/2019 Memoria - Sistemas Operativos

    45/62

    4"

    Feunda o'ortunidad (Relo)'e!unda oportunidad mueve p!inas al Einal de la lista'i todas tienen =O1 las mueve todas (al Einal es HIH)

    Me@ora mantener una lista circular (en Eorma de relo@)

    l!oritmos de sustitucin de p!inas (%)

  • 7/21/2019 Memoria - Sistemas Operativos

    46/62

    4#

    Menos recienteente utiliDada (RB: east RecentlE Bsed)

    'upone *ue las p!inas utiliLadas recientemente se utiliLarn de nuevo

    7ctima la p!ina *ue lleva ms tiempo sin ser reEerenciada

    -a6 *ue mantener una lista de todas las p!inas en memoria

    CabeLa ms recientemente utiliLada

    Cola menos recientemente utiliLada

    roblemas

    \\actualiLar la lista en cada reEerencia a memoria]]

    'obrecar!a en buscar una p!ina eliminarla moverla a la cabeLa

    Implementaciones

    + or ,ard:are

    +or soEt:are

    l!oritmos de sustitucin de p!inas (&)

  • 7/21/2019 Memoria - Sistemas Operativos

    47/62

  • 7/21/2019 Memoria - Sistemas Operativos

    48/62

    4&

    Menos recienteente utiliDada (RB)/ 1 2 3 2

    1 / 3 2 3

    l!oritmos de sustitucin de p!inas (1/)

  • 7/21/2019 Memoria - Sistemas Operativos

    49/62

    4

    Menos recienteente utiliDada (RB)'oEt:are (1) Mantener una pila con las p!inas en memoria

    B Cuando se reEerencia una p!ina a la cima

    B Ka p!ina del Eondo de la pila es la menos recientemente usada

    B roblemas eEiciencia actualiLar la pila en cada reEerencia amemoria

    G

    G * F - * F F * * G

    G

    G

    *

    *

    *

    F

    *

    F

    F

    -

    -

    *

    -

    *

    F

    *

    F

    *

    F

    F

    *

    F

    *

    F

    *

    *

    *

    G

    G

    G

    12 Haltas de !ina. Con HIH 1"

    cima

    l!oritmos de sustitucin de p!inas (11)

  • 7/21/2019 Memoria - Sistemas Operativos

    50/62

    "/

    Menos recienteente utiliDada (RB)

    'oEt:are (2) a!in!

    B Cada p!ina con un contador inicialmente a /B Cada interrupcin de relo@ mirar el contador de cada p!ina

    B esplaLar un bit a la derec,a cada contador

    B 'umar a la iL*uierda el bit =

    B Ka vctima es la p!ina con menor contador

    B roblemasB o se distin!ue *u< p!ina Eue la Ultima reEerenciada en un mismo

    intervalo de relo@

    B Kos contadores tienen un nUmero Einito de bits

    l!oritmos de sustitucin de p!inas (12)

  • 7/21/2019 Memoria - Sistemas Operativos

    51/62

    "1

    Menos recienteente utiliDada (RB)'oEt:are (2) a!in!

    l!oritmos de sustitucin de p!inas (13)

  • 7/21/2019 Memoria - Sistemas Operativos

    52/62

    "2

    Resuen de los aloritos de sustitucin

    O'tio o implementable8o utiliDada recienteente Ecil implementar pero los ,a6 me@ores

    373O puede eJpulsar p!inas importantesFeunda o'ortunidad me@ora sobre HIHFeunda o'ortunidad (relo):ms eEiciente *ue el anteriorRB eJcelente pero diEcil de implementarin buena aproJimacin a K=

    l!oritmos de sustitucin de p!inas (14)

    (Kas secciones 4.4.& 6 4.4. no entra para el eJamen)

  • 7/21/2019 Memoria - Sistemas Operativos

    53/62

    "3

    T4.*-n ordenador tiene cuatro marcos de p!ina. >l tiempo de car!a el

    tiempo del Ultimo acceso 6 los bits = 6 M para cada p!ina son los *ueaparecen a continuacin.

    !ina car!ada Ultima reEerencia = M

    / 12# 2&/ 1 /

    1 23/ 2#" / /

    2 12/ 2%/ / / 3 1#/ 2&" 1 1

    (a) FAu< pa!ina es reemplaLada por =

    (b) FAu< pa!ina es reemplaLada por HIH

    (c) FAu< pa!ina es reemplaLada por K=

    (d) FAu< pa!ina es reemplaLada por se!unda oportunidad

    l!oritmos de sustitucin de p!inas (1")

  • 7/21/2019 Memoria - Sistemas Operativos

    54/62

    "4

    Cuestiones de dise$o en sistemas pa!inados (1)

    Conunto de Trabao E Trasieo

    Kos pro!ramas eJ,iben localidad en sus reEerencias

    Con@unto de ?raba@o

    >l con@unto de p!inas *ue actualmente est usando un proceso

    ?rasie!o (?,ras,in!)

    n proceso causa Ealtas de p!ina cada pocas instrucciones

    Folucin mantener en memoria el con@unto de traba@o Problea FAu< p!inas Eorman el con@unto de traba@o

    G (A"t) tama$o del con@unto de traba@oB en el instante tB tomando las AUltimas reEerencias

    i d di i i d ( )

  • 7/21/2019 Memoria - Sistemas Operativos

    55/62

    ""

    Conunto de Trabao E Trasieo

    k

    ebe determinarse el valor de para obtener :(t)

    9(t) indica el con@unto de marcos *ue necesita un proceso en t

    Cuestiones de dise$o en sistemas pa!inados (2)

    k

    C i d di i i d (3)

  • 7/21/2019 Memoria - Sistemas Operativos

    56/62

    "#

    Pol+tica de asinacin local vs. lobal

    Kocal asi!nacin de memoria constante

    Global asi!nacin de memoria variable

    Cuestiones de dise$o en sistemas pa!inados (3)

    C i d di $ i i d (4)

  • 7/21/2019 Memoria - Sistemas Operativos

    57/62

    "%

    Pol+tica de asinacin local vs. lobal

    Ka !lobal da me@ores resultados si cambia el tama$o con@unto de traba@o

    FCunta memoria se asi!na a cada proceso

    l!oritmo P33(a!e Hault Hre*uenc6) indica cundo incrementar5decrementar el tama$o del con@unto de traba@o

    no indica *u< p!ina reemplaLar Erente a una Ealta de p!ina

    Cuestiones de dise$o en sistemas pa!inados (4)

    C i d di $ i i d (")

  • 7/21/2019 Memoria - Sistemas Operativos

    58/62

    "&

    Control de cara

    pesar de todo el sistema puede entrar en trasie!o

    HH indica

    + l!Un proceso necesita ms memoria

    + ero no *ue un proceso necesita menos

    'olucin

    =educir el nUmero de procesos *ue compiten por memoria

    + 'acar uno o ms a disco 6 repartir sus p!inas

    + =econsiderar el !rado de multipro!ramacin

    Cuestiones de dise$o en sistemas pa!inados (")

    C i d di $ i i d (#)

  • 7/21/2019 Memoria - Sistemas Operativos

    59/62

    "

    Taa=o de la '&ina

    eben considerarse varios Eactores en competencia.

    o eJiste nin!Un ptimo !lobal

    Si el tama;o de un programa nollena un nHmero e=acto de p$ginas

    ueda espacio sin utilizaren la Hltima de ellas1 2

    ProgramaB *J. b7tes5ama;o de p$ginaB -.KJ b7tes ecesita G p$ginas

    Ocupa J p$ginas completasBJ=-.KJ ) *-.,GJ

    &e la Hltima p$gina ocupaB *J.*-.,GJ ) .-*-

    &esaprovec4aB -.KJ.-*- ) *.JG*

  • 7/21/2019 Memoria - Sistemas Operativos

    60/62

    #/

    Taa=o de la '&ina

    PEROP$ginas pe6ue;as

    !uc4as p$ginas

    5abla de P$ginas grande N. m$s caro: m$6uina m$s cara

    !$s tiempo de trans"erencia desde memoria secundaria

    Cuestiones de dise$o en sistemas pa!inados (%)

    C ti d di $ i t i d (&)

  • 7/21/2019 Memoria - Sistemas Operativos

    61/62

    #1

    Taa=o de la '&ina

    'i solo consideramos la Era!mentacin interna 6 la tabla de p!inas

    s tama$o del pro!rama (b6tes)

    p tama$o de la p!ina (b6tes)

    e tama$o de cada entrada a la ? (b6tes)

    esperdicio O s_e5p Y p52

    rimera derivada con respecto a p e i!ualando a /

    Bs_e5p2 Y ` O /Q

    2p se=

    s O 1Mb e O & b6tes

    p O 4b

    Cuestiones de dise$o en sistemas pa!inados (&)

    (Kas secciones 4.#.4 4.#." 4.#.# 6 4.#.% no entra para el eJamen)

    C ti d di $ i t i d ()

  • 7/21/2019 Memoria - Sistemas Operativos

    62/62

    T4.1 n ordenador proporciona a cada proceso #""3# b6tes de espacio virtual de

    direccionamiento dividido en p!inas de 4SD. n pro!rama particular tiene unse!mento de teJto de tama$o 32%#& b6tes un tama$o de datos de 1#3 b6tes 6 un

    tama$o de pila de 1"&%/ b6tes FCabe este pro!rama en el espacio de direccionamiento

    'i el tama$o de la p!ina Euese de "12 b6tes Fcabra =ecuerde *ue una p!ina no debe

    contener partes de dos se!mentos distintos.

    Cuestiones de dise$o en sistemas pa!inados ()