Anda di halaman 1dari 18

Seguridad en Sistemas Operativos Unidad 1

Procesos, gestin de memoria y sistema de archivos 1.4 Manejo de la memoria

Instituto Tecnolgico de Tizimn

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


La organizacin y administracin de la memoria principal de un sistema ha sido uno de los factores mas importantes en el diseo de los Sistemas Operativos. Lo que todo programador quiere es tener una memoria privada, de tamao y rapidez infinita, adems de que no sea voltil. La memoria no es barata.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Preparacin de un programa para su ejecucin: 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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Recordemos que: Un programa(proceso) consta de una seccin de instrucciones y una seccin de datos. El sistema operativo es el responsable de asignar y desasignar espacio en memoria para la carga de los procesos.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Asociacin de direcciones (address binding) La asignacin de la ubicacin de un programa en memoria principal puede ser llevada 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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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). -Otra alternativa es que las bibliotecas compartidas sean cargadas en tiempo de ejecucin (ensamblaje dinmico o dynamic linking). -En los archivos ejecutables las bibliotecas estticas son incorporadas, mientras que para las dinmicas se mantiene una referencia

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Asignacin en el Stack

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Asignacin en el Heap

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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 que 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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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 direccionamiento en tiempo de compilacin o carga, las direcciones lgicas o fsicas coinciden. No es as para la asociacin en tiempo de ejecucin.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Tipos de direccionamiento Proteccin de la memoria

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Asignacin de memoria a nivel 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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


Estrategias de asignacin de memoria 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.

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria

Seguridad en Sistemas Operativos Unidad 1 Manejo de la memoria


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.

Anda mungkin juga menyukai