Comprensión profunda del mecanismo del sistema operativo Windows (4)

Soy Liyuan Breeze. Como veterano en la industria de TI durante 25 años, hoy reexaminaremos Windows, un sistema con el que estamos familiarizados y con el que ya no podemos estar familiarizados.

Usamos el sistema operativo Windows todos los días, pero lo que tratamos directamente todos los días no es el núcleo del sistema operativo Windows, sino la interfaz de interacción persona-computadora del sistema operativo Windows. Esta interfaz es en realidad solo un componente de Windows. sistema operativo., la interfaz que utilizamos cuando usamos el sistema Linux es solo un programa en el sistema Linux. Por tanto, no estamos expuestos al núcleo de estos sistemas. Con el tiempo, gradualmente confundiremos las cosas intuitivas que se muestran en la interfaz con el propio sistema operativo Windows, lo cual en realidad es incorrecto.

Reexaminemos nuevamente el sistema operativo Windows y veamos las características típicas y funciones principales del propio sistema operativo Windows. A partir de las funciones del sistema operativo Windows, podemos saber que los servicios proporcionados por el sistema operativo Windows son los siguientes: se proporciona un entorno para ejecutar programas y los servicios proporcionados incluyen ejecución de programas, operaciones de E / S, operaciones de archivos, recursos asignación y protección, detección y exclusión de errores, etc.

El sistema operativo Windows toma prestado el concepto de multiprogramación. La llamada tecnología de multiprogramación se refiere a almacenar dos o más trabajos en la memoria al mismo tiempo, estos trabajos se ejecutan al mismo tiempo y están bajo el control del programa de administración. Corre intercalados. Estos trabajos comparten procesadores, periféricos y otros recursos.

El controlador de interrupciones del sistema operativo Windows solo puede ser un programa del sistema operativo, no un programa de aplicación. La interrupción del procesamiento es una acción en el sistema que tendrá un impacto significativo en el sistema, por lo que solo se permite la ejecución de programas en modo kernel. El programa de aplicación generalmente se refiere al programa de usuario, que se ejecuta en el estado de usuario y no puede realizar estas operaciones.

virtual

Cuando se trata de virtualización del sistema operativo, ¿cómo lo entiendes? Básicamente hay tres descripciones:

①Debido a que una computadora está equipada con un sistema operativo y otro software, es más poderosa que una computadora básica y más conveniente de usar, se llama máquina virtual. Dado que el sistema operativo contiene varias capas de software, el sistema informático también puede denominarse máquina virtual multicapa.

②Por ejemplo, en un sistema de tiempo compartido multicanal, el uso de tecnología de programación múltiple puede virtualizar una CPU física en varias CPU lógicas para que la utilicen varios usuarios finales.

③Memoria virtual, solo una parte del trabajo se puede cargar en la memoria para ejecutar el trabajo, expandiendo lógicamente la capacidad de la memoria. Otro ejemplo es el uso de tecnología de dispositivos virtuales en la gestión de dispositivos, que puede transformar un dispositivo físico en varios homólogos lógicos.

control

En un sistema operativo de tiempo compartido como Windows, existe un programa con las siguientes funciones:
(1) Leer datos de texto de un archivo.
(2) Ordenar
(3) Escriba los datos ordenados en el archivo.
A continuación, desde la perspectiva del sistema operativo de tiempo compartido sobre la gestión de recursos y el ciclo de vida del proceso, analizamos todo el proceso del programa desde el principio hasta el final, y el sistema operativo le brinda servicio y control.

Al leer datos de un archivo, se realiza mediante la llamada al sistema de lectura. Primero crea un mensaje, que contiene parámetros como fd (descriptor de archivo), buffer (búfer), nbytes (tamaño) y un código de mensaje que indica el tipo READ. Luego envíe este mensaje al sistema de archivos y bloquee el proceso para esperar la respuesta del sistema de archivos. Después de recibir el mensaje, el sistema de archivos busca en la tabla de procesos con el tipo de mensaje como subíndice y llama al proceso correspondiente para procesar. la solicitud de lectura. Una vez completada la entrada de datos, el sistema operativo cambia al proceso de clasificación y comienza el trabajo de clasificación. Una vez completado el trabajo de clasificación, el sistema operativo llama a la llamada al sistema de escritura para completar, y la llamada al sistema de escritura escribe los datos en el búfer del proceso en el archivo asociado con el descriptor de archivo. Muy similar a la llamada al sistema de lectura, también requiere 3 parámetros: fd, buffer, nbytes. Ambas llamadas al sistema devuelven la cantidad de bytes transferidos exitosamente o señalan una condición de error y devuelven -1.

La relación entre el sistema operativo y el hardware: el sistema operativo es la primera capa de software que cubre el hardware y administra los recursos de hardware de la computadora. El sistema operativo completa todas las operaciones relacionadas con el hardware para el usuario, lo que facilita enormemente el uso de los recursos de hardware por parte del usuario y mejora la tasa de utilización de los recursos de hardware. La relación entre el sistema operativo y otro software del sistema: el sistema operativo es un software de sistema especial, otro software del sistema se ejecuta sobre la base del sistema operativo y puede obtener una gran cantidad de servicios proporcionados por el sistema operativo, es decir , el sistema operativo es otra interfaz de software del sistema con el hardware.

Proteger

Para que un sistema informático funcione correctamente, proteger el sistema operativo es muy importante. Sin embargo, para proporcionar una mayor flexibilidad al usuario, se debe restringir al usuario lo menos posible. Las operaciones que se enumeran a continuación generalmente están protegidas. ¿Puedo preguntar al menos qué instrucciones deben protegerse?
(1) Cambiar al modo de usuario.
(2) Cambie al modo del sistema.
(3) Leer datos del área de almacenamiento donde está almacenado el sistema operativo.
(4) Escribir datos en el área de almacenamiento que almacena el sistema operativo
(5) Obtener instrucciones del área de almacenamiento que almacena el sistema operativo.
(6) Encienda el temporizador.
(7) Apague el temporizador.

Las operaciones 2 y 4 deben protegerse. Porque estas dos operaciones son para modificar el contenido del propio sistema operativo. Si se deja a la operación arbitraria del usuario, causará daños al sistema operativo y eventualmente provocará que el sistema funcione incorrectamente o falle, por lo que debe protegerse bajo cualquier circunstancia. En general, también se deben proteger varias otras operaciones, pero incluso si estas operaciones se dejan en manos del usuario, no son tan destructivas como las dos operaciones anteriores.

función

Hablemos de la diferencia y la conexión entre las funciones de la biblioteca y las llamadas al sistema.

Diferencia: las funciones de la biblioteca son parte del lenguaje o la aplicación y pueden ejecutarse en el espacio del usuario. La llamada al sistema es parte del sistema operativo, una interfaz de programa proporcionada por el kernel al usuario y se ejecuta en el espacio del kernel.

Conexión: muchas funciones de la biblioteca utilizan llamadas al sistema para implementar la funcionalidad. La eficiencia de ejecución de las funciones de la biblioteca que no utilizan llamadas al sistema suele ser mayor que la de las llamadas al sistema, porque cuando se utilizan llamadas al sistema, se requiere cambio de contexto y conversión de estado (del modo de usuario al modo central).

Planificación

El sistema operativo Windows tiene la función de tiempo compartido y procesamiento por lotes, por lo que podemos diseñar una estrategia de programación de colas razonable para que los trabajos de tiempo compartido puedan responder rápidamente y los trabajos por lotes también puedan obtener respuestas oportunas. 

Creo que podemos. En el sistema de procesamiento por lotes, los trabajos se ingresan secuencialmente en la cinta en un modo de entrada fuera de línea, y el programa de supervisión ejecuta los trabajos en la cinta en secuencia, y el usuario no puede intervenir en su operación cuando se ejecuta el trabajo. El sistema de procesamiento por lotes se puede dividir en sistema de procesamiento por lotes de un solo canal y sistema de procesamiento por lotes multicanal según el historial de desarrollo. La principal diferencia es que hay uno o varios trabajos en la memoria al mismo tiempo. Cuando un programa en un sistema de procesamiento por lotes multicanal se suspende debido a una solicitud de E/S, la CPU ejecuta otro programa con la ayuda de la tecnología de interrupción.

Podemos diseñar dos colas de prioridad. Los trabajos de tiempo compartido ingresan a la cola de alta prioridad y se programan utilizando el método de turnos de tiempo de intervalos de tiempo cortos. Cuando la cola de alta prioridad esté vacía, programe trabajos por lotes de baja prioridad con intervalos de tiempo más largos.

instrucción

Luego, veamos el sistema operativo desde la perspectiva de las instrucciones. Suponiendo que las instrucciones del sistema operativo Windows se hayan cargado en el registro de instrucciones, ¿cuáles son las instrucciones que no harán que la CPU cambie del modo de usuario al modo kernel cuando ¿ejecutado?

El primer comando DIV R0,R1;(R0)/(R1)->R0

El segundo comando INT n; genera una interrupción suave

El tercer comando NOT R0; el contenido del registro R0 se niega

El cuarto comando MOV R0,addr; coloca los datos de la memoria en la dirección addr en el registro R0.

En el primer comando, si el contenido en R1 es 0, se producirá una interrupción interna, cambiando del modo de usuario al modo kernel; la interrupción suave del segundo comando se ejecuta en modo kernel; la negación del registro del tercer comando no generará una interrupción, y no pertenece a otros núcleos del sistema operativo, por lo que no cambiará al estado del núcleo; la cuarta dirección es la dirección de la memoria principal y el acceso a la memoria debe ingresar al estado del núcleo.

Sobre el autor: Li Yuan Weifeng, nacido en 1981, ingeniero senior, maestro en ingeniería de la Universidad de Zhejiang, supervisor de proyectos de ingeniería de software, ha trabajado como programador, diseñador de software, arquitecto de sistemas, primer programador de Windows, usuario leal de Visual Studio, C/ Usuario de C ++ El autor es un veterano que ha estudiado, trabajado duro y luchado en la industria informática durante 25 años, ha experimentado la era UNIX, la era WIN32 de escritorio, la era de las aplicaciones web, la era de la computación en la nube, el teléfono móvil Android. era, la era del big data, la era de las TIC y la era del aprendizaje profundo de la IA, la era de las máquinas inteligentes, no sé qué era habrá en el futuro, solo recuerdo que este viaje está lleno de dificultades y ganancias. y estoy dispuesto a seguir contigo, lleno de esperanza.

Supongo que te gusta

Origin blog.csdn.net/wang2015cn/article/details/131749697
Recomendado
Clasificación