Sistema operativo 5 - sistema de entrada y salida

Esta serie de blogs se enfoca en clasificar el contenido central del curso de sistema operativo de la Universidad de Shenzhen y la bibliografía "Sistema operativo de la computadora" (si tiene alguna pregunta, discuta y señale en el área de comentarios, o contácteme directamente por mensaje privado).


 

sinopsis

Este blog presenta principalmente el conocimiento relevante del sistema de entrada y salida en el Capítulo 6 del sistema operativo.

Tabla de contenido

1. Sistema de E/S (entrada/salida)

1. Información general

2. Dispositivos de E/S y controladores de dispositivos

3. Ruta de E/S

4. Método de control de E/S

2. Gestión de búfer

3. Asignación de equipos

4. Software de E/S a nivel de usuario - Sistema de spooling

5. Gestión de almacenamiento en disco

1. Información general

1.1 Estructura y datos

1.2 Tiempo de acceso al disco

2. Algoritmo de programación de disco

2.1 Por orden de llegada (FCFS)

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

2.3 Algoritmo de programación de escaneo (SCAN)

2.4 Algoritmo de programación de exploración cíclica (CSCAN)

2.5 Ejemplo de algoritmo de programación de disco

3. Conocimientos adicionales


1. Sistema de E/S (entrada/salida)

Los objetos principales de la administración del sistema del sistema de entrada/salida (Entrada/salida) son los dispositivos de E/S y los controladores de dispositivos correspondientes. La función principal es completar las solicitudes de E/S realizadas por los usuarios, aumentar la tasa de E/S y mejorar la utilización de dispositivos .

1. Información general

El software de E/S implica una amplia gama de aspectos. Está estrechamente relacionado con el hardware hacia abajo e interactúa directamente con el sistema de archivos, el sistema de memoria virtual y los usuarios hacia arriba. La solución principal actual es un sistema de E/S jerárquico, que utiliza servicios de nivel para completar la entrada Subfunciones que exportan funciones y brindan servicios a las capas superiores .

Entre ellos, la vista jerárquica de cada módulo del sistema de E/S es la siguiente:

2. Dispositivos de E/S y controladores de dispositivos

Los dispositivos de E/S generalmente se componen de partes mecánicas que realizan operaciones de E/S y componentes electrónicos que realizan control de E/S. El primero es un dispositivo de E/S y el segundo es un controlador o adaptador de dispositivo . Los controladores en microcomputadoras y minicomputadoras a menudo se fabrican en forma de tarjetas de circuito impreso, por lo que a menudo se denominan tarjetas de control, tarjetas de interfaz o tarjetas de red, que se pueden insertar en la ranura de expansión de la computadora. En algunos sistemas informáticos grandes y medianos, también se configuran canales de E/S o procesadores de E/S.

Hay muchas clasificaciones de dispositivos de E/S, tales como:

  • Clasificado por características de uso: ①Dispositivo de almacenamiento (memoria externa: gran capacidad, baja velocidad) ②Dispositivo de E/S (entrada/salida/dispositivo interactivo, teclado, mouse, escáner/pantalla)
  • Clasificados por tasa de transmisión: ① equipo de baja velocidad ② equipo de velocidad media ③ equipo de alta velocidad 

Por lo general, los dispositivos no se comunican directamente con la CPU, sino a través de un controlador de dispositivos.

La función principal del controlador de dispositivos es controlar uno o más dispositivos de E/S y facilitar el intercambio de datos entre los dispositivos de E/S y la computadora (CPU) . El controlador de dispositivo consta de lo siguiente:

3. Ruta de E/S

Aunque el controlador de dispositivo se agrega entre la CPU y el dispositivo de E/S, la intervención de la CPU en la E/S se puede reducir considerablemente, pero cuando el host está configurado con muchos periféricos, la carga de la CPU sigue siendo pesada. Por esta razón, se agrega un canal de E/S (I/O Channel) entre la CPU y el controlador de dispositivo. Su objetivo principal es establecer operaciones de E/S independientes.

El canal de E/S es un procesador especial que tiene la capacidad de ejecutar instrucciones de E/S y controla la operación de E/S mediante la ejecución del programa del canal (E/S) .

1. El tipo de instrucción es único, principalmente limitado a instrucciones relacionadas con operaciones de E/S

2. Sin su propia memoria, el programa del canal se coloca en la memoria del host

Por lo tanto, habrá un problema de "cuello de botella" en el canal de E / S. El alto precio del canal conduce a un número pequeño, lo que limita la operación de E / S y reduce el rendimiento del sistema . Como se muestra en la figura a continuación, para iniciar el dispositivo 4, es necesario iniciar el canal 1 y el controlador 2. Si ya está ocupado por otros dispositivos, no podrá iniciarse. 

La solución principal es un sistema de E/S multicanal , de la siguiente manera:

No solo resuelve el problema del "cuello de botella", sino que también mejora la confiabilidad del sistema.

4. Método de control de E/S

Para el método de control de dispositivos de E/S, el proceso de desarrollo es principalmente desde programas de sondeo hasta interrupciones, controladores DMA y canales . El objetivo principal del desarrollo es reducir la intervención del host en el control de E/S para que pueda completar más tareas de procesamiento de datos .

  • Modo de E/S programable de sondeo: al ingresar y salir, el bit de estado ocupado se establece en 1 y la prueba se completa en un ciclo continuo, lo que resulta en una gran pérdida de CPU.
  • Modo de E/S programable que utiliza interrupciones: la CPU y los dispositivos de E/S funcionan en paralelo, y la CPU dedica una pequeña cantidad de tiempo a interrumpir cada vez después de ingresar datos.
  • Modo de acceso directo a memoria: El modo I/O interrumpido se interviene en unidades de bytes (bytes), lo cual es sumamente ineficiente para dispositivos de bloque. Por lo tanto, se introduce el controlador DMA y la composición es la siguiente:

  • Método de control del canal de E/S: reduce la intervención de lectura y escritura en un bloque de datos a la intervención de lectura y escritura en un grupo de bloques de datos.  

La implementación central del método de control del canal de E/S es completar el control de los dispositivos de E/S a través del programa del canal. El programa del canal generalmente incluye la siguiente información:

(1) Operación: leer, escribir (2) P: Bit final de canal: P=1 significa que este comando es el último comando del programa del canal (3) R: Bit final de grabación: R=1 significa que este es el último comando para procesar un determinado registro Una instrucción (4) Contar: Indica el número de bytes que leerá y escribirá esta instrucción (5) Dirección de memoria: Indica la primera dirección donde se envían los caracteres a la memoria

El ejemplo anterior contiene tres registros, 1-3 instrucciones son un registro, 4 es uno y 5-6 es uno (ver R).

2. Gestión de búfer

En los sistemas operativos modernos, casi todos los dispositivos de E/S utilizan un búfer cuando intercambian datos con la CPU. Es esencialmente un área de almacenamiento, generalmente compuesta por registros de hardware o memoria (más comúnmente). 

Las principales razones para la introducción del almacenamiento en búfer son las siguientes:

  • Alivie el desajuste de velocidad entre la CPU y los dispositivos de E/S: los productores pueden enviar datos a los búferes sin esperar a que los consumidores estén listos
  • Reduzca la frecuencia de interrupción de la CPU y relaje la restricción en el tiempo de respuesta de interrupción de la CPU. En el siguiente ejemplo, para (a) interrumpir y responder una vez cada 100 us, (b) la frecuencia de interrupción se puede reducir a 1/8, y ( c) se puede Reducir el tiempo de respuesta a 1/8

  • Mayor paralelismo entre la CPU y los dispositivos de E/S

1. Búfer único: 

Una solicitud de E/S, un búfer

Ciclo de ejecución: Máx. (C, T) + M

2. Doble búfer: 

Si el consumidor no toma los datos del búfer, el productor no puede ingresar los nuevos datos, por lo que se introduce un búfer doble.

Ciclo de funcionamiento: Max(C+M, T)

C+M<T: el host es rápido, el host espera y el disco ingresa continuamente

3. Asignación de equipos

Para realizar la asignación de equipos exclusivos, el sistema debe configurar la estructura de datos correspondiente—— Tabla de control de dispositivos (DCT) .

La comparación entre la tabla de control del controlador, la tabla de control de canales y la tabla de equipos del sistema es la siguiente:

El proceso de asignación de dispositivos para un sistema de un solo canal es el siguiente:

4. Software de E/S a nivel de usuario - Sistema de spooling

En el software de E/S de nivel de usuario, se requiere un sistema de spooling que se ejecute completamente fuera del kernel. A través del sistema de spooling (tecnología), un dispositivo de E/S físico puede virtualizarse en múltiples dispositivos de E/S lógicos, que pueden ser compartidos por múltiples usuarios

El núcleo de la tecnología SPOOLing son dos procesos en el sistema que son responsables de la E/S, simulando la función de los periféricos de E/S y realizando entradas/salidas fuera de línea (falsas).

La composición de su sistema es la siguiente:

1. Pozos de entrada y salida:

Se abrieron dos grandes espacios de almacenamiento en el disco:

  • El pozo de entrada es un disco para simular la entrada fuera de línea, que se utiliza para almacenar la entrada de datos de los dispositivos de E/S.
  • El pozo de salida es un disco para simular la salida fuera de línea, que se utiliza para almacenar los datos de salida del proceso del usuario. 

2. Búfer de entrada y búfer de salida: 

Para aliviar la contradicción entre el desajuste de velocidad entre la CPU y el disco, se abren dos búferes en la memoria: 

  • El búfer de entrada se utiliza para almacenar temporalmente los datos enviados por el dispositivo de entrada antes de enviarlos al pozo de entrada.
  • El búfer de salida se utiliza para almacenar temporalmente los datos enviados por la salida mucho antes de enviarlos al dispositivo de salida.

3. Proceso de entrada SPi y proceso de salida SPo: 

  • El proceso de entrada SPi simula la máquina de control periférico durante la entrada fuera de línea y envía la entrada de datos del usuario desde el dispositivo de entrada al pozo de entrada a través del búfer de entrada.
  • El proceso de salida SPo simula la máquina de control periférico durante la salida fuera de línea y envía los datos de salida requeridos por el usuario desde el pozo de salida al dispositivo de salida a través del búfer de salida

Las características del sistema son las siguientes:

  • Aumentar la velocidad de E/S
  • Transforma dispositivos exclusivos en dispositivos compartidos
  • Función de dispositivo virtual realizada 

5. Gestión de almacenamiento en disco

El almacenamiento en disco es el dispositivo de almacenamiento más importante en un sistema informático, en el que se almacena una gran cantidad de archivos, y la lectura y escritura de archivos implica el acceso al disco.

1. Información general

1.1 Estructura y datos

La estructura del disco es la siguiente:

1. La composición del disco:

  • Un disco se compone de varios platos.
  • Cada disco se divide en dos discos.
  • Cada disco se divide en varias pistas (círculos concéntricos)
  • Cada pista se divide en varios sectores.

2: Direccionamiento del disco: cabeza - cilindro - sector

  • Cabeza Cabeza: la parte delantera o trasera del primer disco
  • Cilindro Cilindro: qué pista
  • Sector: el número de partición en la pista 

La estructura de datos del sector (Sector) es la siguiente, e incluye principalmente (1) campo de identificador (Campo de ID), (2) campo de datos (Campo de datos)

Hay dos tipos de discos:

  • Los discos de cabezal fijo tienen un cabezal de lectura/escritura por pista , todos montados en un brazo rígido. Lectura/escritura paralela de cabeza magnética, velocidad de E/S rápida, utilizada para disco de gran capacidad
  • Disco de cabeza móvil, cada disco está equipado con una sola cabeza , la cabeza puede moverse para buscar. La velocidad de E/S es lenta, la estructura es simple y se usa ampliamente en dispositivos de disco pequeños y medianos 

1.2 Tiempo de acceso al disco

Para leer o escribir, el cabezal magnético debe moverse a la pista especificada y esperar a que el sector especificado gire debajo del cabezal magnético y luego leer o escribir datos, por lo que el tiempo de acceso al disco se puede dividir en tres partes:

1. Tiempo de búsqueda Ts: el tiempo para que la cabeza se mueva a la pista especificada

La suma del tiempo de inicio s del brazo magnético y el tiempo que tarda la cabeza en moverse n pistas             

Ts=m×n+s

Consejos: m es una constante, que está relacionada con la velocidad de la unidad de disco. Para discos generales, m = 0.2; para discos de alta velocidad, m≤0.1. El tiempo de arranque s del brazo magnético es de aproximadamente 2 ms . Tiempo de búsqueda general 5~30 ms

2. Tiempo de retardo de rotación Tτ: el tiempo que tarda el sector en moverse por debajo de la cabeza magnética

Disco duro de 5400 rpm, es decir, 5400 r/min, cada revolución tarda 11,1 ms y el tiempo de retardo de rotación medio Tτ es de 5,55 ms

3. Tiempo de transmisión Tt: los datos se leen o se escriben en el disco

Está relacionado con el número de bytes leídos/escritos cada vez b y la velocidad de rotación, r es el número de revoluciones por segundo del disco, N es el número de bytes en una pista 

Si conoce el número de sectores, Tt = 1/r*número de sectores 

4. Tiempo total de acceso Ta:

Cuando el número de bytes leídos/escritos a la vez es equivalente al número de bytes en media pista, el tiempo total:

Consejos: la proporción de tiempo de transmisión es baja 

 ejemplo

Si la velocidad del disco es de 7200 rpm, el tiempo de búsqueda promedio es de 8 ms y cada disco

Sistema operativo: tema de programación del disco_Si la velocidad del disco es de 6000 rpm, cada pista contiene 1000 sectores_blog de real_metrix-blog de CSDN

2. Algoritmo de programación de disco

1. Métodos para mejorar la velocidad de E/S del disco:

Mejore el rendimiento del hardware del disco Use un buen algoritmo de programación para configurar el búfer de alta velocidad del disco

2. Programación de discos:

Los discos son dispositivos compartidos que permiten el acceso de múltiples procesos, por lo que se requieren algoritmos de programación de discos

El objetivo del algoritmo de programación del disco es reducir el tiempo promedio de búsqueda

2.1 Por orden de llegada (FCFS)

Núcleo: Programación según el orden en que el proceso solicita acceder al disco

  • Ventajas: simple, cada solicitud se puede procesar a su vez
  • Desventajas: la distancia de búsqueda promedio es grande

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

Núcleo: basado en el principio de que la pista de acceso es la más cercana a la pista actual (en realidad, programación basada en prioridades)

Consejos: la pista actual es 100 

  • Ventaja: el tiempo promedio de búsqueda es más corto
  • Desventajas: causará "inanición" en algunos procesos, y el cabezal magnético puede permanecer en la misma pista durante mucho tiempo (pegado del brazo magnético)

2.3 Algoritmo de programación de escaneo (SCAN)

Núcleo: De acuerdo con los dos principios de la dirección de movimiento de la cabeza magnética y la distancia más corta entre la pista de acceso y la pista actual

La dirección de movimiento del cabezal magnético es..., hacia afuera, luego hacia adentro, luego hacia afuera, ... siempre repitiéndose. Por ejemplo: el cabezal actual se detiene en la pista 80, y la solicitud de la pista 89 acaba de completarse, lo que indica que la dirección de movimiento de la cabeza magnética es hacia adentro.

Consejos: la pista actual es 100 y la dirección es hacia afuera 

  • Ventajas: no habrá fenómeno de "inanición" del proceso, y el tiempo promedio de búsqueda de acceso es más corto
  • Desventajas: la pista que está cerca de la cabeza pero en la dirección opuesta al movimiento de la cabeza tiene un largo tiempo de espera y la cabeza puede permanecer en la misma pista durante mucho tiempo (pegado del brazo magnético) 

2.4 Algoritmo de programación de exploración cíclica (CSCAN)

Núcleo: después de llegar a la pista más externa, regrese a la pista más pequeña e inicie el algoritmo SCAN

Consejos: la pista actual es 100 y la dirección es hacia afuera  

  • Ventajas: No habrá proceso de "hambre", el tiempo promedio de búsqueda de acceso es más corto y el tiempo de espera más largo es más corto (la mitad) que SCAN
  • Desventaja: la cabeza puede permanecer en la misma pista durante mucho tiempo (pegado del brazo magnético)

2.5 Ejemplo de algoritmo de programación de disco

Existe un sistema de administración de discos, las pistas están numeradas en orden ascendente de adentro hacia afuera, suponiendo que la secuencia de solicitud actual que espera para acceder al disco es: 15, 10, 30, 150, 190, 80, 95, 40, 140, 20 El cabezal actual está detenido en la pista 90, y el acceso a la pista 93 acaba de completarse antes. Utilice los algoritmos FCFS, SSTF, SCAN y CSCAN respectivamente para encontrar la secuencia de programación y la distancia de búsqueda promedio de cada algoritmo

Sistema operativo: use los algoritmos FCFS, SSTF, SCAN y CSCAN para calcular la longitud de búsqueda total y los ejemplos de longitud de búsqueda promedio (detallados): se busca programador

FCFS, SSTF, SCAN, CSCAN_scan Algoritmo Ejemplo Explicación del algoritmo de programación de disco del sistema operativo

3. Conocimientos adicionales

1. Caché de disco:

Use el espacio de almacenamiento en la memoria para almacenar temporalmente la información en una serie de bloques de disco leídos desde el disco.

Una caché es un conjunto de bloques de disco que lógicamente pertenecen al disco pero residen físicamente en la memoria.

2. Dos formas de caché en la memoria:

Abra un espacio de almacenamiento separado en la memoria como caché de disco, su tamaño es fijo, no se ve afectado por la cantidad de aplicaciones

Convierta todo el espacio de memoria no utilizado en un grupo de búfer compartido por el sistema de paginación de solicitudes y la memoria caché del disco

3. Otras formas de aumentar la velocidad del disco:

Lectura anticipada: de acuerdo con el principio de localidad, lea los bloques de disco adyacentes en la memoria con anticipación, como la estrategia de paginación previa

Escritura retrasada: las páginas modificadas no se vuelven a escribir en el disco de inmediato, y se acumula una cierta cantidad para volver a escribir de una vez, lo que reduce la cantidad de operaciones de E/S.

Optimizar la distribución de bloques físicos: los bloques físicos de un mismo archivo deben estar concentrados tanto como sea posible

Disco virtual: use espacio de memoria u otros medios de almacenamiento para emular discos, como discos duros de memoria y discos de estado sólido

Supongo que te gusta

Origin blog.csdn.net/weixin_51426083/article/details/131458085
Recomendado
Clasificación