Examen de ingreso de posgrado 2024 408-Sistema operativo Capítulo 5-Notas de estudio de gestión de IO de entrada y salida

Directorio de artículos

1. Descripción general de la gestión de E/S

imagen-20230718235445592

Anteriormente, se trataba del interior del host de la computadora, pero la sección actual trata sobre la administración de dispositivos de hardware fuera del host.


1.1 Concepto y clasificación de dispositivos de E/S

1.1.1 ¿Qué es un dispositivo de E/S?

" I/O" es "entrada/salida" ( Input/Output).

I/OUn dispositivo es un dispositivo externo que puede ingresar datos a una computadora o recibir datos de salida de una computadora. Es un componente de hardware de una computadora.

A continuación, echemos un vistazo a los dispositivos de entrada, los dispositivos de salida y los dispositivos que pueden ser tanto de entrada como de salida :

imagen-20230718235729899

  • Nota sobre los dispositivos que pueden ser tanto de entrada como de salida: Para la entrada, puede ingresar los datos almacenados en el disco duro móvil en la computadora, o puede enviar los datos de la computadora al disco duro móvil para su almacenamiento.
    • El proceso de entrada: leer los datos preparados por el dispositivo en la computadora.
    • El proceso de salida: envía los datos preparados en la computadora al dispositivo de salida.

UnixEl sistema abstrae los dispositivos externos en un archivo especial y los usuarios pueden operar dispositivos externos de la misma manera que las operaciones con archivos.

  • Write操作: escribe datos en un dispositivo externo.
  • Read操作: lee datos desde un dispositivo externo.

1.1.2 Clasificación de dispositivos de E/S: según características de uso

imagen-20230719000421697

Periféricos de interacción persona-computadora : mouse, teclado, impresora, etc., utilizados para la interacción persona-computadora. (La velocidad de transmisión de datos será más lenta y la transmisión de datos se realizará en bytes o decenas de bytes)

imagen-20230719000244587

Dispositivos de almacenamiento : discos duros móviles, discos ópticos, etc., utilizados principalmente para el almacenamiento de datos. La velocidad de transferencia de datos es rápida.

imagen-20230719000324062

Equipos de comunicación de red : módems, enrutadores, etc., utilizados para la comunicación de red, con velocidades de transmisión entre las dos velocidades anteriores.

imagen-20230719000405203


1.1.2 Clasificación de dispositivos de E/S: Clasificados por velocidad de transmisión

imagen-20230719000514356

Dispositivos de baja velocidad : ratones, teclados, velocidades de transmisión de varios cientos de bytes por segundo.

imagen-20230719000626608

Equipos de velocidad media : como impresoras láser, etc., con velocidades de transmisión de miles a decenas de miles de bytes por segundo.

imagen-20230719000636331

Dispositivos de alta velocidad : como discos, dispositivos con velocidades de transferencia de varios kilobytes a gigabytes por segundo.

imagen-20230719000642961


1.1.3 Clasificación de dispositivos de E/S: Clasificados según la unidad de intercambio de información

imagen-20230719000708547

Dispositivos de bloque : como discos, etc., la unidad básica de transmisión de datos es el "bloque". La tasa de transferencia es alta y es direccionable, es decir, cualquier bloque se puede leer/escribir de forma aleatoria.

imagen-20230719000820855

Dispositivos de caracteres : mouse, luz del teclado, la unidad básica de transmisión de datos son los caracteres. La velocidad de transmisión es lenta, no direccionable y se utiliza la interrupción para la duración de entrada/salida.

imagen-20230719000826344


Revisión de puntos de conocimiento y puntos de prueba importantes.

imagen-20230719001012468


1.2 Controlador de E/S

imagen-20230719103944639


1.2.1 Componentes mecánicos de los equipos de E/S

imagen-20230719104054946

Componentes mecánicos de dispositivos de E/S : Se utilizan principalmente para realizar operaciones de E/S específicas.

  • Por ejemplo, puede ver y tocar los botones del mouse/teclado: la pantalla LED del monitor (que se usa para mostrar imágenes), el brazo magnético del disco duro móvil y la superficie del disco.

El componente electrónico del dispositivo de E/S suele ser una placa de circuito impreso que se conecta a una ranura de expansión de la placa base.


1.2.2 Controlador de E/S y funciones

电子部件: Es una placa de circuito impreso. La CPU no puede controlar directamente los componentes mecánicos de estos dispositivos. Necesita controlar indirectamente estos componentes mecánicos a través de componentes electrónicos. Sirve como el final entre la CPU y los componentes mecánicos del dispositivo de E/S. y se utiliza para realizar el control del dispositivo por parte de la CPU.

Este componente electrónico también se denomina controlador de E/S (también llamado controlador de dispositivo) : la CPU controla el controlador de E/S, que a su vez controla los componentes mecánicos del dispositivo.

Funciones del controlador de E/S :

1. Recibir e identificar comandos emitidos por la CPU: si la CPU envía un comando de lectura/escritura, habrá un registro de control correspondiente en el controlador de E/S para almacenar el comando y los parámetros .

2. Informe el estado del dispositivo a la CPU: habrá un registro de estado correspondiente en el controlador de E/S para registrar el estado actual del dispositivo de E/S, como por ejemplo: 1 significa inactivo, 0 significa ocupado.

3. Intercambio de datos: el controlador de E / S configurará el registro de datos correspondiente . Al generar, el registro de datos se utiliza para almacenar temporalmente los datos enviados por la CPU y luego el controlador transmite los datos al dispositivo. Durante la entrada, el registro de datos se utiliza para almacenar temporalmente los datos enviados por el dispositivo y luego la CPU toma los datos del registro de datos.

4. Identificación de direcciones: similar a las direcciones de memoria, para distinguir cada registro del controlador del dispositivo , se debe configurar una "dirección" específica para cada registro. El controlador de E/S utiliza la "dirección" proporcionada por la CPU para determinar qué registro es.

  • Para identificar cada registro, también es necesario asignar una dirección correspondiente a cada registro, al igual que la memoria de direccionamiento.

1.2.3 Composición del controlador de E/S

El controlador de E/S se compone principalmente de tres partes : la interfaz entre la CPU y el controlador, la lógica de E/S y la interfaz entre el controlador y el dispositivo.

  • CPU与控制器的接口: Se utiliza para implementar la comunicación entre la CPU y el controlador. La CPU emite comandos a través del controlador; especifica el dispositivo que se operará a través de la línea de dirección; toma (entra) datos o coloca (salida) datos a través de las líneas de datos.
  • I/O逻辑: Responsable de recibir e identificar varios comandos de la CPU (como la decodificación de direcciones) y responsable de enviar comandos al dispositivo.
  • 控制器与设备的接口i: Se utiliza para implementar la comunicación entre el controlador y el dispositivo.

imagen-20230719110258150

El controlador tendrá múltiples interfaces con el dispositivo, es decir, un controlador de E/S puede ser responsable de controlar múltiples dispositivos de E/S específicos. Para poder distinguir qué dispositivo se va a utilizar en ese momento, también hay que abordarlo.


1.2.4 Proceso de implementación del controlador de E/S

imagen-20230719110320771

Proceso de implementación :

  1. La CPU primero emitirá instrucciones específicas al controlador I a través de la línea de control. Al mismo tiempo, la CPU también indicará qué dispositivo desea controlar en una línea como la línea de dirección. Si desea generar datos, entonces el La CPU pasará los datos. El bus envía los datos de salida al controlador de E/S 数据寄存器y luego la lógica de E/S obtiene los datos emitidos por la CPU del registro de datos. En él se colocarán algunos parámetros correspondientes de las instrucciones de E/S emitidas por la CPU 控制寄存器, y luego la lógica de E/S también podrá leer algunos parámetros del registro de control.
  2. Para realizar la gestión de cada dispositivo, la CPU leerá el estado de cada dispositivo del registro de estado, como ocupado, inactivo, fallo, etc. Luego, la lógica de instalación de E/S escribirá los datos correspondientes en el registro de estado para informar a la CPU del estado de cada dispositivo (lo que hace la interfaz entre la CPU y el controlador ).
  3. La lógica de E/S también puede implementar el control del dispositivo: emitirá algunos comandos de control al dispositivo correspondiente de acuerdo con los comandos y parámetros emitidos por la CPU para permitir que el dispositivo realice su trabajo.

Pequeños detalles :

1. Un controlador de E/S puede corresponder a varios dispositivos.

2. Puede haber múltiples registros de datos, registros de control y registros de estado (por ejemplo, cada registro de control/estado corresponde a un dispositivo específico), y estos registros deben tener direcciones correspondientes para facilitar la operación de la CPU. Hay dos métodos para direccionar direcciones.

  • Método 1: dejar que estos registros ocupen parte de la dirección de memoria, lo que se denomina E/S asignada en memoria.
  • Método 2: utilizar direcciones dedicadas de E/S, es decir, direccionamiento independiente de registros.

1.2.5 Dos métodos de direccionamiento de registros

Método 1: E/S de imagen de memoria

内存映像I/O: Los registros y las direcciones de memoria en el controlador se direccionan de manera uniforme.

Ventajas : Instrucciones simplificadas, el controlador se puede operar mediante instrucciones que funcionan en la memoria.

imagen-20230719112049094


Método 2: registrar direccionamiento independiente

寄存器独立编址: En el direccionamiento independiente de registros, los registros en el controlador usan direcciones separadas.

Desventajas : Es necesario configurar instrucciones especiales para operar el controlador, no solo la dirección del registro, sino también el número del controlador.

imagen-20230719112611806


Revisión de conocimientos y puntos de prueba importantes.

imagen-20230719112658837


1.3 Método de control de E/S

imagen-20230719113341840


1.3.1 Método de control directo del programa

1. El proceso de completar una operación de lectura/escritura (tomando la operación de lectura como ejemplo)

Si realiza un comando de lectura:

imagen-20230719114410605

  1. La CPU primero enviará un comando de lectura al controlador de E/S a través de la línea de control, y luego el controlador de E/S iniciará el dispositivo correspondiente de acuerdo con los requisitos de la CPU y establecerá el estado del dispositivo en estado ocupado. [Estado actual del registro de estado: ocupado]
  2. Dado que la velocidad del dispositivo es mucho más lenta que la velocidad de la CPU, el dispositivo no ha completado la E/S en este momento y la CPU continuará sondeando el estado del controlador hasta que el estado en el registro de estado sea 0, 1 significa ocupado.
  3. Después de que el dispositivo de entrada prepara los datos, los transmite al controlador e informa su estado actual.
  4. El controlador coloca los datos ingresados ​​por el dispositivo en el registro de datos y luego cambia el indicador de estado del registro de estado a 0. [Estado actual del registro de estado: listo]
  5. El programa de sondeo de la CPU encuentra que el estado del dispositivo está listo. En este momento, la memoria en el registro de datos se leerá en el registro de la CPU y luego el registro de la CPU se colocará en la memoria. (Registro de datos—>Registro de CPU—>Memoria)
  6. Si desea continuar leyendo datos, la CPU seguirá emitiendo un comando de lectura en este momento.

El diagrama de flujo descrito anteriormente se muestra a continuación:

imagen-20230719115112386

¿Por qué necesitamos escribir en la memoria después de leer en el registro de datos de la CPU?

  • Con el siguiente comando read scanf, los datos que ingresamos en la ventana cmd eventualmente se leerán en una variable en la memoria, por lo que deben escribirse en la memoria, y también se leerán primero desde la memoria cuando se genere printf. Los datos finalmente se muestran en la ventana cmd.

imagen-20230719114752366

2. Frecuencia de intervención de la CPU

Muy frecuentemente, la CPU necesita intervenir antes y después de que se inicie la operación de E/S, y la CPU necesita sondear y verificar continuamente mientras espera que se complete la E/S.

3. Unidad de transmisión de datos

Leer/escribir una palabra a la vez .

4. Flujo de datos

Operación de lectura (entrada de datos): Dispositivo de E/S—>CPU—>Memoria. (CPU se refiere a los registros de la CPU)

Operación de escritura (salida de datos): Memoria—>CPU—>Dispositivo de E/S.

La lectura/escritura de cada palabra requiere la ayuda de la CPU.

5. Principales Desventajas y Desventajas Principales

Ventajas: Fácil de implementar. Después de las instrucciones de lectura/escritura, se agrega una serie de interfaces de instrucciones que implementan comprobaciones de bucle. Por lo tanto, se denomina "método de control directo del programa".

Desventajas: La CPU y los dispositivos de E/S solo pueden funcionar en serie, la CPU necesita ser sondeada y verificada todo el tiempo, está en un estado de espera ciega durante mucho tiempo y la utilización de la CPU es baja.


1.3.2 Modo impulsado por interrupción

1. El proceso de completar la operación de lectura/escritura, la clave: interrupción.

imagen-20230719140030638

Proceso de implementación:

  1. Se introduce el mecanismo de interrupción: dado que el dispositivo de E/S es muy lento, después de que la CPU emite un comando de lectura/escritura, el proceso que espera E/S se puede bloquear y cambiar a otro proceso para su ejecución.
  2. Cuando se completa la E / S, el controlador enviará una señal de interrupción a la CPU. Después de detectar la señal de interrupción, la CPU guardará la información del entorno de ejecución del proceso actual y ejecutará el controlador de interrupciones para manejar la interrupción.
  3. Durante el proceso de procesamiento de interrupción, la CPU lee una palabra de datos del controlador de E/S, la transfiere al registro de la CPU y luego la escribe en la memoria principal. En este momento, la CPU reanuda el entorno de ejecución esperando E/ O (u otros procesos), y luego continúa la ejecución.

Aviso:

1. La CPU busca interrupciones al final de cada ciclo de instrucción.

2. Durante el proceso de procesamiento de interrupciones, es necesario guardar y restaurar el entorno de ejecución del proceso, lo que requiere una cierta cantidad de tiempo. Se puede ver que si la frecuencia de las interrupciones es demasiado alta, se reducirá el rendimiento del sistema.

  • Cada vez que ocurre una interrupción, solo se puede leer una palabra. Si se lee una gran cantidad de datos, se producirán una gran cantidad de interrupciones.

2. Frecuencia de intervención de la CPU

Antes de que comience cada operación de E/S y después de su finalización, se requiere la intervención de la CPU.

Mientras espera que se complete la E/S, la CPU puede cambiar a otros procesos para su ejecución (en este momento, la CPU y la E/S pueden funcionar en paralelo).

3. Unidad de transmisión de datos

Leer/escribir una palabra a la vez

4. Flujo de datos

Operación de lectura (entrada de datos): dispositivo de E/S—>CPU—>Memoria

Operación de escritura (salida de datos): Memoria—>CPU—>Dispositivo de E/S

5. Principales desventajas y principales ventajas

Ventajas: en comparación con el "modo de control directo del programa", en el "modo controlado por interrupción", el controlador de E/S informará activamente que la E/S se ha completado a través de la señal de interrupción y la CPU ya no necesita sondear continuamente. La CPU y los dispositivos de E/S funcionan en paralelo y la utilización de la CPU mejora significativamente.

Desventajas: la transmisión de cada palabra entre el dispositivo de E / S y la memoria debe pasar por la CPU, y el procesamiento de interrupciones frecuentes consumirá más tiempo de la CPU.

Pensamientos: Puede ver que el proceso de lectura/escritura pasa por la CPU, ¿se puede cancelar el paso de transferencia? Método DMA.


1.3.3, método DMA

En comparación con el "método controlado por interrupción", el método DMA (acceso directo a la memoria, acceso directo a la memoria, utilizado principalmente para el control de E/S de dispositivos de bloque) tiene las siguientes mejoras :

①La unidad de transmisión de datos es "bloque", que ya no es la transmisión de una palabra o una palabra.

②El flujo de datos es desde el dispositivo directamente a la memoria, o desde la memoria directamente al dispositivo. La CPU ya no es necesaria como "hermano de entrega".

③La intervención de la CPU solo se requiere al principio y al final de la transmisión de uno o más bloques de datos.

1. Completar el proceso de operaciones de lectura/escritura.

imagen-20230719141218678

1. La CPU enviará una instrucción al módulo de E/S para leer o escribir un bloque. Después de eso, la CPU puede hacer otras cosas y el dispositivo de E/S comienza a completar una serie de operaciones de lectura/escritura.

2. Una vez que los dispositivos de E/S designados por la CPU hayan completado las tareas de trabajo, el controlador DMA enviará una señal de interrupción a la CPU.

3. En este momento, la CPU interviene para manejar la interrupción. Cuando la CPU emite una instrucción de lectura o escritura, debe indicar cuántos datos se leerán o escribirán esta vez y dónde se deben almacenar los datos en la memoria. y si los datos están en el dispositivo externo ¿Dónde deben almacenarse?

4. En este momento, el controlador DMA completará el trabajo de lectura/escritura de datos de acuerdo con los requisitos propuestos por la CPU. Después de transferir todo el bloque de datos, enviará una señal de interrupción a la CPU y requerirá que la CPU intervenir en la interrupción.

Para lograr la comunicación entre el controlador y la CPU, se configura una serie de registros en el controlador DMA y luego la CPU puede leer o escribir el contenido de algunos de estos registros a través del bus del sistema.

imagen-20230719141855500

  • DR(Data Register,数据寄存器): almacena datos temporalmente desde el dispositivo a la memoria, o desde la memoria al dispositivo.
  • MAR(Memory Address Register、内存地址寄存器): Al ingresar, MAR indica dónde se deben colocar los datos en la memoria; al generar, MAR indica dónde se deben colocar los datos en la memoria.
  • DC(Data Counter,数据计数器): Indica el número de bytes que quedan por leer/escribir.
  • CR(Commend Register,命令/状态寄存器): Se utiliza para almacenar comandos de E/S enviados por la CPU o información de estado del dispositivo.

Estos registros son la interfaz principal entre el host y el controlador.

Puntos adicionales:

  1. La CPU indicará al principio dónde se almacenan los datos leídos esta vez en el disco y de dónde provienen los datos leídos en la memoria, esta información se coloca en el MAR e indica cuántos datos se almacenarán en el DR.
  2. En este momento, el controlador DMA leerá los datos de la ubicación correspondiente en el disco según la serie de parámetros proporcionados por la CPU y luego los escribirá en la memoria. Este proceso no requiere intervención de la CPU. Solo el controlador DMA completa la serie especificada por toda la CPU. Una vez completada la tarea, se enviará una señal de interrupción a la CPU y la CPU intervendrá para el procesamiento posterior.

Nota: El controlador DMA real no lee un bloque completo de datos cada vez, sino que también lee una palabra a la vez. Luego, cada palabra leída se almacenará primero en el registro de datos del DR y luego se escribirá desde el DR en la memoria.

2. Frecuencia de intervención de la CPU

La intervención de la CPU solo es necesaria al transferir el principio y el final de uno o más bloques de datos.

3. Unidad de transmisión de datos

Leer/escribir uno o más bloques a la vez.

Nota: Solo se pueden leer y escribir varios bloques consecutivos cada vez, y estos bloques leídos en la memoria también deben ser consecutivos en la memoria.

4. Flujo de datos (ya no es necesario pasar por la CPU)

Operación de lectura (dirección del flujo de datos): dispositivo de E/S—>memoria

Operación de escritura (salida de datos): Memoria—>Dispositivo de E/S

5. Principales ventajas y desventajas

Ventajas: La transmisión de datos se realiza en unidades de "bloque" y se reduce la frecuencia de intervención de la CPU. La transmisión de datos ya no necesita pasar por la CPU y luego escribirse en la memoria, lo que aumenta aún más la eficiencia de la transmisión de datos. Se ha mejorado el paralelismo entre la CPU y los dispositivos de E/S.

Desventajas: la CPU no emite instrucciones de E/S y solo puede leer/escribir uno o más bloques de datos consecutivos.

Características que se pueden mejorar: si desea leer/escribir múltiples bloques de datos almacenados discretamente, o escribir datos en diferentes áreas de memoria, la CPU debe emitir múltiples instrucciones de E/S y realizar múltiples procesamientos de interrupciones para completar.

  • Proponer "método de control de canales".

1.3.4 Método de control del canal

通道: Un tipo de hardware que puede entenderse como una "versión débil de la CPU". Un canal puede identificar y ejecutar una serie de instrucciones de canal.

  • En comparación con la CPU, las instrucciones que el canal puede ejecutar son muy únicas y el programa del canal se coloca en la memoria del host, lo que significa que el canal y la CPU comparten memoria.

1. El proceso de completar una operación de lectura/escritura.

imagen-20230719145534567

1. La CPU emite una instrucción de E/S al canal, indicando la ubicación del programa del canal en la memoria y qué dispositivo de E/S operar, y luego la CPU cambia a otros procesos para su ejecución.

2. El canal ejecuta el programa del canal en la memoria (que especifica cuántos datos leer/escribir, dónde se deben colocar los datos leídos/escritos en la memoria, etc.).

El canal seguirá las instrucciones de la CPU para encontrar dónde se almacena en la memoria el programa del canal a ejecutar. En realidad, un canal puede entenderse como una lista de tareas, que es una colección de una serie de instrucciones de canal.

  • En esencia, es lo mismo que el programa que conocemos, también habrá un almacenamiento que indicará cuántos datos leer/escribir y dónde se deben colocar los datos de lectura/escritura en la memoria. Todas estas son cosas que el canal puede saber durante la ejecución de este programa.
  • Si se adopta este método, equivale a que la CPU solo conozca el canal de alta velocidad. Si realiza dicha tarea ahora, la lista de tareas se habrá colocado en la memoria. La tarea específica a realizar no la indica directamente el CPU al canal, pero directamente por el canal. Lea el programa en la memoria y ejecútelo paso a paso. Cuando el canal complete una serie de tareas, se enviará una señal de interrupción a la CPU.

3. Una vez que el canal completa las tareas especificadas, enviará una señal de interrupción a la CPU y luego la CPU procesará la interrupción.

2. Frecuencia de intervención de la CPU

Extremadamente bajo, el canal ejecutará el programa del canal correspondiente de acuerdo con las instrucciones de la CPU, y solo después de completar la lectura / escritura de un conjunto de bloques de datos necesitará enviar una señal de interrupción y solicitar la intervención de la CPU.

3. Unidad de transmisión de datos

Lea/escriba un grupo de bloques de datos a la vez.

4. Flujo de datos (bajo el control del canal)

Operación de lectura (entrada de datos): dispositivo de E/S—>memoria

Operación de escritura (salida de datos): Memoria—>Dispositivo de E/S

5. Principales desventajas y principales ventajas

Ventajas: la CPU, los canales y los dispositivos de E/S pueden funcionar en paralelo y la utilización de recursos es muy alta.

Desventajas: La implementación es compleja y requiere soporte de hardware de canal especializado.


Revisión de puntos de conocimiento y puntos de prueba importantes.

imagen-20230719145940379


1.4 Jerarquía del software de E/S

imagen-20230719161257241

Concéntrese en las funciones implementadas a nivel de software y analice cada función en secuencia de abajo hacia arriba.


1.4.1 Software de capa de usuario

imagen-20230719161754803

Software de capa de usuario : necesita solicitar al sistema operativo que proporcione servicios y realice llamadas al sistema hacia abajo. Esta capa se denominará capa de procesamiento de llamadas al sistema.

  • El sistema operativo Windows proporciona una serie de llamadas al sistema al mundo exterior, pero debido a que el formato de las llamadas al sistema es estricto y problemático de usar, se encapsula una serie de interfaces de funciones de biblioteca más convenientes en la capa de usuario para que los utilicen los usuarios ( API de Windows)

1.4.2 Software de independencia del dispositivo

①Comprender el software de independencia del dispositivo

Software independiente del dispositivo : También conocido como software independiente, en esta capa se implementan funciones que no tienen nada que ver con las características del hardware del dispositivo. Principalmente responsable del control específico de los dispositivos de hardware, convirtiendo una serie de comandos emitidos por la capa superior (como lectura / escritura) en una serie de operaciones que un dispositivo específico puede "comprender". Incluyendo la configuración de registros del dispositivo, la verificación del estado del dispositivo, etc.

imagen-20230719192432379

Las responsabilidades incluyen : traducir los parámetros de llamadas del sistema en comandos de operación del dispositivo.


②Función implementada por el software de independencia del dispositivo

Funciones implementadas principalmente :

1. Proporcionar una interfaz de llamadas unificada a la capa superior (como llamadas al sistema de lectura/escritura).

2. Protección del dispositivo, el principio es similar al de la protección de archivos. El dispositivo se considera un archivo especial: diferentes usuarios tienen diferentes derechos de acceso a cada archivo y, de manera similar, los derechos de acceso al dispositivo también son diferentes.

3. Manejo de errores: se utiliza para manejar errores en algunos dispositivos.

4. Asignación y reciclaje de equipos: la mayoría de los equipos son recursos críticos y no se pueden asignar a múltiples dispositivos. El sistema operativo debe gestionar la asignación y el reciclaje de los recursos del dispositivo.

5. Gestión del búfer de datos: las diferencias en el tamaño de la unidad de intercambio de datos y la velocidad de transmisión entre dispositivos se pueden proteger mediante tecnología de almacenamiento en búfer.

6. Establezca una relación de mapeo entre los nombres de dispositivos lógicos y los nombres de dispositivos físicos: seleccione el controlador correspondiente según el tipo de dispositivo.

  • Cuando el usuario o la capa de usuario emite una llamada al sistema relacionada con una operación de E/S, se debe especificar el nombre del dispositivo lógico del dispositivo de E/S que se va a operar. Por ejemplo: cuando vaya a la escuela a imprimir, seleccione la impresora 1 y la impresora 2. Estos son los nombres lógicos de los dispositivos.
  • El software de independencia del dispositivo necesita utilizar la "Tabla de unidades lógicas" (LUT, tabla de unidades lógicas) para determinar el dispositivo físico correspondiente al dispositivo lógico y encontrar el controlador de dispositivo correspondiente al dispositivo.

Muchos sistemas operativos tratan el dispositivo como un archivo especial. El archivo también tiene una ruta de almacenamiento. Cada representación registra una relación de mapeo desde el nombre del dispositivo lógico al nombre del dispositivo físico. Se requieren diferentes controladores para diferentes tipos de dispositivos de E/S. Programa Procesando.

imagen-20230719162600077


③Dos métodos utilizados para administrar la tabla de dispositivos lógicos

El sistema operativo gestiona las tablas de dispositivos lógicos (LUT) de dos formas :

Método 1: solo se configura una LUT para todo el sistema, lo que significa que todos los usuarios no pueden usar el mismo nombre de dispositivo lógico, por lo que este método solo es adecuado para sistemas operativos de un solo usuario.

Método 2: configurar una LUT para cada usuario. Los nombres de dispositivos lógicos utilizados por cada usuario se pueden repetir, lo cual es adecuado para sistemas operativos multiusuario. El sistema creará un proceso de gestión de usuarios para el usuario cuando inicie sesión y la LUT se almacenará en la PCB del proceso de gestión de usuarios.

  • Es lo mismo que el directorio de usuarios de varios niveles en el lado de la administración de archivos.

1.4.3 Controlador de dispositivo

Pensamiento: ¿Por qué los diferentes tipos de dispositivos de E/S requieren un procesamiento de controlador diferente?

Motivo : Varios dispositivos tienen diferentes formas y sus respectivos componentes electrónicos (controladores de E/S) también pueden ser diferentes.

Por ejemplo, el diseño de los componentes electrónicos de una impresora Canon es el que se muestra a continuación: hay dos registros de datos y el registro de control correspondiente 1 significa ocupado y 0 significa inactivo.

imagen-20230719163117106

El de HP es el siguiente (por ejemplo): solo hay un registro de datos y el registro de control correspondiente 0 significa ocupado y 1 significa inactivo.

imagen-20230719163044862

Las características internas del hardware de diferentes dispositivos también son diferentes. Estas características solo las conoce el fabricante. Por lo tanto, el fabricante debe proporcionar un controlador correspondiente al dispositivo. La CPU ejecuta la secuencia de instrucciones del controlador para completar el trabajo de configuración de registros. , comprobar el estado del dispositivo, etc.

Conclusión : Las características del hardware interno de varios dispositivos son diferentes, por lo que se debe ejecutar el controlador específico correspondiente para controlar adecuadamente el hardware del dispositivo.


Comprender los controladores de dispositivos

Principalmente responsable de : control específico de dispositivos de hardware, convirtiendo una serie de comandos (como lectura, escritura) emitidos por la capa superior en una serie de operaciones que un dispositivo específico puede "comprender".

Incluyendo la configuración de registros del dispositivo, la verificación del estado del dispositivo, etc.

imagen-20230719164634333


1.4.4 Manejador de interrupciones

Cuando el dispositivo de hardware completa la operación de E/S, enviará una señal de interrupción como respuesta y el sistema encontrará el controlador de interrupción correspondiente a la señal de interrupción según el tipo de señal de interrupción.

Flujo de procesamiento del controlador de interrupciones :

1. Procese de acuerdo con el controlador de interrupciones y lea el estado del dispositivo desde el controlador de E/S o el controlador de dispositivo para determinar si la E/S esta vez terminó normalmente.

  • Si esta vez finaliza normalmente, entonces el controlador de interrupciones leerá una palabra de datos del registro de datos del controlador del dispositivo y luego la colocará en el búfer de memoria a través de la CPU.
  • Si no finaliza normalmente, significa que ocurrió un accidente en el medio, como una falla de hardware, etc., y el sistema lo manejará en consecuencia según la causa de la excepción.

2. Cuando el controlador de interrupciones coloca los datos que se ingresarán esta vez en la memoria, se entregarán al controlador del dispositivo para su posterior procesamiento. Una vez que el controlador del dispositivo haya terminado de procesar, se entregarán a la capa superior del dispositivo. software de independencia.Se lleva a cabo un procesamiento adicional y la capa final se conecta en red y se devuelve al usuario.

imagen-20230719165352493

Los controladores de dispositivos y los controladores de interrupciones tratan directamente con el hardware.


Revisión y resumen de conocimientos.

El usuario primero emitirá solicitudes de E/S de arriba a abajo y luego el hardware realizará respuestas de E/S de abajo hacia arriba.

imagen-20230719165615899

imagen-20230719165634811

Es necesario tener una impresión general de la tabla de dispositivos lógicos LUT.


1.5 Interfaz del programa de aplicación de entrada y salida e interfaz del controlador

imagen-20230719170128839


1.5.1 Interfaz del programa de aplicación de entrada y salida

API de entrada/salida

imagen-20230719173836954

Haga una pregunta : Para dispositivos de E/S que pueden tener muchas unidades de lectura diferentes, las aplicaciones de nivel de usuario no pueden usar una interfaz de llamada del sistema unificada para completar todos los tipos de E/S del dispositivo, por lo que la capa de software independiente del dispositivo necesita aplicaciones de capa superior. Proporcionar varios tipos de interfaces de programa.

Debido a que las interfaces del sistema llamadas son diferentes, son: bloque de interfaz de dispositivo de caracteres, interfaz de dispositivo e interfaz de dispositivo de red.


①Interfaz del dispositivo de caracteres

字符型设备接口: obtener/poner llamada al sistema para leer/escribir un carácter en el dispositivo de caracteres.

  • Get lee un carácter del dispositivo de caracteres especificado y put escribe un carácter en el dispositivo de caracteres especificado.

②Bloquear interfaz del dispositivo

块设备接口:

  • Para un disco completo, puede utilizar la llamada al sistema de búsqueda para especificar la dirección de lectura y escritura. ¿Qué dirección debe colocarse en el disco? Después de colocarlo en la dirección especificada, puede usar lectura o escritura para leer o escribir varias unidades de caracteres detrás de la posición señalada por el puntero de lectura y escritura.
  • Se pueden leer y escribir varios bytes y varios caracteres a la vez. Al mismo tiempo, también debe especificar la dirección de lectura y escritura, esta ubicación es la interfaz del dispositivo de bloque.

Motivo para utilizar parámetros de dirección para dispositivos de caracteres y bloques: proporcionar estos diferentes tipos de interfaces a la capa superior en realidad se define en función de las características de este tipo de dispositivo. Los dispositivos de caracteres no tienen el concepto de direcciones, así que obtenga y coloque No es necesario proporcionarlo. El parámetro de dirección se basa en el concepto de dirección para dispositivos de bloque, por lo que es necesario proporcionar un parámetro de dirección.


③Interfaz del dispositivo de red

Comprender las interfaces de dispositivos de red

网络设备接口: También conocida como "interfaz de socket de red".

  • llamada al sistema de socket: cree un socket de red y especifique el protocolo de red (TCP, UDP).
    • vincular llamada al sistema: vincula el socket a un puerto local.
    • conectar: ​​vincula el enchufe a la dirección remota.
    • lectura/escritura: una vez completada la inicialización del socket, puede utilizar lectura/escritura para leer y escribir datos desde el socket de red.
  • Resuelva el problema: por ejemplo, cuando se usa WeChat y Alipay, la tarjeta de red recibirá paquetes de datos de estos dos al mismo tiempo, es necesario hacer algunas distinciones en cuanto a a qué aplicación específica se debe enviar el paquete de datos específico.

El proceso real de envío y recepción de sockets de red.

El proceso del host 2P4 primero usa el socket para crear un socket de red (esencialmente solicitando un espacio del kernel, que puede recibir y enviar datos). En este momento, el socket devolverá un descriptor al proceso (apuntando a un puntero al enchufe)

Luego, debe usar bind para vincular este socket a un puerto local, como el puerto 6666.

imagen-20230719182506776

En este momento, el proceso del host 1P1 también crea un objeto de socket a través de una llamada al sistema de socket y también usa bind para especificar el puerto de la máquina local.

En este momento, los procesos de los dos hosts tienen sus propios sockets y han determinado sus propios números de puerto de envío y recepción de datos. En este punto, puede utilizar la llamada al sistema connect para completar la conexión del socket local a otra máquina.

En este momento, el proceso P1 del host 1 inicia una llamada al sistema de conexión, indicando la dirección IP de la otra parte y el número de puerto correspondiente:

imagen-20230719172353733

Si desea enviar un paquete de datos en este momento, P1 primero prepara el paquete de datos en su propia área de usuario y luego usa la llamada al sistema de escritura para escribir los datos amarillos en el socket señalado por fd, dispositivo independiente Después del La capa de software recibe la llamada del sistema de escritura y copiará los datos preparados por el proceso del usuario al área del kernel, que es el búfer correspondiente al socket.

imagen-20230719172649637

A continuación, esta capa llamará al controlador (tarjeta de red) del controlador de red para procesar estos datos. Luego, el controlador será responsable de enviar los datos preparados al dispositivo de red. En este momento, el controlador de red puede enviar el paquete. a la red.

	此时主机2中的网络控制器会收到发送来的数据包,接着网路控制器会向主机发送一个中断信号,此时中断信号处理程序会调用网络控制器,使用驱动程序来把网络控制器里边收到的这些数据搬到内核的缓冲区里。由于网络包指明了目标的端口6666,此时会将数据复制到6666端口的这片内核缓冲区当中。

Si el proceso P3 del Host 2 quiere aceptar un paquete de datos de red, entonces solo necesita usar la llamada al sistema de lectura para leer un paquete de datos del objeto de socket señalado por fd. Luego, el resultado de la llamada al sistema es que el software independiente del dispositivo copiará los datos del búfer al área de usuario del proceso del usuario. En este momento, P3 puede usar los datos del bloque.

imagen-20230719173521168

​ Los sockets son punto a punto. Cuando se establece esta conexión, cada socket estará vinculado a un puerto local. En este momento, podemos conectarnos a cualquier lugar del mundo a través de la dirección IP + puerto del host.Objeto socket.

¿Cómo distinguir los buffers en los que se deben colocar los diferentes paquetes?

  • Colóquelo en el objeto de socket apropiado de acuerdo con la información del puerto especificada en el paquete de datos.

Concepto: ¿Qué es IO bloqueante y IO no bloqueante?

阻塞I/O: La aplicación emite una llamada al sistema de E/S y el proceso debe esperar en estado de bloqueo.

  • Ejemplo: interfaz de dispositivo de caracteres, lee un carácter obtenido del teclado.

非阻塞I/O: La aplicación emite una llamada al sistema de E/S, y la llamada al sistema puede regresar rápidamente y el proceso no necesita bloquearse ni esperar.

  • Ejemplo: bloquear la interfaz del dispositivo, escribir datos en el disco.
  • Nota: Cuando se emite una llamada al sistema de E/S, incluso si el disco está ocupado, el proceso del usuario no podrá esperar, porque los datos preparados por el proceso están en el área del usuario y el kernel del sistema operativo tiene un kernel. Cuando se llama a escribir, estos datos se escriben en Al acceder al disco, incluso si el disco está ocupado, el software independiente del dispositivo responderá rápidamente a esta solicitud de llamada del sistema, es decir, primero copiará estos datos al kernel. Siempre que este dato se copie en el kernel, el kernel escribe lentamente los datos en el disco y listo. Luego, para el proceso del usuario, siempre que se complete el proceso de copia de datos, puede continuar con la ejecución.
  • Características: este tipo de llamada al sistema no requiere bloqueo y puede regresar rápidamente.

1.5.2 Interfaz del controlador del dispositivo

imagen-20230719174752228

Dado que diferentes empresas desarrollan productos similares, las interfaces del controlador no tienen la misma especificación, ¿cómo solucionar este problema?

  • Adopte una interfaz de controlador de dispositivo estándar unificada.

​ Interfaz de controlador de dispositivo estándar unificada: el sistema operativo estipula el estándar de interfaz para los controladores de dispositivo, y cada fabricante debe desarrollar controladores de dispositivo de acuerdo con los requisitos. Si un controlador quiere usarse en mi sistema operativo, debe seguir mis especificaciones. Por ejemplo, el nombre y los parámetros de la función de lectura deben ser consistentes con las especificaciones que proporcioné.

imagen-20230719174727040

​ Los diferentes sistemas operativos tienen diferentes estándares para las interfaces de los controladores de dispositivos, por lo que los fabricantes de dispositivos deben desarrollar los controladores de dispositivos correspondientes en función de los requisitos de interfaz del sistema operativo para que se pueda utilizar el dispositivo.

imagen-20230719174857329


2. Software de independencia del dispositivo

2.1 Subsistema central IO

Sistema de E/S (subsistema de E/S): es la parte del núcleo del sistema operativo e incluye principalmente software de independencia del dispositivo, controladores de dispositivo y controladores de interrupciones.

imagen-20230720142019489


2.1.1 Introducción de funciones de software de capa de usuario y capa de software de independencia del dispositivo

imagen-20230720145644430

用户层软件: Tecnología Spooling (tecnología SPOOLing).

  • La tecnología de spooling requiere independencia del dispositivo, por lo que generalmente se implementa a nivel de usuario.

设备独立性软件: programación de E/S, protección de dispositivos , asignación y reciclaje de dispositivos, gestión de búfer (es decir, almacenamiento en búfer y almacenamiento en caché).

  • Programación de E/S: la programación de E/S es muy similar a la programación del procesador. Se utiliza un determinado algoritmo para determinar un buen orden para procesar cada solicitud de E/S. Por ejemplo, la programación del disco se implementa utilizando un determinado algoritmo.
    • Programación de disco: algoritmo por orden de llegada, algoritmo de búsqueda más corta primero, algoritmo SCAN, algoritmo C-SCAN, algoritmo LOCK, algoritmo C-LOCK. Cuando llegan varias solicitudes de E/S de disco, se utiliza un determinado algoritmo de programación para determinar el orden en que se satisfacen las solicitudes de E/S.
    • Los dispositivos como las impresoras también pueden utilizar el algoritmo por orden de llegada, el algoritmo de prioridad y el algoritmo de limitación de trabajos cortos para determinar la secuencia de programación de E/S.
  • Protección del dispositivo: los dispositivos se considerarán archivos especiales en el sistema Unix y el sistema creará un fcb y un bloque de control de archivos correspondiente para cada dispositivo. Diferentes usuarios tienen diferentes derechos de acceso a diferentes archivos. El sistema determinará si el usuario tiene los derechos de acceso correspondientes en función de la información registrada en el FCB.

Descripción general del conocimiento

La tecnología de cola de impresión en realidad se implementa en software a nivel de usuario y en el programa de estudios se clasifican como funciones que debe implementar el subsistema central de E/S.

imagen-20230720145441863


2.2 Tecnología de cola de impresión (tecnología SPOOLING, capa de software de capa de usuario)

imagen-20230720150025992

La tecnología de spooling en realidad se implementa mediante software.


2.2.1 ¿Qué es la tecnología offline? (Evolución en varias etapas)

Etapa de operación manual : el host obtiene datos directamente del dispositivo de E / S. Dado que el dispositivo es lento y el host es rápido, la contradicción entre la velocidad humana y la de la máquina es obvia y el host pierde mucho tiempo esperando el dispositivo. [Tanto la entrada como la salida utilizan máquinas de cinta de papel, que son extremadamente lentas]

imagen-20230720150321820

La fase por lotes introduce tecnología de entrada/salida fuera de línea : uso de cinta para completar

Primero, pruebe con una máquina de cinta de papel para ingresar los datos de su propio programa en la cinta. El proceso de entrada se implementa utilizando una máquina de control periférico. Después de eso, la CPU puede leer directamente los datos de entrada deseados de la cinta, lo que alivia en gran medida este problema de velocidad. ... contradicción. De manera similar, el host puede enviar los datos a la cinta y luego el controlador periférico puede enviar los datos a la unidad de cinta lenta.

  • Controlador periférico: bajo el control del controlador periférico, los datos del dispositivo de entrada lento se ingresan primero en la cinta más rápida y luego el host puede leer los datos de la cinta más rápida, lo que genera un conflicto de velocidad de enlace.

Ventajas : Dado que la velocidad de la cinta es mucho más rápida que la de la máquina de cinta de papel, la CPU puede ahorrar mucho tiempo esperando a que se complete la salida al ingresar. En este caso, la tasa de utilización de la CPU mejora enormemente.

imagen-20230720151159507

¿Por qué se llama tecnología "fuera de línea"?

  • Las operaciones de entrada/salida sin el control del host se implementan mediante una máquina de control periférica
  • Después de la introducción de la tecnología fuera de línea, se alivia el conflicto de velocidad entre la CPU y los dispositivos de E/S lentos. Por otro lado, incluso si la CPU está ocupada, los datos se pueden ingresar al disco con anticipación, incluso si el dispositivo de salida lento está ocupado, los datos se pueden ingresar al disco con anticipación y enviar datos al disco.

2.2.2 Comprender la tecnología y los principios de spooling

Sobre la base de la idea de la tecnología fuera de línea, se inventó la llamada tecnología de cola :

" 假脱机技术", también conocido como " SPOOLing技术", utiliza software para simular tecnología fuera de línea. El sistema SPOOLing consta de lo siguiente:

imagen-20230720151508741


2.2.3 Principio de implementación de la tecnología spooling

①Entrada bien, salida bien

假脱机技术: entrada bien, salida bien

El sistema abrirá dos áreas de almacenamiento en el disco : pozo de entrada y pozo de salida.

  • 输入井: Una cinta utilizada para simular la entrada fuera de línea, utilizada para almacenar la entrada de datos desde dispositivos de E/S.
  • 输出井: una cinta que simula la salida fuera de línea y se utiliza para contener la salida de datos del proceso del usuario.

imagen-20230720151632095

Los pozos de entrada y los pozos de salida correspondientes a la etapa de procesamiento por lotes son en realidad las cintas correspondientes :

imagen-20230720151738832


②Proceso de entrada, proceso de salida

假脱机技术: Proceso de entrada, proceso de salida

Entre ellos, la máquina de control periférico también es un componente muy importante para realizar tecnología fuera de línea.La máquina de control periférico se implementa mediante un proceso de entrada y un proceso de salida.

  • 输入进程: El proceso de entrada a implementar es simular fuera de línea.
  • 输出进程: Es la máquina de control periférico cuando se simula una salida fuera de línea.

Este proceso de entrada y proceso de salida deben ejecutarse al mismo tiempo que el proceso del usuario para completarse. Esto simula el proceso de entrada y salida fuera de línea. Por lo tanto, debe ser SPOOLing技术compatible con tecnología multiprograma. El sistema establecerá un "proceso de entrada" y proceso de salida.

imagen-20230720151951561


③Búfer de entrada/salida

假脱机技术: búfer de entrada/salida

De hecho, para el proceso de entrada y el proceso de salida, son las máquinas de control periférico en la etapa de procesamiento por lotes :

imagen-20230720152048180

  • El proceso de entrada simula la función del controlador periférico. Cuando es necesario ingresar datos desde el dispositivo a la computadora, el proceso de entrada simula el controlador periférico en el software y coloca los datos de entrada en el pozo de entrada del disco.
  • Cuando el proceso de salida simula la salida fuera de línea, el principio es similar: genera datos desde el pozo de salida del disco.

De hecho, se abrirán dos búferes en la memoria, uno es el búfer de entrada y el otro es el búfer de salida. Su función principal es simular la entrada y la salida fuera de línea y servir como estación de transferencia de datos.

  • 输入缓冲区: Bajo el control del proceso de entrada, el "búfer de entrada" se utiliza para almacenar temporalmente los datos ingresados ​​por el dispositivo de entrada y luego transferirlos al pozo de entrada.
  • 输出缓冲区: Bajo el control del proceso de salida, el "búfer de salida" se utiliza para almacenar temporalmente los datos enviados desde el pozo de salida y luego transferirlos al dispositivo de salida.

imagen-20230720153256490

Nota: El búfer de entrada y el búfer de salida son búferes en la memoria.


2.2.4 Aplicaciones específicas de spooling: análisis del principio de impresoras compartidas

Primero, comprendamos los dispositivos exclusivos y los dispositivos compartidos :

  • 独占式设备: Un dispositivo que solo permite que cada proceso se utilice en serie y solo puede satisfacer la solicitud de un proceso dentro de un período de tiempo.
  • 共享设备: Dispositivo que permite utilizar múltiples procesos "simultáneamente" (simultáneamente a escala macro, posiblemente alternativamente a escala micro). Puede satisfacer solicitudes de uso de múltiples procesos al mismo tiempo.

Dispositivos como las impresoras son dispositivos exclusivos, pero podemos utilizarlos SPOOLing技术para transformarlos en "dispositivos compartidos".

Ejemplo exclusivo : si el proceso 1 está usando la impresora, cuando el proceso 2 solicite usar la impresora, inevitablemente se bloqueará y esperará.

Entonces, ¿cómo implementar la impresora como impresora compartida ?

  • El intercambio aquí utiliza tecnología de cola.

Cuando varios procesos de usuario solicitan la impresión de salida, el sistema concederá sus solicitudes, pero en realidad no se les asignará la impresora, sino que el proceso de gestión de spool hará dos cosas para cada proceso.

1. Solicite un búfer libre para el proceso en el pozo de salida del disco (este búfer está en el disco) y envíe los datos para imprimir en él.

imagen-20230720154416653

  • Puede ver que dos procesos de usuario más han solicitado espacio en este momento, lo que indica que han llegado dos tareas de solicitud de impresión en este momento.

2. Solicite una tabla de solicitud de impresión en blanco para el proceso del usuario, complete la solicitud de impresión del usuario en la tabla (en realidad se usa para indicar la información de ubicación de almacenamiento de datos de la impresora del usuario) y luego cuelgue la tabla en el archivo spool en la cola.

imagen-20230720154457030

  • Cree una tabla de solicitudes de impresión basada en las solicitudes de impresión y cuélguela en la cola de archivos spool.

Una vez que la impresora esté inactiva, el proceso de salida extraerá una tabla de solicitud de impresión del encabezado de la cola de archivos y transferirá los datos que se imprimirán desde el pozo de salida al búfer de salida de acuerdo con los requisitos de la tabla, y luego generará a la impresora para imprimir, de esta manera procesar todas las tareas de impresión en secuencia.

  • Según la tabla de solicitud de impresión, se puede determinar dónde se encuentra la información de impresión correspondiente en el pozo de salida y se pueden recuperar los datos correspondientes.

Efecto final : aunque hay una impresora detrás del sistema, cuando cada proceso realiza una solicitud de impresión, el sistema le asignará un área de almacenamiento en el pozo de salida (equivalente a asignar un dispositivo lógico), para que cada proceso de usuario pueda sentirlo. están monopolizando una impresora para compartirla.


Descripción general del conocimiento

imagen-20230720154928419


2.3 Asignación y reciclaje de equipos (función 1 de implementación de la capa de software independiente del dispositivo)

imagen-20230720160211409


2.3.1 Factores a considerar al asignar equipos

imagen-20230720160908618

Hay tres atributos inherentes a un dispositivo : dispositivo exclusivo, dispositivo compartido y dispositivo virtual.

  • 独占设备: Solo se puede asignar un período de tiempo a un proceso (como una impresora).
  • 共享设备: Se puede asignar a múltiples procesos al mismo tiempo (como el disco) De hecho, cada proceso a menudo comparte el uso del equipo al mismo tiempo en una escala macro y se ejecuta alternativamente en una escala micro.
  • 虚拟设备: Utilice la tecnología SPOOLing para transformar dispositivos exclusivos en dispositivos virtuales compartidos, que pueden asignarse a múltiples procesos al mismo tiempo. (Como la impresora compartida implementada por la tecnología SPOOLing)

Algoritmo de asignación de equipos : primero en llegar, primero en ser atendido, mayor prioridad primero, tareas cortas primero.

Seguridad en la asignación de dispositivos : Considerando la seguridad de la operación del proceso, existen dos formas de asignar equipos.

Método 1: Método de asignación segura: después de que el proceso emite una solicitud de E/S, el sistema le asigna un dispositivo de E/S. El proceso puede continuar ejecutándose y también puede emitir nuevas solicitudes de E/S más adelante. Solo un determinado I No se puede obtener la solicitud /O. El proceso se bloqueará solo cuando se cumpla.

  • Breve descripción: Cada proceso sólo puede utilizar un dispositivo dentro de un período de tiempo.
  • Ventajas: Destruido: condiciones de solicitud y retención, sin punto muerto.
  • Desventajas: Para un proceso, la CPU y los dispositivos de E/S solo pueden funcionar en serie.

Método 2: método de asignación inseguro: después de que un proceso emite una solicitud de E/S, el sistema le asigna un dispositivo de E/S. El proceso puede continuar ejecutándose y también puede emitir nuevas solicitudes de E/S más adelante. El proceso se bloqueará sólo cuando no se pueda satisfacer una solicitud de E/S.

  • Breve descripción: Un proceso puede utilizar varios dispositivos al mismo tiempo.
  • Ventajas: Las tareas informáticas y las tareas de E/S del proceso se pueden procesar en paralelo, lo que permite que el proceso avance rápidamente.
  • Desventajas: pueden producirse interbloqueos (evitación de interbloqueos, detección y liberación de interbloqueos).

2.3.2 Asignación estática y asignación dinámica

静态分配: Todos los recursos necesarios se asignan al proceso antes de ejecutarlo (no puede ejecutarse sin toda la asignación) y los recursos se devuelven después de la ejecución. [La condición "solicitar y retener" se destruye y no se producirá un punto muerto]

动态分配: El proceso solicita dinámicamente los recursos del dispositivo mientras se ejecuta y no obtiene los recursos al principio.


2.3.3 Estructura de datos en la gestión de asignación de equipos

Comprender la relación entre dispositivos, controladores y canales (relación de árbol)

La relación entre dispositivos, controladores y canales (relación de árbol) :

imagen-20230720162954375

Un canal puede controlar varios controladores de dispositivos y cada controlador de dispositivo puede controlar varios dispositivos.

  • Puede haber múltiples canales en un sistema. Si desea controlar un dispositivo, definitivamente necesita el controlador del dispositivo. Si desea controlar un controlador, debe encontrar el canal al que pertenece el controlador.

La estructura de datos debe expresar esta relación subordinada : tabla de control de dispositivos DCT, tabla de control de controladores (COCT), tabla de control de canales (CHCT), tabla de dispositivos del sistema (SDT).


La primera estructura de datos: Tabla de control de dispositivos (DCT)

设备控制表(DCT)Las propiedades incluidas son: tipo de dispositivo, identificador de dispositivo, estado del dispositivo, puntero a la tabla del controlador, número de repeticiones o tiempo y puntero principal de la cola de dispositivos.

Las propiedades se detallan a continuación :

imagen-20230720163820166

设备类型: Como impresora/escáner/teclado.

设备标识符: Es decir, el nombre del dispositivo físico. El nombre del dispositivo físico de cada dispositivo en el sistema es único.

设备状态:Ocupado/Inactivo/Error…

指向控制器表的指针: Cada dispositivo está controlado por un controlador y este puntero puede encontrar información sobre el controlador correspondiente.

重复执行次数时间: Se utiliza principalmente para registrar el número de fallas. Sólo cuando la operación de E/S se repite varias veces y aún falla, se considera que la E/S ha fallado.

  • Respecto al fenómeno de atasco de papel que a veces ocurre al utilizar una impresora, no significa que la operación falle una vez y se considera una falla real, el sistema repetirá la operación varias veces.

设备队列的队首指针: Apunta a la cola de proceso que espera el dispositivo (una cola compuesta por PCB de proceso).

  • Si el proceso está esperando la asignación de un dispositivo de E/S en este momento, y el dispositivo de E/S no se le puede asignar en este momento, entonces el proceso permanecerá en el punto de espera señalado por el dispositivo de E/S correspondiente. O tabla de control de dispositivos. Al final de la cola, este puntero de cola en realidad apunta a la cola de bloqueo correspondiente.

Nota : En el capítulo "Gestión de procesos" se mencionó que "el sistema colgará la PCB del proceso en diferentes colas de bloqueo según los diferentes motivos de bloqueo".


La segunda estructura de datos: tabla de control del controlador (COCT)

控制器控制表(COCT): Cada controlador de dispositivo corresponderá a un COCT. El sistema operativo opera y gestiona el controlador basándose en información COCT.

imagen-20230720164428719

  • 控制器标识符: El ID único de cada controlador.
  • 控制器状态:Ocupado/Inactivo/Error…
  • 指向通道表的指针: Cada controlador está controlado por un canal y este puntero puede encontrar la información del canal correspondiente.
  • 控制器队列的队首指针、控制器队列的队尾指针: Apunta a la cola de procesos que espera al controlador (una cola compuesta por PCB de proceso).

La tercera estructura de datos: Tabla de control de canales (CHCT)

通道控制表(CHCT): Cada canal corresponde a un CHCT. El sistema operativo opera y gestiona el canal en función de la información CHCT.

imagen-20230720164833055

  • Identificador de canal: el ID único de cada canal.
  • Estado del canal: ocupado/inactivo/fallo…
  • La primera dirección de la tabla del controlador conectada al canal: toda la información relacionada con el controlador (COCT) administrada por el canal se puede encontrar a través de este puntero.
  • El puntero principal de la cola de canales y el puntero final de la cola de canales: apuntan a la cola de procesos (cola compuesta por PCB de proceso) que está esperando el canal.

Si el canal no puede atender temporalmente un proceso, el proceso aún debe esperar el servicio de este canal. Los dos últimos campos apuntan a la cola de procesos que esperan este canal.


La cuarta estructura de datos: tabla de dispositivos del sistema (SDT)

系统设备表(SDT): registra el estado de todos los dispositivos del sistema y cada dispositivo corresponde a una entrada.

imagen-20230720165255255

Esta tabla contiene varios dispositivos y cada registro de dispositivo contiene el estado del dispositivo. Cada campo tiene la siguiente información:

  • Tipo de dispositivo: por ejemplo, impresora/escáner/teclado.
  • Identificador de dispositivo: un nombre de dispositivo físico único.
  • DCT (Tabla de control de dispositivos): la dirección de los datos de información de este dispositivo.
  • Entrada del controlador: la dirección de entrada del programa del dispositivo.

2.3.4 Pasos para la asignación de equipos

Una descripción concisa es la siguiente :

imagen-20230720183825436

Los pasos detallados son los siguientes :

1. Busque la entrada coincidente en la [Tabla de dispositivos del sistema] según el nombre del dispositivo.

imagen-20230720170717485

2. Después de encontrar el [Controlador de dispositivo] a través de la [Dirección DCT (Tabla de control de dispositivos) en la tabla de dispositivos del sistema], determine si está inactivo según el estado del dispositivo. Si el dispositivo está inactivo, se puede asignar al proceso. Si está ocupado en este momento, entonces el proceso debe colocarse en la cola de espera de bloqueo de la cola de dispositivos. El proceso no se reactivará hasta que el dispositivo esté vacío y el dispositivo esté asignado al proceso.

  • Después de despertar, además de asignar este dispositivo, el controlador correspondiente a este dispositivo también debe asignarse a este proceso.

imagen-20230720170733915

3. Busque la [tabla de controladores] de acuerdo con el [puntero a la tabla de controladores en la tabla de control de dispositivos DCT]. En este momento, comprobará si el controlador está inactivo. Si está inactivo, el controlador se asignará a la proceso. Si está ocupado, el proceso debe guardarse en la cola de bloqueo del controlador.

  • Después de asignar el controlador, debe asignar el canal correspondiente al proceso.

imagen-20230720170756695

4. Busque la tabla de control de canales CHCT de acuerdo con el [puntero de canal en la tabla del controlador]. Si el canal está inactivo, asígnelo al proceso. Si el canal está ocupado en este momento, el proceso debe colocarse en el bloqueo. cola del canal.

Nota: Solo cuando el dispositivo, el controlador y el canal sean exitosos, la asignación del dispositivo se considerará exitosa. Después de eso, el dispositivo de E/S se puede iniciar para la transmisión de datos.

imagen-20230720170809337


2.3.5 Mejora de los pasos de asignación de equipos

2.3.5.2 Desventajas de la asignación de equipos

Desventajas de la asignación de equipos ;

① Los usuarios deben utilizar el "nombre del dispositivo físico" al programar. Los detalles subyacentes no son transparentes para el usuario y son inconvenientes para la programación.

②Si se reemplaza el dispositivo físico, el programa no se ejecutará.

③Si el dispositivo físico solicitado por el proceso está actualmente ocupado y hay otros dispositivos inactivos del mismo tipo en el sistema, el proceso también debe bloquearse y esperar.

  • Por ejemplo, tres impresoras: Si una de ellas, la A, está ocupada y otro usuario quiere solicitarla, se bloqueará, incluso otro tipo de ordenadores seguirán sin poder utilizarla.

2.3.5.2 Comprender la tabla de dispositivos lógicos

逻辑设备表(LUT): Establece la relación de mapeo entre los nombres de dispositivos lógicos y los nombres de dispositivos físicos.

imagen-20230720182525716

Cuando un proceso de usuario usa un nombre de dispositivo por primera vez, usa el nombre del dispositivo lógico para enviar una solicitud al sistema operativo. El sistema operativo busca en la tabla de dispositivos del sistema según el tipo de dispositivo (nombre del dispositivo lógico) especificado por el usuario. proceso, encuentra un dispositivo inactivo, lo asigna al proceso, lo asigna al proceso en la LUT y agrega la entrada de tabla correspondiente.

  • Si el proceso de usuario luego solicita usar el dispositivo a través del mismo nombre de dispositivo lógico, el sistema operativo puede saber qué dispositivo físico el proceso de usuario realmente quiere usar a través de la tabla LUT y también conoce la dirección de entrada del controlador del dispositivo .

Cómo configurar la tabla de dispositivos lógicos :

  • Solo hay una tabla LUT en todo el sistema: los nombres de dispositivos lógicos utilizados por cada usuario no pueden repetirse y es adecuada para sistemas operativos de un solo usuario.
  • Una tabla LUT para cada usuario: los nombres de dispositivos lógicos de diferentes usuarios se pueden repetir, lo que es adecuado para sistemas operativos multiusuario.

2.3.5.3 Métodos de mejora

Método de mejora : establezca un mecanismo de mapeo entre dispositivos lógicos y nombres de dispositivos físicos. Los usuarios solo necesitan proporcionar nombres de dispositivos lógicos al programar.

  • Simplificación real: simplemente use el nombre del dispositivo físico al principio para usar el nombre del dispositivo lógico para encontrarlo. Después de hacer coincidir una entrada del SDT, agréguelo a la tabla de dispositivos lógicos LUT y agregue una nueva entrada. Después de eso, será ¡exactamente lo mismo!

imagen-20230720182412913


Revisión de conocimientos y resumen clave.

imagen-20230720183405232


2.4 Gestión del búfer (función 2 de implementación de la capa de software independiente del dispositivo)

imagen-20230720185509760


2.4.1 ¿Qué es una zona de amortiguamiento?

缓冲区: Es un área de almacenamiento que puede estar compuesta por registros de hardware especiales o puede utilizar la memoria como búfer.

  • Búfer que usa hardware: el hardware se puede usar como búfer, la capacidad es relativamente pequeña y generalmente solo se usa en situaciones donde los requisitos de velocidad son muy altos (como el registro de asociación (tabla rápida) utilizado en la administración de memoria que usa un búfer implementado por hardware). ), Debido a la alta frecuencia de acceso a la tabla de páginas, se utiliza un registro asociativo rápido para almacenar una copia de la entrada de la tabla de páginas.

Para la independencia del dispositivo, los buffers de software se refieren a la memoria como buffers .

En circunstancias normales, se utiliza más memoria como búfer. Esta sección utiliza principalmente la memoria como búfer para expandirse.


2.4.2 ¿Cuál es la función del buffer (4 funciones)?

imagen-20230720185933471

Función 1: Alivia la discrepancia de velocidad entre la CPUI y los dispositivos de E/S.

CPU—>Buffer: la CPU puede colocar rápidamente los datos de salida en el búfer y luego hacer otras cosas.

Dispositivo de E/S—>búfer: los dispositivos de E/S lentos pueden tomar datos del búfer lentamente.

De esta forma se puede solucionar el desajuste de velocidades entre ellos.

Función 2: Reducir la frecuencia de interrupción de la CPU y relajar el límite en el tiempo de respuesta de interrupción de la CPU.

imagen-20230720190147056

Si no se utiliza el búfer, entonces la velocidad de la CPU y el propio dispositivo de E/S no coinciden. Además, cada vez que se emite una determinada unidad de datos, el dispositivo de E/S necesita enviar una señal de interrupción a la CPU. , Y la señal de interrupción tarda una cierta cantidad de tiempo. Gastos generales, por lo que el procesamiento frecuente de estas interrupciones por parte de la CPU reducirá el rendimiento del sistema.

  • Si se utiliza un búfer, la CPU solo necesita intervenir para manejar la interrupción cuando se eliminan todos los datos del búfer o los datos de entrada llenan el búfer. Este método puede reducir la frecuencia de las interrupciones de la CPU y relajar el tiempo de respuesta a las interrupciones de la CPU. ... límites.

Aquí hay una ilustración sin búfer:

imagen-20230720190504307

Función 3: resolver el problema de la discrepancia en la granularidad de los datos.

  • Por ejemplo: el proceso de salida puede generar un dato cada vez, pero el dispositivo de E/S solo puede generar un carácter a la vez.
  • Situación sin búfer: si el proceso de salida que se ejecuta en la CPU puede generar un bloque completo de datos a la vez, pero el dispositivo de E/S solo puede generar 1 carácter a la vez, entonces, si no se adopta la estrategia del búfer, el proceso de salida Solo puede generar un carácter. , un carácter al dispositivo de E/S para transmitir datos.
  • Si hay un búfer: si hay un búfer, el proceso de salida puede colocar directamente un bloque completo de datos en el búfer y dejar que el dispositivo de E/S extraiga un carácter o un carácter del búfer para procesar los datos. problema de desajuste.

Función 4: Proporcionar paralelismo entre la CPU y los dispositivos de E/S.


2.4.3 Almacenamiento en búfer único

2.4.3.1 Comprensión del búfer único

Supongamos que un proceso de usuario solicita a un dispositivo de bloque que lea varios bloques de datos .

Si se adopta una única estrategia de almacenamiento en búfer, el sistema operativo le asignará un búfer en la memoria principal [si el título no especifica lo contrario, el tamaño de un búfer es un bloque]

Nota :

  1. Cuando los datos del búfer no están vacíos, los datos no se pueden ingresar rápidamente al búfer, pero los datos solo se pueden transferir fuera del búfer.
  2. Cuando el búfer está vacío, los datos se pueden enviar rápidamente al búfer, pero el búfer debe llenarse antes de que los datos puedan transferirse fuera del búfer.

2.4.3.2 Proceso de transmisión de búfer único

Describe el proceso de un buffer :

① Primero, el sistema asigna un búfer de cierto tamaño en la memoria principal para el proceso del usuario.

imagen-20230720192305733

②En este momento, el dispositivo de bloque generará un bloque de datos y lo ingresará en este búfer. El tiempo empleado en este momento es t.

imagen-20230720192538056

③En este momento, los datos deben transferirse al espacio de trabajo del proceso del usuario (leerse en la memoria) antes de que el proceso del usuario pueda procesarlos. De forma predeterminada, el espacio de trabajo del proceso del usuario puede acomodar este dato, que tardará m en completarse.Transfiera los datos del búfer al espacio de trabajo del proceso del usuario.

imagen-20230720192809476

④El proceso del usuario puede luego procesar este dato. Aquí se supone que el tiempo de cálculo y procesamiento es c. Cuando se completa el procesamiento, el espacio de trabajo del proceso del usuario puede quedar libre.

imagen-20230720192924748


2.4.3.3 Tiempo promedio para procesar un dato en diferentes situaciones (dos situaciones)

A continuación, basándose en el tiempo supuesto anteriormente, calcule cuánto tiempo lleva en promedio procesar cada dato.

Caso 1: Suponga que el estado inicial es que el área de trabajo está llena, el búfer está vacío, T>C

imagen-20230720193059623

Dado que el tiempo de C es corto, ejecutaremos C primero. Dado que el área de trabajo del estado inicial está llena, necesitamos dedicar tiempo de C al procesamiento. Al mismo tiempo, el dispositivo de bloque también puede realizar operaciones de entrada en paralelo durante una duración de T .

Nota : Debido a las reglas del búfer, la operación de transferencia solo se puede realizar después de que se llene el búfer , por lo que debe esperar el final del tiempo T antes de que se pueda realizar la operación de transferencia durante el tiempo M.

  • La parte en negrita es C y T en el diagrama de tiempo a continuación. Cuando el área de llenado está llena, se debe ejecutar el tiempo T antes de que se pueda ejecutar la operación M.

imagen-20230720193943581

Entonces, las operaciones de ejecución posteriores son básicamente las mismas, cada ejecución toma un tiempo T + M, luego el tiempo promedio es T + M:

imagen-20230720194132152

Caso 2: Suponga que el estado inicial es que el área de trabajo está llena, el búfer está vacío y T<C

En este momento, primero podemos realizar la operación de entrada, que lleva tiempo T, y el espacio de trabajo correspondiente al procesamiento del proceso del usuario por parte de la CPU también lleva tiempo C. Los dos se pueden completar en paralelo.

Dado que el tiempo T es corto, la operación de entrada se completará primero. En este momento, el búfer está lleno. Sin embargo, tenga en cuenta que la operación de transferencia no se puede realizar en este momento porque los datos no se han procesado en el espacio de trabajo del usuario. proceso. En este momento, debe esperar. Una vez completado todo el procesamiento C, se puede realizar la operación de transmisión. El diagrama de tiempo correspondiente se muestra a continuación:

imagen-20230720194531450

Entonces las operaciones posteriores son las mismas, por lo que el tiempo promedio es:C+M

imagen-20230720194615930


2.4.4 Doble buffer

2.4.4.1 Comprensión de los buffers dobles

Si dos máquinas están configuradas con buffers dobles :

Si se adopta una estructura de doble búfer, entonces los dos hosts pueden ingresar simultáneamente a sus propios búferes de envío e insertar los datos que desean enviar, y luego pueden insertar datos simultáneamente en el búfer de recepción de la otra parte. Realice la función de transmisión bidireccional al mismo tiempo.

imagen-20230720202313918


2.4.4.2 Tiempo promedio para procesar un dato en diferentes situaciones (dos situaciones)

Pregunta de doble almacenamiento en búfer: ¿Cuánto tiempo le toma a la computadora procesar cada dato en promedio?

Caso 1: Supongamos que el estado inicial es que el área de trabajo está vacía, uno de los buffers está lleno y el otro buffer está vacío. Supongamos que T>C+M

imagen-20230720195954992

  • Inicialmente, el búfer 1 está lleno, el búfer 2 está vacío y el espacio de trabajo del proceso del usuario está vacío.

Podemos ejecutar 缓冲区1->工作区2la transferencia (M), y al mismo tiempo se puede completar en paralelo 块设备—>内存的输入(T), en este proceso, si se completa la operación de transferencia, la operación de procesamiento © se puede iniciar inmediatamente, por lo que el diagrama de tiempo final es Como se muestra abajo:

imagen-20230720200305726

Cuando se completa una transmisión de datos, nuestro búfer se llenará con un dato solo después de que se complete la entrada T, por lo que debemos completar T antes de poder ejecutar la transmisión (M). El siguiente proceso es el mismo que el primero. El proceso es similar a:

imagen-20230720200453792

Entonces, el tiempo promedio que lleva procesar un dato en este momento = Ttiempo.

Caso 2: Supongamos que el estado inicial es que el área de trabajo está vacía, uno de los buffers está lleno y el otro buffer está vacío. Supongamos que T<C+M

De manera similar, 缓冲区1—>工作区y 块设备—>缓冲区2se puede ejecutar en paralelo, y la operación de procesamiento realmente se puede ejecutar después de que se completa la transmisión (M), luego la primera ronda de operaciones se muestra en la siguiente figura:

imagen-20230720200750598

Como puede ver en la figura, en la etapa de operación de procesamiento ©, no podemos transferir los datos en el buffer 1 o 2 al área de trabajo, porque el área de trabajo actual no ha sido procesada, por lo que solo podemos esperar a que finalice el procesamiento ©. finalice antes de que podamos continuar. Complete la operación de transferencia (M).

En este momento, una vez completada la ejecución de T, puede continuar completando la escritura de datos en el dispositivo -> búfer 1. La operación de transferencia no se puede realizar mientras el procesamiento © no se haya completado. En este momento, puede encontrar que la segunda y tercera vez después de esta vez ya no son regulares, como se muestra en la siguiente figura:

imagen-20230720201404123

Sin embargo, según el diagrama, aún puedes ver claramente que el tiempo empleado en cada ronda es M+C, este es el tiempo promedio.

Conclusión : utilizando la estrategia de doble almacenamiento en búfer, el tiempo promedio T>m+cnecesario T<C+Mpara procesar un bloque de datos es Max(T,C+M).

2.4.4.3 Diferencias en la comunicación usando buffering simple/doble

El almacenamiento en búfer simple/doble no solo se utiliza en la transmisión de datos entre el host y el dispositivo, sino que también se puede utilizar cuando dos hosts se comunican. Esta estrategia de almacenamiento en búfer también se puede utilizar para la recepción y transmisión de datos.

Si es un búfer único : solo cuando el búfer de la máquina A está lleno, los datos se pueden enviar al búfer de la máquina B. Entonces, el búfer de la máquina B solo se puede quitar cuando está lleno, y los datos se pueden enviar al búfer de la máquina A solo cuando el búfer de la máquina B está vacío.

imagen-20230720202122875

Obviamente: si dos máquinas que se comunican entre sí solo configuran un único búfer, solo se puede lograr una transmisión de datos unidireccional en cualquier momento [la razón principal de esto se debe a las características del búfer].


2.4.5 Amortiguador circular

Para buffers simples/dobles necesitamos calcular el tiempo promedio para procesar un dato, y para buffers circulares solo necesitamos entender el principio general.

循环缓冲区: vincula varios buffers de igual tamaño en una cola circular.

La siguiente figura es una cola circular, donde el naranja indica un búfer lleno de datos y el verde indica un búfer vacío:

imagen-20230720202516636

  • El puntero de entrada apunta a un búfer vacío. Cuando el búfer vacío se llena con datos, se moverá hacia la flecha en la figura y señalará un nuevo búfer vacío.
  • El puntero de salida apunta a un búfer lleno. Cuando el búfer esté lleno de datos, también se moverá en la dirección de la flecha y señalará un búfer lleno.

2.4.6 Grupo de buffers

2.4.6.1 Comprensión del grupo de buffer

El grupo de buffers consta de una serie de buffers.

缓冲池: Compuesto por buffers compartidos en el sistema.

Los búfer en el grupo de búfer se pueden dividir en colas de búfer vacías, colas de búfer llenas de datos de entrada (cola de entrada) y colas de búfer llenas de datos de salida (cola de salida) según su estado de uso .

imagen-20230720203531574


2.4.6.2 Buffer: Cuatro buffers de trabajo establecidos según el rol desempeñado.

Al mismo tiempo, un buffer puede desempeñar diferentes funciones en la operación real. Se configuran cuatro buffers de trabajo para esta función diferente :

  • El buffer de trabajo ( ) usado para contener datos de entrada hin.
  • El búfer de trabajo () utilizado para extraer datos de entrada sin.
  • El buffer de trabajo ( ) usado para contener datos de salida hout.
  • El búfer de trabajo ( ) utilizado para extraer datos de salida sout.

Cuatro escenas diferentes utilizan los cuatro roles funcionales diferentes anteriores .


Escenario 1: el proceso de entrada solicita datos de entrada

Proceso: elimine una parte del búfer de trabajo (hin) de la cola de búfer vacía como búfer de trabajo (hin) para acomodar los datos de entrada. Una vez que el búfer se llena con datos, se coloca al final de la cola de entrada.

imagen-20230720205456118


Escenario 2: el proceso informático quiere obtener un dato de entrada

Proceso: obtenga un búfer lleno de datos de entrada de la cola de entrada como "búfer de trabajo (sin) para extraer datos de entrada". Una vez que el búfer se lee vacío, se cuelga en la cola del búfer vacío.

imagen-20230720210032230


Escenario 3: el proceso informático quiere vaciar los datos preparados en el búfer

Proceso: saque un bloque de la cola del búfer vacío como un "búfer de trabajo (hout) para acomodar los datos de salida". Cuando los datos están llenos, el búfer se coloca al final de la cola de salida.

imagen-20230721160555689


Escenario 4: El proceso de salida solicita datos de salida.

Proceso: obtenga un búfer lleno de datos de salida de la cola de salida como "búfer de trabajo para extraer datos de salida (sout)". Una vez que el búfer se lee vacío, se cuelga en la cola del búfer vacío.

imagen-20230721161107447

Los escenarios anteriores son ejemplos de cómo ingresar datos desde el periférico al búfer, el proceso del usuario lee los datos de entrada, el proceso del usuario envía los resultados al búfer y el último obtiene el búfer en la cola de salida para extraer datos. La parte es para contención, creo que son los periféricos los que realizan entradas y salidas, y el lado derecho es donde el proceso del usuario ingresa y emite datos. De hecho, es una transmisión bidireccional entre el proceso del usuario y los periféricos.


Descripción general del conocimiento

imagen-20230721161446241


3. Disco y SSD

3.1 Estructura del disco

imagen-20230721194438124


3.1.1 Los conceptos de disco, pista y sector

La superficie del disco está compuesta de algunos materiales magnéticos que pueden utilizarse para registrar datos binarios.

imagen-20230721194544355

  • El redondo es el disco del disco. Si desea leer los datos binarios a los que se accede en este disco, entonces necesita el brazo del cabezal magnético o simplemente el brazo magnético para hacer que el cabezal magnético se mueva y coloque el cabezal magnético en el correspondiente. posición a leer Los datos almacenados en la ubicación especificada.

La superficie del disco se dividirá en pistas y ese "círculo" es una pista. Una pista se divide en sectores , cada sector es un "bloque de disco" y cada sector almacena la misma cantidad de datos (como 1 KB).

imagen-20230721194820103

Hay un motor en el medio del disco . Cuando el motor gira, puede impulsar la rotación de todo el disco.

Podemos numerar los sectores , sector 0, sector 1, sector 2, sector 3..., ya que la cantidad de datos almacenados en cada sector es la misma, entonces el área del sector más interno, su área es la más pequeña, pero la cantidad de Los datos que almacena son los mismos que los de los otros sectores, por lo que el sector con mayor cantidad de memoria tiene la mayor densidad de datos.

imagen-20230721195229274


3.1.2 ¿Cómo leer/escribir datos en el disco?

Debe mover el "cabezal" a la pista donde se encuentra el sector que desea leer/escribir, y luego el disco girará con el motor, permitiendo que el sector objetivo pase debajo del cabezal para completar la operación de lectura/escritura en el sector.

Por ejemplo : si queremos leer los datos en el círculo naranja, podemos mover el cabezal magnético a la posición del círculo naranja y luego el motor impulsa la rotación y el deslizamiento.

prueba


3.1.3 Los conceptos de disco y cilindro

De hecho, hay muchas superficies de disco en el disco. Las superficies del disco están dispuestas de la siguiente manera: cada superficie del disco tiene un cabezal magnético, y el cabezal magnético es impulsado uniformemente por el brazo del cabezal magnético para moverse hacia adentro y hacia afuera:

imagen-20230721201653280

Puntos a tener en cuenta :

① Un disco puede corresponder a dos superficies de disco, es decir, la parte frontal puede ser una superficie de disco y la parte posterior puede ser otra superficie de disco.

②Todos estos cabezales magnéticos están unificados y conectados al mismo brazo magnético, por lo que todos los cabezales magnéticos sólo pueden "avanzar y retroceder juntos". (Por ejemplo: cuando un cabezal magnético se mueve hacia adentro, los otros cabezales magnéticos también deben moverse hacia adentro)

③Todas estas pistas con la misma posición relativa entre estos discos forman un cilindro. Por ejemplo en la imagen todas las pistas amarillas.


3.1.4 Dirección física del disco

Todas las pistas amarillas en el camino tienen la misma posición en cada disco, por lo que estas pistas forman un cilindro. De hecho, la dirección física del disco se puede representar mediante una forma ternaria: dirección (柱面号,盘面号,扇区号).

imagen-20230721201653280

Implemente la lectura de un paso de "bloque" basado en este triplete :

  1. Mueva el brazo magnético según el "número de cilindro" para que el cabezal magnético apunte al cilindro especificado.
  2. Active el cabezal correspondiente al "número de disco" del disco especificado.
  3. Durante la rotación del disco, se mueve al sector especificado según el "número de sector" y el sector especificado pasa por debajo del cabezal magnético, completando así la lectura/escritura del sector especificado.

3.1.5 Clasificación de discos

①Dividido según si el cabezal magnético puede moverse

活动头磁盘: El cabezal magnético se puede mover y el brazo magnético se puede estirar hacia adelante y hacia atrás para impulsar el cabezal magnético y posicionar la pista. Cada disco tiene una cabeza .

imagen-20230721201953750

固定头磁盘: El cabezal magnético no se puede mover. Este tipo de disco tiene un cabezal magnético por pista .

imagen-20230721202034089


②Clasificación según si el disco se puede reemplazar

Según si el disco se puede reemplazar, se divide en : disco reemplazable, disco fijo

可换盘磁盘: El disco se puede reemplazar.

固定盘磁盘: El disco no se puede reemplazar.

imagen-20230721202159362


Revisión de conocimientos y puntos de prueba importantes.

imagen-20230721202341784


3.2 Algoritmo de programación de disco

imagen-20230721203621891


3.2.1 El tiempo necesario para una operación de lectura/escritura de disco

Componente 1: Buscar tiempo

Tiempo de búsqueda (Tiempo de búsqueda) Ts : el tiempo que lleva mover el cabezal a una pista específica antes de leer/escribir datos.

Contiene dos partes de tiempo:

① Se necesita tiempo para iniciar el brazo del cabezal magnético, suponiendo que se necesitan s.

②5 Mover el cabezal magnético también lleva tiempo. Suponiendo que se permite que la cabeza se mueva, se necesitan m para cruzar una vía cada vez, y es necesario cruzar un total de n vías, entonces:

Cálculo del tiempo de búsqueda : Ts = s + m * n.

  • Actualmente, el disco duro tarda aproximadamente 0,2 ms en mover una pista y el tiempo de inicio del brazo magnético es de aproximadamente 2 ms.

prueba

  • Contiene un tiempo de inicio + tiempo de cabeza móvil.

Componente 2: tiempo de retardo

Tiempo de retardo T R : El tiempo necesario para posicionar el cabezal en el sector objetivo girando el disco. Suponiendo que la velocidad del disco es r (unidad: rev/segundo o rev/min), la fórmula de cálculo del tiempo de retardo promedio requerido es: T n = ( 1/2) * (1/r) = 1/2r

  • Entre ellos, 1/r se refiere al tiempo de una revolución. Se necesitan media revolución para encontrar el promedio del sector objetivo, por lo que el paso anterior se multiplicará por 1/2.

  • La velocidad de rotación típica de un disco duro es de 5400 rpm o 7200 rpm. Cuanto mayores sean las RPM, mejor.

    prueba


Componente 3: Tiempo de transmisión

Tiempo de transmisión T t : El tiempo que lleva leer o escribir datos en el disco. Supongamos que la velocidad del disco es r, el número de bytes leídos/escritos esta vez es b y el número de bytes en cada pista es N, la fórmula final es la siguiente:

La fórmula de cálculo del tiempo de transmisión es : T t = (1 / r) * (b / N) = b / (rN)

  • (1/r) representa el tiempo que se tarda en hacer una revolución. Dado que el número de bytes por pista es N, el número de pistas es b/N.
  • Cada pista puede almacenar N bytes de datos, por lo que b bytes de datos requieren b/N pistas para almacenarse, y el tiempo necesario para leer/escribir una pista es exactamente el tiempo necesario para una revolución 1/r.

prueba


Tiempo total de almacenamiento combinado

El tiempo total de acceso final es : T a = T s + 1/2r + b/(rN).

Conclusión : Tanto el tiempo de retardo como el tiempo de transmisión están relacionados con la velocidad de rotación del disco y están relacionados linealmente.La velocidad de rotación es una propiedad inherente del hardware, por lo que el sistema operativo no puede 延迟时间optimizarla 传输时间.

Sin embargo, 寻道时间se puede optimizar: el tiempo de búsqueda específico se ve afectado por el algoritmo de programación del disco adoptado por el sistema operativo.


3.2.2 Algoritmo por orden de llegada (FCFS)

先来先服务算法(FCFS): Programe según el orden en que los procesos solicitan acceso al disco.

Ejemplo práctico :

Descripción : Suponga que la posición inicial del cabezal magnético es la pista 100 y varios procesos solicitan sucesivamente acceso a 55, 58, 39, 18, 90, 160, 150, 38 y 184.

Primero ordenamos las pistas en el orden antes y después (el propósito es ver mejor el orden, el proceso de clasificación no está incluido en el algoritmo y el algoritmo ya no incluirá este paso):

imagen-20230721222258637

  • Puedes ver que el punto inicial es 100, el izquierdo es 90 y el derecho es 150.

Proceso : Luego seguimos las reglas de FCFS y el orden en que llegan las solicitudes. Las cabezas deben moverse a 55, 58, 39, 18, 90, 160, 150, 38 y 184. Este es en realidad el orden dado en la pregunta al principio. Finalmente, la secuencia de movimientos es como se muestra a continuación:

imagen-20230721222513682

El cálculo final es: 45+3+19+21+72+70+10+112+146 = 498 pistas.

El número de solicitudes es 9, por lo que el número promedio de pistas necesarias para moverse en respuesta a una solicitud (longitud promedio de búsqueda): 498/9 = 55,3 pistas.

Ventajas : Regular, si las pistas solicitadas para acceder están relativamente concentradas, entonces el rendimiento del algoritmo sigue siendo aceptable.

Desventajas : si hay una gran cantidad de procesos compitiendo por usar el disco y las pistas solicitadas para acceder están dispersas, entonces FCFS tendrá un rendimiento deficiente y tiempos de búsqueda prolongados.


3.2.3 Tiempo de búsqueda más corto primero (SSTF)

最短寻找时间优先(SSTF): Este algoritmo priorizará la pista más cercana al cabezal actual . Puede garantizar que cada tiempo de búsqueda sea el más corto, pero no garantiza que el tiempo de búsqueda total sea el más corto.

  • Esencia: es la idea de un algoritmo codicioso, que simplemente elige lo mejor en este momento, pero puede que no sea el mejor en general.

Ejemplo :

Descripción : Supongamos que la posición inicial del cabezal magnético es la pista 100 y que varios procesos solicitan sucesivamente acceso a las pistas 55, 58, 39, 18, 90, 160, 150, 38 y 184.

La pista para el acceso inicial es la que se muestra a continuación:

imagen-20230721223046255

Proceso: a partir de 100, primero busque la pista más cercana, que es 90, luego busque la pista más cercana y luego continúe con esta estrategia de 58, 55, 39, 38, 18, seguida de 150, 160 y 184.

imagen-20230721223240068

El número total de pistas que mueve el cabezal magnético: (100-18) + (184-18) = 248 pistas.

Longitud promedio de búsqueda (movimientos promedio necesarios para responder a una solicitud): 248/9 = 27,5 pistas

Ventajas : rendimiento relativamente bueno, tiempo medio de búsqueda corto.

Desventajas : Puede producirse el fenómeno del "hambre".

Caso de fenómeno de inanición : si después de procesar la pista 18, se debe acceder a la pista 150 correspondiente a la imagen de arriba, pero de repente llega otro acceso a la pista 38. En este momento se accederá primero a la pista 38 porque está más cerca. Si algunas pistas similares vienen una tras otra, entonces, para las pistas relativamente lejanas que llegan temprano, como 150, 160 y 184, estas pistas se quedarán sin acceso y nunca serán accesibles y nunca estarán satisfechas. Se produjo un fenómeno de "hambruna".

La causa de la inanición : el cabezal magnético se mueve hacia adelante y hacia atrás en un área pequeña, lo que provoca, por ejemplo, que no se pueda acceder a pistas distantes durante mucho tiempo.

Esta pregunta surgió en este momento 扫描算法.


3.2.4 Algoritmo de escaneo (SCAN)

La razón de 最短寻找时间优先(SSTF)la falta de algoritmo es que la cabeza puede moverse hacia adelante y hacia atrás en un área pequeña. Para prevenir este problema, puedes estipular en este momento:

  • 扫描算法(SCAN): Solo cuando el cabezal magnético se mueve hacia la pista más externa puede moverse hacia adentro, y cuando se mueve hacia la pista más interna puede moverse hacia afuera.

La forma en que se mueve el cabezal magnético es muy similar a la de un ascensor, por eso también se le llama 电梯算法.

Núcleo : La dirección de movimiento del cabezal magnético solo se puede cambiar cuando llega a la pista más externa.

Ejemplo :

Descripción : Supongamos que las pistas de un determinado disco son 0-200, la posición inicial del cabezal magnético es la pista 100 y, en este momento, el cabezal magnético se mueve en la dirección de aumentar el número de pistas y varios procesos solicitan sucesivamente acceso a 55, 58 y 39. , 18, 90, 160, 150, 38, 184 pistas.

imagen-20230722002017293

Proceso : el cabezal magnético se mueve hacia la derecha primero para procesar la pista 150, y luego se mueve hacia la derecha para procesar la pista 160, y después de eso ocurre lo mismo. Lo que es importante tener en cuenta es que el algoritmo requiere que el cabezal magnético se mueva a la pista más externa antes de comenzar a moverse hacia adentro. Aunque la pista 184 no necesita solicitar ningún número de pista, en este momento, aún se moverá hacia la derecha hasta llegar a las 200 pistas más externas antes de comenzar a moverse hacia adentro. En este momento, pasará a la pista 90 y comenzará a leer, seguida de las pistas 58, 55, 39, 38 y 18.

imagen-20230722002048605

El número total de pistas que mueve el cabezal magnético: (200-100) + (200-18) = 282 pistas.

Longitud promedio de búsqueda (movimientos promedio necesarios para responder a una solicitud): 282/9 = 31,3 pistas

  • El tiempo de búsqueda resultante es mucho mejor que el del algoritmo por orden de llegada.

Ventajas : mejor rendimiento, tiempo de búsqueda promedio más corto y sin hambre.

Desventajas :

① Solo cuando se alcanza la vía más externa se puede cambiar la dirección del movimiento del cabezal. De hecho, después de procesar la solicitud de acceso a la vía 184, no es necesario mover el cabezal hacia la derecha.

②El algoritmo SCAN responde a frecuencias desiguales de pistas en varias ubicaciones.

  • Por ejemplo: supongamos que el cabezal se está moviendo hacia la derecha en este momento y que se acaba de procesar la pista 90. Luego, la próxima vez que se procese la solicitud de la pista 90, llevará mucho tiempo esperar a que el cabezal se mueva. , luego de responder a la solicitud de la pista 184, se procesará nuevamente pronto.Respondió a la solicitud de la pista 184 nuevamente.

Resumen : Es relativamente mejor acceder repetidamente a las pistas cercanas a los bordes. Las pistas en el medio solo se pueden escanear después de haber accedido a ellas una vez. Solo pueden esperar hasta que se escanee el borde antes de volver a escanear.


3.2.5 Algoritmo de programación de miradas (la primera mejora deficiente del algoritmo de escaneo)

Descripción del problema : En el algoritmo de escaneo (SCAN), la dirección del movimiento del cabezal solo se puede cambiar cuando llega al borde de la pista. De hecho, después de procesar la solicitud de acceso a la pista 184, no es necesario mover el cabezal al borde de la pista. bien.

Look调度算法: Para resolver este problema, si no hay otras solicitudes en la dirección del movimiento del cabezal, la dirección del movimiento del cabezal se puede cambiar inmediatamente.

  • Observar en movimiento, de ahí el nombre MIRAR.
  • Descripción principal: si no hay otras solicitudes en la dirección del movimiento de la cabeza, la dirección del movimiento de la cabeza se puede cambiar inmediatamente.

Por ejemplo :

Descripción: Supongamos que las pistas del disco son del número 0 al 200, la posición inicial del cabezal magnético es la pista número 100 y, en este momento, el cabezal magnético se está moviendo en la dirección de números de pistas crecientes y varios procesos han solicitado sucesivamente acceso a 55, 58, 39 y 18. ,90,160,150,38,184.

imagen-20230722003138828

Proceso : El cabezal magnético también se moverá hacia la derecha, y continuará moviéndose hacia la derecha como el algoritmo de escaneo (SCAN), pero la diferencia es que después de acceder a la pista 184, ya que no hay ningún número de pista que deba solicitarse. a la derecha, cambiará directamente la dirección de movimiento del cabezal magnético y comenzará a procesar 90, 58, 55, 39, etc., como se muestra en la siguiente figura:

imagen-20230722003326945

El número total de pistas que mueve el cabezal magnético: (184-100) + (184-18) = 250 pistas.

Longitud promedio de búsqueda (movimientos promedio necesarios para responder a una solicitud): 250/9 = 27,5 pistas

Ventajas : en comparación con el algoritmo SCAN, no es necesario cambiar la dirección del cabezal cada vez que se mueve a la posición más externa o más interna, lo que acorta aún más el tiempo de búsqueda.


3.2.6 Algoritmo de escaneo cíclico (C-SCAN): mejora de la segunda deficiencia del algoritmo de escaneo

Descripción del problema : En el algoritmo de escaneo (SCAN), la frecuencia de respuesta de las pistas en cada ubicación es desigual y el algoritmo C-SCAN está diseñado para resolver este problema.

循环扫描算法(C-SCAN): Se estipula que la solicitud de acceso a la pista se procesará solo cuando el cabezal se mueva en una determinada dirección, y cuando regrese, se moverá rápidamente hasta el final sin procesar ninguna solicitud.

Descripción : Supongamos que las pistas del disco son del número 0 al 200, la posición inicial del cabezal magnético es la pista número 100 y, en este momento, el cabezal magnético se está moviendo en la dirección de números de pistas crecientes y varios procesos han solicitado sucesivamente acceso a pistas 55, 58, 39 y 18. , 90, 160, 150, 38, 184.

imagen-20230722100505432

Proceso : el cabezal magnético servirá primero a la pista más cercana a la derecha, seguida de 150, 160 y 184. Tenga en cuenta que aunque 200 a la derecha no es la pista solicitada para el acceso, de acuerdo con las reglas del algoritmo, la dirección de movimiento de el cabezal magnético sólo se puede cambiar cuando llega a la pista más exterior. El jefe no procesa ninguna solicitud en su camino de regreso. Luego, cuando se accede a 200, el cabezal se moverá directamente a la pista 0 (no se realizará ningún procesamiento) y luego las pistas 18, 38, 39, 55... se procesarán en secuencia.

imagen-20230722101324067

El número total de pistas que mueve el cabezal magnético: (200-100) + (200-0) + (90 - 0) = 390 pistas.

Longitud promedio de búsqueda (movimientos promedio necesarios para responder a una solicitud): 390/9 = 43,3 pistas

¿Dónde encaja perfectamente este algoritmo?

  • Por ejemplo, cuando accedamos a la pista nº 150 por la derecha, primero llegaremos al extremo derecho, luego regresaremos a la izquierda hasta el punto de inicio (este proceso no accederá a la pista), y luego comenzaremos a leer la pista cuando lleguemos. la posición inicial más a la izquierda.

Ventajas : En comparación con SCAN, la frecuencia de respuesta de la pista en cada posición es muy promedio.

Desventajas : La dirección del movimiento del cabezal solo se puede cambiar cuando llega a la pista más exterior. De hecho, después de procesar la solicitud de acceso a la pista 184, no es necesario mover el cabezal hacia la derecha, y cuando el cabezal regresa, solo necesita para volver a la pista 18. El número de pistas es suficiente y no es necesario volver a la pista del borde. Además, en comparación con el algoritmo SCAN, el tiempo de búsqueda promedio es más largo.


3.2.7 Algoritmo de programación C-LOOK (resuelve las deficiencias del algoritmo de C-SAN)

Para solucionar las deficiencias del algoritmo C-SCAN, se propone el algoritmo de programación C-LOOK.

La principal desventaja del algoritmo C-SCAN es que la dirección de movimiento del cabezal magnético solo se puede cambiar cuando llega a la pista más externa, y no se permite que el cabezal magnético regrese a la pista más externa cuando regresa.

C-LOOK调度算法: Solo para resolver este problema, si no hay una solicitud de acceso a la pista en la dirección del movimiento del cabezal, el cabezal se puede devolver inmediatamente y el cabezal solo necesita regresar a la posición donde hay una solicitud de acceso a la pista.

Descripción: Supongamos que las pistas del disco son del número 0 al 200, la posición inicial del cabezal magnético es la pista número 100 y, en este momento, el cabezal magnético se está moviendo en la dirección de números de pistas crecientes y varios procesos han solicitado sucesivamente acceso a pistas 55, 58, 39 y 18. , 90, 160, 150, 38, 184.

imagen-20230722101856276

Proceso : el cabezal magnético servirá primero a la pista más cercana a la derecha, que son 150, 160 y 184 en orden. Dado que no es necesario leer la pista 200 a la derecha, luego dará la vuelta y se moverá directamente a la uno a la izquierda para acceder a la primera posición (sin ningún procesamiento, aunque el 0 a la izquierda es un límite pero no requiere acceso), la cabeza girará antes de procesar las siguientes pistas 18, 38, 39, 55. .. en secuencia.

imagen-20230722102141359

El número total de pistas que mueve el cabezal magnético: (184-100) + (184-18) + (90 - 18) = 322 pistas.

Longitud promedio de búsqueda (movimientos promedio necesarios para responder a una solicitud): 322/9 = 35,8 pistas

Ventajas : En comparación con el algoritmo C-SCAN, no es necesario moverse a la posición más externa o más interna cada vez para cambiar la dirección del cabezal magnético, lo que acorta aún más el tiempo de búsqueda.

Evaluación : Muy similar al algoritmo LOOK: si no hay solicitudes de acceso a la pista en la dirección del movimiento de la cabeza, la cabeza se puede devolver inmediatamente en este momento.


Revisión de puntos de conocimiento y puntos de prueba importantes.

imagen-20230721214109625


3.3 Reducir la latencia del disco

3.3.1 ¿Comprender los efectos adversos de los sectores lógicamente adyacentes y de los sectores físicamente adyacentes? (aumentar el tiempo de retraso)

El tiempo necesario para una operación de lectura/escritura de disco :

imagen-20230722121854196

Supongamos que los sectores 2, 3 y 4 en el área naranja deben leerse continuamente: después de que el cabezal magnético lee un fragmento de contenido (es decir, el contenido de un sector), tarda un corto período de tiempo en procesarse y el disco gira constantemente. Por lo tanto, si los sectores N° 2 y N° 3 están dispuestos uno al lado del otro, el sector N° 3 no se puede leer continuamente después de leer el sector N° 2.

Miremos la imagen a continuación: En la imagen a continuación, el cabezal magnético ha terminado de leer el sector No. 2 y todavía necesita algo de tiempo para procesarse (por lo que no puede leer el sector No. 3 directamente después de leer el sector No. 2). , y el disco sigue leyendo. Al girar, el cabezal magnético real todavía está procesando los datos del sector 2. El tiempo de procesamiento de los datos es el siguiente:

prueba

  • Puede ver el tiempo que lleva procesar el sector 2. Dado que el disco aún está girando, ¡la posición inicial del sector 3 ya se ha cruzado en este momento!

Entonces, ¿cómo podemos leer el sector 3?

  • Debes esperar a que el disco siga girando, moverte a la posición inicial del sector 3 y cruzar el sector 3 para completar la lectura del sector.

prueba

Conclusión : Después de que el cabezal magnético lee un sector de datos, se necesita un corto período de tiempo para procesarlo. Si los sectores lógicamente adyacentes también lo son físicamente, leer varios sectores lógicos consecutivos puede requerir un "tiempo de retraso" prolongado.

Razón principal : los sectores lógicamente adyacentes también lo son físicamente.


3.3.2 Solución para reducir el tiempo de retraso: numeración alternativa (resolver el problema de retraso en el Capítulo 3.3.1)

Solución : Lógicamente adyacente, pero no físicamente adyacente con un espacio.

Proceso : Lo primero que se debe leer es el sector No. 2. Primero hay que rotar el disco para que el sector No. 2 quede debajo del cabezal, luego, mientras el disco continúa girando, los datos del sector No. 2 se pueden ser leído. , después de leer el sector No. 2, el cabezal necesita un corto período de tiempo para hacer preparativos intermedios. Durante este período, el cabezal no puede leer ningún dato.

Debido a la estrategia de numeración alterna, el cabezal está listo para leer datos la próxima vez antes de que el sector número 3 cruce el cabezal . En este momento, el disco continúa girando y el sector No. 3 pasa debajo del cabezal magnético. En este momento, el cabezal magnético también puede leer con éxito los datos en el sector No. 3.

prueba

  • Tres pasos móviles : ① Primero, muévase a la posición inicial del disco No. 2 y prepárese para comenzar a leer datos. ②Lea el sector No. 2. ③ Procesamiento de tiempo de datos del sector No. 2.

Efecto : utilizando la estrategia de numeración alterna, el tiempo de retraso se puede reducir considerablemente. Es decir, permitir que los sectores lógicamente adyacentes tengan un cierto intervalo físico puede reducir el tiempo de retardo necesario para leer sectores lógicos consecutivos.

  • Punto para ahorrar tiempo: Después de leer el sector No. 2 y luego leer el sector No. 3, debido a que el cabezal magnético aún no está listo, el disco necesita girar una vez más antes de poder continuar leyendo el sector No. 3. Usando numeración alterna Puede dejar tiempo para que el disco gire una vez y se reposicione.

3.3.3 Diseño de estructura de direcciones de disco

(número de disco, número de cilindro, número de sector) ¿diseño binario y el número de rotaciones necesarias para leer un círculo de datos?

Diseño binario de (número de disco, número de cilindro, número de sector)

Supongamos que un disco tiene 8 cilindros/pistas (asumiendo que el número de cilindro/pista más interno es 0), 4 superficies de disco y 8 sectores. ¿Cuántos bits se utilizan para representar cada uno?

  • Luego se pueden usar 3 dígitos binarios para representar el cilindro, 2 dígitos binarios pueden representar la superficie del disco y 3 dígitos binarios pueden representar el sector.

A continuación sólo se muestra una ilustración del disco:

imagen-20230722122708889

El número de vueltas necesarias para leer un círculo de datos.

En primer lugar, dejemos claro ¿cuántas vueltas necesitamos realmente rotar para el círculo interno de datos?

  • Se necesitan dos turnos para leer un círculo completo de datos.

Explicación : De acuerdo con nuestro plan anterior para reducir el tiempo de retraso en el Capítulo 3.3.2, solo podemos leer los sectores 0, 1, 2 y 3 en una rotación real, y leer 4, 5, 6 y 7 en la segunda rotación. .sectores.

  • Lógicamente continuo, físicamente discontinuo.

prueba


¿Por qué no utilizar la estructura de (número de disco, número de cilindro, número de sector)?

Pregunta : Supongamos que un disco tiene 8 cilindros/pistas (asumiendo que el número de pista/cilindro más interno es 0), 4 superficies de disco y 8 sectores. Se pueden usar 3 bits binarios para representar el cilindro y 2 bits binarios para representar la superficie del disco. , 3 bits binarios representan sectores.

Requisito : ¿Qué sucede si la estructura física es (número de disco, número de cilindro, número de sector) y necesita leer continuamente sectores con direcciones físicas (00,000,000)-(00,001,111)?

Entre ellos, para (00,000,000)-(00,000,111), podemos rotarlo dos veces.

Para (00,000,111) - (00,001,000), dado que 001 en el medio se transfiere al cilindro número 1, el cabezal magnético se moverá en este momento. ¡Este movimiento del cabezal magnético tomará más tiempo !

prueba

Es decir, si el disco se coloca en el medio, será fácil mover el cabezal cuando se lea continuamente una región de datos (el número cambia en la posición media).


¿Por qué utilizar la estructura de (número de cilindro, número de disco, número de sector)?

Pregunta : Supongamos que un disco tiene 8 cilindros/pistas (asumiendo que el número de pista/cilindro más interno es 0), 4 superficies de disco y 8 sectores. Se pueden usar 3 bits binarios para representar el cilindro y 2 bits binarios para representar la superficie del disco. , 3 bits binarios representan sectores.

Requisito : si la estructura física es (número de cilindro, número de disco, número de sector) y necesita leer continuamente los sectores de la dirección física (00,000,000) - (00,001,111).

En este momento, también estamos leyendo (00,000,000) - (00,001,111). Avanzamos rápidamente al paso clave (00,000,111) - (00,001,000). El 001 en el medio es para seleccionar el disco número 1. La operación que el disco Lo que haremos en este momento es activar el cabezal magnético en el disco No. 1 .

imagen-20230722124340300

Dado que el número de cilindro/número de pista es el mismo, pero el número de superficie del disco es diferente, no es necesario mover el brazo del cabezal y solo se puede activar el cabezal en la superficie del disco adyacente . ¡Este tiempo es mucho menor que el tiempo de mover el cabezal magnético!


Piensa en la diferencia y esencia de estas dos direcciones físicas.

Diferencia :

  • Si se usa (盘面号,柱面号,扇区号), ejecute operaciones consecutivas como 000 00 000 - 000 10 111. Dado que se usa el número de cilindro en el medio, es necesario mover el cabezal, lo que llevará más tiempo. La clave es que este número de cilindro es en medio de todo el binario Es muchas situaciones afectarán todo el movimiento de la cabeza;
  • Si se usa (柱面号,盘面号,扇区号), el cabezal solo se moverá cuando el número superior cambie a 01 000 000 o 10 000 000. Si es como 000 10 111, dado que el número del medio es el número del disco, solo necesita activar el disco correspondiente. head puede comenzar a leer datos, por lo que será mejor que el diseño anterior.

Respuesta : Al leer bloques de disco con direcciones consecutivas, (柱面号,盘面号,扇区号)la estructura de direcciones utilizada puede reducir el tiempo consumido por el movimiento del cabezal.


3.3.4 Método para reducir el tiempo de retraso: Nombres fuera de lugar (señale la causa del problema)

Problema : si se colocan varios discos en la misma posición relativa y tienen el mismo número de sector, el tiempo de retardo aumentará.

Ejemplo : si los discos adyacentes tienen la misma posición relativa y el mismo número de sector, todos los discos girarán juntos.

La primera es leer los datos del sector en la ubicación física (000,00,111), lo que requiere dos rotaciones:

prueba

Después de la segunda ronda de rotación, los datos de la segunda ronda en realidad se procesarán por un corto período de tiempo. Tenga en cuenta que la posición del cabezal magnético se ha movido al sector número 4 en este momento (los cabezales magnéticos son superficies de discos múltiples). girando al mismo tiempo):

prueba

A continuación vamos a leer los datos del sector (000,01,000), en este momento se activará el disco No. 1 para comenzar a leer datos, encontrará que el cabezal actual ya está en la posición del sector No. 4 ( porque antes del procesamiento (Afectado por el tiempo de pérdida de datos del segundo círculo), si desea leer el sector 0 en este momento, debe dar otro giro y moverse a la posición inicial del sector 0. ! !

Se puede adoptar una solución en este momento :错位命名

Solución: Los números de sector correspondientes a diferentes superficies de disco no son los mismos.

Por ejemplo, el disco número 0 actual comienza desde la posición inicial del sector número 0 y el sector número 1 comienza desde la posición inicial del disco número 7.

imagen-20230722130128426

En este punto, repasémoslo nuevamente: después de leer dos rondas y agregar el tiempo para procesar la segunda ronda, ¿hacia dónde girará la cabeza del disco No. 1 en este momento?

prueba

Se puede ver que después de que finalmente se agrega el tiempo de procesamiento de la segunda ronda, el cabezal magnético del disco No. 1 puede moverse exactamente a la posición del disco No. 0 (nombramiento físicamente desalineado) y los datos se pueden leer directamente en esta vez, reduciendo así el tiempo requerido.


Revisión de puntos de conocimiento y puntos de prueba importantes.

imagen-20230722121721556


3.4 Gestión de discos

imagen-20230722132055973


3.4.1 Inicialización del disco

Proceso de inicialización del disco :

imagen-20230722132758562

Paso 1 : realice un formateo de bajo nivel (formateo físico) y divida cada pista del disco en sectores. Las diversas estructuras de datos necesarias para administrar sectores generalmente se almacenan en las partes principal y final, incluidos los códigos de verificación del sector (como paridad uniforme, código de verificación de redundancia cíclica CRC, el código de verificación se usa para verificar Verifique si los datos en el sector tienen errores ).

  • Por lo general, un sector se puede dividir en tres partes: encabezado, área de datos (como el tamaño 512B) y cola.

Paso 2 : Particione el disco y cada partición se compone de varios cilindros (es decir, divididos en las conocidas unidades C, D y E).

imagen-20230722132842121

Paso 3 : realice un formateo lógico y cree un sistema de archivos. Incluyendo la creación del directorio raíz del sistema de archivos y la inicialización de estructuras de datos utilizadas para la gestión del espacio de almacenamiento, como mapas de bits y tablas de particiones libres.

Nota: La división de sectores se realiza durante el formateo de bajo nivel (Paso 1).


3.4.2 Bloque de arranque

Después de que el disco haya sido formateado físicamente, particionado y formateado lógicamente, los datos relacionados con el sistema operativo se pueden escribir en el disco. Este también es un proceso de instalación del sistema operativo por parte de usted mismo. Cuando la computadora está encendida, se necesita un proceso a realizar La serie de trabajos de inicialización incluye la inicialización de la CPU, la inicialización de la memoria y algunos componentes de emergencia, como la inicialización de registros.

Este proceso de inicialización requiere la ejecución de un llamado programa de inicialización, también llamado gestor de arranque . Cuando se enciende la computadora, estos programas en la ROM se leerán y ejecutarán para completar el trabajo de inicialización.

引导块: Cuando se enciende la computadora, se requiere una serie de trabajos de inicialización, que se completan ejecutando el programa de inicialización (cargador de arranque).

imagen-20230722133338852

El gestor de arranque generalmente se almacena en la ROM, que es una memoria de solo lectura. Los datos de la ROM se escriben en la ROM cuando sale de fábrica y no se pueden modificar más adelante.

Nota: La ROM suele estar integrada en la placa base al salir de fábrica.

Hay un problema en este momento: hay algunos problemas al colocar el programa de inicialización (cargador de arranque) en la ROM. Si es necesario actualizar el cargador de arranque, será muy inconveniente porque los datos en la ROM no se pueden cambiar. ¿resuélvelo?

Solución: En realidad, sólo se almacena un pequeño "gestor de arranque" en la ROM. El cargador de arranque completo se colocará en el bloque de arranque (es decir, bloque de arranque/partición de arranque) del disco, y el bloque de arranque se ubicará en una ubicación fija del disco.

imagen-20230722133916336

Proceso de ejecución : Cuando la computadora está encendida, primero ejecutará el cargador de arranque en la ROM. Durante el proceso de ejecución del cargador de arranque, la CPU puede encontrar el bloque de arranque y luego leer la memoria completa del "cargador de arranque" y se completa la inicialización. .

Beneficio : Actualizar el gestor de arranque resulta muy conveniente.

**Disco de arranque (disco del sistema, unidad C:): **Un disco con una partición de arranque (bloque de arranque).


3.4.3 Gestión de bloques defectuosos del disco (dos métodos)

坏块: Se refiere a los sectores que están dañados y no se pueden usar normalmente son "bloques defectuosos". Es un fallo de hardware que el sistema operativo no puede reparar, por lo que se deben marcar los bloques defectuosos para evitar que se utilicen incorrectamente. Los bloques defectuosos ya no se asignan a ningún archivo.

Generalmente hay dos formas de gestionar bloques defectuosos : marcarlos en la tabla FAT y mantener una lista vinculada de bloques defectuosos.


Método 1: indicación de la tabla FAT

Estrategia : para discos simples, puede verificar todo el disco en busca de bloques defectuosos durante el formateo lógico (al crear un sistema de archivos) e indicar qué sectores son sectores defectuosos, por ejemplo, en la tabla FAT.

Si es transparente para el sistema operativo : no transparente para el sistema operativo.


Método 2: mantener la lista de bloqueo incorrecto

Estrategia : para discos complejos, el controlador de disco mantiene una lista de bloques defectuosos. Cuando el disco se formatea de bajo nivel (formateo físico) antes de salir de fábrica, se inicializa el enlace rápido.

  • 磁盘控制器: Se refiere a un componente de hardware dentro del dispositivo de disco.

Para algunos bloques defectuosos, en este momento se reservarán algunos "sectores de repuesto" para reemplazar los bloques defectuosos. Este esquema se llama ahorro de sector.

imagen-20230722135129933

  • El círculo más externo es el sector libre y la parte roja es el sector defectuoso.

Ya sea para ser transparente para el sistema operativo : Transparente para el sistema operativo.


Revisión de puntos de conocimiento y puntos de prueba importantes.

imagen-20230722135216764


3.5 Unidad de estado sólido SSD

Nuevo esquema:

imagen-20230722135731978

Las características del examen de opción múltiple se enumeran en el siguiente mapa mental:

imagen-20230722135815181


3.5.1 Disco duro mecánico VS disco de estado sólido

Los discos duros mecánicos almacenan datos basados ​​en sustancias magnéticas en la pequeña superficie del disco para registrar ceros y unos binarios; los medios de almacenamiento de disco duro de estado sólido se basan en tecnología de memoria flash (lo mismo ocurre con las unidades flash USB).

imagen-20230611153538957

  • Los bloques negros de la unidad de estado sólido son chips de memoria flash.

3.5.2 Composición de la unidad de estado sólido

La dirección lógica se envía a través del bus IO y luego se asigna a la dirección física correspondiente a través de la capa de traducción de la memoria flash, que realiza el trabajo de conversión de direcciones.

imagen-20230611153610464

Luego profundice en la estructura interna del chip de memoria flash. Un chip de memoria flash se compone de varios bloques de datos y el tamaño de un bloque oscila entre 16 KB y 512 KB.

imagen-20230611153622378

Cada bloque se puede dividir en páginas, cada tamaño de página es 512B-4KB.

imagen-20230611153632294

Nota: El sistema lee y escribe la unidad de estado sólido en páginas. Leer/escribir una página a la vez.

  • Si es un disco, entonces una lectura y escritura corresponde a un bloque o sector. Una página de una unidad de estado sólido equivale a un sector de un disco. Un bloque de una unidad de estado sólido equivale a una pista. Una pista contiene múltiples sectores.

3.5.3 Características de lectura/escritura

imagen-20230611153946746

Para una de las características : la unidad de estado sólido se borrará en unidades de bloques. Cada página del bloque borrado se puede escribir una vez y leer ilimitadamente.

Si se escriben varias páginas primero en un bloque, no se permite modificar esas páginas a menos que se borre todo el bloque antes de poder reescribirlo.

¿Qué pasa si solo quiero reescribir una página? ¿Tengo que borrar toda la página? De hecho, la unidad de estado sólido escribirá las páginas especificadas excepto esa página en otros bloques, es decir, primero las copiará en otro bloque, luego escribirá la nueva página en otro bloque y luego borrará el bloque original.

  • En este momento, la capa de traducción flash reasignará la dirección lógica especificada a una nueva dirección física, que es el nuevo bloque.

imagen-20230611154008828

Debido a esta característica, las unidades de estado sólido leen rápidamente pero escriben lentamente.


3.5.4 Tecnología de nivelación del desgaste

En cuanto a la diferencia entre el posicionamiento de los discos duros mecánicos y los discos duros de estado sólido : los discos duros de estado sólido se posicionan rápidamente a través de circuitos; los discos duros mecánicos giran a través de brazos magnéticos en movimiento.

  • Las unidades de estado sólido admiten el acceso aleatorio y el acceso a cualquier dirección lleva el mismo tiempo. Si la dirección física del disco duro mecánico está lejos del brazo magnético, es necesario moverlo y girarlo.

Desventajas de las unidades de estado sólido : si un bloque se borra y reescribe con frecuencia, provocará daños.

imagen-20230611154044100

Según esta deficiencia, existe una solución: la tecnología de nivelación del desgaste . Se trata de encontrar una manera de distribuir uniformemente los borrados en cada bloque para mejorar la vida útil. Para bloques de datos con más lecturas y menos escrituras, los datos se pueden migrar a bloques más antiguos. La razón principal es que si lees más y escribes menos, habrá menos necesidad de borrar.

  • Supervisará cuántas veces se lee/escribe cada bloque en segundo plano y realizará la migración adecuada en función de las necesidades reales.

Extensión: vida útil de SSD

imagen-20230611154109269


Resumir

imagen-20230722135815181


Organizado por: Long Road Time: 2023.7.19-22

Supongo que te gusta

Origin blog.csdn.net/cl939974883/article/details/131854613
Recomendado
Clasificación