Recopilación de conocimientos sobre sistemas operativos de computadora: descripción general de los sistemas operativos de computadora (Guía de introducción a los sistemas operativos de computadora)

Capítulo 1 Descripción general de los sistemas operativos informáticos

1.1 Conceptos básicos de los sistemas operativos

1.1.1 Introducción a los sistemas operativos

En la era de la información actual, creo que todos los lectores están familiarizados con las cuatro palabras "sistema operativo". Por ejemplo, Windows, Android, IOS, MacOS y Linux que utilizamos con frecuencia son todos sistemas operativos. El sistema operativo es una pieza de software indispensable en la era de la información actual. Para los usuarios comunes, las cuatro palabras sistema operativo son familiares y desconocidas, porque los usuarios comunes solo prestan atención al software de aplicación que se ejecuta en cada sistema operativo. De hecho, no sé mucho sobre el sistema operativo que ayuda a estas aplicaciones de software a operar los recursos de hardware.

Entonces, ¿qué es exactamente un sistema operativo?

Aquí también podríamos mirar el diagrama estructural de un sistema informático.

Insertar descripción de la imagen aquí

Como se puede ver en la figura anterior, el sistema operativo es una pieza de software entre el programa de aplicación y el hardware de la computadora. El sistema operativo y el hardware de la computadora interactúan directamente, mientras que el software de la aplicación y el usuario no pueden interactuar directamente con el hardware de la computadora. .

Nota: En la figura anterior, también existe una conexión directa entre el usuario y el sistema operativo. Esto se debe a que el usuario puede interactuar directamente con el sistema operativo a través de la interfaz de comando en línea proporcionada por el sistema operativo. Esta parte se explicará en detalle en el apartado 1.1.2.

En resumen, damos la definición estándar de sistema operativo de la siguiente manera:

Un sistema operativo se refiere a una colección de programas que controla y administra los recursos de hardware y software de todo el sistema informático , organiza y programa racionalmente el trabajo de la computadora y la asignación de recursos, y proporciona interfaces y entornos convenientes para los usuarios y otro software . un conjunto de programas en un sistema informático.El software de sistema más básico .

Resumen de la sección

Insertar descripción de la imagen aquí

1.1.2 Funciones del sistema operativo

El sistema operativo proporciona principalmente tres funciones principales:

  • Actuar como administrador de los recursos del sistema informático.
  • Sirve como interfaz entre los usuarios y los sistemas de hardware informático.
  • Como ampliación de los recursos informáticos.
1.1.2.1 Como administrador de los recursos del sistema informático

Como administrador de los recursos del sistema informático, el sistema operativo tiene las funciones de administración del procesador, administración de la memoria, administración de dispositivos y administración de archivos.

  • Gestión del procesador

    En un entorno de multiprogramación, la asignación y operación de procesadores se basan en procesos (o subprocesos) como unidad básica. Por lo tanto, la gestión de procesadores también se puede atribuir a la gestión de procesos. Las principales funciones de la gestión de procesos incluyen el control de procesos, Sincronización de procesos, comunicación de procesos, manejo de interbloqueos, programación de procesadores, etc. (Estas funciones se presentarán en detalle en capítulos posteriores)

  • gestión de la memoria

    La gestión de la memoria tiene como objetivo proporcionar un buen entorno para el funcionamiento de múltiples programas, facilitar el uso del usuario y mejorar la utilización de la memoria. Incluye principalmente asignación y reciclaje de memoria, asignación de direcciones, protección e intercambio de memoria, expansión de contenido y otras funciones.

  • Gestión de dispositivos

    La tarea principal de la administración de dispositivos es completar las solicitudes de E / S de los usuarios, facilitar a los usuarios el uso de varios dispositivos y mejorar la utilización del dispositivo. Incluye principalmente funciones como administración de búfer, asignación de dispositivos, procesamiento de dispositivos y dispositivos virtuales.

  • Gestión de archivos

    La información en la computadora existe en forma de archivos. La parte del sistema operativo responsable de la administración de archivos se llama sistema de archivos. La administración de archivos incluye la administración del espacio de almacenamiento de archivos, la administración de directorios y la administración y protección de lectura y escritura de archivos.

1.1.2.2 Como interfaz entre los usuarios y los sistemas de hardware informático

El sistema operativo proporciona una interfaz de usuario para que los usuarios puedan manipular el hardware de la computadora de manera conveniente, rápida y confiable y ejecutar sus propios programas. Hay dos tipos de interfaces de usuario proporcionadas por el sistema operativo: interfaz de comando e interfaz de programa . Los usuarios pueden utilizar directamente la interfaz de comando para interactuar con el sistema operativo y completar la ejecución del trabajo. Las interfaces del programa son programadas por los programadores para utilizar estas interfaces para solicitar servicios proporcionados por el sistema operativo.

Aquí, el sistema operativo utiliza la idea de encapsulación para encapsular algunas funciones de hardware complejas en servicios simples y fáciles de usar, de modo que los usuarios puedan usar la computadora cómodamente sin preocuparse por los principios subyacentes del hardware y solo necesiten emitir comandos para el sistema operativo..

Insertar descripción de la imagen aquí

La figura anterior muestra que el software de la aplicación obtiene las funciones proporcionadas por un sistema operativo a través de la interfaz proporcionada por el sistema operativo, manipulando así el hardware de la computadora.

  • interfaz de comando

    Las interfaces de comando se dividen en dos categorías: interfaz de comando en línea e interfaz de comando fuera de línea

    Interfaz de comando en línea

    La interfaz de comando en línea, también conocida como interfaz de comando interactiva , es una interfaz adecuada para sistemas de tiempo compartido o en tiempo real. Consiste en un conjunto de comandos de operación de teclado. Los usuarios ingresan comandos de operación a través de la consola o terminal para presentar diversos requisitos de servicio al sistema. Cada vez que el usuario ingresa un comando, el control se transferirá al intérprete de comandos del sistema operativo, y luego el intérprete de comandos interpretará y ejecutará el comando ingresado para completar la función especificada. Luego, el control se transferirá nuevamente a la consola o terminal En este momento, el usuario puede ingresar el siguiente comando. Es decir: la interacción del usuario con el sistema operativo mediante la interfaz de comando en línea se realiza de forma alternativa.

    Por ejemplo, en un sistema Windows, presione Win + R en el teclado, ingrese cmd y presione Enter para ingresar al intérprete de comandos y usar comandos proporcionados por varios sistemas operativos para interactuar con el sistema operativo (como el comando de tiempo para obtener la hora actual). tiempo).

    Interfaz de comando sin conexión

    La interfaz de comando fuera de línea, también conocida como interfaz de comando por lotes , es adecuada para sistemas de procesamiento por lotes. Consiste en un conjunto de comandos de control de trabajo. Los usuarios fuera de línea no pueden intervenir directamente en la ejecución del trabajo. En cambio, escriben una serie correspondiente de comandos de control por adelantado. Las instrucciones de funcionamiento del trabajo se envían al sistema operativo junto con el trabajo. Cuando el sistema programa el trabajo, el intérprete de comandos del sistema ejecuta los comandos en la descripción del trabajo uno por uno, controlando así indirectamente la operación del trabajo. Es decir, el usuario utiliza la interfaz de comando fuera de línea para interactuar con el sistema operativo proporcionando una lista de trabajos por adelantado y luego entregándola al sistema para que los ejecute uno por uno de acuerdo con la lista.

    Por ejemplo, archivo por lotes bat en Windows

  • Interfaz del programa

    La interfaz del programa consta de un conjunto de llamadas al sistema (también llamadas instrucciones generalizadas). Los programadores utilizan estas llamadas al sistema en sus programas para solicitar ciertos servicios proporcionados por el sistema operativo, como varios dispositivos externos, asignar y recuperar memoria, etc.

    La siguiente figura es un ejemplo de un programador que utiliza una interfaz de programa para solicitar al sistema operativo que proporcione servicios de visualización para el monitor.

Insertar descripción de la imagen aquí

La interfaz gráfica de usuario (GUI) más popular en la actualidad, es decir, la interfaz gráfica, se implementa llamando a la interfaz del programa. A través de la GUI, los usuarios pueden usar directamente el mouse y el teclado para utilizar cómodamente el sistema operativo.

1.1.2.3 Como ampliación de los recursos informáticos

El metal desnudo (una computadora sin ningún software) es la base material de un sistema informático, y el sistema informático presentado al usuario es una computadora transformada por varias capas de software. El metal desnudo es la capa más interna y la capa externa es la sistema operativo El sistema operativo proporciona funciones de gestión de recursos y varias interfaces de servicio fáciles de usar que hacen que el sistema operativo sea más potente y cómodo de usar. Por lo tanto, a menudo nos referimos a las máquinas cubiertas por software como máquinas extendidas o máquinas virtuales.

Resumen de la sección

Insertar descripción de la imagen aquí

1.1.3 Características de los sistemas operativos

El sistema operativo es un tipo de software del sistema, que es muy diferente de otros software del sistema y software de aplicación y tiene algunas características básicas que le son exclusivas. Incluye concurrente, compartido, virtual y asíncrono . ¡Comprender estos conceptos es muy importante! ! !

1.1.3.1 Concurrencia

La concurrencia es cuando dos o más eventos ocurren dentro del mismo intervalo de tiempo . Estos eventos ocurren simultáneamente a escala macro y alternativamente a escala micro . En el sistema operativo, la concurrencia se refiere a la existencia de múltiples programas en ejecución en el sistema informático al mismo tiempo. El sistema operativo tiene la capacidad de procesar y programar la ejecución simultánea de múltiples programas. En un entorno de multiprogramación, dentro de un período de tiempo, macroscópicamente se ejecutan múltiples programas al mismo tiempo, sin embargo, en cada momento, solo se puede ejecutar un programa en un entorno de un solo procesador, por lo que microscópicamente estos programas se ejecutan. todavía se ejecuta alternativamente en forma de tiempo compartido, es decir, la concurrencia del sistema operativo se logra mediante el tiempo compartido.

Nota: Concurrencia y paralelismo son dos conceptos diferentes. Paralelismo significa que dos o más eventos ocurren al mismo tiempo .

El paralelismo significa que el sistema tiene la característica de realizar cálculos u operaciones al mismo tiempo y puede completar dos o más tareas al mismo tiempo. El paralelismo requiere suficiente soporte de hardware, como un entorno de hardware multiprocesador.

Una CPU de un solo núcleo solo puede ejecutar un programa a la vez y cada programa solo se puede ejecutar al mismo tiempo.

Las CPU de varios núcleos pueden ejecutar varios programas al mismo tiempo y cada programa se puede ejecutar en paralelo.

La siguiente figura ilustra la diferencia entre concurrencia y paralelismo con un ejemplo.

Insertar descripción de la imagen aquí

En la imagen de arriba, si Xiao Ming sigue el proceso de la izquierda para escribir la tarea, escuchar música y escribir la tarea uno tras otro, significa que los dos comportamientos de escribir la tarea y escuchar música se ejecutan simultáneamente de 10:00 a 21:00. 12:00. Si Xiao Ming sigue el proceso de la derecha y escribe la tarea mientras escucha música de 10:00 a 11:00, entonces los dos comportamientos de escribir la tarea y escuchar música se ejecutan en paralelo.

1.1.3.2 Compartir

Compartir es compartir recursos, lo que significa que los recursos del sistema pueden ser utilizados por múltiples procesos que se ejecutan simultáneamente en la memoria.

El intercambio de recursos se divide en dos tipos: intercambio mutuamente excluyente y acceso simultáneo.

  • Modo de compartir mutuamente excluyente

    Aunque algunos recursos del sistema (como impresoras, etc.) pueden ser utilizados por múltiples procesos, para evitar confusión en los resultados de la impresión, se debe especificar que solo un proceso puede acceder al recurso dentro de un período de tiempo. .

    Por lo tanto, solo un proceso puede acceder a los recursos que utilizan el uso compartido mutuamente excluyente al mismo tiempo. Por ejemplo, si el proceso A quiere acceder a un determinado recurso, primero debe realizar una solicitud. Si el recurso está inactivo en este momento, el sistema asignará el recurso al proceso A. Si el proceso B también quiere acceder al recurso en este momento, el proceso B debe esperar a que el proceso A libere el recurso una vez que haya terminado de usarlo. Este método es un intercambio mutuamente excluyente .

  • Método de acceso simultáneo

    Algunos recursos del sistema (como discos, etc.) permiten el acceso de múltiples procesos "simultáneamente" dentro de un período de tiempo. La "simultaneidad" mencionada aquí es macroscópica. Es decir, estos recursos permiten el acceso simultáneo de múltiples procesos. Por ejemplo, varios procesos pueden acceder simultáneamente a un dispositivo de disco y leer un archivo.

La concurrencia y el uso compartido son las dos características más básicas del sistema operativo . La relación entre los dos es una condición para la existencia mutua . Si el sistema no permite la ejecución concurrente de programas, entonces, naturalmente, no habrá problema de compartir recursos. ; si el sistema no puede implementar el intercambio de recursos, una gestión eficaz afectará la ejecución concurrente del programa.

1.1.3.3 Virtuales

La virtualización se refiere a convertir una entidad física en varias contrapartes lógicas. Las entidades físicas realmente existen y sus contrapartes lógicas no existen, son cosas que los usuarios sienten.

En el sistema operativo, la tecnología virtual se utiliza para implementar funciones como procesadores virtuales , memoria virtual y dispositivos periféricos virtuales .

  • procesador virtual

    El procesador virtual utiliza tecnología de programación múltiple para ejecutar múltiples programas simultáneamente y usar un procesador en tiempo compartido. En este momento, aunque solo hay un procesador, desde una perspectiva macro, puede servir a varios usuarios al mismo tiempo, lo que hace que cada usuario final sienta que hay una CPU que le sirve específicamente.

  • Memoria virtual

    La memoria virtual convierte la memoria física real de una computadora en memoria virtual para expandir lógicamente la capacidad de la memoria. En este momento, la capacidad de la memoria percibida por el usuario es virtual.

  • dispositivo periférico virtual

    Los dispositivos externos virtuales utilizan tecnología virtual para virtualizar un dispositivo de E/S físico en múltiples dispositivos de E/S lógicos, lo que permite a cada usuario ocupar un dispositivo de E/S lógico, lo que hace que el original solo se permita durante un período de tiempo. por un usuario dentro de un período de tiempo se convierte en un dispositivo compartido que permite que varios usuarios accedan simultáneamente durante un período de tiempo.

La tecnología virtual del sistema operativo se puede resumir en: tecnología de multiplexación por división de tiempo (procesador virtual) y tecnología de multiplexación por división de espacio (memoria virtual).

El requisito previo para la tecnología virtual del sistema operativo es la concurrencia. Si no hay concurrencia, solo se puede ejecutar un proceso en el sistema durante un período de tiempo, entonces la virtualidad perderá su significado, es decir, sin concurrencia, habrá sin virtualidad .

1.1.3.4 Asíncrono

En un entorno de programación múltiple del sistema operativo, debido a que se ejecutan múltiples programas al mismo tiempo, la ejecución de cada proceso no es consistente, sino intermitente, y cada proceso avanza a una velocidad impredecible. asincronicidad del proceso.

Dado que los procesos que se ejecutan simultáneamente compiten por recursos limitados del sistema, la ejecución de los procesos no es consistente y solo cuando el sistema tiene concurrencia puede provocar asincronía.

Resumen de la sección

Insertar descripción de la imagen aquí

1.2 Historia del desarrollo de los sistemas operativos

1.2.1 Etapa de operación manual (sin sistema operativo)

En la etapa inicial de operación manual, cada trabajo que utiliza la computadora requiere intervención manual, como carga y ejecución de programas, salida de resultados, etc. La siguiente figura muestra el flujo normal de la fase manual.

Insertar descripción de la imagen aquí

Como se puede ver en la figura anterior, la velocidad de cálculo por computadora es muy rápida en comparación con otras velocidades de intervención manual en todo el proceso. A lo largo del proceso, a menudo sucede que la computadora ya ha completado el cálculo, pero el humano todavía está ingresando lentamente el siguiente programa o leyendo los resultados de la operación.

Se puede observar que la etapa de operación manual tiene dos desventajas principales:

  • Los usuarios monopolizan toda la máquina, lo que resulta en una baja utilización de recursos.
  • La CPU espera operaciones manuales y está infrautilizada

1.2.2 Etapa de procesamiento por lotes (el sistema operativo comienza a aparecer)

Para solucionar dos problemas importantes en la fase manual surgieron los sistemas de procesamiento por lotes. Los sistemas de procesamiento por lotes se dividen en sistemas de procesamiento por lotes de un solo canal y sistemas de procesamiento por lotes multicanal .

1.2.2.1 Sistema de procesamiento por lotes de un solo canal

En el sistema de procesamiento por lotes de un solo canal, se introduce tecnología de entrada/salida fuera de línea ( máquina periférica + cinta ) , y el programa de supervisión es responsable de controlar la entrada y salida del trabajo, lo que resuelve el conflicto entre hombre y máquina y el desajuste en la velocidad de la CPU y del equipo de E/S.

Insertar descripción de la imagen aquí

  • Características

    • Automatización: en circunstancias normales, un lote de trabajos en la cinta se puede ejecutar automáticamente uno por uno sin intervención manual.

    • Secuencialmente, los trabajos de la cinta se ingresan en la memoria y se ejecutan uno por uno en orden.

    • De una sola pista, el programa de supervisión solo transfiere un programa de la cinta a la memoria para ejecutarlo.

  • ventaja

    Hasta cierto punto, soluciona el desperdicio de recursos provocado por el conflicto entre hombre y máquina.

  • defecto

    Debido a la naturaleza de un solo canal de un sistema de procesamiento por lotes de un solo canal, si se emite una solicitud de E/S mientras el programa se está ejecutando, la CPU de alta velocidad debe esperar a que se complete el dispositivo de E/S de baja velocidad antes de completarse. puede seguir funcionando. Esto da como resultado un desperdicio de recursos de la CPU.

1.2.2.2 Sistema de procesamiento por lotes multicanal

Para resolver las deficiencias del sistema de procesamiento por lotes de un solo canal, surgió el sistema de procesamiento por lotes multicanal, que utiliza tecnología de programación múltiple para permitir que múltiples programas ingresen a la memoria al mismo tiempo y permitir que se ejecuten alternativamente. en la CPU. De esta manera, incluso si hay un determinado Programa A que solicita un dispositivo de E/S mientras se está ejecutando, la CPU también puede operar inmediatamente otros programas y luego continuar operando el programa A después de que el dispositivo de E/S se haya activado. procesamiento completado.

Insertar descripción de la imagen aquí

  • Características

    La multiprogramación significa que se ejecutan varios programas simultáneamente en la memoria del sistema.

    Paralelo a nivel macro y serial a nivel micro . En el nivel macro se ejecutan todos los programas en la memoria, en el nivel micro solo un programa ocupa la CPU al mismo tiempo.

  • ventaja

    Varios programas se ejecutan simultáneamente y comparten recursos de la computadora, lo que hace que la CPU y otros recursos estén completamente "ocupados" y mejoran en gran medida la utilización de los recursos.

  • defecto

    El tiempo de respuesta del usuario es largo y no existe una función de interacción persona-computadora (cuando el usuario envía un trabajo, solo puede esperar a que el sistema lo procese automáticamente y no puede intervenir manualmente).

1.2.3 Sistema operativo de tiempo compartido

El sistema operativo de tiempo compartido utiliza tecnología de tiempo compartido para dividir el tiempo de ejecución del procesador en breves intervalos de tiempo y asigna el procesador a cada trabajo en línea por turno de acuerdo con el intervalo de tiempo.Cada usuario puede utilizar el sistema operativo de tiempo compartido a través del terminal Las computadoras interactúan, si un trabajo A no se puede completar dentro de un intervalo de tiempo, el trabajo A se suspenderá y la CPU procesará otros trabajos y esperará la siguiente ronda antes de continuar ejecutando el trabajo A. Debido a que la CPU es muy rápida, la rotación de trabajos también es muy rápida, lo que hace que cada usuario sienta que hay una CPU dedicada a su servicio.

  • Características

    La simultaneidad, en un sistema operativo de tiempo compartido, permite que varios usuarios finales utilicen una computadora al mismo tiempo. Los usuarios de estos terminales pueden usar la computadora al mismo tiempo o sustancialmente de manera simultánea.

    De forma interactiva, los usuarios pueden mantener un diálogo hombre-máquina con el sistema y controlar el funcionamiento del trabajo.

    Independencia, las operaciones entre múltiples usuarios en un sistema de tiempo compartido son independientes entre sí y no interfieren entre sí.

    Puntualidad, las solicitudes de los usuarios pueden ser atendidas en poco tiempo.

  • ventaja

    El sistema de tiempo compartido resuelve el problema de la incapacidad de interacción persona-computadora en sistemas de procesamiento por lotes multicanal. Permite que varios usuarios se conecten a un host a través del terminal al mismo tiempo, y las operaciones de cada usuario son independientes entre sí y otros usuarios no pueden sentirlas.

  • defecto

    Dado que el sistema de tiempo compartido rota los intervalos de tiempo para ejecutar cada programa, esto da como resultado que el sistema de tiempo compartido no pueda priorizar algunos asuntos urgentes. En algunos escenarios que requieren que el sistema procese información externa dentro de un tiempo específico, el sistema de tiempo compartido sistema El sistema no es aplicable (por ejemplo, reserva de aeronaves, monitoreo de aeronaves en tiempo real y otros sistemas).

1.2.4 Sistema operativo en tiempo real

Para resolver el problema de que el sistema de tiempo compartido no puede manejar tareas urgentes, surgió el sistema en tiempo real. Los sistemas en tiempo real se dividen en dos tipos: sistemas duros en tiempo real y sistemas blandos en tiempo real .

  • sistema duro en tiempo real

    Los sistemas estrictos en tiempo real requieren que una acción ocurra absolutamente en un momento específico o dentro de un rango de tiempo específico. (por ejemplo, sistema de conducción autónoma)

  • Sistema suave en tiempo real

    Un sistema flexible en tiempo real estipula que una acción debe completarse dentro de un tiempo específico, pero puede aceptar violaciones ocasionales de las regulaciones de tiempo y no causará ningún daño permanente después de que ocurra la situación. (por ejemplo, sistema de reserva de billetes de tren)

  • ventaja

    Bajo el control del sistema en tiempo real, el sistema informático puede procesar la señal externa a tiempo después de recibirla y completar el procesamiento dentro de un rango de tiempo estricto.

  • defecto

    Difícil de implementar.

1.2.5 Otros sistemas operativos

Además de los sistemas operativos mencionados anteriormente, también existen sistemas operativos de red, sistemas operativos de ordenadores distribuidos y sistemas operativos de ordenadores personales.

  • sistema operativo de red

    Un sistema operativo que surgió con el desarrollo de las redes informáticas puede combinar orgánicamente varias computadoras para realizar funciones de transmisión de datos, compartir diversos recursos en la red y comunicación entre varias computadoras.

  • Sistema operativo de computadora distribuido

    Un sistema operativo de computadora distribuido consta de varias computadoras y cumple las siguientes condiciones:

    1.系统中任意两台计算机间能够正常通信
    2.系统中的每台计算机都具有同等地位,没有从机和主机之分
    3.每台计算机上的资源为所有用户共享
    4.系统中的任意一台计算机都可以构成一个子系统且可以重构
    5.任何工作都可以分布在几台计算机上,由它们并行、协同完成。
    

    Sus principales características son la distribución y el paralelismo.

  • sistema operativo de computadora personal

    Actualmente los sistemas operativos más utilizados, como Windows, Linux y MacOS, etc.

Resumen de la sección

Insertar descripción de la imagen aquí

1.3 El mecanismo operativo del sistema operativo.

1.3.1 Prefacio

Antes de aprender el mecanismo operativo del sistema operativo, necesitamos tener una cierta reserva de conocimientos.

Es decir, debemos entender cómo se ejecuta un programa.

Cuando nuestros programadores terminen de escribir un fragmento de código y lo envíen al compilador para su compilación, se formará un archivo de instrucciones binario. Las instrucciones de este archivo son las instrucciones que la CPU puede reconocer y ejecutar. De la misma manera, si un programa quiere ejecutarse en una computadora, su programa interno debe compilarse en instrucciones binarias una por una y luego ser reconocido y ejecutado por la CPU.

Insertar descripción de la imagen aquí

Para aprender el mecanismo operativo del sistema operativo, necesitamos comprender dos tipos de instrucciones (instrucciones privilegiadas e instrucciones no privilegiadas), dos tipos de programas (programas kernel y programas de usuario), dos estados (modo usuario y modo kernel), y los cuatro núcleos del sistema operativo: sólo un aspecto.

1.3.2 Programa kernel y programa de usuario

En el sistema operativo, la CPU ejecuta dos programas de diferente naturaleza, uno es el programa del núcleo del sistema operativo, denominado "programa del núcleo", y el otro es el programa de aplicación de la capa externa del sistema, denominado "programa de usuario". programa".

El programa del núcleo es el administrador del programa de usuario. En el programa del núcleo se pueden ejecutar instrucciones con privilegios , y en el programa de usuario solo se pueden ejecutar instrucciones sin privilegios .

Los programas escritos por nuestros programadores son generalmente programas de usuario.

1.3.3 Instrucciones privilegiadas e instrucciones no privilegiadas

Entre las instrucciones que la CPU puede reconocer, existen dos tipos de instrucciones según los permisos, instrucciones privilegiadas e instrucciones no privilegiadas.

  • Instrucciones privilegiadas

    Instrucciones que los usuarios no pueden usar directamente, como instrucciones de E/S, instrucciones de configuración de interrupciones, instrucciones para acceder a registros protegidos de la memoria del usuario, enviar palabras de estado del programa a registros de palabras de estado del programa, etc.

  • instrucciones no privilegiadas

    Instrucciones que permiten a los usuarios usarlas directamente. Las instrucciones sin privilegios no pueden acceder directamente a los recursos de software y hardware del sistema. Se limitan a acceder al espacio de direcciones del usuario, lo que puede evitar que los programas del usuario dañen los programas del sistema.

1.3.4 Modo usuario y modo kernel

El modo operativo de la CPU se divide en dos modos, modo de usuario (modo ojo) y modo kernel (modo núcleo, modo tubería) . La CPU en modo kernel puede ejecutar instrucciones privilegiadas, pero la CPU en modo usuario no puede ejecutar instrucciones privilegiadas.

Con respecto al contenido del modo usuario y el modo kernel, los lectores deben aclarar dos cuestiones principales.

1.3.4.1 ¿Cómo identifica la CPU si está actualmente en modo de usuario o en modo kernel?

Hay un registro en la CPU llamado registro de estado del programa (PSW) . Hay un bit binario en este registro. 1 significa que la CPU está en "modo kernel" y 0 significa que la CPU está en "modo usuario" . Cuando la CPU está en modo kernel, significa que el programa del kernel se está ejecutando y se pueden ejecutar instrucciones privilegiadas. Cuando la CPU está en modo de usuario, significa que los programas de usuario se están ejecutando y solo se pueden ejecutar instrucciones sin privilegios.

1.3.4.2 Cómo cambia de estado la CPU

Si la CPU quiere cambiar del modo de usuario al modo kernel, debe activar una interrupción o excepción por parte del programa de usuario. Después de que la implementación del hardware establezca el indicador PSW en 1, cambiará al modo kernel.

Si la CPU quiere cambiar del modo kernel al modo usuario, el programa del kernel llama a una instrucción privilegiada que modifica el PSW.

Las interrupciones y excepciones se explicarán en capítulos siguientes.

1.3.5 Contenidos incluidos en el kernel del sistema operativo

1.3.5.1 Gestión del reloj

El reloj es el dispositivo más básico y crítico del sistema operativo y proporciona temporización, interrupción y otras funciones.

  • La función de sincronización permite que el sistema operativo proporcione la hora estándar al usuario.
  • La función de interrupción del reloj puede realizar la conmutación de procesos, como la gestión de rotación de intervalos de tiempo en sistemas operativos de tiempo compartido.
1.3.5.2 Mecanismo de interrupción

La intención original del sistema operativo de introducir tiempos de interrupción es mejorar la utilización de la CPU en un entorno de múltiples programas, incluso si los múltiples programas se pueden ejecutar al mismo tiempo. Con el tiempo, el mecanismo de interrupción se convirtió gradualmente en la base de los sistemas operativos modernos. Por ejemplo, entrada de información con el teclado o el mouse, gestión y programación de procesos, llamadas a funciones del sistema, controladores de dispositivos, acceso a archivos, etc., todas estas funciones dependen del mecanismo de interrupción.

1.3.5.3 Primitivas

La capa inferior del sistema operativo son algunos pequeños programas públicos que se pueden llamar. Cada uno de ellos puede completar ciertas operaciones. Estos pequeños programas se denominan primitivos y tienen las siguientes características:

  • Está en la parte inferior del sistema operativo y es la parte más cercana al hardware.
  • Es atómico, se ejecuta de una vez y no se puede interrumpir.
  • Tarda poco en ejecutarse y se llamará con frecuencia.

La forma directa de definir una primitiva es desactivar las interrupciones y activarlas una vez completada la ejecución de la primitiva. Algunas operaciones de controladores de dispositivos, cambio de estado de CPU, comunicación de procesos y otras funciones en el sistema se pueden definir como primitivas. Es decir, las dos instrucciones privilegiadas " instrucción de interrupción deshabilitada " y " instrucción de interrupción abierta " se utilizan para lograr la atomicidad. Después de utilizar la "instrucción de interrupción desactivada", la CPU no detectará si hay una señal de interrupción al ejecutar el programa. Después de usar la "instrucción de interrupción abierta", la CPU detectará si hay una señal de interrupción al ejecutar el programa. (El conocimiento relacionado con las interrupciones se presentará en capítulos posteriores)

1.3.5.4 Estructura de datos y procesamiento del control del sistema.

Existen muchas estructuras de datos que se utilizan para registrar información de estado en el sistema operativo, como bloques de control de procesos, bloques de control de trabajos, colas de mensajes, buffers, etc. Para lograr una gestión eficaz, el sistema define algunas operaciones básicas.

  • Gestión de proceso

    Responsable de la gestión del estado de los procesos, programación y despacho de procesos, creación y cancelación de bloques de control de procesos, etc.

  • gestión de la memoria

    Responsable de la asignación y reproducción del espacio de memoria, programa de protección de información de memoria, programa de intercambio de código, etc.

  • Gestión de dispositivos

    Responsable de la gestión del buffer, asignación y reciclaje de dispositivos, etc.

Como se puede ver en el contenido anterior, las instrucciones del modo kernel en realidad incluyen instrucciones de llamada al sistema y algunas instrucciones de operación para relojes, interrupciones y primitivas .

Resumen de la sección

Insertar descripción de la imagen aquí

1.4 Interrupciones y excepciones

1.4.1 El papel de las interrupciones

Primero hablemos de la conclusión: las interrupciones son la única forma en que el kernel del sistema operativo recupera el derecho a usar la CPU .

Supongamos el siguiente escenario:

En el sistema operativo, se introducen dos estados, modo kernel y modo usuario. Cuando el usuario inicia el programa de usuario A, el kernel del sistema operativo cederá activamente los derechos de uso de la CPU al programa de usuario A en el momento apropiado (es decir, el La CPU se transfiere del estado de kernel al programa de usuario A) Cambie al modo de usuario ). En este momento, si no hay un mecanismo de interrupción, la CPU permanecerá en modo de usuario y el kernel del sistema operativo no podrá obtener el derecho para utilizar la CPU.

Por lo tanto, se introdujo un mecanismo de interrupción en el sistema operativo.

En el capítulo anterior, también mencionamos que la CPU cambia del modo de usuario al modo kernel a través del mecanismo de interrupción. (Activado por una interrupción, el hardware cambia automáticamente el estado de la CPU).

1.4.2 Tipos de interrupciones

Las interrupciones se dividen en dos tipos : interrupciones externas e interrupciones internas .

1.4.2.1 Interrupción externa

Las interrupciones externas, también conocidas como interrupciones, se refieren a eventos externos a las instrucciones de ejecución de la CPU. Generalmente se utilizan para la entrada/salida de información. Por ejemplo, la interrupción de fin de E/S emitida por el dispositivo indica que la entrada/salida del dispositivo se ha completado. .

Ejemplo de interrupción externa:

Interrupción del reloj, suponiendo que el componente del reloj envía una señal de interrupción a la CPU cada 100 ms, ocurrirá la siguiente situación:

1.CPU依次执行应用程序A的每一条指令(CPU每执行完一条指令后,就会检查是否接收到了中断信号,如果没有则继续执行下一条指令)。
2.CPU接收到由时钟部件发送的中断指令,则转换为内核态,操作系统将CPU交给处理时钟中断指令的内核程序(此时一般会将CPU内核交给另外一个应用程序B)
3.CPU由内核态转换为用户态且应用程序B占有了CPU,CPU依次执行应用程序B的每条指令...

De la misma manera, la situación anterior también se puede aplicar a la situación en la que el dispositivo de E/S envía una señal de interrupción a la CPU.

1.4.2.2 Interrumpido dentro

Las interrupciones internas también se denominan excepciones, que se refieren a eventos dentro de la ejecución de instrucciones de la CPU, como eventos causados ​​por códigos de operación ilegales en el programa, direcciones fuera de límites e instrucciones especiales atrapadas. Las excepciones no se pueden bloquear y deben manejarse inmediatamente una vez que ocurren .

Ejemplo de interrupción interna:

1.应用程序A试图在用户态下执行特权指令,这个指令是非法的,会引起一个中断信号,CPU接收到该中断信号,则转换为内核态,交由处理该中断信号的内核程序占有CPU。
2.应用程序A试图请求操作系统内核提供的服务,此时应用程序A执行了一个特殊的指令(陷入指令),该指令也会引起一个中断信号。

Una instrucción atrapada significa que la aplicación devuelve activamente los derechos de uso de la CPU al kernel del sistema operativo. (Las llamadas al sistema se implementan mediante instrucciones trampa)

1.4.2.3 Diagrama de clasificación

Insertar descripción de la imagen aquí

1.4.3 Principios básicos de las interrupciones

El proceso de manejo de interrupciones y excepciones es aproximadamente el siguiente

Insertar descripción de la imagen aquí

Cuando la CPU detecta un evento anormal al ejecutar la i-ésima instrucción del programa de usuario (o encuentra un mensaje de solicitud de interrupción después de ejecutar la i-ésima instrucción), la CPU interrumpe el programa de aplicación actual, luego lo convierte al estado del núcleo y pasa transfiéralo a la ejecución correspondiente del controlador de interrupción o excepción. Si el controlador de interrupciones o excepciones puede resolver el problema, después de que finalice la ejecución de la interrupción o del controlador de excepciones, la CPU regresa a la instrucción i-ésima o i+1 del programa de usuario interrumpido ejecutando la instrucción de retorno de interrupción o excepción. La ejecución continúa; si el controlador de interrupciones o excepciones encuentra que se trata de un error fatal irrecuperable, el programa de usuario finaliza.

Entre ellos, después de que la CPU detecta una interrupción o excepción, encontrará la ubicación del controlador de interrupciones correspondiente en la "tabla de vectores de interrupción" de acuerdo con los diferentes tipos de señales de interrupción.

Resumen de la sección

Insertar descripción de la imagen aquí

1.5 llamadas al sistema

1.5.1 ¿Qué es una llamada al sistema?

La llamada al sistema es un nombre colectivo para una serie de interfaces proporcionadas a los "programadores". El sistema operativo administra de manera uniforme varios recursos compartidos en el sistema, y ​​​​los programas de usuario pueden solicitar servicios relacionados (asignación de almacenamiento, entrada y salida de E / S, etc.) a través de llamadas al sistema.

Las llamadas al sistema son las interfaces de programa proporcionadas por el sistema operativo que mencionamos en la Sección 1.1.2.2.

1.5.2 La diferencia entre llamadas al sistema y funciones de biblioteca

La diferencia entre llamadas al sistema y funciones de biblioteca se muestra en la siguiente tabla

nivel ilustrar
programa de usuario Puede realizar llamadas al sistema directamente o utilizar funciones de biblioteca.
lenguaje de programación Proporcione funciones de biblioteca hacia arriba. Algunas funciones de biblioteca encapsulan llamadas al sistema y ocultan los detalles de las llamadas al sistema.
Sistema operativo Proporcionar llamadas al sistema hacia arriba para que los programas de capa superior puedan solicitar ciertos servicios del kernel.

1.5.3 La necesidad de llamadas al sistema

Si no hay una llamada al sistema, es decir, el sistema operativo no administra de manera uniforme varios recursos compartidos de la computadora, se enviará un error en el siguiente escenario:

Cuando desee imprimir un archivo a través de una impresora, use el mouse para presionar el botón "Imprimir" de Word y la impresora comenzará a imprimir su archivo.

Después de un rato, otro colega presionó el botón "Imprimir" de WPS y la impresora comenzó a imprimir su archivo. Después de eso, los dos procesos se ejecutarán simultáneamente y el contenido de su archivo se mezclará con el contenido de su archivo. .

El escenario anterior se debe a que la impresora de recursos compartidos no se administra de manera uniforme.

Por lo tanto, se refleja la necesidad de llamadas al sistema. El kernel del sistema operativo administra de manera uniforme los recursos compartidos y proporciona "llamadas al sistema" hacia arriba. Si el proceso del usuario desea utilizar recursos compartidos como impresoras, debe enviar un mensaje al kernel del sistema a través del sistema. llamadas.solicitudes, y el núcleo del sistema coordinará y procesará estas solicitudes.

1.5.4 Escenarios aplicables para llamadas al sistema

Todas las operaciones relacionadas con recursos compartidos (operaciones de E/S, administración de archivos, etc.) deben realizar solicitudes al kernel del sistema operativo a través de llamadas al sistema, y ​​el kernel del sistema operativo las completará en su nombre. Esto puede garantizar la estabilidad y seguridad del sistema y evitar operaciones ilegales por parte de los usuarios.

La clasificación de las llamadas al sistema se muestra en la siguiente tabla.

Función ilustrar
Gestión de dispositivos Funciones completas como solicitud, liberación y puesta en marcha del dispositivo.
Gestión de archivos Funciones completas como leer, escribir, crear y eliminar archivos.
control de procesos Funciones completas como creación, cancelación, bloqueo y activación de procesos.
comunicación de proceso Funciones completas como paso de mensajes o paso de señales entre procesos.
Gestión de la memoria Funciones completas como asignación de memoria, reciclaje y obtención del tamaño y dirección inicial del área de memoria ocupada por el trabajo.

1.5.5 Proceso de llamada al sistema

Los pasos específicos son los siguientes:

  1. La CPU ejecuta el programa de aplicación, y algunas instrucciones del programa de aplicación pasan algunos parámetros de llamada al sistema y luego ejecuta la instrucción atrapada.
  2. Después de que la CPU ejecuta la instrucción de captura, la instrucción de interrupción activa una señal de interrupción y la CPU pasa al estado del núcleo, que está ocupado por el controlador de interrupción correspondiente (programa de entrada de llamadas al sistema). De acuerdo con ciertos parámetros en el registro, puede identificar qué tipo de llamada al sistema es.
  3. El controlador llamado por este sistema ocupa la CPU para ejecutar instrucciones relevantes y, una vez completada la ejecución, regresa al programa de aplicación y continúa ejecutando instrucciones posteriores.

El proceso anterior se puede resumir como:

Pase los parámetros de llamada del sistema -> ejecute la instrucción atrapada -> ejecute el controlador correspondiente para manejar la llamada del sistema -> regrese a la aplicación

Resumen de la sección

Insertar descripción de la imagen aquí

1.6 Estructura del sistema operativo

A medida que los sistemas operativos continúan creciendo, han surgido varias arquitecturas de sistemas operativos. Actualmente, podemos dividir las arquitecturas de sistemas operativos en cinco tipos: estructura jerárquica, modularización, macrokernel, microkernel y núcleo externo.

1.6.1 Estructura jerárquica

1.6.1.1 Definición

La estructura jerárquica se refiere a dividir el sistema operativo en varias capas. La capa más baja (capa 0) es el hardware y la capa más alta (capa N) es la interfaz de usuario. Cada capa solo puede llamar a las funciones y servicios de la capa inferior. inmediatamente adyacente a él, es decir, la capa inferior sube a la capa superior.Para brindar servicios, una capa de alto nivel depende unidireccionalmente de la capa debajo de ella. Los detalles se muestran en la siguiente figura.

Insertar descripción de la imagen aquí

1.6.1.2 Ventajas
  • Facilita la depuración y verificación del sistema y simplifica el diseño y la implementación del sistema.

    Debido a que es una dependencia unidireccional, se puede depurar capa por capa desde la capa inferior a la capa superior. Si se encuentra un problema en una determinada capa, puede localizar rápidamente el error en esa capa porque su capa inferior ha sido depurado para garantizar que no haya problemas con las funciones proporcionadas.

  • Fácil de ampliar y mantener.

    Puede modificar fácilmente las funciones de una determinada capa. Siempre que no se cambie la interfaz entre capas de esta capa, otras capas no se verán afectadas.

1.6.1.3 Desventajas
  • Es difícil definir entre los distintos niveles.
  • La eficiencia es pobre: ​​cada vez que se ejecuta una función de alto nivel, es posible que sea necesario llamar continuamente a servicios de bajo nivel de abajo hacia arriba.

1.6.2 Modularización

1.6.2.1 Definición

La modularización se refiere a dividir el sistema operativo en varios módulos independientes según sus funciones. Cada módulo es responsable de una determinada función y cada módulo se puede dividir en submódulos. Como se muestra abajo

Insertar descripción de la imagen aquí

1.6.2.2 Ventajas
  • Se mejoró la corrección, comprensibilidad y mantenibilidad del diseño del sistema operativo.
  • Adaptabilidad mejorada del sistema operativo
  • Eficiencia mejorada en el desarrollo del sistema operativo.
1.6.2.3 Desventajas
  • La interfaz entre módulos es difícil de satisfacer la demanda real de la interfaz.
  • Cada diseñador de módulos trabaja mano a mano y cada decisión no puede basarse en la decisión correcta demostrada previamente, por lo que no se puede encontrar un orden confiable de decisiones (a diferencia de una estructura jerárquica).

1.6.3 Macronúcleo

1.6.3.1 Definición

El macronúcleo, también conocido como núcleo único o núcleo grande, se refiere a las funciones principales del sistema operativo que se ejecuta en el estado central como un todo estrechamente relacionado, proporcionando así servicios del sistema de alto rendimiento a los programas de los usuarios. El diagrama esquemático es el siguiente.

Insertar descripción de la imagen aquí

1.6.3.2 Ventajas

Dado que la información se comparte entre módulos, los servicios entre módulos se pueden llamar rápidamente, por lo que el macronúcleo tiene ventajas de rendimiento extremadamente altas.

1.6.3.3 Desventajas
  • Las funciones del núcleo son complejas y difíciles de mantener.
  • Una falla de un determinado módulo funcional en el kernel puede causar que todo el sistema falle.

1.6.4 Micronúcleo

1.6.4.1 Definición

Microkernel se refiere a retener las funciones más básicas del kernel del sistema operativo en el kernel y mover funciones que no necesitan ejecutarse en el estado central al estado de usuario para reducir la complejidad del diseño del kernel. Los programas que salen del kernel se dividen en capas según el principio. El principio es dividirlos en varios programas de servicio, su ejecución es independiente entre sí y la interacción se comunica con la ayuda del microkernel.

La estructura del microkernel divide el sistema operativo en dos partes: el microkernel y múltiples servidores .

Un microkernel es un pequeño kernel que puede implementar las funciones más básicas de un sistema operativo, incluidas las siguientes funciones:

  1. Funciones estrechamente relacionadas con el procesamiento de hardware.
  2. Funciones de comunicación entre cliente y servidor.
  3. Algunas funciones básicas

La mayoría de las funciones del sistema operativo se encuentran en algunos servidores fuera del microkernel. Por ejemplo, servidor de gestión de procesos, servidor de dispositivos de E/S, etc. Estos servidores se ejecutan en modo usuario y la comunicación entre ellos se logra mediante el mecanismo de paso de mensajes proporcionado por el microkernel. El diagrama esquemático es el siguiente.

Insertar descripción de la imagen aquí

1.6.4.2 Ventajas
  • Fácil de expandir, muchas funciones están fuera del kernel y es muy fácil modificar o agregar algunas funciones.
  • Tiene una portabilidad excelente. El código relacionado con la CPU y el hardware de E/S se coloca en el kernel. Varios otros servidores son independientes del hardware, por lo que portar el sistema operativo a otra plataforma requiere cambios mínimos.
1.6.4.3 Desventajas

La principal desventaja de la estructura del microkernel es el rendimiento, porque requiere cambios frecuentes entre el estado central y el estado del usuario.

1.6.5 Núcleo exterior

Solo tenga algunos conocimientos sobre el núcleo externo.

El kernel externo es un programa que se ejecuta en el estado del kernel y su tarea es asignar recursos a las máquinas virtuales y verificar los intentos de usar estos recursos para garantizar que ninguna máquina use los recursos de otras personas.

1.6.6 Resumen y comparación

Nombre de la estructura característica ventaja defecto
Estructura jerarquica El núcleo se divide en varios niveles y los niveles superiores dependen unidireccionalmente de los niveles inferiores. Fácil de depurar; fácil de ampliar y mantener Los límites de cada capa son difíciles de determinar; la eficiencia es baja y no se puede utilizar entre capas.
Modular Dividir el kernel en módulos. Fácil de mantener; los módulos pueden comunicarse entre sí; soportan la carga dinámica de nuevos módulos La definición de interfaz entre módulos puede no ser razonable; los módulos dependen unos de otros y son difíciles de depurar.
núcleo macro Toda la funcionalidad se coloca en el kernel. Alto rendimiento, cada módulo se llama directamente entre sí Las funciones del kernel son complejas y difíciles de mantener; un error en una determinada función puede provocar que todo el sistema colapse.
micronúcleo Coloque solo las funciones básicas en el kernel y coloque el resto en otros servidores. El kernel tiene pocas funciones y es fácil de mantener; tiene una gran portabilidad. Rendimiento deficiente, que requiere cambios frecuentes entre el modo de usuario y el modo central
núcleo externo El kernel es responsable de la programación de procesos, la comunicación de procesos y otras funciones, mientras que el kernel externo es responsable de asignar recursos de hardware no extraídos a los usuarios y garantizar la seguridad del uso de los recursos. El núcleo externo asigna directamente recursos de hardware "abstractos" a los usuarios, lo que permite que los procesos del usuario utilicen los recursos de hardware de manera más flexible. Coherencia reducida del sistema

Resumen de la sección

Insertar descripción de la imagen aquí

1.7 Programa de inicio del sistema operativo

1.7.1 Descripción general

Del estudio de los capítulos anteriores, aprendimos que el sistema operativo es esencialmente un programa, por lo que en la computadora, los programas se almacenan en el disco duro en forma de datos. Cuando nuestra computadora presiona el botón de encendido, ¿cómo ejecutar el sistema operativo instalado en el disco duro? Este problema requiere que se complete el programa de inicio del sistema operativo presentado en esta sección. Significa que la computadora usa la CPU para ejecutar un programa específico -> identificar el disco duro a través del programa -> identificar la partición del disco duro - identificar el sistema operativo en la partición del disco -> finalmente iniciar el sistema operativo a través del programa . El proceso anterior se completa paso a paso bajo la guía del programa de inicio del sistema operativo.

1.7.2 Proceso de inicio del sistema operativo

Antes de aprender el proceso de inicio del sistema operativo, primero debemos comprender qué datos se almacenan en el disco duro.

La siguiente imagen muestra un disco vacío.

Insertar descripción de la imagen aquí

El nuevo disco que acabo de comprar no tiene nada, solo una caja vacía.

La siguiente imagen muestra un disco después de instalar el sistema operativo.
Insertar descripción de la imagen aquí

La siguiente figura muestra el diagrama esquemático de la memoria principal.

Insertar descripción de la imagen aquí

Después de comprender las estructuras relacionadas anteriores, comenzaremos a aprender el proceso de inicio de los sistemas operativos comunes, que se divide en los siguientes ocho pasos.

  1. Active la CPU : La CPU activada leerá el programa de arranque en la ROM, configurará el registro de instrucciones en la primera instrucción del BIOS (Sistema básico de entrada/salida) y comenzará a ejecutar las instrucciones del BIOS.
  2. Autoprueba de hardware . Después de iniciar el programa BIOS, primero realice una autoprueba de hardware para verificar si hay una falla en cada hardware. Si ocurre una falla, la placa base emitirá diferentes pitidos para indicar y finalizar el inicio. Si no hay fallas, continúe con el siguiente paso.
  3. Cargue el disco duro con el sistema operativo , el BIOS comienza a leer la secuencia de inicio (a través de la secuencia de inicio guardada en CMOS o mediante la interacción con el usuario) y entrega el control al dispositivo de almacenamiento clasificado en primer lugar en la secuencia de inicio, y luego la CPU Carga el contenido del sector de arranque del dispositivo de almacenamiento en la memoria.
  4. Cargue el registro de arranque maestro MBR . El disco duro utiliza un identificador específico para distinguir los discos duros de arranque de los discos duros que no son de arranque. La función del registro de arranque maestro MBR es decirle a la CPU qué partición primaria de qué disco duro buscar para el sistema operativo.
  5. Escanee la tabla de particiones del disco duro y cargue el área activa del disco duro . MBR contiene la tabla de particiones del disco duro. En la tabla de particiones del disco duro, las particiones activas y las inactivas se distinguen por identificadores específicos. El registro de arranque maestro escanea la tabla de particiones del disco duro, encuentra la partición del disco duro (partición activa) que contiene el sistema operativo, comienza a cargar la partición activa y entrega el control a la partición activa.
  6. Cargue el registro de inicio de la partición PBR . Lea el primer sector de la partición activa, que se denomina Registro de inicio de partición (PBR). Su función es buscar y activar el programa (administrador de arranque) utilizado para iniciar el sistema operativo en el directorio raíz de la partición.
  7. Cargue el administrador de arranque , busque el registro de arranque de la partición para el administrador de arranque en la partición activa y cargue el administrador de arranque.
  8. Cargue el sistema operativo .

Insertar descripción de la imagen aquí

El proceso de ejecución en la figura anterior se puede resumir en los siguientes pasos:

1. La CPU comienza a buscar instrucciones desde una dirección de memoria principal específica y ejecuta el programa de arranque en la ROM (primero realice una autoprueba de hardware y luego encienda la computadora).

2. Lea el MBR en el primer sector del disco en la memoria, ejecute el programa de escaneo del disco y escanee la tabla de particiones del disco.

3. Lea el registro de inicio de la partición activa (también llamada partición primaria, es decir, la partición donde está instalado el sistema operativo) y ejecute el programa en ella.

4. Busque el programa de inicialización completo del sistema operativo (administrador de inicio) en el directorio raíz, cargue el sistema operativo y complete el inicio.

1.8 Máquina virtual

1.8.1 Descripción general

Una máquina virtual se refiere a una computadora lógica que utiliza tecnología de virtualización para proporcionar a los usuarios un entorno informático abstracto, unificado y simulado al ocultar las características físicas reales de una plataforma informática específica .

Actualmente, existen dos métodos de virtualización para máquinas virtuales, que se pueden dividir en máquinas virtuales de primer tipo y máquinas virtuales de segundo tipo .

1.8.2 El primer tipo de máquina virtual

El primer tipo de máquina virtual es como un sistema operativo: es el único programa del sistema informático que se ejecuta con el nivel de privilegio más alto, se ejecuta sin sistema operativo y tiene capacidades de multiprogramación.

La máquina virtual se ejecuta como un proceso en modo de usuario y no puede ejecutar instrucciones confidenciales. Sin embargo, el sistema operativo de la máquina virtual cree que está en modo kernel, lo que se denomina modo kernel virtual. Cuando el sistema operativo de la máquina virtual ejecuta una instrucción privilegiada, atrapará al hipervisor. En una CPU que admite virtualización, el hipervisor verifica esta instrucción. Si la instrucción es ejecutada por el sistema operativo en la máquina virtual, entonces haga arreglos para que esta instrucción ejecutarse normalmente; de ​​lo contrario, simulará el comportamiento del hardware real ejecutando instrucciones privilegiadas en modo usuario.

El diagrama esquemático es el siguiente.

Insertar descripción de la imagen aquí

1.8.3 El segundo tipo de máquina virtual

El segundo tipo de máquina virtual es como un proceso normal y depende de recursos proporcionados por sistemas operativos como Windows y Linux.

Por ejemplo: podemos instalar VMware en el sistema operativo Windows y luego instalar la imagen del sistema operativo Linux en VMware, de esta manera podemos usar el sistema Linux en el sistema Windows y ejecutar otros procesos en el sistema Windows al mismo tiempo. Mismo tiempo.

El diagrama esquemático es el siguiente.

Insertar descripción de la imagen aquí

Resumen de la sección

Insertar descripción de la imagen aquí

referencias

《2023年操作系统考研复习指导》-王道论坛

Si este artículo te resulta útil, quizás quieras darle me gusta, reenviarlo y guardarlo~

Supongo que te gusta

Origin blog.csdn.net/weixin_42584100/article/details/126090180
Recomendado
Clasificación