Galería de mapas mentales 4. Gestión de la memoria
408 colección de exámenes de ingreso de posgrado (sistema operativo 4), incluido el método de gestión de almacenamiento de asignación continua, carga y vinculación de programas, Jerarquía de memoria, métodos de gestión de almacenamiento segmentado, etc.
Editado a las 2024-03-07 14:43:40,Capítulo 4: Gestión de la memoria
jerarquía de memoria
Sistema de almacenamiento multicapa
Estructura multicapa de la memoria.
registro de CPU
memoria principal
almacenamiento auxiliar
memoria ejecutable
Término general para registros y memoria principal.
La velocidad de acceso es rápida y el proceso puede completar el acceso en unos pocos ciclos de reloj con una instrucción de carga o almacenamiento.
Memoria principal y registros.
Caché y caché de disco
Carga y vinculación de programas
paso
compilar
Programa fuente ->Módulos de objeto--------Compilador
El compilador compila el programa fuente del usuario para formar varios módulos de destino.
Enlace
Un conjunto de módulos de destino -> Cargar módulo ----------Enlazador
El vinculador vincula un conjunto de plantillas de destino compiladas y las funciones de biblioteca que requieren para formar un módulo de carga completo.
carga
Cargar módulo ->Memoria --------Cargador
El cargador carga el módulo de carga en la memoria.
Cargando programa
modo de montaje absoluto
En tiempo de compilación, si se sabe que el programa residirá en la ubicación especificada en la memoria. El compilador generará código objeto con direcciones absolutas.
Modo de carga reubicable
En el archivo ejecutable, enumere cada unidad de dirección y valor de dirección relativa que deben reubicarse. Cuando el programa de usuario se carga en la memoria, la conversión de la dirección lógica a la dirección física se implementa una vez y no se volverá a convertir (generalmente la completa el software al cargar en la memoria).
Ventajas: No se requiere soporte de hardware y se puede cargar multiprogramación limitada.
Desventajas: un programa generalmente necesita ocupar un espacio de memoria continuo y el programa no se puede mover una vez cargado en la memoria. No es fácil de compartir.
Métodos de carga dinámica en tiempo de ejecución
Después de cargar el módulo de carga en la memoria, el cargador de tiempo de ejecución dinámico no convierte inmediatamente la dirección lógica en el módulo de carga en una dirección física, sino que pospone esta conversión de dirección hasta que el programa se ejecuta realmente.
ventaja:
El sistema operativo puede almacenar un programa en espacios de memoria discretos, mover el programa y usarlo para compartirlo.
Capaz de admitir referencias de direcciones generadas durante la ejecución del programa, como variables de puntero (no solo referencias de direcciones al generar archivos ejecutables).
Desventajas: se requiere soporte de hardware y la implementación del sistema operativo es compleja.
Es la base del almacenamiento virtual.
Enlace del programa
Método de enlace estático (lib)
Enlace dinámico en carga
Enlace dinámico en tiempo de ejecución (dll)
Método de gestión de almacenamiento de asignación continua
asignación continua
asignación secuencial única (DOS)
Asignación de partición fija (desperdicia mucho espacio)
Asignación dinámica de particiones
Medidas de protección de almacenamiento y mapeo de direcciones
Registro de dirección base: la dirección física mínima del programa.
Registro de límite: el rango de direcciones lógicas del programa
dirección física = dirección lógica dirección base
Fragmentación interna: ocupar espacio no utilizado dentro de una partición
Fragmentación externa: particiones libres ocupadas entre particiones que son difíciles de utilizar (generalmente pequeñas particiones libres)
Divida la memoria en varias particiones contiguas de tamaño fijo. La partición fija también se denomina partición estática.
Tamaños de partición iguales: solo adecuado para la ejecución simultánea de múltiples programas idénticos (procesando múltiples objetos del mismo tipo).
Los tamaños de las particiones varían: varias particiones pequeñas, una cantidad moderada de particiones medianas y algunas particiones grandes. Según el tamaño del programa, asigne particiones actualmente libres y de tamaño adecuado.
Ventajas: Sin fragmentación externa, fácil de implementar, bajos gastos generales.
defecto:
Hay fragmentación interna, provocando desperdicio.
El número total de particiones es fijo, lo que limita el número de programas que se pueden ejecutar simultáneamente.
General Os rara vez se usa y se usa en algunos sistemas de control.
Creación dinámica de particiones: cuando un trabajo se carga en la memoria, se le asigna un área continua desde la memoria disponible y el tamaño de la partición es exactamente igual al tamaño del trabajo. En la partición variable, el tamaño y la cantidad de particiones son variables y se dividen dinámicamente según el tamaño y la cantidad de trabajos.
Algoritmo de asignación dinámica de particiones basado en búsqueda secuencial
Algoritmo de primer ajuste (primer ajuste, FF)
Busque en orden y asigne si encuentra uno que lo satisfaga, pero puede haber desperdicio.
Este método tiene como objetivo reducir el tiempo de búsqueda.
Las particiones libres en la tabla de particiones libres (cadena de área libre) deben ordenarse de menor a mayor por dirección.
Algoritmo de primer ajuste del bucle (siguiente ajuste, NF)
En comparación con lo anterior, no es una secuencia, similar a la clasificación cruzada izquierda y derecha en el algoritmo hash.
Las particiones libres están distribuidas de manera más uniforme y la sobrecarga de búsqueda es pequeña
Comience a buscar desde la siguiente área libre de la última área libre encontrada hasta encontrar la primera área libre que cumpla con los requisitos y asigne un espacio de memoria igual al tamaño solicitado al trabajo.
Algoritmo de mejor ajuste (mejor ajuste, BF)
Encuentre la mejor opción, pero las áreas grandes tienen menos visitas
Este método puede mantener los desechos exteriores lo más pequeños posible.
Las particiones libres en la tabla de particiones libres (cadena de área libre) deben ordenarse de tamaño pequeño a grande, y la primera asignación de partición libre que cumpla con los requisitos se encuentra comenzando desde el encabezado de la tabla.
Algoritmo de peor ajuste (peor ajuste, WF)
En comparación con los mejores, busque el área más grande para empezar, lo que resultará en una pequeña cantidad de áreas más grandes y muchos escombros.
Las particiones libres se clasifican por tamaño, de mayor a menor.
Algoritmo dinámico de asignación de particiones basado en búsqueda de índice
Algoritmo de ajuste rápido (ajuste rápido)
sistema de amigos
Algoritmo hash
Asignación dinámica de particiones reubicables
compacto
reubicación dinámica
Cargado durante el tiempo de ejecución dinámico, la conversión de direcciones se realiza cuando se ejecuta la instrucción y requiere el soporte del mecanismo de conversión de direcciones de hardware.
Dirección de memoria = dirección relativa dirección inicial
Algoritmo de asignación de partición de reubicación dinámica
1. Compacte una partición inmediatamente después de su liberación. El sistema siempre tiene una sola partición continua sin fragmentación.
2. Cuando el "módulo de asignación de solicitudes" no puede encontrar una partición libre lo suficientemente grande para el usuario, se realiza la compactación. Este método requiere muchas menos compactaciones que el método anterior, pero la administración es complicada. El diagrama de bloques del algoritmo de asignación de partición de reubicación dinámica que utiliza este método es el siguiente:
Ventajas: Sin fragmentación interna.
Desventajas: desechos externos.
Intercambiar (comprender)
El sistema coloca todos los trabajos en el almacenamiento externo y solo llama a un trabajo a la vez para ejecutarlo en la memoria. Cuando se agota el intervalo de tiempo, lo transfiere a la cola de respaldo del almacenamiento externo para esperar y luego transfiere otro trabajo desde la cola de respaldo. para ejecutarse en la memoria.
Método básico de gestión del almacenamiento de paginación.
Métodos básicos de gestión del almacenamiento de paginación.
página
Dividir el espacio de direcciones lógicas de un proceso en varios sectores del mismo tamaño
marco
El espacio de memoria se divide en bloques de almacenamiento del mismo tamaño que las páginas.
Debido a que la última página del proceso a menudo no encaja en una sola pieza, se forman fragmentos inutilizables, lo que se denomina "fragmentación en la página".
Estructura de direcciones
Número de página P Desplazamiento W (0-31)
tabla de páginas
En el sistema de paginación, cada página del proceso puede almacenarse discretamente en cualquier bloque físico en la memoria para garantizar que el proceso aún pueda ejecutarse correctamente, es decir, el bloque físico correspondiente a cada página se puede encontrar en. la memoria, el sistema También se establece una tabla de imágenes de páginas para cada proceso, denominada tabla de páginas.
La función de la tabla de páginas es implementar la asignación de direcciones desde los números de página hasta los números de bloque físico.
Autoridad de traducción de direcciones
Mecanismo básico de traducción de direcciones.
Para acceder a la memoria dos veces
Las tablas de páginas residen principalmente en la memoria.
Para implementar la función de conversión de direcciones, se configura un registro de tabla de páginas (PTR) en el sistema para almacenar la dirección inicial de la tabla de páginas y la longitud de la tabla de páginas.
Cuando el proceso no se está ejecutando, la dirección inicial y la longitud de la tabla de páginas correspondiente a cada proceso se almacenan en la PCB del proceso. Cuando se programa el proceso, se cargan en el registro de la tabla de páginas.
Mecanismo de traducción de direcciones con tabla rápida.
Eficiencia mejorada, habrá preguntas de cálculo aquí.
Si la tabla de páginas está almacenada en la memoria, cada vez que accede a la memoria, primero debe acceder a la tabla de páginas en la memoria y luego acceder a la memoria según la dirección física formada. De esta forma, la CPU debe acceder dos veces a la memoria para almacenar un dato, reduciendo así la velocidad de procesamiento del ordenador a la mitad.
Para aumentar la velocidad de traducción de direcciones, se agrega una memoria caché especial con función de consulta paralela, llamada "memoria asociativa" o "tabla rápida", al mecanismo de traducción de direcciones para almacenar las entradas de la tabla de páginas a las que se accede actualmente.
El proceso de conversión de dirección es:
1. La CPU proporciona una dirección válida.
2. El mecanismo de traducción de direcciones envía automáticamente el número de página al caché para determinar si la página requerida está en la tabla de caché.
3. En caso afirmativo, lea directamente el número de bloque físico correspondiente a la página y envíelo al registro de direcciones físicas;
4. Si la entrada de la tabla de páginas correspondiente no se encuentra en la tabla rápida, deberá acceder a la tabla de páginas en la memoria nuevamente.
5. Después de encontrarlo, almacene la entrada de la tabla de páginas leída en la tabla de páginas en una unidad de registro en la tabla rápida para reemplazar una entrada antigua de la tabla de páginas.
Tablas de páginas de dos niveles y de varios niveles
La razón principal es que a veces hay demasiadas tablas de páginas y es necesario simplificarlas.
Formato: número de página exterior P1 dirección interior de la página exterior P2 dirección de página interior d
Método básico: paginar la tabla de páginas, el tamaño de cada página es el mismo que el tamaño del bloque físico de memoria, y al numerarlas, cada página se puede almacenar discretamente en diferentes bloques físicos.
tabla de páginas invertida
La tabla de páginas invertida establece una entrada en la tabla de páginas para cada bloque físico (marco de página) y la clasifica por bloque físico. Su contenido es el número de página y la identificación del proceso al que pertenece.
ventaja:
No hay fragmentos externos y cada fragmento interno no excede el tamaño de la página.
No es necesario almacenar un programa de forma contigua.
Es conveniente cambiar el tamaño del espacio que ocupa el programa. Es decir, a medida que los datos generados dinámicamente aumentan a medida que se ejecuta el programa, el espacio de direcciones puede crecer en consecuencia.
Desventajas: todos los programas se cargan en la memoria.
Método de gestión de almacenamiento segmentado.
introducir
Fácil de programar
El intercambio de información
crecimiento dinámico
enlace dinámico
En el método de gestión de almacenamiento segmentado, el espacio de direcciones del trabajo se divide en varios segmentos. Cada segmento es un conjunto completo de información lógica. Cada segmento tiene su propio nombre y es un segmento continuo direccionado desde cero. las longitudes de cada segmento no son iguales.
El espacio de memoria se divide dinámicamente en varias áreas de diferentes longitudes, llamadas segmentos físicos. Cada segmento físico está determinado por la dirección inicial y la longitud.
Principios básicos de los sistemas segmentados.
segmentación
Formato: dirección del número de segmento dentro del segmento
tabla de segmentos
La tabla de segmentos implementa el mapeo de segmentos lógicos a áreas de memoria física.
Autoridad de traducción de direcciones
La diferencia entre paginación
La página es la unidad física de información.
El tamaño de la página lo fija y lo fija el sistema.
El espacio de direcciones del programa de usuario paginado es unidimensional
Por lo general, el segmento es más grande que la página, por lo que la tabla de segmentos es más corta que la tabla de páginas, lo que puede acortar el tiempo de búsqueda y aumentar la velocidad de acceso.
La paginación es una necesidad para la gestión del sistema y la segmentación es una necesidad para las aplicaciones de usuario. Una instrucción o un operando puede cruzar el límite de una página pero no el límite de un segmento.
El intercambio de información
Esta es la ventaja más importante de la segmentación.
Método de gestión de almacenamiento de páginas segmentadas
Fundamental
Formato: número de segmento (S) número de página en el segmento (P) dirección en la página (W)
Proceso de traducción de direcciones
Requiere tres visitas
En un sistema de páginas segmentadas, para obtener una instrucción o datos, se requieren tres accesos a la memoria: la primera vez para acceder a la tabla de segmentos en la memoria para obtener la dirección inicial de la tabla de páginas; tabla de páginas en la memoria para recuperar la página, el número de bloque físico donde se encuentra, y el número de bloque y la dirección de la página se combinan para formar la dirección física de la instrucción o los datos; el tercer acceso es la búsqueda real de la instrucción; o datos basados en la dirección física obtenida.