Sistemas operativos modernos

puede informar. En este libro nos ocupamos de la programación de los dispositivos de E/S, no de su diseño, construcción ni mantenimiento, por lo que nuestro interés se limitará a la forma de programar el hardware, dejando a un lado su funcionamiento interno. No obstante, la programación de muchos dispositivos de E/S suele estar íntimamente ligada con su ope­ ración interna. En las tres secciones que siguen proporcionaremos algunos antecedentes ge­ nerales del hardware de E/S y su relación con la programación. Podríamos considerarlas como un repaso y expansión del material introductorio de la sección 1.4. 5.1.1 Dispositivos de E/S Los dispositivos de E/S pueden dividirse a grandes rasgos en dos categorías: dispositivos de bloques y dispositivos de caracteres. Un dispositivo de bloques almacena información en blo­ ques de tamaño fijo, cada uno con su propia dirección. Los tamaños de bloque comunes van desde 512 bytes hasta 32,768 bytes. La propiedad fundamental de un dispositivo de bloques consiste en que es posible leer o escribir cada bloque con independencia de todos los demás. Los discos son los dispositivos de bloques más comunes. Si examinamos de cerca esta definición, veremos que no es nítida la frontera entre los dispo­ sitivos que son direccionables por bloques y los que no lo son. Todo mundo coincide en que un disco es un dispositivo direccionable por bloques porque, sin importar la posición actual del bra­ zo, siempre es posible desplazarlo a otro cilindro y luego esperar a que el bloque requerido gire hasta colocarse bajo la cabeza. Consideremos ahora una unidad de cinta empleada para hacer res­ paldos de disco. Las cintas contienen una sucesión de bloques. Si se emite un comando para que a la unidad de cinta lea el bloque N, dicha unidad siempre podrá rebobinar y adelantar la cinta hasta llegar al bloque N. Esta operación es análoga al desplazamiento del brazo de un disco, só­ lo que tarda mucho más. Asimismo, podría reescribir o no un bloque que esté en medio de una cinta. Incluso si fuera posible usar cintas como dispositivos de bloques de acceso aleatorio, no es así como se usan generalmente. El otro tipo de dispositivo de E/S es el dispositivo de caracteres. Un dispositivo de este tipo suministra o acepta un flujo de caracteres sin estructurarlos en bloques; no es direccionable ni tiene una operación de desplazamiento. Las impresoras, interfaces de red, ratones (para apun­ tar), ratas (para experimentos en laboratorios de psicología), y casi todos los demás dispositi­ vos que no son tipo disco, pueden considerarse como dispositivos de caracteres. Este esquema de clasificación no es perfecto. Algunos dispositivos simplemente no encajan. Por ejemplo, los relojes no son direccionables por bloques, pero tampoco generan o aceptan flu­ jos de caracteres; lo único que hacen es producir interrupciones a intervalos bien definidos. Las pantallas con mapas de memoria tampoco se ajustan bien al modelo. No obstante, el modelo de dispositivos de bloques y de caracteres es lo bastante general para basamos en él con el propósi­ to de hacer que una parte del software de sistema operativo que se ocupa de E/S sea independien­ te del dispositivo. Por ejemplo, el sistema de archivos, se ocupa sólo de dispositivos abstractos de bloques y le deja la parte que depende del dispositivo al software de nivel más bajo. Los dispositivos de E/S tienen velocidades enormemente diferentes, lo cual obliga al soft­ ware de E/S a tratar de tener un buen desempeño dentro de tasas de datos que cubren varios ór-

RkJQdWJsaXNoZXIy MjI4NDcx