Sistemas operativos modernos
La tarjeta de la controladora por lo regular está provista de un conector en el cual puede enchufarse un cable que lleva al dispositivo. Muchas controladoras pueden manejar dos, cua tro o incluso ocho dispositivos idénticos. Si la interfaz entre la controladora y el dispositivo es estándar, ya sea ANSI, IEEE o ISO oficial, o un estándar de facto, las compañías pueden fabri car controladores o dispositivos que se ajusten a esa interfaz. Por ejemplo, muchas compañías producen unidades de disco compatíbles con la interfaz IDE o SCSI. La interfaz entre la controladora y el dispositivo muchas veces es de muy bajo nivel. Por ejemplo, un disco, podría formatearse con 256 sectores de 512 bytes cada uno en cada pista; sin embargo, lo que en realidad sale de la unidad es un flujo de bits en serie que inicia con un preám bulo, luego los 4096 bits de un sector y por último una suma de verificación, también llamada código para corrección de errores (ECC; error-correcting code). El preámbulo se escribe cuan do se formatea el disco, y contiene el número de cilindro y de sector, el tamaño del sector y da tos similares, además de información para sincrorúzación. La tarea de la controladora consiste en convertir el flujo de bits en serie en un bloque de bytes y realizar la corrección de errores que sea necesaria. Lo normal es que primero se arme el bloque de bytes, bit por bit, en un búfer dentro de la controladora. Una vez que se comprue ba su suma de verificación y se le declara sin errores, puede copiarse en la memoria principal. En un nivel igualmente bajo, la controladora de un monitor también opera como un dispo sitivo de bits en serie: lee de la memoria bytes que contienen los caracteres a exhibir y genera las señales que sirven para modular el haz del CRT y hacer que forme la imagen correspondien te en la pantalla. La controladora también genera las señales que hacen que el haz del CRT efec túe un retrazado horizontal al terminar una línea de barrido, así como las que le ordenan efectuar un retrazado vertical una vez que se ha barrido toda la pantalla. Si no fuera por la controladora del CRT, el programador del sistema operativo tendría que programar en forma explícita el ba rrido analógico del cinescopio. Con la controladora, el sistema operativo establece unos cuantos parámetros iniciales, como el número de caracteres o pixeles por línea y el número de líneas de la pantalla, y deja que la controladora se ocupe de dirigir el haz. 5.1.3 E/S con correspondencia en memoria Cada controladora fiene unos cuantos registros que le sirven para comunicarse con la CPU. Al escribir en estos registros, el sistema operativo puede ordenar al dispositivo que suministre o acepte datos, se encienda o apague a sí mismo, o realice alguna otra acción. Al leer de estos re gistros, el sistema operativo puede averiguar en qué estado se encuentra el dispositivo, si está preparado o no para aceptar un nuevo comando, etcétera. Además de los registros de control, muchos dispositivos üenen un búfer de datos que el sistema operativo puede leer y escribir. Por ejemplo, una forma usual para que las computado ras exhiban pixeles en la pantalla es tener una RAM de vídeo, que básicamente es un búfer de datos en el que los programas o el sistema operativo pueden escribir. Es por lo anterior que surge la pregunta de cómo se comunica la CPU con los registros de control y los búferes de datos de los dispositivos. Existen dos alternativas. Con el primer enfo que, a cada registro de control se le asigna un número de puerto de E/S, que es un número en tero de 8 o 16 bits. Utilizando una instrucción especial de E/S como
RkJQdWJsaXNoZXIy MjI4NDcx