administraci³n de memoria: asignaci³n de memoria

Download Administraci³n de memoria: Asignaci³n de memoria

Post on 10-Feb-2017

231 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Memoria contiguaSegmentacin

    Paginacin

    Administracin de memoria: Asignacin dememoria

    Gunnar Wolf

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    ndice

    1 Memoria contigua

    2 Segmentacin

    3 Paginacin

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Compartiendo la memoria desde. . .

    Como en tantos otros temas, comencemos viendo cmocompartan la memoria los primeros sistemas multiprocesadosLas primeras implementaciones siempre son las ms sencillas

    . . . y las ms ingenuasCmo eran estos primeros sistemas?

    Poca memoriaSin MMUNo interactivos

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones fijas

    Primer acercamiento: Partir la memoria en varios bloquesOriginalmente del mismo tamao (ms sencillo!)Por ejemplo: En 512KB de memoria fsica caben el sistemaoperativo mas otros 7 programas de 64KB (16 bits) cada uno

    El sistema operativo tpicamente usa la regin ms baja, apartir de 0x0000

    La memoria mapeada a los diversos dispositivos queda dentrodel segmento del SO

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones fijas

    Figura: Particiones fijas, con 3 particiones libres

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones fijas: Ventajas y desventajas

    Ventajas? Principalmente, simplicidadResolucin de direcciones en tiempo de cargaRegistro base (no requiere siquiera de un registro lmite)Puede limitarse simplemente con un espacio dedireccionamiento acorde en el compilador

    Desventajas? RigidezGrado de multiprocesamiento limitado

    Si hay menos de 7 procesos, se desperdician recursosSi hay ms de 7, tienen que esperar a que se les abra espacio

    Desperdicio de espacio (fragmentacin interna)Al asignarse la memoria en bloques fijos, un proceso pequeopodra desperdiciar mucho espacio

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones flexibles

    Cada proceso declara sus requisitos de memoria al iniciar suejecucin

    Debe indicar su uso mximo previsto de memoriaHay mecanismos para ajustar el tamao de un procesopreexistente Pero pueden fallar! (p.ej. si falta memoria parasatisfacer una solicitud)

    El OS tiene acceso directo a toda la memoria como uncontnuoCada regin en memoria est limitada (ahora s) por unregistro base y un registro lmite

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones flexibles

    Figura: Espacio de direcciones vlidas para el proceso 3 definido por unregistro base y un registro lmite

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Particiones flexibles: Ventajas y desventajas

    Ventajas? Sigue siendo: SimplicidadCuando inicia la ejecucin del sistema, este esquema pareceidealSobrecarga mnima, con un MMU muy bsicoCada proceso puede direccionar el total de memoria disponible

    Desventajas? Vienen con el tiempo. . .Conforme van iniciando y terminando los procesos, se vancreando agujeros en la asignacin de memoriaSegn anlisis estadstico (Silberschatz, p.289), por cada Nbloques asignados se pierden del rden de 0,5N porfragmentacin

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Fragmentacin en la memoria

    Figura: Termina el proceso 1 (de 128K); inician 4 (de 64K), 5 (de 156K)y 6 (de 128K); termina 3 (64K). Se va fragmentando la memoria libre.

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Fragmentacin interna y externa

    Fragmentacin interna Espacio desperdiciado dentro de la memoriaasignada a un proceso

    Porque tuvo que solicitar toda la memoria queempleara desde un principio (y la desperdicia lamayor parte del tiempoPor tener que alinearse a cierta frontera dememoria (p.ej. con particiones pre-establecidas)

    Fragmentacin externa Espacio de memoria desperdiciado entre losdistintos fragmentos

    En el esquema anterior, hay 320K libres, pero nopuede lanzarse ningn proceso > 192K , porqueno es un bloque contiguo

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Cmo ubicar un nuevo proceso?

    Hay tres estrategias principales para dar espacio en la memoria a unnuevo proceso:

    Primer ajuste Asigna al nuevo proceso al primer bloque de tamaosuficiente

    Mejor ajuste Asigna al nuevo proceso al bloque ms chico en quequepa

    Peor ajuste Asigna al nuevo proceso al bloque ms grande quehaya disponible

    Qu ventajas / desventajas? puede tener cada uno?

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Primer ajuste

    El mecanismo ms fcil de implementarEjecucin ms rpidaPero no considera facilitar las cosas para el futuro. . .

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Mejor ajuste

    Requiere revisin completa de los bloques disponibles. . . O mantenerlos en una lista ordenadaEmpleando un ordenamiento en montculo (heap), puede sertan gil/simple como el primer ajuste

    Busca que el desperdicio sea el menor posiblePero va generando muchos bloques muy pequeos

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Peor ajuste

    Requiere revisin completa de los bloques disponibles. . . O mantenerlos en una lista ordenadaEmpleando un ordenamiento en montculo (heap), puede sertan gil/simple como el primer ajuste

    Busca que los bloques que van quedando tras la creacin denuevos procesos tiendan a ser del mismo tamao

    Balanceando el tamao de los bloques remanentes

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Compactacin

    Independientemente del esquema que elijamos, bajo particionesflexibles se ir fragmentando cada vez ms la memoria

    Si no se hace nada al respecto, no podrn lanzarse procesosnuevos

    La compactacin consiste en:Suspender temporalmente a un procesoMoverlo a otra direccin de memoriaAjustar su registro baseContinuar con el siguiente, hasta crear un slo bloquedisponible (de los muchos existentes)

    Tiene un costo alto, porque requiere:Muchas transferencias de memoriaSuspensin sensible de los procesos implicados

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Compactacin

    Figura: Compactacin de la memoria de procesos en ejecucin

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Cundo compactar?

    No hay una sla respuesta

    Basado en umbrales, verificando peridicamente el estado delsistemaBasado en eventos, cada vez que no pueda satisfacerse unasolicitud por haber demasiada fragmentacin

    Seales que indican necesidad de compactar

    Relacin entre el nmero de bloques libres y ocupadosRelacin entre la memoria total disponible y el tamao delbloque ms grande. . .

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Intercambio (swap)

    El SO puede comprometer ms memoria de la que tienedisponibleCuando inicia un sistema que no cabe en memoria, puedeelegir suspender a un proceso y grabarlo a almacenamientosecundario

    Por ejemplo, un proceso que est bloqueado esperando unbloqueo externo

    Qu pasa con las operaciones E/S que tiene pendientes elproceso?

    Puede exigirse que slo se pueda hacer E/S empleando buffersen el espacio del SO

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Costos del intercambio

    Esta modalidad de swap fue popular en equipos de escritoriode fines de los 1980 y principios de 1990

    Entre 1 y 8MB RAMHoy en da resultaran inaceptablemente lentos

    Si un proceso ocupa 100MBY la tasa de transferencia sostenida al disco duro es de50MB/s

    SATA ofrece mximos entre 150 y 600 MB/s (dependiendo dela generacin)Pero tpicamente hay varios procesos compitiendo por elacceso

    Suspender el proceso a disco toma un mnimo de 2s de accesoexclusivoTraerlo de vuelta a memoria, otros 2s

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    ndice

    1 Memoria contigua

    2 Segmentacin

    3 Paginacin

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria contiguaSegmentacin

    Paginacin

    Cmo es la visin del programador?

    El trabajo del compilador es traducir lo que ve/entiende elprogramador a algo que pueda entender la computadoraPara el programador, la memoria no es un espacio contiguo,sino que hay separaciones muy claras

    El programador no tiene por qu ver relacin entre lassecciones de texto y datosNo tiene por qu preocuparse de la cercana entre el espacio delibres y la pilaNo tiene por qu importarle la estructura representada en lapilaLas bibliotecas externas enlazadas son meras cajas negras

    Gunnar Wolf Administracin de memoria: Asignacin de memoria

  • Memoria co

Recommended

View more >