27
SISTEMAS OPERATIVOS Gestión de Memoria Universidad Nacional del Centro del Perú Ingeniería de Sistemas Ing. Jaime Suasnábar Terrel

Parte 09 Gestion de Memoria

Embed Size (px)

DESCRIPTION

Gestion de la memoria de una pc

Citation preview

  • SISTEMAS OPERATIVOSGestin de Memoria

    Universidad Nacional del Centro del PerIngeniera de Sistemas

    Ing. Jaime Suasnbar Terrel

  • Silberchatz

    Ges

    ti

    n d

    el

    Alm

    acen

    amie

    nto

    Gestin de la Memoria

    Gestin de la Memoria Virtual

    Gestin del sistema de archivos

  • Temas:

    IntroduccinMemoria

    Objetivos

    Organizacin fsica de la memoria.

    Organizacin Lgica de la Memoria.

    Procesos y la memoria.

    Memoria virtual.

    El Administrador de MemoriaRequisitos del administrador de memoria.

    Tcnicas de Administracin de Memoria

    Particionamiento

    Paginacin y Segmentacin Simple

  • IntroduccinMemoria

    Es un dispositivo electrnico con capacidad de almacenamiento.

  • IntroduccinMemoria

    Cada vez, ms memoria, ms barata y ocupa menos:

    1982 16KB 50.00 $. PseudoPC1985 1MB 50.00 $. Victory (Unix)

    PC1991 8MB 60.00 $. 128MB 10.90 $.1998 64MB 80.00 $. 512MB 15.70 $.2002 256MB 70.00 $. 1GB 30.90 $.2005 512MB 69.50 $. 4GB 80.90 $.

    Sin embargo, SIEMPRE AMPLIANDO !

    512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M, 512M, 1G, 4G

    MSDOS Win95 WinNT Win00/03/Vista

    /7

    70MB 120MB ???MB

    Ley de Parkinson

    Windows XP?

  • IntroduccinObjetivos

    Memoria: Recurso escaso y compartido (Multiprogramacin)Poca memoria para los muchos procesos que quieren ejecutarse

    Proteger Compartir Organizacin eficiente Reubicacin de procesos

    MemoriaPrincipal

    P1

    P2

    P3 P6

    P5

    P4

    OBJETIVOSGestin eficiente

    Secundaria

    Principal

    Cach

    segmentadalineal

  • Introduccin (Proceso en memoria?)

    ProgramaObjeto n

    ProgramaObjeto 2

    Compilador

    ProgramaObjeto 1

    Enlazador

    archivoEjecutable

    Cargador

    Memoria

    ProgramaFuente 1

    Program principal;var

    Vector1: array [0..$FFF] of byte := (23,43,,53);Vector2: array [0..$4FF] of byte;

    begin...

    if Vector1[0] = Vector2[0]then Subrutina;

    ...end.

    $5000 $5030 cmp $9000,$A000$5036 bnz $503E $503A bsr $5200$503E $5200 (codigo de subrutina)

    $9000 (valores de vector1)

    $A000 (valores de vector2)

    Proceso

    Cdigo mquina

    ?

  • Organizacin Fsica de la Memoria

    Hard DiskDrive

    Flash Memory

    RAMMemoria Fsica

    Memoria Virtual

    CacheNivel 1Nivel 2

    Registros de la CPU

    AlmacenamientoTemporal o de acceso aleatorio

    AlmacenamientoPermanente

  • Direcciones Virtuales y Fsicas

    Direcciones virtuales o lgicasUn programa maquina es un conjunto ordenado de instrucciones en cdigo mquina, que encajaran en n palabras de memoria, pudiendo numerarse correlativamente del 0 a la n-1.

    Direcciones FsicasSon las direcciones reales de la MP donde se cargan el programa

    Direccin BaseLos programas se cargan en la MP a partir de una determinada posicin de memoria.

    Se puede transformar fcilmente una direccin virtual a fsica:

    Df=DB+dvPara todo 0

  • Transformaciones de direcciones virtuales a fsicas

    Se realiza con ayuda de un registro base (que se carga previamente con la direccin base) que se encuentra en el procesador en un circuito MMU Unidad de Gestin de Memoria.

    Antiguamente haba que hacerlo por software pero los procesadores lo hacen fsicamente.

  • Tipos de Gestin de Memoria

    MonoprogramacinCada programa se ejecuta de manera independiente

    MultiprogramacinParticiones estticas

    Particiones dinmicas

    Segmentacin

    Paginacin

    Memoria Virtual

  • Particiones Estticas

    La memoria se divide en cierto nmero de particiones o zonas, cada una de las cuales contendr un proceso.La direccin base de cada proceso es la direccin de inicio de cada particin.El tamao de las particiones (que puede ser no uniforme) es un parmetro del SO

    Ejemplo: memoria de 2MB con particiones de 256KB

    El SO mantiene una tabla de particiones (procesos) en la que cada fila corresponde a una particin, conteniendo informacin como:

    Id Proceso, si esta libre o no, estado, direccin del BCP

    Para transformar las direcciones virtuales a fsicas en cada acceso de memoria la MMU consulta la tabla de particiones para saber la particin en que se encuentra el proceso y calcular su direccin base.

  • Particiones Dinmicas

    Los programas son introducidos por el SO inicialmente en posiciones consecutivas de memoria, no existiendo por tanto particiones predefinidas.

  • Particiones Dinmicas

    GestinTabla de procesos, cada lnea contiene id proceso, DB, cap que ocupa, estado, direccin de su BCP, etc.

    Tabla de fragmentos libres El planificador de trabajos,

    consultando esta tabla, introduce a la MP los programas que quepan en los fragmentos libres; y actualiza las dos tablas.

    Para transformar las direcciones virtuales a fsicas en cada acceso de memoria, la MMU consulta la tabla de procesos para obtener la direccin base.

  • Reubicacin de procesos

    Cuando acaba un proceso deja un fragmento libre que solo puede ser ocupado por otro de igual o menor capacidad. Al ir acabando de ejecutarse los programas. El Nro de fragmentos libres crecer, llegando en que el porcentaje de memoria aprovechado es muy reducido.

    El problema se resuelve haciendo una compactacin que agrupa todos los fragmentos, reubicando los programas en ejecucin.

  • Segmentacin

    La memoria se aprovecha mejor cuanto ms pequeos fuesen los procesos o hebras o unidades a almacenar en ella.

    Un proceso est compuesto por unidades que denominamos segmentos:

    Segmentos de cdigo (programa y sub programas en leng maquina)

    Segmentos de pila

    Segmentos de datos (conjunto de datos, vectores etc.)

    La gestin de memoria con segmentacin consisten en considerar como unidades de almacenamiento segmentos, en lugar de procesos o hebras.

    La segmentacin permite que ciertos procesos pueda compartir cdigo (rutinas) o datos comunes sin necesidad de estar duplicados en MP (segmentos reentrantes).

  • Gestin de la segmentacin

    La gestin la realiza el SO, como son las particiones dinmicas, solo que cada particin en vez de corresponder a un programa completo, corresponde a un segmento.El SO mantiene, por cada proceso, una tabla de segmentos donde especifica su capacidad y la direccin base de cada segmento.

    En la tabla de procesos hay un campo que indica la posicin de memoria donde se encuentra su tabla de segmentos.

    Para transformar las direcciones virtuales a fsicas en cada acceso de memoria la MMU consulta la tabla de segmentos para ver si la direccin sobrepasa el lmite y para obtener la direccin base correspondiente.

  • Paginacin

    Los programas se consideran divididos en zonas consecutivas (pginas).

    Cada pgina es de tamao fijo, preestablecido como parmetro del SO (512b a 64kb por lo general)

    Se identifican dentro del programa, con

    La MP se estructura en marcos de pgina de igual capacidad que las pginas del programa.

    Cada marco se identifica con un nmero correlativo

    Si el tamao de la MP fuese 1MB, y el tamao de marco 4kb, habra 256 marcos de pgina (del 00 al FF).

  • Gestin de la paginacin

    El fundamento de la paginacin est en que no es necesario que el programa completo se almacene en posiciones consecutivas de memoria.

    Las pginas se almacenan en marcos de pginas libres, independientemente de que estn o no contiguos.

    El SO mantiene por cada proceso una tabla de pginas que indican el marco de pagina donde se encuentra cada pgina del proceso.

  • Direcciones virtuales y fsicas en paginacin

    Recordemos que una cifra HEX corresponde a 4 bits. Con h cifras se direccionan m=24*h palabras.Programas direcciones virtuales

    Si una direccin virtual tiene nv bits, el programa puede tener una capacidad mxima de Cpx=2nv

    Una direccin virtual puede considerarse formada por el nmero de pgina (ndp bits mas significativos) y un desplazamiento dentro de la pgina (nbd bits menos significativos). Se verifica:Nv=nbp+nbdN mximo de pginas que puede tener el programa Npx=2nbp

    Capacidad de la pgina Cpag=2nbd palabras

    Memoria principaldirecciones fsicas.Si una direccin fsica tiene nf bits, la capacidad mxima posible de la memoria ser Cmpx=2nf

    Una direccin fsica puede considerarse formada por marco de pgina (nbm bits ms significativos) y un desplazamiento en el marco de pgina (nbd bits menos significativos). Se verifica que:Nf=nbm+nbdN mximo de pginas que puede tener el programa Nmpx=2nbm

    Capacidad de la pgina Cpag=2nbd palabras

  • Obtencin de la direccin fsica a partir de la direccin virtual

    Las posiciones relativas (desplazamientos) dentro de cada una de las pginas se mantienen al pasarlas a memoria principal.

    En consecuencia para pasar una direccin virtual a fsica basta con cambiar el cdigo de la pgina por el cdigo del marco de pgina.Para hacer este cambio la MMU consulta la tabla de pginas, donde vienen las correspondencias.

    En definitiva, para obtener la direccin fsica es suficiente con concatenar el cdigo del marco de pgina con el desplazamiento.

    Recuerde que en el caso de particiones y segmentacin haba que realizar una suma; ahora slo hay que concatenar, lo cual es mucho mas rpido y fcil que una suma.

  • Obtencin de la direccin fsica a partir de la direccin virtual

    Las posiciones relativas (desplazamientos) dentro de cada una de las pginas se mantienen al pasarlas a memoria principal.

    En consecuencia para pasar una direccin virtual a fsica basta con cambiar el cdigo de la pgina por el cdigo del marco de pgina.Para hacer este cambio la MMU consulta la tabla de pginas, donde vienen las correspondencias.

    En definitiva, para obtener la direccin fsica es suficiente con concatenar el cdigo del marco de pgina con el desplazamiento.

    Recuerde que en el caso de particiones y segmentacin haba que realizar una suma; ahora slo hay que concatener, lo cual es mucho mas rpido y fcil que una suma.

  • Ejercicio

    Considere un sistema de gestin de memoria esttica. El sistema operativo ocupa la primera posicin que tiene un tamao de 10k; el resto de la memoria esta dividido en particiones cuyas caractersticas se muestran en la tabla A. el algoritmo de ubicacin asigna a cada proceso la particin ms pequea que quepa. En la tabla B se puede observar la cantidad de memoria que requiere cada proceso. Realice la distribucin grficamente y hallar el total de fragmentacin interna.

    Tabla A Tabla B

  • Ejercicio

    Nuestro sistema operativo sigue un esquema con particiones dinmicas. La memoria tiene un tamao de 64k de los cuales 10k estn siendo ocupados por el sistema operativo. Al sistema llegan cinco proceso cuayos tamaos se encuentran en la tabla A. Se pide representar grficamente la asignacin de los procesos en memoria.

    Proceso Tamao Llegada Duracin

    A 8K 1 7

    B 14K 2 7

    C 18K 3 4

    D 6K 4 6

    E 14K 5 5

  • Ejercicio

    Estamos trabajando con un sistema operativo que emplea una gestin de memoria paginada. Cada pagina tiene un tamao de 2048 posiciones (o bytes). La memoria fsica disponible para los procesos es de 8Mb. Primero llega un proceso que necesita 31566 posiciones de memoria cuando se carga en memoria y despus llega otro proceso que consume 18432 posiciones cuando se carga en memoria. Hallar la fragmentacin interna por cada proceso y el total.

  • BIBLIOGRAFIA

    Sistemas Operativos, 2da Edicin (1997) William Stallings, Prentice Hall Espaa

    Sistemas Operativos, conceptos fundamentales , 3ra. Edicin (1994) A. Silberschatz, J. Peterson, P. Galvin, Addison-Wesley Publishing Company USA

    Sistemas Operativos, 2da Edicin (1993), H. M. Deitel, Addison-Wesley Publishing Company USA

  • FinIng. Jaime Suasnabar Terrel