[Sistema operativo y aprendizaje por refuerzo] 1. Estrategia de gestión de la memoria


prefacio

La programación de la CPU puede mejorar la utilización de la CPU y la velocidad a la que la computadora responde a los usuarios. Para mejorar el rendimiento, se deben mantener varios procesos en la memoria. Es decir, la memoria debe ser compartida.
En este artículo se explica cómo administrar la memoria.


1. ¿Qué es la memoria?

La memoria es el núcleo del funcionamiento de las computadoras modernas y consiste en una gran variedad de bytes, y cada byte tiene su propia dirección.
La CPU obtiene instrucciones de la memoria según el valor del contador del programa (el valor del puntero de la PC).
Cuestiones relacionadas con las técnicas de gestión de memoria: vinculación de direcciones de memoria simbólicas/hardware básicas a direcciones físicas reales y la diferencia entre direcciones lógicas y físicas, etc. Finalmente, enlaces dinámicos y bibliotecas compartidas.

1.1 Hardware básico

El único almacenamiento de uso general al que la CPU puede acceder directamente es la memoria y los registros integrados en el procesador. Las instrucciones de máquina pueden usar direcciones de memoria como referencias.
Se puede acceder a los registros incorporados de la CPU dentro de un ciclo de reloj de la CPU. La mayoría de las CPU pueden interpretar y ejecutar una o más instrucciones en un ciclo de reloj. Sin embargo, para acceder a la memoria, se requieren varios ciclos de reloj de la CPU. La CPU tiene pocos datos, por lo general se requiere estancamiento.
Para compensar este problema desigual, aumente el caché.
Aumentar los temas a considerar diciéndole al caché: 1. Preocupado por la velocidad de acceso a la memoria física. 2. Asegurarse de que la operación sea correcta y no se pueda ejecutar en modo usuario 3. Proteger los procesos de usuario para que no se afecten entre sí.
Esta protección suele implementarse en hardware, ya que el sistema operativo no suele interferir en el acceso de la CPU a la memoria.

1.1.1 Medidas de protección

Registro de dirección base Registro base: contiene la dirección de memoria física legal más pequeña.
Registro de límite Registro de límite: Especifica el tamaño del rango.
La protección del espacio de memoria se logra comparando la dirección generada en el modo de usuario con la dirección del registro por el hardware de la CPU.

Las instrucciones y el enlace de datos a las direcciones de memoria pueden ocurrir en:
1. Tiempo de compilación tiempo de compilación
2. Tiempo de carga tiempo de carga
3. Tiempo de ejecución La asignación de tiempo
de ejecución de la dirección virtual a la dirección física es MMU, unidad de administración de memoria, MMU Hay un registro de reubicación.

1.1.2 Fragmentos

Fragmentación externa y fragmentación interna
La solución a la fragmentación externa es la compactación, moviendo el contenido de la memoria y fusionando todo el espacio libre en un solo bloque. La compactación solo se puede usar si la reubicación es dinámica y se realizan repeticiones.

1.2 Mecanismo de segmentación

Segmentación: un esquema de administración de memoria que admite vistas de usuario.El espacio de direcciones lógicas se compone de un grupo de segmentos. Cada segmento tiene un nombre y una longitud. La dirección especifica el nombre del segmento y el desplazamiento dentro del segmento.
inserte la descripción de la imagen aquí

1.2.1 Hardware de segmentación

Se realiza a través de la tabla de segmentos, y cada fila de la tabla de segmentos tiene una dirección de base final y un límite de segmento.

1.3 Paginación

El espacio de direcciones físicas de un proceso segmentado no es contiguo. La paginación es otro esquema de gestión de la memoria que proporciona esta ventaja y evita la fragmentación y la compactación externas. Dos segmentos no son posibles.

inserte la descripción de la imagen aquí

1.4 Almacenamiento virtual

El principio de localidad: El proceso de ejecución del programa presenta una regla de localidad obvia, es decir, dentro de un corto período de tiempo, la ejecución del programa se limita a una parte determinada. En consecuencia, el espacio de almacenamiento accedido también se limita a un área determinada. Localidad de tiempo: Los datos recién accedidos pueden volver
a accederse pronto. ---------
Localidad de espacio de estructura de bucle: El espacio de direcciones al que accede el programa dentro de un cierto período de tiempo puede estar dentro de un cierto rango. --------- -- -------pc+1

Solicitud de administración de almacenamiento de paginación: método de reemplazo de página

¿Qué es el fenómeno Jitter?

1.4 Condiciones necesarias para el funcionamiento del programa

Antes de ejecutar el programa, se debe establecer un proceso para él, y la primera tarea de crear un proceso es cargar el programa y los datos en la memoria.El flujo de ejecución del programa fuente del usuario es el siguiente: 1. Compilar: el proceso de compilar el código fuente del usuario en código objeto 2.
Enlace
: enlace un conjunto de códigos de destino formados después de la compilación y las funciones de biblioteca requeridas para formar un módulo de carga completo
3. Carga: carga el módulo de carga en la memoria
4. Ejecutar: ejecuta el archivo ejecutable en la memoria

1.4.1 Enlaces

Enlace estático: antes de que se ejecute el programa, varios módulos de destino a partir de la dirección 0 y las funciones de biblioteca requeridas se vinculan en un módulo de ensamblaje completo a partir de la dirección única "0". Enlace dinámico durante la carga: cada enlace se carga en la memoria del módulo de destino
.
Vínculo dinámico en tiempo de ejecución: cuando se necesita el módulo de destino durante la ejecución del programa, se vincula.

1.4.2 Varias direcciones

Dirección simbólica: la instrucción mnemotécnica, nombre de variable, nombre de función, etc. utilizado en el programa fuente del usuario, el espacio de direcciones correspondiente se convierte en el espacio de direcciones simbólicas o espacio de nombres.+ ~~~~ ADD espacio lógico: el objetivo después de compilar el usuario programa fuente
La dirección numerada desde 0 utilizada por el módulo también se denomina dirección relativa o dirección virtual, y el espacio de direcciones correspondiente se denomina espacio de direcciones lógicas.Dirección física: el número de cada unidad de almacenamiento
en la memoria, también denominada dirección absoluta, o dirección real, el espacio de direcciones correspondiente se llama espacio de direcciones físicas, espacio de memoria.

La relación y transformación de los tres espacios de direcciones: inserte la descripción de la imagen aquí
carga:
inserte la descripción de la imagen aquí
comparación de reubicación dinámica y reubicación estática:
inserte la descripción de la imagen aquí

1.5 Gestión de almacenamiento continuo

Características: Asigne un espacio de memoria continuo para cada programa de usuario en el área de usuario de la memoria.
Partición continua única, partición fija, partición variable

1.5.1 Partición única contigua

sola = pista única
inserte la descripción de la imagen aquí

1.5.2 Partición Fija

Divida en varias áreas diferentes de antemano.
inserte la descripción de la imagen aquí
Una partición solo se puede cargar con un programa de usuario, y puede haber desperdicio interno.La
estructura de datos de la partición fija: tabla de uso de partición
inserte la descripción de la imagen aquí

1.5.2 Particiones mutables

Cuando llegue un trabajo, se te dará todo lo que quieras. Cuando llegue el segundo trabajo, estará detrás del recuerdo del primer trabajo, y se te dará todo lo que quieras. . . Es fácil de distribuir, pero difícil de reciclar.
inserte la descripción de la imagen aquí

1.5.6 Algoritmo de asignación de particiones

algoritmo de primer ajuste
inserte la descripción de la imagen aquí

Algoritmo de primer ajuste cíclico
inserte la descripción de la imagen aquí
Algoritmo de mejor ajuste - ¿Es lo mejor lo mejor? ? ¡no necesariamente! !
inserte la descripción de la imagen aquí
El peor algoritmo adaptativo El algoritmo adaptativo
inserte la descripción de la imagen aquí
más rápido
inserte la descripción de la imagen aquí
Sistema de amigos:
el tamaño es 2^k bloque de memoria cuya dirección inicial es X, y la dirección de su bloque asociado es la
partición continua inferior o superior de buddyk(x)
inserte la descripción de la imagen aquí
Algoritmo hash
inserte la descripción de la imagen aquí
partición reubicable dinámicamente Algoritmos:
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
cómo funciona el proceso?
Control de procesos, os implementa una gestión eficaz de procesos, incluida la creación de nuevos procesos/deshacer procesos existentes, suspensión, bloqueo y reactivación, conmutación de procesos y otras operaciones. El sistema operativo ha escuchado operaciones primitivas (primitivas) para implementar el control de procesos.
El concepto de una primitiva: se compone de varias instrucciones para completar una función específica.Es una
característica de una operación atómica (Operación de Acción) primitiva:
una operación atómica, y el proceso de ejecución no se interrumpirá.
Se ejecuta en modo kernel y reside en la memoria.Es una de las tres funciones de apoyo del kernel (procesamiento de interrupciones/gestión del reloj/operación primitiva).
Con respecto a los algoritmos de reemplazo controlados por software para varios cachés:
inserte la descripción de la imagen aquí
la coherencia del caché suele ser un problema de hardware.

1.7 Estado del proceso

inserte la descripción de la imagen aquí

placa de circuito impreso 1,8

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

1.8 Comunicación entre procesos Comunicación entre procesos IPC

Dos modelos: memoria compartida, paso de mensajes
La memoria compartida es más rápida. Las implementaciones de mensajería a menudo usan llamadas al sistema. Para los sistemas distribuidos, el paso de mensajes es más fácil de implementar que la memoria compartida.
inserte la descripción de la imagen aquí

1.9 Hilos

Cada subproceso es una unidad básica utilizada por la CPU; incluye una ID de subproceso, un contador de programa y una pila combinada de registros.
Comparte segmentos de código, segmentos de datos y otros recursos del sistema operativo con otros subprocesos del proceso. Como abrir archivos y señales.
La diferencia entre hilo único y hilo múltiple:
inserte la descripción de la imagen aquí

Pregunta 2.0, ¿hay varios subprocesos en un proceso? ¿Es posible que estos subprocesos múltiples se asignen a múltiples CPU para su ejecución simultánea?

Sí, porque la unidad más pequeña de programación de la CPU es un subproceso

2.1 ¿Cuál es la diferencia y conexión entre bloquear y despertar, suspender y activar un proceso?

La diferencia entre bloquear y colgar:
bloquear significa que un proceso deja de ejecutarse debido a la espera de que ocurran ciertos eventos (como entrada y salida, semáforos, etc.) y transfiere recursos a otros procesos para su uso. El kernel del sistema operativo inicia el bloqueo y el proceso en sí no puede bloquear activamente.

Suspendido significa que el proceso solicita activamente suspender su propia ejecución hasta que se vuelva a activar. Las suspensiones son iniciadas por el propio proceso y, a menudo, se utilizan para la comunicación entre procesos.

La diferencia entre reactivación y activación:
reactivación significa que el sistema operativo vuelve a mover el proceso a la cola lista desde el estado bloqueado, esperando para asignar recursos de CPU y continuar con la ejecución. La reactivación la inicia el kernel del sistema operativo.

La activación significa que el programador selecciona el proceso sin suspenderlo, obtiene recursos de la CPU y comienza a ejecutarse. La activación la inicia el planificador.

Contacto: El propósito de bloquear y suspender es hacer que el proceso suspenda la ejecución, esperando que ocurran ciertos eventos o sea activado por otros procesos. Despertar y activar es transferir el proceso al estado listo para esperar la asignación de recursos de CPU para su ejecución. Ambos son el proceso de transferencia del estado del proceso y la operación básica de la programación del proceso.
de chatgpt no necesariamente correcto

Supongo que te gusta

Origin blog.csdn.net/weixin_40293999/article/details/130448309
Recomendado
Clasificación