[Sistema operativo] dispositivos de E / S

CPU y memoria recursos no son el único sistema operativo que se ha logrado. Dispositivos I / O también tener una interacción estrecha con el sistema operativo. Como se muestra en la figura 1-6, el dispositivo de I / O incluye generalmente dos partes: el controlador de dispositivo y el propio dispositivo. El chip controlador se inserta en una placa de circuito o un grupo de microprocesadores, esta placa de circuito para controlar físicamente dispositivo. Se recibe comandos desde el sistema operativo, por ejemplo, los datos leídos desde el dispositivo, y completa el procesamiento de datos.

En muchos casos, el control de estos dispositivos es muy complejo y específico, por lo que la tarea del controlador es proporcionar una interfaz sencilla para el sistema operativo (pero todavía muy complejo). Por ejemplo, el controlador de disco puede aceptar una orden de lectura desde el disco 2 número de sector 11 206, entonces el controlador del número de sector se convierte en el cilindro lineal, sector y la cabeza. Puesto que el cilindro exterior hay más sectores que el cilindro interior, y un número de sectores defectuosos se ha asignado a otras partes del disco, por lo que esta conversión es muy complejo. controlador de disco debe determinarse en la que el cilindro del brazo de la cabeza, el cilindro y la cabeza número brazo longitudinal envía una serie de impulsos para pasar a la deseada, y luego debe esperar a que el sector correspondiente a la rotación de la cabeza y empieza a leer la siguiente datos, ya que los datos se leen desde la unidad, el bloque de arranque a ser borrado y un cálculo de suma de comprobación. Por último, tenemos los bits binarios de entrada y colocar la memoria de palabras. Con el fin de completar estas tareas, a menudo en el controlador para instalar un pequeño ordenador incorporado, ordenador incorporado que ejecuta el trabajo para la ejecución de estos programas especialmente programado.

Otra parte del dispositivo de I / O es un dispositivo en sí. El dispositivo en sí tiene una interfaz relativamente simple, esto se debe a la interfaz tampoco lo hacen mucho trabajo, y que han sido estandarizado. La normalización es necesaria, por lo que cualquiera de la controladora de disco IDE puede adaptarse a cualquier disco IDE, por ejemplo, representa IDE integrado electrónica de accionamiento (Integrated Drive Electronics), muchos estándar de disco de la computadora. Dado que las interfaces de los dispositivos reales ocultos en el controlador, por lo que el sistema operativo ve es la interfaz al controlador, esta interfaz puede ser muy diferentes dispositivos y interfaces.

Cada tipo de controlador de dispositivo es diferente, por lo que requieren diferentes de control de software. diálogo especial con el controlador de la emisión de un comando y un software de recepción de respuesta llamado un controlador de dispositivo (controlador de dispositivo). Cada fabricantes de controladores deben proporcionar el controlador de dispositivo apropiado para los sistemas operativos compatibles. Por ejemplo, un escáner se puede utilizar con Windows 2000, Windows XP, Vista y controladores de dispositivos para Linux.

Para poder utilizar el controlador de dispositivo, el controlador de dispositivo debe ser cargado en el sistema operativo para que pueda funcionar en modo kernel. Teóricamente, el controlador de dispositivo puede ser ejecutado sobre el núcleo interior, pero casi no posible forma de apoyar este sistema, ya que requiere de una manera controlada se puede permitir el acceso al controlador de dispositivo en el espacio de usuario del dispositivo, que es un poco de apoyo función. Para configurar el controlador de dispositivo en el sistema operativo, hay tres maneras. El primer enfoque es los controladores del núcleo y del dispositivo para re-link, y reinicie el sistema. Muchos sistemas UNIX funcionan de esta manera. Un segundo canal está dispuesto en una entrada del sistema operativo en el archivo y notifica al archivo requiere un controlador de dispositivo, un sistema operativo y una entrada de archivo está establecido, y notifica al archivo requiere un controlador de dispositivo, y luego reiniciar el sistema. Al iniciar el sistema, el sistema operativo para encontrar el controlador de dispositivo necesario y la carga. Ventanas que funcionan de esta manera. La tercera forma es que el sistema operativo es capaz de aceptar nuevos controladores de dispositivos en tiempo de ejecución y tan pronto como se instala, sin necesidad de reiniciar el sistema. De esta manera, menos utilizado, pero este enfoque se está convirtiendo hasta populares. dispositivos de intercambio en caliente, tales como USB y el dispositivo IEEE1394 (explicado más adelante) son dinámicamente controladores de dispositivos que se pueden cargar.

"Cada controlador de dispositivo tiene un pequeño número de registros utilizados para la comunicación. Por ejemplo, un controlador de disco tendrá una dirección de disco mínimo especificado, dirección de memoria, un recuento y la dirección (lectura o escritura) registrarse sector. Para activar el controlador, los controladores de dispositivos obtener un comando del sistema operativo, y luego se traduce en un valor que corresponde al registro y se escribe en el dispositivo. el conjunto de todos los registros de constituir un espacio de puerto del dispositivo de e / S, vamos a discutir el contenido del Capítulo 5.

En algunos equipos, los registros del dispositivo se asignan al espacio de direcciones del sistema operativo (el sistema operativo puede utilizar la dirección), de modo que puedan ser almacenados como una palabra común como leer y escribir. En un ordenador tal, no comando dedicado I / O, el programa de usuario puede ser bloqueado a cabo hardware, para evitar el contacto de estas direcciones de memoria (por ejemplo, utilizando la dirección de base y registros de límite). En otro ordenador, el dispositivo se coloca en un registro dedicado espacio de puertos de E / S, cada registro tiene una dirección de puerto. En estas máquinas, se proporciona específicamente en e instrucciones OUT puede utilizarse en el modo de núcleo, el controlador de dispositivo para su uso a leer y escribir estos registros. El primer método no requiere una especial I / O instrucciones, pero el número de espacio de direcciones ocupado. Este último no ocupa el espacio de direcciones, pero la necesidad de la instrucción especializada. La aplicación de estos dos métodos son muy extensa.

Modo de entrada y de salida de tres. En la forma más simple, el programa de usuario emite una llamada al sistema, el proceso de kernel se traduce en unos correspondientes llamadas de controladores de dispositivos. A continuación, el controlador de dispositivo para iniciar la I / O y de comprobar el dispositivo en un ciclo continuo, para ver si el trabajo del dispositivo o no (por lo general se utiliza para indicar el número de bits en el dispositivo todavía está ocupado). Después del final de la I / O, los datos de controlador de dispositivo al lugar designado (si es necesario), y vuelve. El sistema operativo a continuación, devuelve el control a la persona que llama. Esto se llama un ocupado-wait (espera ocupada), el inconveniente es ocupar CPU, CPU hasta que el dispositivo de sondeo tiene que se complete una operación de E / S correspondiente.

La segunda manera es comenzar el dispositivo y el controlador de dispositivo de modo que el dispositivo envía una interrupción cuando finaliza la operación. Device Driver Rollback en este momento. a continuación, el sistema operativo se hace con el llamante si es necesario y hacer arreglos para otros trabajos. Cuando el controlador de dispositivo detecta la finalización de la operación del dispositivo, se envía se complete una operación de notificación de interrupción.

En el sistema operativo, la interrupción es muy importante, por lo que la necesidad de una discusión más detallada. En la Fig. 1-11a, hay un proceso de tres pasos de I / O. En el paso 1, los controladores de dispositivos se registren por escrito a notificar al dispositivo controlador de dispositivo de qué hacer. A continuación, el controlador de dispositivo para iniciar el dispositivo. Cuando se complete la transferencia del controlador de dispositivo es informado de que el número de bytes para ser leído, que utiliza una señal de bus particular, en el paso 2 del chip controlador de interrupciones. Si el controlador de interrupciones está listo para recibir interrupción (si está ocupado con un mayor nivel de interrupción, no puede recibir), se declaró en un chip de CPU pin, que es el tercer paso. En el paso 4, el número de controlador de interrupción del dispositivo en el bus, por lo que la CPU puede leer autobús y saber qué dispositivo tiene solo trabajo terminado (probablemente al mismo tiempo, hay muchos dispositivos que ejecutan).

Una vez que la CPU decide tomar una interrupción, el contador de programa, y ​​típicamente se presionan en la PSW en curso a la pila, y la CPU se conmuta al modo de usuario. El número de dispositivo podría ser una referencia a la parte de la memoria, el dispositivo que se utiliza para encontrar la dirección del manejador de interrupciones. Esta memoria se llama el vector de interrupción (vector de interrupción). Cuando el controlador de interrupción (parte de dispositivos de interrupción del controlador de dispositivo) se inicia, que se elimine el contador de programa y PSW se insertan en la pila, y lo guarda, y luego consultar el estado del dispositivo. Una vez completado el manejador de interrupciones, que vuelve a la cabeza de un programa de usuario comando ejecutado previamente no se ha ejecutado.

La tercera forma es que el I / O usando un acceso directo a memoria especial (acceso directo a memoria, DMA) de chip, que puede ser controlada entre el controlador de memoria y el cierto flujo de bits, sin intervención de la CPU continua. CPU para el conjunto de chips DMA, lo que indica el número de bytes a transmitir, y la dirección de memoria relacionada con el dispositivo y una dirección de funcionamiento, a continuación, iniciar DMA. Cuando se ha completado el chip de DMA, se plantea una interrupción, se procesa como se describe anteriormente. Acerca de DMA y de E / S de hardware será discutido en detalle en el capítulo 5.

Interrumpido a menudo se producen en el momento muy inoportuno, por ejemplo, producido en otro programa de interrupción se está ejecutando. Debido a esto, las interrupciones de CPU hay maneras de apagar y encender de nuevo interrumpido después. Cuando una interrupción se cierra, cualquier dispositivo de interrupción ha sido emitida, puede seguir manteniendo su señal de interrupción, pero la CPU no se interrumpe hasta que la interrupción se activa de nuevo. Si la interrupción está cerrada, hay varios dispositivos emitieron la interrupción, el controlador de interrupciones decidirá qué tratamiento para interrumpir, por lo general en función del avance dado a prioridad estática de cada dispositivo. El equipo de prioridad más alta para ganar la competencia.

Publicados 374 artículos originales · elogios ganado 14 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/LU_ZHAO/article/details/105378210
Recomendado
Clasificación