ADMINISTRACIÓN Y MANEJO DE LA MEMORIA             Adaptado por:    GIOVANNI ANDRÉS TOVAR CLAVIJO           Sistemas Operat...
ResumenLa parte del sistema operativo que administra la memoria se llamaadministrador de memoria y su labor consiste en ll...
Administración y manejo de La memoriaMemoria RealLa memoria real o principal es en donde son ejecutados los programas ypro...
Administración y manejo de La memoriaEl use de almacenamiento secundario para ofrecer al conjunto de lasaplicaciones la il...
Espacio de direccionesLos espacios de direcciones involucrados en el manejo de la memoria son detres tipos: Direcciones f...
Unidad de manejo de memoriaLa unidad de manejo de memoria (MMU - Memory Management Unit)es parte del procesador. Sus funci...
Unidad de manejo de memoriaLa MMU (Memory Management Unit) se Inicializa para cada proceso delsistema. Esto permite que ca...
CargaLa creación de un proceso activo consiste en cargar un programa en memoriaprincipal y crear allí una imagen del proce...
MontajeLa función de un montador consiste en tomar como entrada una colección demódulos objeto y generar un modulo de carg...
IntercambioEl objetivo del intercambio es dar cabida a la ejecución de mas aplicaciones delas que pueden residir simultáne...
Administración y manejo de La memoriaAsignación contiguaLa memoria principal normalmente se divide en dos particiones: Sis...
Administración y manejo de La memoriaAsignación de particiones múltiplesBloques de distintos tamaños están distribuidos en...
CompactaciónEl proceso de compactación es una instancia particular del problema deasignación de memoria dinámica, el cual ...
Compactación Peor ajuste: Asigna el espacio mas grande. Una vez mas, se debe buscar entoda la tabla de espacios a menos q...
FragmentaciónLa fragmentación es Ia memoria que queda desperdiciada al usar los métodosde gestión de memoria que se vieron...
PaginaciónEs una técnica de manejo de memoria, en la cual el espacio de memoria sedivide en secciones físicas de igual tam...
PaginaciónCada pagina consiste en z palabras contiguas; un espacio de direcciones N deun programa consiste de n paginas (0...
PaginaciónUna posible solución para la fragmentaci6n externa es permitir que el espaciode direcciones lógicas lleve a cabo...
Características de la Paginación El espacio de direcciones lógico de un proceso puede ser no contiguo. Se divide la memo...
Ventajas de la Paginación Es posible comenzar a ejecutar un programa, cargando solo una parte delmismo en memoria, y el r...
Desventajas de la Paginación El costo de hardware y software se incrementa, por la nueva informaciónque debe manejarse y ...
SegmentaciónEs un esquema de manejo de memoria mediante el cual la estructura delprograma refleja su división lógica, llev...
Objetivos de la Segmentación Modularidad de programas: Cada rutina del programa puede ser un bloquesujeto a cambios y rec...
Ventajas de la Segmentación El    programador puede conocer las unidades lógicas de suprograma, dándoles un tratamiento p...
Ventajas de la Segmentación Hay un incremento en los costos de hardware y de software para llevar acabo la implantación, ...
Administracion y manejo de memoria
Upcoming SlideShare
Loading in …5
×

Administracion y manejo de memoria

367 views
315 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
367
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Administracion y manejo de memoria

  1. 1. ADMINISTRACIÓN Y MANEJO DE LA MEMORIA Adaptado por: GIOVANNI ANDRÉS TOVAR CLAVIJO Sistemas Operativos
  2. 2. ResumenLa parte del sistema operativo que administra la memoria se llamaadministrador de memoria y su labor consiste en llevar un registro de laspartes de memoria que se estén utilizando y aquellas que no, con el fin deasignar espacio en memoria a los procesos cuando estos la necesiten yliberarla cuando terminen, así como administrar el intercambio entre lamemoria principal y el disco en los casos en los que la memoria principal nole pueda dar capacidad a todos los procesos que tienen necesidad de ella.Los sistemas de administración de memoria se pueden clasificar en dos tipos:los que desplazan los procesos de la memoria principal al disco y viceversadurante la ejecución y los que no. El propósito principal de un computador esel de ejecutar programas, estos programas, junto con la información queaccesan deben estar en la memoria principal (al menos parcialmente)durante la ejecución.Para optimizar el use del CPU y de la memoria, el sistema operativo debetener varios procesos a la vez en la memoria principal, para lo cual dispone devarias opciones de administración tanto del procesador como de la memoria.
  3. 3. Administración y manejo de La memoriaMemoria RealLa memoria real o principal es en donde son ejecutados los programas yprocesos de un computador y es el espacio real que existe en memoria paraque se ejecuten los procesos. Por lo general esta memoria es de mayor costoque la memoria secundaria, pero el acceso a la informaci6n contenida en ellaes de mas rápido acceso. Solo la memoria cache es mas rápida que laprincipal, pero su costo es a su vez mayor. }Memoria VirtualEl termino memoria virtual se asocia a dos conceptos que normalmenteaparecen unidos:
  4. 4. Administración y manejo de La memoriaEl use de almacenamiento secundario para ofrecer al conjunto de lasaplicaciones la ilusión de tener mas memoria RAM de la que realmente hayen el sistema. Esta ilusión existe a nivel del sistema, teniendo en ejecuciónmas aplicaciones de las que realmente caben en la memoria principal, sin quepor ello cada aplicación individual pueda usar mas memoria de la querealmente hay o incluso de forma mas general, ofreciendo a cada aplicaciónmas memoria de la que existe físicamente en la maquina.Ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que porlo tanto, pueden usar el espacio de direcciones completo. Esta técnica facilitaenormemente la generaci6n de código, puesto que el compilador no tiene porque preocuparse sobre d6nde residirá la aplicación cuando se ejecute.
  5. 5. Espacio de direccionesLos espacios de direcciones involucrados en el manejo de la memoria son detres tipos: Direcciones físicas: Son aquellas que referencian alguna posición en lamemoria física. Direcciones lógicas: Son las direcciones utilizadas por los procesos. Sufrenuna serie de transformaciones, realizadas por el procesador (MMU -MemoryManagement Unit), antes de convertirse en direcciones físicas. Direcciones lineales: Direcciones lineales se obtienen a partir dedirecciones lógicas tras haber aplicado una transformaci6n dependiente de laarquitectura.Los programas de usuario siempre tratan con direcciones virtuales, nunca venlas direcciones físicas reales.
  6. 6. Unidad de manejo de memoriaLa unidad de manejo de memoria (MMU - Memory Management Unit)es parte del procesador. Sus funciones son: Convertir las direcciones lógicas emitidas por los procesos en direccionesfísicas. Comprobar que Ia conversión se puede realizar. La dirección lógica podríano tener una dirección física asociada. Por ejemplo, Ia pagina correspondientea una dirección se puede haber trasladado a una zona de almacenamientosecundario temporalmente. Comprobar que el proceso que intenta acceder a una cierta dirección dememoria tiene permisos para ello.
  7. 7. Unidad de manejo de memoriaLa MMU (Memory Management Unit) se Inicializa para cada proceso delsistema. Esto permite que cada proceso pueda usar el rango completo dedirecciones lógicas, ya que las conversiones de estas direcciones serándistintas para cada proceso.En todos los procesos se configura la MMU para que la zona del núcleo solo sepueda acceder en modo privilegiado del procesador. La configuracióncorrespondiente al espacio de memoria del núcleo es idéntica en todos losprocesos.
  8. 8. CargaLa creación de un proceso activo consiste en cargar un programa en memoriaprincipal y crear allí una imagen del proceso.El cargador sitúa el modulo de carga en la memoria principal, comenzando enla posición limite. En la carga del programa, se deben satisfacer lasnecesidades de direccionamiento, se pueden aplicar tres métodos: Carga Absoluta Carga Reubicable Carga dinámica en tiempo de ejecución
  9. 9. MontajeLa función de un montador consiste en tomar como entrada una colección demódulos objeto y generar un modulo de carga que conste de un conjuntointegrado de módulos de programación y de datos para el cargador. Elmontador crea un único modulo de carga que es la concatenación de todos losmódulos objeto. Colección de Modulo de módulos objeto carga
  10. 10. IntercambioEl objetivo del intercambio es dar cabida a la ejecución de mas aplicaciones delas que pueden residir simultáneamente en la memoria del sistema: Consisteen trasladar el código y los datos de un proceso completo de memoria alsistema de almacenamiento secundario, para cargar otro previamentealmacenado, no permite a un proceso utilizar mas memoria RAM de la querealmente existe en el sistema. Esta técnica puede ser ineficiente ya que setiene que hacer el intercambio completo del proceso, aunque este solo vaya aejecutar una pequeña porción del código.Durante el intercambio un proceso puede ser sacado temporalmente dememoria y llevado a un lugar especial del disco y posteriormente vuelto amemoria y continuada su ejecución. El lugar de almacenamiento temporalsuele ser un espacio suficientemente grande como para acomodar copias delas imágenes de memoria de todos los usuarios.
  11. 11. Administración y manejo de La memoriaAsignación contiguaLa memoria principal normalmente se divide en dos particiones: Sistemaoperativo residente, normalmente en la parte baja de memoria con losvectores de interrupción y los procesos de usuario en la parte alta.Asignación de partición simplePuede utilizarse un esquema de registro de relocalización y limite paraproteger un proceso de usuario de otro y de cambios del código y datos delsistema operativo. El registro de relocalización contiene la dirección físicamas pequeña; el registro limite contiene el rango de las direcciones lógicas.Cada direcci6n lógica debe ser menor al registro limite .
  12. 12. Administración y manejo de La memoriaAsignación de particiones múltiplesBloques de distintos tamaños están distribuidos en memoria, cuando llega unproceso se le asigna un hueco suficientemente grande para acomodarle.El sistema operativo debe tener información sobre: Particiones asignadas Particiones libres (huecos) Asignación de partición dinámica
  13. 13. CompactaciónEl proceso de compactación es una instancia particular del problema deasignación de memoria dinámica, el cual es el como satisfacer una necesidadde tamaño n con una lista de huecos libres. Existen muchas soluciones para elproblema. El conjunto de huecos es analizado para determinar cual hueco esel mas indicado para asignarse. Las estrategias mas comunes para asignaralgún hueco de la tabla son: Primer ajuste: Consiste en asignar el primer hueco con capacidadsuficiente. La búsqueda puede iniciar ya sea al inicio o al final del conjunto deespacios o en donde termina la ultima búsqueda. La búsqueda termina alencontrar un espacio lo suficientemente grande. Mejor ajuste: Busca asignar el espacio mas pequeño de los espacios concapacidad suficiente. La búsqueda se debe realizar en toda la tabla, a menosque la tabla este ordenada por tamaño. Esta estrategia produce el menordesperdicio de memoria.
  14. 14. Compactación Peor ajuste: Asigna el espacio mas grande. Una vez mas, se debe buscar entoda la tabla de espacios a menos que este organizada por tamaño. Estaestrategia produce los espacios de sobra mas grandes, los cuales pudieran serde mas uso si llegan procesos de tamaño mediano que quepan en ellos.Se ha demostrado mediante simulacros que tanto el primer y el mejor ajusteson mejores que el peor ajuste en cuanto a minimizar el tiempo delalmacenamiento.Ni el primer ajuste o el mejor ajuste es claramente el mejor en términos deuso de espacio, pero por lo general el primer ajuste es mas rápido.Problema: La fragmentación.
  15. 15. FragmentaciónLa fragmentación es Ia memoria que queda desperdiciada al usar los métodosde gestión de memoria que se vieron en los métodos anteriores. Tanto elprimer ajuste, como el mejor y el peor producen fragmentación externa. Lafragmentación es generada cuando durante el reemplazo de procesos quedanhuecos entre dos o mas procesos de manera no contigua y cada hueco no escapaz de soportar ningún proceso de Ia lista de espera. La fragmentaciónpuede ser: Fragmentación Externa: Existe el espacio total de memoria para satisfacerun requerimiento, pero no es contigua. Fragmentación Interna: La memoria asignada puede ser ligeramente mayorque la requerida; esta referencia es interna a la partición, pero no se utiliza.La fragmentación externa se puede reducir mediante la compactación paracolocar toda la memoria libre en un solo gran bloque, pero esta solo es posiblesi la relocalización es dinámica y se hace en tiempo de ejecución.
  16. 16. PaginaciónEs una técnica de manejo de memoria, en la cual el espacio de memoria sedivide en secciones físicas de igual tamaño, denominadas marcos de pagina.Los programas se dividen en unidades lógicas, denominadas paginas, quetienen el mismo tamaño que los marcos de paginas. De esta forma, se puedecargar una pagina de informaci6n en cualquier marco de pagina. Las paginassirven como unidad de almacenamiento de información y de transferenciaentre memoria principal y memoria auxiliar o secundaria. Cada marco seidentifica por la direcci6n de marco, que esta en la posici6n %Ica de laprimera palabra en el marco de pagina.Las paginas de un programa necesitan estar contiguamente en memoria. Losmecanismos de paginación permiten la correspondencia correcta entre lasdirecciones virtuales (dadas por los programas) y las direcciones reales de lamemoria que se reverencien.
  17. 17. PaginaciónCada pagina consiste en z palabras contiguas; un espacio de direcciones N deun programa consiste de n paginas (0,1,2,3...n-1) (n*z direcciones virtuales) yel espacio de memoria consiste de m marcos de paginas (0,1,2,...,(m-1)z)(m*zposiciones). Una dirección virtual a es equivalente a una dirección dada comouna dupla (p, d), en la cual p es el numero de la pagina y d el numero de lapalabra dentro de la pagina, de acuerdo con la relación: a=p*z+d, los cuatrobits mas significativos indican el numero de la pagina y los m-4 bitsrestantes, el desplazamiento.Para tener el control de las paginas, debe mantenerse una tabla en memoriaque se denomina tabla de Mapas de Pagina (PMT) para cada uno de losprocesos. Hasta ahora, los métodos que hemos visto de la administración dela memoria principal, nos han dejado con un problema:Fragmentación, (espacios en la memoria que no pueden usarse debido a lopequeño de su espacio) lo que nos provoca un desperdicio de memoriaprincipal.
  18. 18. PaginaciónUna posible solución para la fragmentaci6n externa es permitir que el espaciode direcciones lógicas lleve a cabo un proceso en direcciones nocontiguas, así, permite al proceso ubicarse en cualquier espacio de memoriafísica que este disponible, aunque este dividida. Una forma de implementaresta solución es a través del use de un esquema de paginación. La paginaciónevita el considerable problema de ajustar los espacios de memoria de tamañosvariables que han sufrido los esquemas de manejo de memoria anteriores.Dado a sus ventajas sobre los métodos previos, la paginación, en sus diversasformas, es usada en muchos sistemas operativos. Al utilizar la memoriavirtual, las direcciones no pasan en forma directa al bus de memoria, sino quevan a una unidad administradora de la memoria (MMU — MemoryManagement Unit). Estas direcciones generadas por los programas se llamandirecciones virtuales y conforman el espacio de direcciones virtuales. Esteespacio se divide en unidades llamadas paginas. Las unidadescorrespondientes en la memoria física se llaman marcos para pagina o frames.Las paginas y los frames tienen siempre el mismo tamaño.
  19. 19. Características de la Paginación El espacio de direcciones lógico de un proceso puede ser no contiguo. Se divide la memoria física en bloques de tamaño fijo llamados marcos(frames). Se divide la memoria en bloques de tamaño llamados paginas. Se mantiene información en los marcos libres. Para correr un programa de n paginas de tamaño, se necesitan encontrar nmarcos y cargar el programa. Se establece una tabla de paginas para trasladar las direcciones lógicas afísicas. Se produce fragmentación interna.
  20. 20. Ventajas de la Paginación Es posible comenzar a ejecutar un programa, cargando solo una parte delmismo en memoria, y el resto se cargara bajo la solicitud. No es necesario que las paginas estén contiguas en memoria, por lo que nose necesitan procesos de compactación cuando existen marcos de paginaslibres dispersos en la memoria. Es fácil controlar todas las paginas, ya que tienen el mismo tamaño. El mecanismo de traducción de direcciones (DAT) permite separar losconceptos de espacio de direcciones y espacios de memoria. Todo elmecanismo es transparente al usuario. Se libera al programador de la restricción de programar para un tamañofísico de memoria, con lo que aumenta su productividad. Se puede programaren funci6n de una memoria mucho mas grande a la existente. Al no necesitarse cargar un programa completo en memoria para suejecuci6n, se puede aumentar el numero de programas multiprogramandose. Se elimina el problema de fragmentaci6n externa.
  21. 21. Desventajas de la Paginación El costo de hardware y software se incrementa, por la nueva informaciónque debe manejarse y el mecanismo de traducción de direcciones necesario.Se consumen muchos mas recursos de memoria, tiempo en el CPU para suimplantación. Se deben reservar áreas de memoria para las PMT (tabla de mapas depaginas) de los procesos. Al no ser fijo el tamaño de estas, se crea unproblema semejante al de los programas como asignar un tamaño optimo sindesperdicio de memoria, u overhead del procesador). Aparece el problema de fragmentación interna. Así, si se requieren 5K paraun programa, pero las paginas son de 4K, deberán asignárseles 2 paginas(8k), con lo que quedan 3K sin utilizar. La suma de los espacios libres dejadosde esta forma puede ser mayor que el de varias paginas, pero no podrá serutilizado. Debe asignarse un tamaño promedio a las paginas, evitando que sison muy pequeñas, se necesiten tablas muy grandes, y si son muy grandes, seincremente el grado de fragmentación interna.
  22. 22. SegmentaciónEs un esquema de manejo de memoria mediante el cual la estructura delprograma refleja su división lógica, llevándose a cabo una agrupaci6n lógicade la informaci6n en bloques de tamaño variable denominados segmentos.Cada uno de ellos tienen informaci6n lógica del programa:subrutina, arreglo, etc. Luego, cada espacio de direcciones de programaconsiste de una colección de segmentos, que generalmente reflejan la divisiónlógica del programa. Programa, Tareas, Procesos macro Segmentos
  23. 23. Objetivos de la Segmentación Modularidad de programas: Cada rutina del programa puede ser un bloquesujeto a cambios y recopilaciones, sin afectar por ello al resto del programa. Estructuras de datos de largo variable: Ej. Stack, donde cada estructuratiene su propio tamaño y este puede variar. Protección: Se pueden proteger los módulos del segmento contra accesosno autorizados. Compartición: Dos o mas procesos pueden ser un mismo segmento, bajoreglas de protección; aunque no sean propietarios de los mismos. Enlace dinámico entre segmentos: Puede evitarse realizar todo el procesode enlace antes de comenzar a ejecutar un programa. Los enlaces seestablecerán solo cuando sea necesario.
  24. 24. Ventajas de la Segmentación El programador puede conocer las unidades lógicas de suprograma, dándoles un tratamiento particular. Es posible compilar módulosseparados como segmentos, el enlace entre los segmentos puede suponerhasta tanto se haga una referencia entre segmentos. Debido a que es posible separar los módulos, se hace mas fácil lamodificaci6n de los mismos. Cambios dentro de un modulo no afecta al restode los módulos. Es fácil compartir segmentos. Es posible que los segmentos crezcandinámicamente según las necesidades del programa en ejecuci6n. Existe la posibilidad de definir segmentos que aun no existan. Así, no seasignara memoria, sino a partir del momento que sea necesario hacer usos delsegmento. Un ejemplo de esto, serian los arreglos cuya dimensión no seconoce hasta tanto no se comienza a ejecutar el programa. En algunoscasos, incluso podría retardar la asignaci6n de memoria hasta el momento enel cual se referencia el arreglo u otra estructura de datos por primera vez.
  25. 25. Ventajas de la Segmentación Hay un incremento en los costos de hardware y de software para llevar acabo la implantación, así como un mayor consumo de recursos:memoria, tiempo de CPU, etc. Debido a que los segmentos tienen un tamaño variable se puedenpresentar problemas de fragmentaci6n externas, lo que puede ameritar unplan de reubicaci6n de segmentos en memoria principal. Se complica el manejo de memoria virtual, ya que los discos almacenan lainformación en bloques de tamaños fijos, mientras los segmentos son detamaño variable. Esto hace necesaria la existencia de mecanismos mascostosos que los existentes para paginación. Al permitir que los segmentosvaríen de tamaño, pueden ser necesarios planes de reubicaci6n a nivel de losdiscos, lo que conlleva a nuevos costos. No se puede garantizar que al salir un segmento de la memoria, este puedaser traído fácilmente de nuevo, ya que será necesario encontrar nuevamenteun área de memoria libre ajustada a su tamaño.

×