Sistema operativo - Clase Q & A Notas 15 - Respuestas prácticas

Aprendizaje apuntes de clase de vídeo del sistema operativo
Descripción: Otros "de preguntas y respuestas notas en clase," también "sistema operativo" columna

【4-2、4-3】

Resumen de la discusión después de la clase:

  1. Describa brevemente el proceso de vinculación de programas? Hay varias formas de vincular?
    Respuesta: El proceso de vinculación consiste en combinar varios módulos del programa (que puede escribir usted mismo o llamar a otros) para generar un archivo de objeto ejecutable.
    3 formas:
    Enlace estático: antes de que se ejecute el programa, vincule cada módulo de destino y sus funciones de biblioteca requeridas en un módulo de ensamblaje completo, que no se desmontará más adelante. El enlace de los tres módulos ABC explicados en el video es de esta manera: se puede entender que todos los programas están empaquetados en la memoria al principio (todos los programas se cargan y ejecutan);
    Enlace dinámico de tiempo de carga ) Método: un grupo de módulos de destino obtenidos después de compilar el programa fuente del usuario, cuando se carga en la memoria, adopta el método de vinculación de carga mientras se vincula. Es decir, al cargar un módulo de destino, si ocurre un evento de llamada de módulo externo, hará que el cargador encuentre el módulo de destino externo correspondiente y lo cargue en la memoria; es decir, la carga temporal de las cosas de otras personas no es un problema Comience a hacer un paquete grande y encuentre lo que falta al cargar y luego encuentre qué cargar (ejecutar después de cargar todos los programas);
    Enlace dinámico en tiempo de ejecución: ejecute todos los módulos que pueden ejecutarse Ambos se cargan en la memoria y se vinculan entre sí cuando se cargan. Obviamente, esto es ineficiente, porque a menudo hay algunos módulos de destino que no se ejecutan en absoluto (como el módulo catch en try-catch), por lo que la mejor manera es cargar temporalmente el módulo cuando el programa se ejecuta donde se necesita el módulo. Módulo. Es decir, solo los necesarios se cargan al principio, y cuando el tiempo de ejecución encuentra algo que falta, encuentra qué cargar (algunos programas se pueden ejecutar después de la carga).

  2. Al cargar un módulo de carga en la memoria, ¿cuáles son los tres métodos de carga?
    Respuesta: También hay tres formas:
    Modo de carga absoluta: cuando el sistema informático es pequeño y solo puede ejecutar un solo programa, es completamente posible saber dónde residirá el programa en la memoria. La carga absoluta se puede utilizar en este momento. Después de compilar el programa de usuario, se generará el código objeto de la dirección absoluta (es decir, la dirección física) (no hay proceso de conversión de dirección). El método de carga absoluta solo puede cargar el módulo de destino en una ubicación especificada en la memoria de antemano, que solo es aplicable al entorno de un solo programa.
    Modo de carga de reubicación: en un entorno multiprograma, es imposible para el compilador predecir dónde debe colocarse en la memoria el módulo de destino obtenido después de la compilación. Por lo tanto, para varios módulos de destino formados por la compilación del programa de usuario, sus direcciones de inicio generalmente comienzan desde 0, y otras direcciones en el programa también se calculan en relación con la dirección de inicio (la dirección lógica o Dirección relativa a la traducción de la dirección física). El método de carga reubicable puede cargar el módulo de carga en cualquier posición permitida en la memoria, pero este método no permite que el programa se mueva en la memoria mientras el programa se está ejecutando.
    Modo de carga dinámico en tiempo de ejecución: la ubicación de la memoria en el programa puede cambiar durante el proceso de ejecución. Después de que el programa de carga carga el módulo de carga en la memoria, no convierte inmediatamente el módulo de carga en La dirección física es posponer esta traducción de la dirección hasta que el programa se ejecute realmente. Este método permite que el programa se mueva en la memoria, y todo el programa no requiere espacio continuo. Es la base para implementar la memoria virtual.

  3. Revise los objetivos principales de la administración de memoria nuevamente.
    Respuesta: Las funciones principales de la administración de memoria son: asignación de memoria, protección de memoria, asignación de direcciones y expansión de memoria.
    Asignación de memoria: asigne memoria para cada programa, hay una asignación continua (el programa ocupa un espacio de memoria continuo) y un método de asignación discreto (el programa se puede dispersar en el espacio no continuo de la memoria).
    Protección de memoria: asegúrese de que cada programa de usuario solo se ejecute en su propio espacio de memoria y no interfiera entre sí.
    Asignación de direcciones: convierta la dirección lógica del espacio de direcciones en el espacio de memoria y la dirección física correspondiente, que está relacionada con el método de asignación.
    Expansión de memoria: utilizando tecnología de intercambio y tecnología de almacenamiento virtual para implementar la función de llamada de solicitud y la función de reemplazo.

  4. Método de asignación de memoria continua suplementaria
    Respuesta: Método de asignación continua: asigne un espacio de memoria continua para un programa de usuario.
    El método de asignación continua se divide en 4 tipos:
    asignación continua única: utilizada en el sistema de procesamiento temprano de un solo canal, todo el espacio de memoria solo se proporciona a un programa (por supuesto, este programa también ocupa un espacio de memoria continua);
    asignación de partición fija: fija La asignación de particiones es la forma más simple de administración de almacenamiento de programas multicanal. Divide el espacio de memoria del usuario en varias áreas de tamaño fijo, y cada partición solo carga un trabajo;
    asignación de partición dinámica: este método de partición no pre-memoria División, pero cuando el proceso se carga en la memoria, la partición se establece dinámicamente de acuerdo con el tamaño del proceso, y el tamaño de la partición es adecuado para las necesidades del proceso. Por lo tanto, el tamaño y el número de particiones en el sistema son variables.
    Asignación de partición de reubicación dinámica: cuando hay varias particiones pequeñas en la memoria que no son adyacentes entre sí, su capacidad individual no puede cumplir con el tamaño del trabajo, pero su capacidad total es mayor que los requisitos del trabajo. Un método es mover todos los trabajos en la memoria para que estén adyacentes entre sí. De esta forma, las múltiples particiones pequeñas dispersas originalmente se pueden unir en una partición grande, y luego los trabajos se pueden cargar en esta área. Eso es para lograr la asignación de partición de reubicación dinámica a través de "empalme" o "compacto".

  5. ¿Cuáles son las características principales de la asignación de partición fija?
    Respuesta: El sistema divide la memoria en particiones fijas (los tamaños de partición son todos iguales o los tamaños de partición son diferentes. Una vez que se determina la partición, no cambiará su tamaño). Cuando el trabajo solicita memoria, el sistema selecciona una partición apropiada para ella y la carga La memoria se está ejecutando. Dado que el tamaño de la partición se fija de antemano, el tamaño del trabajo que se puede acomodar es limitado, y cuando el espacio de direcciones del trabajo del usuario es menor que el espacio de almacenamiento de la partición, se desperdicia algo de espacio de almacenamiento.
    Ventajas: se puede utilizar para la asignación de almacenamiento más simple de un sistema multiprograma, sin fragmentación externa (aún no asignada (que no pertenece a ningún proceso), pero debido a que la partición es demasiado pequeña para asignarla al área libre de memoria del nuevo proceso que solicita espacio de memoria) .
    Desventajas: no es posible compartir un área de memoria principal con múltiples procesos, por lo que la tasa de utilización del espacio de almacenamiento es baja y hay fragmentos internos (particiones que se han asignado (que pueden indicar claramente qué proceso pertenece), pero no se puede usar el espacio de memoria).

99 artículos originales publicados · Me gusta 49 · Visitantes más de 40,000

Supongo que te gusta

Origin blog.csdn.net/weixin_46218781/article/details/105486199
Recomendado
Clasificación