10 Gestion de Memoria

Embed Size (px)

Citation preview

  • 8/18/2019 10 Gestion de Memoria

    1/44

    Gestión de memoria

    Rina Arauz

  • 8/18/2019 10 Gestion de Memoria

    2/44

    Gestión de

    Definición

    La memoria es una amplia tabla de datos, cada unode los cuales con su propia dirección

    Tanto el tamaño de la tabla (memoria), como el delos datos incluidos en ella dependen de cadaarquitectura concreta

    Para que los programas puedan ser ejecutados esnecesario que estén cargados en memoria principal

    La inormación que es necesario almacenar de

    modo permanente se guarda en dispositi!os dealmacenamiento secundarios también conocidoscomo memoria secundaria

  • 8/18/2019 10 Gestion de Memoria

    3/44

    Gestión de

    Localidad

    Los procesos tienden a concentrar sus reerencias en un

    inter!alo de tiempo en un subconjunto de su espacio de

    direcciones

    "eg#n $onald %nut& '*+

     Los programas, normalmente, tienen un perfil muy desigual, con unos

     pocos picos agudos... También encontramos que menos del 4 por 100 de

    un programa, generalmente, representa más de la mitad de su tiempo de

    ejecución

    -s una propiedad emp.rica m/s que teórica

    La localidad puede ser de dos tipos

    Localidad espacial

    Localidad temporal

  • 8/18/2019 10 Gestion de Memoria

    4/44

    Gestión de

    Localidad espacial y temporal

    Localidad espacial una !ez &ec&a una reerencia a una posición dememoria, es mu0 probable que las localidades cercanas sean tambiénreerenciadas1

    -n apo0o a esta obser!ación encontramos

    -jecución secuencial del código

    Tendencia de los programadores a colocar pró2imas entre s.las !ariables relacionadas

     Acceso a estructuras de datos de tipo matriz o pila Localidad temporal una !ez &ec&a una reerencia a una posición de

    memoria en un determinado instante t, es mu0 probable que esamisma posición sea accedida en un instante t 3 ∆t

    4ustiicada por 5ormación de ciclos

    "ubrutinas

    Pilas

  • 8/18/2019 10 Gestion de Memoria

    5/44

    Gestión de

    Jerarquía de memoria La jerarquización de la memoria es un intento de aumentar el

    rendimiento de los computadores Para ello se apro!ec&an los a!ances tecnológicos en el diseño

    de memorias 0 la localidad de los programas 6emorias r/pidas tienen un coste ele!ado 0 una capacidad

    pequeña

    6emorias lentas son baratas 0 tienen una capacidad alta

    7$8R96 8 7intas

    $iscos magnéticos

    6emoria principal

    7ac&é e2terna L:

    7ac&é on-chip L

    Registros internos

    del procesador 

    6a0or rapidez

    menor tamaño 0

    ma0or precio

    6enor rapidez

    ma0or tamaño 0

    menor precio

  • 8/18/2019 10 Gestion de Memoria

    6/44

    Gestión de

    Fragmentación

    5ragmentación ; memoria desapro!ec&ada

    Puede ser de dos tipos, interna 0 e2terna

    5ragmentación interna

    "e debe a la dierencia de tamaño entre la partición de

    memoria 0 el objeto residente dentro de ella "e produce siempre que se trabaje con bloques de

    memoria de tamaño ijo

    "i el tamaño del objeto no coincide con el de la partición,

    queda una zona que no se puede apro!ec&ar 

    5ragmentación e2terna

    "e debe al desapro!ec&amiento de memoria entre

    particiones

  • 8/18/2019 10 Gestion de Memoria

    7/44

    Gestión de

    Direcciones Simbólicas/Físicas

    Programa

    7ompilador o-nsamblador 

    Programa-nlazador 

    Programa

    9tros

    objetos

  • 8/18/2019 10 Gestion de Memoria

    8/44

    Gestión de

    Reubicación

    La reubicación &ace reerencia al &ec&o de poder localizar a

    los programas para su ejecución en dierentes zonas de

    memoria

    Reubicación est/tica

    "e realiza antes o durante la carga del programa enmemoria

    Los programas no pueden ser mo!idos una !ez iniciados

    Reubicación din/mica

    Los programas pueden mo!erse en tiempo de ejecución

    -l paso de dirección !irtual a dirección real, se realiza entiempo de ejecución

    =ecesita &ard>are adicional (66?)

  • 8/18/2019 10 Gestion de Memoria

    9/44

    Gestión de

    -squemas de gestión de memoria

    6/quina desnuda

    6onitor monol.tico o residente

     Asignación de memoria particionada contigua Asignación de memoria particionada no contigua

    6emoria !irtual

  • 8/18/2019 10 Gestion de Memoria

    10/44

    Gestión de

    Mquina desnuda

    -s la manera m/s sencilla de gestionar la memoria

    no e2iste ning#n gestor 

    -l usuario controla toda la memoria

    -l sistema no porporciona ning#n ser!icio

    ?suario

    6emoria

  • 8/18/2019 10 Gestion de Memoria

    11/44

    Gestión de

    !o

    Monitor monolítico o residente

    Protección

    7P? $irecció[email protected]

    $irección l.mite

    -rror de direccionamiento

    Sí 

     

    M"M#R$%

    M#!$R

  • 8/18/2019 10 Gestion de Memoria

    12/44

    Gestión de

    Memoria particionada contigua

    "e asigna una partición de memoria a cada proceso

    Protección registros l.mite o base8l.mite 5ragmentación e2terna compactación 

    MF& M'&"istema multiprogramado con

    tamaño 0 n#mero de particiones

    ijo

    "istema multiprogramado con

    tamaño 0 n#mero de particiones

    !ariable

    5ragmentación interna 0 e2terna 5ragmentación e2terna

    $es!entaja en la asignación

    din/mica de memoria

    Requiere algoritmos de gestión de

    memoria m/s complejos

    Problema intercambio de

    trabajos con -" pendiente

    Bentaja en la asignación din/mica

    de memoria

  • 8/18/2019 10 Gestion de Memoria

    13/44

    Gestión de

    Sí 

    Registros límite

    =o soporta reubicación din/mica

    7P?

    !o

    ()

    L.miteinerior 

    -rror de direccionamiento

     

    M"M#R$%

    *rograma +

    L.miteinerior 

    ,)

    !o

    Sí 

  • 8/18/2019 10 Gestion de Memoria

    14/44

    Gestión de

    Sí 

    !o

    Registros base-límite

    "oporta reubicación din/mica

    7P? (

    L.mite

    -rror de direccionamiento

     

    M"M#R$%

    *rograma +

  • 8/18/2019 10 Gestion de Memoria

    15/44

    Gestión de

    &abla de descripción de particiones

    "istema operati!o

    Pi

    Pj

    PC

      D% DD% A"EF=A$A

      DD% GDD% LE

  • 8/18/2019 10 Gestion de Memoria

    16/44

    Gestión de

    Memoria particionada no contigua -squemas

    "egmentación

    Paginación

    "egmentación paginada Paginación segmentada

  • 8/18/2019 10 Gestion de Memoria

    17/44

    Gestión de

    Segmentación

    -s un esquema de gestión de memoria con !arias !entajas

    Permite que los bloques de un proceso (código, datos,pila, $LLs, etc1) puedan estar situados en /reas dememoria no contiguas

    "uministra reubicación din/mica

     Aporta protección 0 uso compartido Las direcciones en estos sistemas tienen dos componentes

    n#mero de segmento 0 offset 

    -n el JD2JK

    mov eax, ds:esi

    Para localizar el dato se utiliza el selector $" 0 eldesplazamiento "E

    Los segmentos pueden tener tamaños dierentes

  • 8/18/2019 10 Gestion de Memoria

    18/44

    Gestión de

    Segmentación esquema lógico0

    6emoria

    .sica7ódigo

    "spacio de direccionamiento 1irtual "spacio de direccionamiento real

    $/tos

    $atos

    compartidos

    Pila

    7ódigo

    $/tos

    $atos

    compartidos

    Pila

    66?

  • 8/18/2019 10 Gestion de Memoria

    19/44

    Gestión de

    Segmentación 230

    Procesador  S D

    4ase 5

    4ase 6

    4ase 7

    4ase 8

    4ase 9

    4ase :

    4ase ;

    4ase <

    S

    6emoria

    Límite 5

    Límite 6

    Límite 7

    Límite 8

    Límite 9

    Límite :

    Límite ;

    Límite <

    &abla de segmentos

    +

    === "rror >>>

    4ase 9

    D

    R*4&S

    RL&S

  • 8/18/2019 10 Gestion de Memoria

    20/44

    Gestión de

    ?uestiones

    MNué ocurre si la tabla de segmentos es mu0 grandeO

    "olución se guarda en memoria apuntada por un registro

    base (RP

  • 8/18/2019 10 Gestion de Memoria

    21/44

    Gestión de

    *rotección y uso compartido

    Protección basada en los registros base 0 l.mite

    "e pueden establecer distintos derec&os de acceso(r>2) a cada segmento del proceso

    -stos derec&os suelen guardarse en la tabla de

    segmentos de cada proceso -l uso compartido es uno de los argumentos m/s

    importantes en a!or de la segmentación M7ómo pueden dos o m/s procesos compartir un

    segmentoO

  • 8/18/2019 10 Gestion de Memoria

    22/44

    Gestión de

    'enta@as e incon1enientes

    Bentajas

    -limina de ragmentación interna

    Permite el crecimiento din/mico de los segmentos

     Aporta protección 0 uso compartido

    Permite un enlace 0 carga din/micos Encon!enientes

    =ecesita compactación de memoria

    -n sistemas antiguos se ijaba un tamaño m/2imo ijo para

    cada segmento

    =ecesita &ard>are adicional

    Los bloques de memoria no son m#ltiplos enteros de los

    bloques que se traen desde el disco

  • 8/18/2019 10 Gestion de Memoria

    23/44

    Gestión de

    *aginación

    -s un esquema de gestión de memoria en el que laasignación de memoria no es contigua

    -l espacio de direcciones !irtuales de un procesoest/ di!idido en bloques de tamaño ijo llamados

    p/ginas La memoria .sica se di!ide en marcos de p/gina

    La dirección !irtual consta de un n#mero de p/gina!irtual 0 un desplazamiento

    La traducción de direcciones se lle!a a cabo con laa0uda de la tabla de p/ginas (T$P)

    La T$P se constru0e en tiempo de carga delproceso en memoria

  • 8/18/2019 10 Gestion de Memoria

    24/44

    Gestión de

    *aginación esquema lógico0

    6emoria

    .sica7ódigo

    "spacio de direccionamiento 1irtual "spacio de direccionamiento real

    66?

     A

    *ginas

    Marcos

    <

    7

    $

    -

    5

    F A

    <

    7

    $

  • 8/18/2019 10 Gestion de Memoria

    25/44

    Gestión de

    *aginación 230

    Procesador  * D

    Marco 5

    Marco 6

    Marco 7

    Marco 8

    Marco 9

    Marco :

    Marco ;

    Marco <

    *

    6emoria

    &abla de pginas

    Marco 9

    D

    R*4&*

    RL&*

    M D

  • 8/18/2019 10 Gestion de Memoria

    26/44

    Gestión de

    ?onsideraciones

    "i se piden sQ posiciones de memoria

    n p/ginas asignadas;'sp+ p tamaño de la p/gina

    "i el cociente anterior no es entero se produce la

    llamada ragmentación de p/gina Los marcos libres se suelen mantener en una lista

    enlazada

    "i la T$P es mu0 grande, ésta se debe mantener

    en memoria principal Para acelerar los accesos se emplean memorias

    asociati!as (TL

  • 8/18/2019 10 Gestion de Memoria

    27/44

    Gestión de

    *aginación con &L4s 230

    Marco 5

    Marco 6

    Marco 7

    Marco 8

    Marco 9

    Marco :

    Marco ;

    Marco <

    *

    6emoria

    &abla de pginas

    Marco 9

    D

    R*4&*

    RL&*

    M D

    &L4

    %

    +'

    ?

    *

    &

    S

    R

    7

    68

  • 8/18/2019 10 Gestion de Memoria

    28/44

    Gestión de

    *rotección y uso compartido

    Protección basada en bits de acceso de lasentradas de la T$P

    7ompartir p/ginas es bastante sencillo

  • 8/18/2019 10 Gestion de Memoria

    29/44

    Gestión de

    *roblemas de la paginación

    5ragmentación interna (0a comentado)

    "i el n#mero de p/ginas es grande, la zona dememoria ocupada por la T$P puede ser e2cesi!a

    -jemplo

    Tamaño de cada entrada de la T$P H b0tes -spacio de direccionamiento G: bits

    P/ginas de H %b0tes

    Tamaño de la T$P H 6b0tes

    "olución Tabla de p/ginas paginada

    "e emplea un directorio de p/ginas

  • 8/18/2019 10 Gestion de Memoria

    30/44

    Gestión de

    *aginación de la &D*

    * D

    &abla 5

    &abla 6

    &abla 7

    &abla 8&abla 9

    &abla :

    &abla ;

    &abla <

    Dir 

    6emoria

    Directorio de pginas

    D

    R*4&*

    RL&*

    M D

    Dir 

    &abla de pginas

    Dirección 1irtual

    Marco 5

    Marco 6

    Marco 7

    Marco 8Marco 9

    Marco :

    Marco ;

    Marco <

    *

  • 8/18/2019 10 Gestion de Memoria

    31/44

    Gestión de

    Segmentación paginada

    -s posible combinar los esquemas de paginación 0segmentación

    $e este modo podemos obtener las !entajas deambos a costa de complicar el S

    7ombinaciones "egmentación paginada

    Paginación segmentada (no se emplea en lapr/ctica)

    -n la segmentación paginada, cada segmento sedi!ide en p/ginas

    -n la paginación segmentada, cada p/gina se di!ideen segmentos

  • 8/18/2019 10 Gestion de Memoria

    32/44

    Gestión de

    Segmentación paginada 230

    S

    6emoria

    &abla de segmentos

    R*4&S

    RL&S

    * D

    Dirección 1irtual

    S

    &abla de pginas+

    M D

    4ase de la tabla

    de pginas

  • 8/18/2019 10 Gestion de Memoria

    33/44

    Gestión de

    Memoria cacC

    Ententa reducir el desajuste entre las !elocidadesdel procesador 0 de las memorias

    "u empleo se justiica por la localidad de losprogramas

    -s una solución de compromiso entre mejora derendimiento 0 precio

    La idea de emplear memorias cac&é consiste enmantener en ellas los datos o instrucciones que elprocesador necesita en cada momento

    "i los datos o instrucciones se encuentran en lacac&é el acceso en mu0 r/pido, si no es as., losdatos se traen desde memoria principal en bloques

  • 8/18/2019 10 Gestion de Memoria

    34/44

    Gestión de

    DiseEo de la cacC

     A los bloques de transerencia entre memoriaprincipal 0 memoria cac&é se les denomina l.neas o!.as de cac&é

    $ecisiones de diseño

    MNué tamaño deben tener las l.neas de cac&éO M7ómo se sabe si un bloque est/ en la cac&éO

    M7ómo se establece la correspondencia entrel.neas de cac&é 0 bloques de 6PO

    MNué &acer cuando una l.nea de cac&é esmodiicadaO

    MNué estrategia se debe emplear cuando esnecesario reemplazar una l.nea de cac&éO

  • 8/18/2019 10 Gestion de Memoria

    35/44

    Gestión de

    Memoria cacCe

    Par/metros de un sistema con memoria cac&e

    *olítica de ubicación

    Las pol.ticas de ubicación establecen la correspondencia entrelos bloques de la 6P 0 de la 67a

    *olítica de etracción

    $eterminan cu/ndo 0 qué inormación se en!.a de 6P a 67a

    *olítica de reemplao

    $eterminan cu/ndo 0 qué bloque se sustitu0e de las 67a conpol.tica de ubicación asociati!a

    *olítica de actualiación

    $eterminan el instante en que se actualiza la inormación en 6Pcuando se produce una escritura en 67a  Problema deco&erencia de la 67a

  • 8/18/2019 10 Gestion de Memoria

    36/44

    Gestión de

    *olíticas de ubicación

    Las políticas de ubicación establecen la correspondenciaentre los bloques de la M* y de la M?a

    Las pol.ticas de ubicación m/s importantes son

    $irecta

     Asociati!a Asociati!a por conjuntos

    "@emplo de aplicaciónH

    -stablecer la correspondencia entre 6P 0 67a en un sistemacon $irección .sica :D bits Tamaño de bloque J b0tes ; :G b0tesbloque

    7apacidad 67a %b0tes; :D b0tes  = bloques 67a ;

    7apacidad 6P 6b0te ; ::D b0tes  = bloques de 6P ;

    (:J::

    : *G

    D

    ==

    D*:1G::

    : *G

    :D

    ==

  • 8/18/2019 10 Gestion de Memoria

    37/44

    Gestión de

    *olíticas de ubicación

    ?orrespondencia directa $0H

    Memoria principal

  • 8/18/2019 10 Gestion de Memoria

    38/44

    Gestión de

    ?orrespondencia directa $$0H7onsiste en &acer corresponder a todo

    bloque i de 6P el bloque i mod de

    67a, donde es el n#mero total de

    bloques de la 67a

    ?na dirección en 67a consta de

    -tiqueta= de bloque de 67a

    Posición en el bloque (palabra)

    "olución

    :G b0tesbloque G bits para la posición

    dentro del bloque

    :* bloques de 67a * bits para cada

    bloque

       D bits para

      cada etiqueta

    (D

    *

    (*

    :67abloques:

    6Pbloques:=

    *olíticas de ubicación

    'enta@as La lectura permite el acceso

    simult/neo al directorio 0

    a la palabra dentro del

    bloque de 67a Algoritmo de reemplazo tri!ial

    $ncon1enienteH  Encremento de la tasa de allos

    de la 67a, si dos bloques de6P, que corresponden a unmismo bloque de 67a, seutilizan de orma alternati!a

  • 8/18/2019 10 Gestion de Memoria

    39/44

  • 8/18/2019 10 Gestion de Memoria

    40/44

    Gestión de

    Memoria cacCe

    *olíticas de ubicación?orrespondencia asociati1a $$0H

    7ualquier bloque de 6P puedeubicarse en cualquiera de los bloquesde la cac&e

    ?na dirección en 67a consta de -tiqueta

    Posición en el bloque (palabra)

    SoluciónH

    :G b0tesbloque G bits para laposición dentro del bloque

    :* bloques de 6P    * bitspara cada etiqueta

    'enta@aH

    5le2ibilidad (permite la

    implantación de gran

    !ariedad de algoritmos dereemplazo)

    $ncon1enienteH

    7oste de las

    comparaciones

  • 8/18/2019 10 Gestion de Memoria

    41/44

  • 8/18/2019 10 Gestion de Memoria

    42/44

    Gestión de

    *olíticas de ubicación

    7onsiste en di!idir la 67a en ?

    conjuntos de 4 bloques cada uno

    "e aplica

    7orrespondencia directa a ni!el de

    conjunto

    7orrespondencia asociati!a a ni!el

    de bloque

    ?n bloque i de 6P puede ubicarse en

    cualquier bloque del conjunto i mod ? 

    de 67a

    ?na dirección en 67a consta de

    -tiqueta,

    7onjunto 0

    Posición en el bloque

    ?orrespondencia asociati1a por con@untos $$0H

    Solución (asignando : bloqs1cjto1)H

    :G b0tesbloque G bits para la

    posición dentro del bloque

    :K conjuntos en 67a K bits para

    cada conjunto bits para cada etiqueta

    -l coste de la b#squeda depende

    del n#mero 0 longitud de las

    etiquetas que se tienen que

    comparar simult/neamente

    'enta@aH

    Reduce el coste de la totalmente

    asociati!a proporcionando un

    rendimiento cercano a esta #ltima

  • 8/18/2019 10 Gestion de Memoria

    43/44

    Gestión de

    Memoria cacC

    7o&erencia Mqué ocurre si un dato de la cac&é se modiicaO -n tal caso se produce una inconsistencia entre los

    contenidos memoria cac&é 0 memoria principal

    Problema gra!e en sistemas multiprocesador 

    -strategias de actualización Write back 

    Write through

    También cabe considerar las estrategias de sustitución de

    l.neas de cac&é cuando e2isten !arias !.as por conjunto

    =ormalmente se emplean cac&és separadas parainstrucciones 0 para datos

  • 8/18/2019 10 Gestion de Memoria

    44/44

    "@ercicio

    Sea una computadora que dispone de una memoria principalentrelazada y memorias caché separadas con las siguientes

    características:

        El tamao de un bloque de memoria es de !" bytes

        Memoria principal:

        #apacidad: "$% &bytes

        Memoria caché:

         'sociati(a por con)untos* estructurada segn:

        Memoria caché de instrucciones: , bytes con .

    bloques por con)unto/     Memoria caché de datos: , bytes con " bloques por

    con)unto/