Sistemas operativos modernos

el sistema operativo es la interfaz con la controladora, que podría ser muy diferente de la in­ terfaz con el dispositivo. Puesto que cada tipo de controladora es distinto, se requiere diferente software para ma­ nejar cada uno. El software que se comunica con una controladora, dándole comandos y acep­ tando respuestas, se denomina controlador de dispositivo. Los fabricantes de controladoras tienen que proporcionar controlador de dispositivo para cada sistema operativo que reconoce. Así, un lector óptico podría venir con controladores de dispositivo para Windows 98, Windows 2000 y UNIX, por ejemplo. Para poder usarlo, debe incluirse el controlador de dispositivo en el sistema operativo pa­ ra que pueda ejecutarse en modo de kernel. En teoría, los controladores de dispositivo pueden ejecutarse fuera del kernel, pero pocos sistemas modernos consideran esa posibilidad porque requiere que un controlador del espacio del usuario pueda tener acceso al dispositivo en for­ ma controlada, función que pocas veces se tiene. Hay tres formas de colocar el controlador de dispositivo en el kernel. La primera consiste en reenlazar el kernel con el nuevo controlador de dispositivo y luego reiniciar el sistema. Muchos sistemas UNIX funcionan así. La segunda manera consiste en incluir una entrada en un archivo del sistema operativo para indicarle a és­ te que necesita el controlador de dispositivo, y luego reiniciar el sistema. En el momento del arranque, el sistema operativo busca los controladores de dispositivo que necesita y los carga. Windows funciona así. La tercera manera es que el sistema operativo pueda aceptar controladores de dispositivo nuevos mientras está ejecutando y los instale sobre la marcha sin tener que reiniciar la computadora. Esto solía ser muy poco común pero se está popularizando. Los dispositivos que permiten la conexión en funcionamiento, como los USB e IEEE 1394 (que trataremos más ade­ lante) siempre necesitan controladores de dispositivo que se cargan en forma dinámica. Toda controladora tiene unos cuantos registros que sirven para comunicarse con ella. Por ejemplo, una controladora de disco mínimo podría tener registros para especificar la dirección en disco, la dirección en memoria, el número de sectores y el sentido (lectura o escritura). Para ac­ tivar la controladora, el controlador de dispositivo recibe un comando del sistema operativo y lo traduce a los valores apropiados que debe escribir en los registros del dispositivo. En algunas computadoras, los registros del dispositivo tienen una correspondencia con el es­ pacio de direcciones del sistema operativo, de modo que pueden leerse y escribirse como si fue­ ran palabras de memoria ordinarias. En tales computadoras no se necesitan instrucciones de E/S especiales, y los programas de usuario pueden aislarse del hardware con sólo colocar esas direc­ ciones de memoria fuera de su alcance (por ejemplo, utilizando registros base y límite). En otras computadoras, los registros de dispositivo se colocan en un espacio de puertos de E/S especial, y cada registro tiene una dirección de puerto. En estas máquinas se cuenta con instrucciones ÍN y OUT especiales en modo de kemel que permiten a los controladores de dispositivo leer y escri­ bir en los registros. El primer esquema elimina la necesidad de instrucciones de E/S especiales pero ocupa una porción del espacio de direcciones. El segundo no consume espacio de direccio­ nes pero requiere instrucciones especiales. Ambos esquemas se utilizan en forma amplia. Las operaciones de entrada y salida pueden ejecutarse de tres maneras distintas. En el mé­ todo más sencillo, un programa de usuario emite una llamada al sistema, que el kemel traduce en una llamada de procedimiento al controlador de dispositivo apropiado. Entonces el contro­ lador de dispositivo inicia la E/S y entra en un ciclo corto que pregunta continuamente al dis-

RkJQdWJsaXNoZXIy MjI4NDcx