7 SO Teo AdministracionMemoria

Embed Size (px)

DESCRIPTION

University document.Operating system concept.

Citation preview

  • Sistemas Operativos

    Curso 2015Administracin de

    memoria I

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 2/25

    Agenda

    Introduccin. Conceptos bsicos. Preparacin de un programa para ejecutar. reas de la memoria de un proceso. Asociacin de direcciones. Ensamblaje dinmico y bibliotecas compartidas. Asociacin dinmica de la memoria a nivel de proceso. Carga dinmica. Direccionamiento. Tipos de direccionamiento. Proteccin de memoria. Asignacin de memoria. Swapping.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 3/25

    Introduccin

    La administracin de la memoria es una de las ms importantes tareas del sistema operativo.

    En los sistemas operativos multiprogramados es necesario mantener varios programas en memoria al mismo tiempo.

    Existen varios esquemas para la administracin de la memoria y requieren distinto soporte del hardware.

    El sistema operativo es responsable de las siguientes tareas: Mantener que partes de la memoria estn siendo utilizadas y por quien. Decidir cuales procesos sern cargados a memoria cuando exista

    espacio de memoria disponible. Asignar y quitar espacio de memoria segn sea necesario.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 4/25

    Conceptos bsicos

    Preparacin de un programa para ejecutar. Los programas son escritos, por lo general, en lenguajes de alto nivel y

    deben pasar por distintas etapas antes de ser ejecutados: Compilacin (compile): Traduccin del cdigo fuente del programa a un

    cdigo objeto. Ensamblaje (linker): Ensamblaje de varios cdigos objetos en un archivo

    ejecutable. Carga (load): Asignacin del archivo ejecutable a la memoria principal del

    sistema. Un programa ejecutable consta de secciones de instrucciones y de datos. El linker surge ante la necesidad de modularizar y reutilizar cdigo. Se

    resuelven las referencias externas, as como las posiciones relativas de los smbolos en los diferentes mdulos, formando uno consolidado.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 5/25

    Conceptos bsicos

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 6/25

    Conceptos bsicos

    Cuando un proceso es creado el cargador (loader) del sistema crea en memoria el espacio necesario para la diferentes reas y la carga con la informacin.

    El compilador, ensamblador, sistema operativo y bibliotecas dinmicas deben cooperar para administrar la informacin y realizar la asignacin.

    Compilador: genera un archivo objeto para cada archivo fuente. La informacin est incompleta, ya que se utilizan informaciones de otros archivos (cmo llamados a funciones externas).

    Ensamblador (linker): combina todos los archivos objetos de un programa dentro de un nico archivo objeto.

    Sistema operativo: Carga los programa en memoria, permite compartir la memoria entre varios procesos y brinda mecanismos a los procesos para obtener ms memoria en forma dinmica.

    Bibliotecas dinmicas: proveen rutinas de asignacin dinmica (malloc, free).

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 7/25

    Conceptos bsicos La memoria de un proceso cuando ejecuta se estructura en diferentes

    reas:

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 8/25

    Carga dinmica (dynamic loading)

    El tamao de un proceso en memoria est limitado por la cantidad de memoria fsica del sistema.

    Con el fin de lograr un mayor aprovechamiento de la memoria se puede utilizar la carga dinmica.

    La carga dinmica dispone que una rutina no es cargada en memoria fsica hasta que no sea invocada.

    La ventaja de la carga dinmica es que las rutinas que no son utilizadas, no son cargadas en memoria fsica y, por lo tanto, no consumen recursos innecesariamente.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 9/25

    Ensamblaje dinmico (dynamic linking)

    En la etapa de ensamblaje de un programa las bibliotecas compartidas pueden incorporarse al archivo ejecutable generado (ensamblaje esttico o static linking).

    Ej. en Linux: /usr/lib/libc.a Otra alternativa es que las bibliotecas compartidas sean cargadas en

    tiempo de ejecucin (ensamblaje dinmico o dynamic linking). Ej. en Linux /lib/libc.so En Windows system.dll

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 10/25

    Ensamblaje dinmico (dynamic linking)

    En los archivos ejecutables las bibliotecas estticas son incorporadas, mientras que para las dinmicas se mantiene una referencia.

    Ej. en Linux comando ls: $ ldd /bin/ls librt.so.1 => /lib/librt.so.1 (0x4001c000) libc.so.6 => /lib/libc.so.6 (0x40030000) libpthread.so.0 => /lib/libpthread.so.0 (0x40149000) /lib/ld-linux.so.2 (0x40000000)

    Esto permite, junto con la carga dinmica, hacer un uso ms eficiente de la memoria, ya que las bibliotecas dinmicas se cargan una nica vez en memoria principal.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 11/25

    Asociacin de direcciones (address binding)

    La asignacin de la ubicacin de un programa en memoria principal puede ser realizada en varios tiempos:

    Tiempo de compilacin (compile time): El programa ser asignado a un lugar especfico y conocido de la memoria fsica. La direcciones de memoria son referenciadas en forma absoluta (static relocation).

    Tiempo de carga (load time): La asignacin del lugar de memoria donde ser cargado el programa es hecho al momento de la carga. Las direcciones de memoria deben ser referenciadas en forma relativa (dynamic reolcation).

    Tiempo de ejecucin (execution time): Un programa puede variar su ubicacin en memoria fsica en el transcurso de la ejecucin.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 12/25

    Asignacin dinmica a nivel de proceso

    La asignacin dinmica en un proceso se da a travs de: Asignacin en el Stack. Asignacin en el Heap.

    A nivel del stack la memoria se comporta en forma ms predictiva.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 13/25

    Asignacin dinmica a nivel de proceso

    La asignacin en el heap no es predictiva como en el caso del stack:

    En este caso se genera fragmentacin de la memoria. Los sistemas operativos optan por delegar la administracin de esta

    memoria a bibliotecas de usuario.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 14/25

    Tipos de direccionamiento

    Se definen varios tipos de direccionamiento: Direccionamiento fsico (physical address): La unidad de memoria

    manipula direcciones fsicas. Direccionamiento virtual (virtual address): Son las direcciones lgicas

    que se generan cuando existe asociacin de direccionamiento en tiempo de ejecucin.

    Para la asociacin de direcciones en tiempo de compilacin o carga, las direcciones lgicas o fsicas coinciden. No es as para la asociacin en tiempo de ejecucin.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 15/25

    Tipos de direccionamiento

    La traducciones de direcciones lgicas a fsicas son hechas por la MMU (Memory Management Unit).

    Los procesos solo manipulan direcciones lgicas y no visualizan las fsicas, que solamente son vistas por la MMU.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 16/25

    Proteccin de memoria

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 17/25

    Asignacin de memoria a nivel del sistema

    La memoria, por lo general, es dividida en dos particiones: Sistema operativo residente. Procesos de usuarios.

    Es necesario un mecanismo de proteccin de memoria entre los procesos entre s y el sistema operativo.

    El registro de ubicacin (relocation register) y el registro lmite son utilizados para realizar la verificacin de accesos vlidos a la memoria.

    Toda direccin lgica debe ser menor al valor del registro lmite.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 18/25

    Estructuras para asignacin

    El sistema operativo debe llevar cuenta de las particiones ocupadas y libres.

    Los mtodos ms comunes utilizados son a travs de: Mapa de bits. Lista encadenada.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 19/25

    Estrategia de asignacin

    En la asignacin de memoria a un proceso existe varias estrategias: First fit: Asigna el primer agujero de memoria libre que satisface la

    necesidad. Best fit: Asigna el mejor agujero de memoria libre que exista en la

    memoria principal. Worst fit: Asigna el requerimiento en el agujero ms grande que exista

    en la memoria principal. Estudios de simulacin han mostrado que first fit y best fit lograron

    mejores rendimientos en tiempo de asignacin y utilizacin de la memoria que la estrategia worst fit.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 20/25

    Estrategia de asignacin

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 21/25

    Estrategia de asignacin

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 22/25

    Fragmentacin

    Las estrategias de asignacin presentadas muestran problemas de fragmentacin externa.

    En la memoria van quedando una gran cantidad de agujeros chicos, que no son asignados. La memoria libre est fragmentada en una gran cantidad agujeros chicos.

    La fragmentacin externa existe cuando existe suficiente memoria libre en el sistema para satisfacer un requerimiento de memoria, pero no es posible asignarlo debido a que no es contiguo.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 23/25

    Swapping

    En sistemas multiprogramados ms de un proceso est cargado en memoria principal. Para obtener un mayor nivel de multiprogramacin, los procesos que no estn ejecutando pueden ser llevados a disco temporalmente.

    El disco (backing store) es un espacio donde se dispondrn las imagen de memoria de los procesos.

    Al mecanismo de llevar un proceso desde memoria principal a disco se le denomina swap-out. Al inverso se le denomina swap-in.

    El mayor tiempo consumido en el swapping es el tiempo de transferencia.

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 24/25

    Swapping

  • Sistemas Operativos | Curso 2015 | Administracin de memoria I 25/25

    Swapping

    El lugar de memoria donde ser asignado un proceso en el momento de swap-in depende del mtodo de asociacin de direccionamiento (address binding) utilizado.

    En la asociacin en tiempo de compilacin o de carga (compile, load time) debe ser el mismo lugar, mientras que si la asociacin es en tiempo de ejecucin la asignacin del lugar es libre.

    Slide1Slide2Slide3Slide4Slide5Slide6Slide7Slide13Slide9Slide10Slide8Slide11Slide12Slide14Slide15Slide16Slide17Slide18Slide19Slide20Slide21Slide22Slide23Slide24Slide25