Administracion de memoria

665 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
665
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Administracion de memoria

  1. 1. Instituto Tecnológico Superior de El Mante Sistemas Operativos Unidad III: Administración de memoria ISC. Roberto Rangel Anguiano Cd. Mante, Tamaulipas A 30 de Septiembre de 2013
  2. 2. Memoria • La memoria es un recurso importante que se debe administrar con cuidado. • La parte del sistema operativo que administra la jerarquía de memoria se denomina administrador de memoria.
  3. 3. Programador • Idealmente, lo que a todo programador le gustaría es una memoria infinitamente grande y rápida que además no sea volátil, es decir, que no pierda su contenido cuando se interrumpa la alimentación eléctrica.
  4. 4. Administración de la memoria en los sistemas monoprogramados Programa de usuario Núcleo en RAM OxFF… Programa de usuario Núcleo en ROM OxFF… Programa de usuario Sistema Operativo en RAM OxFF…Controladores de dispositivos en ROM Tres formas de organización de la memoria RAM, con un sistema operativo y un proceso de usuario. Todo el programa es cargado a memoria para su ejecución Programa de usuario Sistema Operativo Dirección del registro limite CPU Registro limite Protección de la Memoria PC de IBM BIOS
  5. 5. Administración de la memoria en los sistemas multiprogramados Núcleo del S.O 512 Proceso 1 Proceso 2 Proceso 3 Proceso n d1 d2 d3 d4 dm Los problemas que aparecen en los sistemas multiprogramados y/o multiusuarios son: 1. Llevar un recuento de las zonas de memoria ocupadas por los procesos. ¿Qué proceso ocupa cual espacio?. 2. El momento de escribir un programa no se sabe en qué zona de memoria se ubicará, siendo posible que durante la vida de un proceso éste cambie varias veces de lugar. 3. La protección de las zonas de memoria ocupadas por los procesos, máxime en sistemas multiusuario donde los procesos pueden pertenecer a distintos usuarios. Direcciones de memoria
  6. 6. Gestión de Memoria Los requisitos que se intentan satisfacer en la gestión de la memoria en los sistemas donde se emplea la multiprogramación o los sistemas multiusuarios son: 1. Reubicación. 2. Protección. 3. Compartición. 4. Organización lógica. 5. Organización física. Memoria Principal Reubicación Compartición Protección, organización física y lógica Memoria Virtual
  7. 7. Asignación de memoria contigua Núcleo del S.O 512 512 k 512 k 512 k 512 k 512 k 512 k 512 k Particiones estáticas Organización de la memoria: La memoria se divide en regiones con límites fijos, con dos alternativas: 1. particiones igual tamaño o 2. particiones de diferentes tamaños. Núcleo del S.O 512 128 k 256 K 320 k 512 k 576 k 768 k 1 M Asignación de procesos a la memoria: Se pueden tener dos esquemas de asignación de memoria en particiones estáticas utilizando colas de procesos: 1. Colas de planificación para cada partición. 2. Una cola de planificación para la memoria (mayor eficiencia)
  8. 8. Asignación de memoria contigua Sistema operativo 512 512 k 512 k 512 k 512 k 512 k 512 k 512 k Proceso A 128 K Particiones estáticas Una vez introducido un proceso en una partición, permanece en ella hasta su finalización aunque se encuentren libres otras particiones. Esto provoca una pérdida de eficiencia Los trabajos se traducían mediante compiladores y ensambladores absolutos, para ejecutarse en una partición específica Proceso B 256 K Proceso C 640 K Listos Bloqueados Ejecución Espera eventoTermina evento Interrupción de reloj 384 k 256 k 384 k Proceso del S.O. 128 K Solicitud para entrar al sistemas Bloqueados Suspendidos Listos Suspendidos Interrupción de reloj Memoria secundaria ¿Cuántos procesos Pueden colocarse en memoria secundaria? 1024 K
  9. 9. Asignación de memoria contigua Particiones estáticas Sistema operativo Procesos nuevos Cuando un proceso se introduce en una partición, lo más probable es que su tamaño no sea el mismo (es decir, sea algo menor) que el de la partición. Esto origina un problema de desperdicio de memoria conocido como fragmentación interna. Algunas colas estarán saturadas por procesos que tienen un tamaño similar a la partición mientras que otras estarán vacías o semivacías. Sistema operativo Procesos nuevos
  10. 10. Asignación de memoria contigua Particiones estáticas Se minimiza la partición interna porque cada proceso es asignado a la partición más pequeña. Para ello se supone que se conoce el tamaño de la cantidad de memoria que ocupa un proceso lo cual no siempre es cierto. Procesos nuevos Sistema operativo 512 128 k 256 K 320 k 512 k 576 k 768 k 1 M Procesos nuevos Sistema operativo 512 128 k 256 K 320 k 512 k 576 k 768 k 1 M
  11. 11. ● PROCESO 10000 10100 Memoria RAM Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Proceso Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl Askdlkelirlekrlkerklerlkerlkerlkertlk ertlertlertjlekrtlekrtlkertletjl 0 100 Dirección relativa Dirección real Registro Base (RB) 10000 Acumulador (A) 100 MMU RB + A CPU Ejecución de la instrucción del proceso BCP Información sobre las direcciones reales Enviado por el BUS Programa Pila Datos La traducción de las direcciones virtuales a reales es implementada por una Unidad de Manejo de Memoria (MMU).
  12. 12. A A F A B C D C E C E Asignación de memoria contigua Particiones dinámicas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 G Memoria Virtual A, F, C o E Pasar temporalmente un proceso para dar oportunidad a un nuevo proceso para ejecutarse No hay espacio
  13. 13. A A F A B C D C E C E Asignación de memoria contigua Particiones dinámicas 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 El continuo ingreso y salida de los procesos producen huecos en la memoria demasiado pequeños para que un proceso pueda colocarse. A este tipo de fragmentación se le conoce como fragmentación externa. La recuperación de los huecos de memoria puede llevarse a cabo por medio de la técnica de compactación donde los espacios disponibles de memoria son colocados en la parte inferior y los procesos en la parte superior. Sin embargo, este proceso es demasiado lento y posiblemente no justifique el consumo de recursos, debido a que el sistema debe estar inactivo para poder realizar la compactación.
  14. 14. A F G C E Asignación de memoria contigua Particiones dinámicas H Estrategias de colocación Primer ajuste. Primera partición de memoria que se encuentre libre. Mejor ajuste. Busca y asigna la partición de memoria que mejor se ajuste al tamaño del proceso tratando de dejar libre la menor cantidad de memoria Peor ajuste. Se busca y asigna la partición de mayor tamaño para dejar libre la mayor cantidad de memoria para que pueda colocarse otro proceso en ella.
  15. 15. Administración de memoria particiones estáticas Partición estática. Es suficiente con guardar en una tabla la información sobre la partición que está libre o que está ocupada y qué proceso se encuentra en ella, así como la direcciones de comienzo y fin de la partición. ¿Cómo se lleva el control de la memoria que se encuentra disponible y aquella que esta ocupada? No. de partición Libre/ ocupada Id del Proceso Inicio de la partición Fin de la partición Tabla de administración de la memoria Partición dinámica pueden ser implementada por 1. Mapa de bits. 2. Listas enlazadas. 3. Sistema de los asociados.
  16. 16. Administración de memoria particiones dinámicas Mapas de bits Se divide la memoria en bloques de cierto tamaño y se mantiene en memoria una tabla donde cada bit se utiliza para identificar un bloque ocupado (1) o libre (0). Si las particiones son muy pequeñas se tendrá un mapa de bits muy grande y viceversa. Listas enlazadas La lista esta compuesta por los siguientes campos:  Bit que representa un proceso o una partición disponible.  Numero de bloque de inicio.  Numero de bloques utilizados.  Puntero al siguiente nodo en la lista. Ventajas: La actualización de la lista enlazada es directa. Desventaja: La búsqueda del un hueco que pueda satisfacer la solicitud de memoria para un proceso es lento. La solución puede ser la creación de dos listas enlazadas, una para los procesos y otra para los espacios libres. Esto provoca que se dé mantenimiento a dos listas cuando un proceso termina y cuando se otorga memoria a otro proceso. A B C D E P 0 5 ● H 5 3 ● P 8 6 ● P 14 4 ● H 18 2 ● P 20 6 ● P 26 3 ● H 29 3 XHueco o proceso Inicio Longitud
  17. 17. Administración de memoria particiones dinámicas Sistemas asociados Consiste en tener la memoria inicialmente como un gran espacio libre que se irá particionando en múltiplos de potencia de 2 cada vez que un proceso haga la solicitud de memoria. P B 1 MB 512 KB 256 KB 128 KB P 56 K 512 K 512 K 256 K 256 K256 K 256 K 128 K 128 K 128 K 128 K 128 K 128 K 128 K 128 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 64 K 1 M
  18. 18. Bloque de control de Proceso Código Datos Pila Dirección Relativa o lógica Sumador Comparador Registro Base Registro Límite Interrupción al Sistema Operativo Dirección Absoluta, física o real Imagen de un Proceso en Memoria Principal Soporte del Hardware para la reubicación. AcumuladorMemoryManagementUnit Para el intercambio de procesos entre la memoria real y la memoria virtual se requiere un mecanismo que reubique los procesos sin perder las referencias que se hacen dentro de él. Los programas que emplean direcciones relativas se cargan mediante cargadores dinámicos durante la ejecución. La Unidad Manejadora de Memoria (MMU) realiza la traducción de las direcciones relativas en direcciones físicas en la memoria principal.
  19. 19. Palabra 0 Palabra z Palabra 0 Palabra z Palabra 0 Página 0 Palabra z Página 1 Palabra 1 Palabra z Página n-1 Programa XYZ 1 11 0 1 1 10 1 0 1 1 10 1 1 1 2 Los ordenadores modernos normalmente tienen un tamaño de palabra de 16, 32 ó 64 bits. 3 4 5 6 7 8 9 10 11 12 13 14 15 16 palabra Marco n-1 Página 0 Página n-1 Página Marco 0 Página Memoria Programa XYZ 1. Cada página consiste en z palabras contiguas 2. Un espacio de direcciones N de un programa consiste de n páginas (0,1,2,3…n-1) (n*z direcciones virtuales) 3. el espacio de memoria consiste de m marcos de paginas (0,z,2z,…,(m- 1)z)(m*z posiciones) La técnica de paginación simple es similar a la partición estática. Las diferencias están en que, con paginación las particiones son más pequeñas, un programa puede ocupar más de una partición y éstas no tienen por qué estar contiguas. Memoria virtual Paginación
  20. 20. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 B.0 B.1 B.2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C.3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 (a) 15 páginas libres b) Carga del proceso A c) Carga del proceso B d) Carga del proceso C e) Expulsión del proceso B f) Carga del proceso D 0 1 2 3 -- -- -- 0 1 2 4 5 6 11 12 0 1 2 3 4 7 8 9 10 0 1 2 3 13 14 Tablas del páginas del Proceso A Tablas del páginas del Proceso B Tablas del páginas del Proceso C 0 1 2 3 Tablas del páginas del Proceso D Listas de marcos libres
  21. 21. Una dirección virtual a es equivalente a una dirección dada como una dupla (p, d), en la cual p es el número de la página y d el número de la palabra dentro de la página Palabra 0 Palabra z Palabra 0 Palabra z Palabra 0 Página 0 Palabra z Página 1 Palabra 1 Palabra z Página n-1 ),(a = dp Marco 0 Palabra de 16 bits 0000010111011110 Página de 1024 bits = 1 K 0 10 0 0 0 10 1 1 0 1 11 1 0 Dirección lógica de bits No. de página de 6 bits 000101 000110 000101 0 1 2 0 10 0 0 1 01 1 1 0 1 11 1 0 Desplazamiento de 10 bits Dirección física de 16 bits
  22. 22. Memoria Asociativa En la práctica es necesario que la mayoría de los accesos a memoria no impliquen una consulta a la tabla de páginas, sino que únicamente requieran el acceso a la posición solicitada. Esto se logra mediante el uso de una memoria asociativa interna en la MMU que mantiene información sobre las últimas páginas accedidas. Esta memoria asociativa es considerada memoria cache especial de alta velocidad.
  23. 23. Páginas compartidas Otra ventaja de la paginación es la posibilidad de compartir programas de uso común. Esta técnica resulta sumamente importante en un entorno de tiempo compartido. Se pueden compartir desde editores como compiladores, ensambladores y sistemas de base de datos. Para que sean compartibles, el código debe ser reentrante (no automodificable), es decir, el código es sólo de búsqueda o sólo lectura. ed1 ed1 ed1 Datos 1 ed1 ed1 ed1 Datos 1 ed1 ed1 ed1 Datos 1 3 4 6 1 3 4 6 7 3 4 6 2 Proceso P1 Proceso P2 Proceso P3 Tabla de Páginas P1 Tabla de Páginas P2 Tabla de Páginas P3 Datos 1 Datos 3 ed1 ed2 ed3 Datos 2 0 1 2 3 4 5 6 7 8 9 10
  24. 24. Memoria virtual Segmentación subrutina pila Tabla de símbolos Programa principal Sqrt Segmento 0 Segmento 1 Segmento 2 Segmento 4 Segmento 3 Límite 1000 400 400 1100 1000 Base 1400 6300 4300 3200 4700 0 1 2 3 4 Tabla de segmentos Segmento 0 Segmento 3 Segmento 2 Segmento 4 Segmento 1 1400 2400 3200 6700 6300 5700 4700 4300 La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma. Un espacio de direcciones lógicas es una colección de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento. Por lo tanto, el usuario especifica cada dirección mediante dos cantidades: un nombre de segmento y un desplazamiento.
  25. 25. Memoria virtual Segmentación La segmentación simple siempre hace uso de una tabla de segmentos para cada proceso y una tabla de segmentos en la memoria principal. La tabla de segmentos para un proceso contiene la dirección física de comienzo del segmento y la longitud máxima de éste (como medida de protección, para evitar referencias a segmentos que no corresponda). Tabla de segmentos Limite Bases d CPU < + Memoria interrupción sí no s
  26. 26. 0 1 00 0 0 1 00 1 1 1 1 00 0 0 Dirección lógica de 16 bits No. de página de 4 bits Desplazamiento de 12 bits 001011101110 011110011110 0 1 0 1 10 1 0 00 0 0 0 1 00 0 0 0000010000000000 0010000000100000 + Longitud Base Tabla de segmentos del proceso En forma análoga a la paginación, el proceso de traducción de direcciones en la segmentación, consiste en los siguientes pasos: 1. Extraer el número de segmentos de los n bits más significativos de la dirección lógica. 2. Emplear el número de segmentos como índice en la tabla de segmentos del proceso para obtener la dirección física de comienzo del segmento. 3. Comparar el desplazamiento expresado en los m bits menos significativos de la dirección lógica con la longitud del segmento, si es mayor, la dirección no es válida. 4. La dirección física buscada es la suma de la dirección física del inicio del segmento más el desplazamiento. Cuando un proceso se introduce en memoria, se cargan todos sus segmentos en regiones de memoria libres y se crea la tabla de segmentos.
  27. 27. 1. Generalmente, el programador no conoce realmente el tamaño que utilizará una estructura de datos, luego si ésta tiene asignado un segmento podrá ser expandido o reducido según sus necesidades. 2. Los programas pueden ser compilados de manera independiente aunque sean módulos de otros programas. 3. Varios procesos pueden compartir segmentos, por si desean compartir datos. 4. Se pueden proteger los programas o datos asignando privilegios de acceso a los segmentos. Ventajas de la segmentación
  28. 28. Combinación entre paginación y segmentación Las combinaciones entre paginación y segmentación son las siguientes: 1.Memoria no segmentada y no paginación: La dirección virtual es la misma que la dirección física. 2.Memoria paginada no segmentada: La memoria es un espacio de direcciones paginado. 3.Memoria segmentada no paginada: La memoria es un conjunto de direcciones lógicas. 4.Memoria segmentada paginada: La segmentación define particiones lógicas de memoria y la paginación gestiona la asignación de memoria dentro de las particiones.

×