Arquitectura de Computadores, SO -...
Transcript of Arquitectura de Computadores, SO -...
Arquitectura de
Computadores, SO Gestión de memoria
DSO 2014 2 Gestión de Memoria
Contenido
• Introducción
• Funciones del sistema de gestión de memoria
• Modelo de memoria de un proceso
• Evolución de los sistemas de gestión de memoria – Gestión de la memoria con particiones fijas
– Gestión de la memoria con particiones variables
– Paginación
– Segmentación
• Memoria virtual – Políticas de sustitución de páginas
DSO 2014 3 Gestión de Memoria
Arquitectura Von Neumann
DSO 2014 4 Gestión de Memoria
Jerarquía de memoria
La jerarquización de la memoria es un intento de aumentar el rendimiento de los computadores
Para ello se aprovechan los avances tecnológicos en el diseño de memorias y la localidad de los programas
Memorias rápidas: tienen un coste elevado y una capacidad pequeña
Memorias lentas: son baratas y tienen una capacidad alta
CD-ROM - Cintas
Discos magnéticos
Memoria principal
Caché externa L2
Caché on-chip L1
Registros internos
del procesador Mayor rapidez
menor tamaño y
mayor precio
Menor rapidez
mayor tamaño y
menor precio
DSO 2014 5 Gestión de Memoria
Memoria Principal
La memoria es una amplia tabla de celdas, cada una de las cuales con su propia dirección
Tanto el tamaño de la tabla (memoria), como el de las celdas, dependen de cada arquitectura concreta
Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal
La información que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios también conocidos como memoria secundaria
Memoria
BF
33
C0 F0B50012
F0B50011
F0B50013
DSO 2014 6 Gestión de Memoria
Funciones del gestor de memoria
• Los objetivos del sistema de g.m. son: – Conocer el estado de una localización de memoria – Subdividir la memoria para hacer sitio a varios procesos. – Proteger las zonas de memoria de los procesos – Mapear/Trasladar direcciones logicas a dir. físicas – Hace falta repartir eficientemente la memoria para
introducir tantos procesos como sea posible. – Cargar programas en MP para su ejecución. – Proporcionar memoria a los procesos cuando la soliciten
y liberarla cuando se requiera. – Las rutinas del sistema operativo también deberán residir
en memoria.
DSO 2014 7 Gestión de Memoria
• Gestión de memoria: Objetivos
– Conseguir que varios procesos puedan ejecutarse de forma concurrente
• Evitar los conflictos de uso entre procesos • Proteger al sistema operativo • Aprovechar eficazmente el espacio disponible:
– Minimizar la memoria desaprovechada » Evitar fragmentación » Memoria ocupada por varias copias de un mismo objeto
• Carga parcial de programas sin perjudicar el rendimiento: – Tiempo de acceso a memoria
• Un gestor de memoria ideal debería:
• Minimizar la memoria desaprovechada
• Tener una complejidad temporal mínima (Ejecutarse rápido o suponer poca sobrecarga)
• Proporcionar una buena protección y una compartición flexible
Administración de Memoria
DSO 2014 8 Gestión de Memoria
• Ciclo de vida de un programa
Administración de Memoria
DSO 2014 9 Gestión de Memoria
Modelo de memoria de un proceso
• Un proceso está formado por una serie de regiones.
• Región: zona contigua del espacio de direcciones de un proceso con las mismas propiedades.
• Tipos de regiones básicos: – Texto: código – Datos – Pila
DSO 2014 10 Gestión de Memoria
Crear mapa desde ejecutable
Cabecera
Fichero EjecutableNúmero mágico
Contador de programa inicial
Tabla de secciones
Código
Datos con valor inicial
Tabla de símbolos
....................
. . . . . . . . . . . . . . . .
0
1000
5000
8000
Secciones
Mapa de memoria
Código
Datos con valor inicial
0
4000
5000Datos sin valor inicial
PilaArgumentos del programa
“0”
DSO 2014 11 Gestión de Memoria
Reubicación y protección
DSO 2014 13 Gestión de Memoria
Direcciones
Dirección lógica:
La generada por la CPU
Es una referencia a una posición de memoria independiente de la asignación actual de datos a la memoria.
Se debe hacer una traducción a una dirección física.
El dispositivo que traduce direcciones virtuales a físicas se llama unidad de manejo de memoria (MMU, en inglés)
Dirección física:
la que llega al chip de memoria
La dirección absoluta o la posición real en la memoria
principal.
DSO 2014 14 Gestión de Memoria
Reubicación
• En un sistema multiprogramado es imposible conocer en tiempo de compilación y montaje qué direcciones ocupará un proceso en memoria
• Solución: emplear direcciones lógicas
DSO 2014 15 Gestión de Memoria
– El programador no conoce qué otros programas residirán en la memoria en el momento de la ejecución de su programa. Generalmente, tampoco conoce en que zona de memoria se colocará su programa
– Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación) Un programa debe poder moverse por la memoria a consecuencia de intercambios
– Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.
– El compilador traduce direcciones de memoria simbólicas a direcciones binarias.
Administración de Memoria
DSO 2014 16 Gestión de Memoria
• Reubicación:
– Reubicación estática
• Se lleva a cabo durante la carga del programa • Se emplea direccionamiento indirecto a partir de la dirección de
carga del programa • El programa no se mueve después de la carga
– Reubicación dinámica
• Se lleva a cabo durante la ejecución el programa • El direccionamiento se realiza dinámicamente a medida que se
van produciendo las referencias a memoria • El programa se puede desplazar en cualquier instante
Administración de Memoria
DSO 2014 17 Gestión de Memoria
• Vinculación de Direcciones
– Compilación: si en el momento de la compilación se sabe en qué parte de la memoria va a residir el proceso, es posible generar código absoluto.
– Carga: Si al compilar el programa no se sabe en qué parte de la memoria va a residir el proceso, el compilador deberá generar código reubicable. En este caso la vinculación final se efectuará en el momento de la carga
– Ejecución: Si durante la ejecución los procesos cambian de segmento, la vinculación hay que realizarla durante la ejecución.
Administración de Memoria
DSO 2014 20 Gestión de Memoria
Reubicación y protección
• Memoria física vs. memoria lógica
– De igual manera que un computador
dispone de una memoria física (o memoria primaria), podemos considerar que cada proceso tiene su memoria lógica.
• Memoria lógica: es el espacio o rango de
direcciones de un proceso:
» con su comienzo en la dirección 0
» independiente de la memoria física de un
computador determinado.
DSO 2014 21 Gestión de Memoria
Reubicación hardware
• Hardware encargado de traducción
• El S.O. se encarga de: – Almacena por cada proceso su función de traducción – Especifica al hardware qué función aplicar para cada
proceso
• Programa se carga en memoria sin modificar
• Para el ejemplo anterior:
LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................
Memoria
10000100041000810012100161002010024100281003210036..........
Procesador
R. Instrucción
HW traducción
LOAD R3, /1500
1150010000
+1500
PC
8
DSO 2014 22 Gestión de Memoria
Reubicacion
DSO 2014 23 Gestión de Memoria
Dirección relativa
Dirección
absoluta
Interrupción al
sistema operativo
Registro base
Registro límite
Sumador
Comparador
Programa
Datos
Pila
Bloque de control de proceso
Imagen de un proceso
en la memoria principal
Soporte de hardware para la reubicación.
DSO 2014 24 Gestión de Memoria
Registros utilizados durante la ejecución
Registro base:
Se carga con la dirección en la memoria principal del proceso.
Registro límite:
Indica la posición final del programa.
Estos valores deben asignarse cuando se
carga el programa y cuando se carga el
proceso.
DSO 2014 25 Gestión de Memoria
Registros utilizados durante la ejecución
Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta.
La dirección obtenida se compara con el valor
del registro límite.
Si la dirección no está dentro de los límites, se
generará una interrupción en el sistema
operativo.
DSO 2014 26 Gestión de Memoria
MMU
• La Unidad de Manejo de Memoria (MMU)
• los procesos emiten siempre direcciones lógicas • La memoria recibe siempre direcciones físicas • La MMU (Memory Management Unit) es un circuito de
soporte que se intercala entre la CPU y la memoria que realiza la traducción de direcciones lógicas a direcciones físicas – La traducción de direcciones se realiza en función de unas
tablas que, en general, denominaremos mapas de memoria. – Los mapas de memoria mantienen información que
relaciona la memoria lógica de un proceso con la memoria física
– El mapa de memoria de un proceso lo elabora el sistema operativo cuando asigna memoria al proceso al ponerlo en ejecución.
DSO 2014 27 Gestión de Memoria
MMU
DSO 2014 29 Gestión de Memoria
Reubicación software
• Traducción de direcciones durante carga del programa
• Programa en memoria distinto del ejecutable
• Desventajas: – No asegura protección – No permite mover programa en tiempo de ejecución
DSO 2014 30 Gestión de Memoria
Protección
El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso.
Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal.
Debe comprobarse durante la ejecución:
– El sistema operativo no puede anticiparse a todas las referencias a
la memoria que hará un programa.
– El Hardware del procesador debe poseer la capacidad de proteger
los accesos a memoria
DSO 2014 31 Gestión de Memoria
Protección
• Monoprogramación: Protección del SO
• Multiprogramación: Además procesos entre sí
• Traducción debe crear espacios disjuntos
• Necesario validar todas las direcciones que genera el programa – La detección debe realizarla el hardware del
procesador – El tratamiento lo hace el SO (envía KILL al proceso)
Asignación de memoria a procesos
DSO 2014 33 Gestión de Memoria
Asignación de memoria
– La memoria física puede ser asignada a los procesos siguiendo diversas técnicas:
• Asignación contigua: el espacio de direcciones lógicas de un proceso se mapea sobre una única zona (partición) de la memoria física: las direcciones de memoria son contiguas. – Simple
– Particionada » Particiones fijas
» Particiones variables
• Asignación dispersa: La memoria lógica se divide en fragmentos (páginas, segmentos), que se mapean sobre zonas de la memoria física no contiguas: el espacio de direcciones físicas de un proceso consta de varias zonas no contiguas: – Paginación.
– Segmentación
DSO 2014 34 Gestión de Memoria
Asignación de memoria
Un sólo proceso Monitor
Particiones Fijas Intercambio/Reubicación
Particiones Variables primero en ajustarse...
Paginación Segmentación Pag./Seg.
Memoria Virtual
Varios procesos Multiprogramación
Sistemas de Gestión de Memoria
Fragmentación Interna
Fragmentación Externa
Políticas de sustitución: FIFO,óptimo, LRU,Reloj,...
DSO 2014 35 Gestión de Memoria
Asignacion de memoria
Contigua Dispersa
DSO 2014 36 Gestión de Memoria
Asignación Contigua Simple
Una unica Partición por proceso: Valido si el sistema
no es multiprogramado
El usuario controla
toda la MP
S.O La MP se
reparte entre
el usuario y el
SO
•La memoria está toda asignada al proceso.
•Los programas consiguen memoria al ser planificados
•Toda la memoria se libera al acabar el programa
DSO 2014 37 Gestión de Memoria
Asignación Contigua particionada
La memoria se divide en particiones cada una de las cuales
se asigna a un programa
Pueden ser de diferente tamaño . En ambos casos un proceso cualquiera debe cargarse entero en una de las particiones.
•Hace falta conocer el estado (asignado o no) de cada partición y su tamaño.
•La selección de programa para residir en memoria es efectuada por el
planificador y se hace por particiones completas no ocupadas si son de
suficiente tamaño.
•La liberación, asímismo es por particiones completas.
DSO 2014 38 Gestión de Memoria
Particiones Fijas
• Se divide la memoria disponible en particiones fijas (al arrancar el sistema)
• Cada proceso se asigna a una UNICA partición
OS 8M
8M
8M
8M
8M
OS 8M
4M
8M
8M
12M
Igual Tamaño Distinto
DSO 2014 39 Gestión de Memoria
Particiones fijas
• Particiones de tamaño fijo:
– Cualquier proceso cuyo tamaño sea menor o igual que el tamaño de la partición puede cargarse en cualquier partición libre.
– Si todas las particiones están ocupadas, el sistema operativo puede sacar un proceso de una partición.
– Un programa puede que no se ajuste a una partición. Hay que diseñar los programas para que quepan en una particion
DSO 2014 40 Gestión de Memoria
Sistema operativo
8M
Sistema operativo
8M
(a) Particiones de igual tamaño (a) Particiones de distinto tamaño
Ejemplo de partición fija en una memoria de 64Mb.
8M
8M
8M
8M
8M
8M
8M
2M
4M
6M
8M
8M
12M
16M
DSO 2014 41 Gestión de Memoria
Particiones fijas
• El uso de la memoria principal es ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa. Este fenómeno se denomina fragmentación interna. (Se debe a la diferencia de tamaño entre la partición de memoria y el objeto residente dentro de ella)
DSO 2014 42 Gestión de Memoria
Algoritmo de ubicación en particiones fijas
• Particiones de igual tamaño:
– Puesto que todas las particiones son de igual tamaño, no importa la partición que se use.
• Particiones de distintos tamaños:
– Pueden asignar cada proceso a la partición más pequeña en la que quepa.
– Hace falta una cola para cada partición.
– Los procesos están asignados de forma que se minimiza la memoria desaprovechada dentro de cada partición.
DSO 2014 43 Gestión de Memoria
Sistema
operativo
Sistema
operativo
Procesos
nuevos Procesos
nuevos
(a) Una cola de procesos por partición (b) Cola única de procesos
Asignación de memoria en partición estática.
DSO 2014 44 Gestión de Memoria
Particiones dinámicas
• Las particiones son variables en número y longitud.
• Al contrario que en las fijas, en las estrategias de particiones
dinámicas, éstas se ajustan al tamaño de los programas, por lo cual
se crean durante el procesamiento.
• Al proceso se le asigna exactamente tanta memoria como necesite.
• Finalmente, hay varios huecos en la memoria. Este fenómeno se
denomina fragmentación externa, (Se debe al desaprovechamiento
de memoria entre particiones)
• Se debe usar la compactación para desplazar los procesos que estén
contiguos, de forma que toda la memoria libre quede junta en un
bloque. Este mecanismo no se utiliza, se utilizan las listas
encadenadas y los algoritmos de asignacion
DSO 2014 45 Gestión de Memoria
• Algoritmo del primer ajuste (first-fit):
– Es más rápido.
– Puede tener varios procesos cargados en el extremo inicial de la memoria que es necesario recorrer cuando se intente encontrar un bloque libre.
Algoritmo de ubicación con particiones dinámicas
DSO 2014 46 Gestión de Memoria
• Algoritmo del siguiente ajuste (next-fit):
– Lleva frecuentemente a la asignación de un bloque de memoria de la última ubicación, donde se encuentra el bloque más grande.
– El bloque de memoria más grande se divide en fragmentos pequeños.
– Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria.
Algoritmo de ubicación con particiones dinámicas
DSO 2014 47 Gestión de Memoria
Último bloque
asignado (14K)
Primer ajuste
Mejor ajuste
Bloque asignado
Bloque libre
Siguiente ajuste
(a) Antes (b) Después
Ejemplo de una configuración de memoria antes y después de asignar
un bloque de 16 Mbytes.
8M 8M
12M 12M
22M
18M
8M 8M
6M 6M
6M
2M
14M
36M
14M
20M
DSO 2014 48 Gestión de Memoria
Algoritmo de ubicación
6M
8M
2M
7M
5M
Donde guardo este proceso?
ultimo bloque alojado
Mejor encaje
Primer encaje
Siguiente encaje
DSO 2014 49 Gestión de Memoria
Problemas asignación particionada
DSO 2014 50 Gestión de Memoria
Problemas asignacion particionada
Solucion: Compactacion
DSO 2014 51 Gestión de Memoria
Problemas
• Todas las estrategias vistas hasta ahora: – Asignación contigua de memoria: Si dos direcciones
lógicas son contiguas, sus equivalentes direcciones físicas también
– Problemas de fragmentación: interna y externa
• Solución: – Asignación no consecutiva de la memoria
– Paginación: páginas
– Segmentación: segmentos
DSO 2014 52 Gestión de Memoria
Siguiente tema: Memoria Virtual
• Este tema podemos verlo en: – A. Silberschatz Tema 8 – W. Stallings
• Tema 7: 7.3, 7.4 • Tema 8: 8.1.
– A. Tanenbaum Tema 4: 4.3