Sistemas operativos modernos
10.5.1 Conceptos fundamentales Al igual que todas las computadoras, las que ejecutan UNIX están conectadas a dispositivos de E7S como discos, impresoras y redes. Se necesita algún mecanismo para que los programas tengan ac ceso a estos dispositivos. Aunque pueden usarse varias soluciones, la de UNIX consiste en integrar los dispositivos al sistema de archivos en forma de archivos especiales. A cada dispositivo de E7S se le asigna un nombre de ruta, por lo regular dentro del d i r e c t o r i o P o r ejemplo, un disco po dría ser /dev/hdl, una impresora podría ser/devAp y la red podría stv /dev/net. El acceso a estos archivos especiales es igual que a cualquier otro archivo. No se necesi tan comandos ni llamadas especiales al sistema. Las llamadas al sistema read y write son más que suficientes. Por ejemplo, el comando Cp archivo/dev/lp copia archivo a la impresora, o sea que lo imprime (suponiendo que el usuario tenga permiso de acceso a./dev/lp). Los programas pueden abrir, leer y escribir archivos especiales igual que hacen con los archivos normales. De hecho, cp en el ejemplo anterior ni siquiera sabe que es tá imprimiendo. Así, no se necesita un mecanismo especial para efectuar E/S. Los archivos especiales se dividen en dos categorías: de bloques y de caracteres. Un ar chivo especial de bloques consta de una sucesión de bloques numerados. La propiedad clave de este tipo de archivos es que puede tenerse acceso a cada bloque y direccionarlo en forma in dividual. Dicho de otro modo, un programa puede abrir un archivo especial de bloques y leer, digamos, el bloque 124 sin tener que leer primero los bloques del Oal 123. Por lo general, es te tipo de archivos se usa para los discos. Los archivos especiales de caracteres se usan, comúnmente, para dispositivos que gene ran o aceptan un flujo de caracteres. Los teclados, impresoras, redes, ratones, graficadores y casi todos los demás dispositivos de E/S que aceptan o producen datos para las personas, em plean archivos especiales de caracteres. No es posible (y ni siquiera lógico) desplazarse hasta el bloque 124 con un ratón. Cada archivo especial tiene asociado un controlador de dispositivo que se encarga del dis positivo correspondiente. Cada controlador tiene un número de dispositivo principal que sir ve para identificarlo. Si un controlador sirve para varios disposifivos, digamos dos discos del mismo tipo, cada disco tiene un número de dispositivo secundario que lo identifica. Juntos, los números de disposifivo principal y secundario especifican de forma única cada disposifivo de E/S. En unos cuantos casos, un solo controlador opera dos disposifivos estrechamente rela cionados. Por ejemplo, el controlador correspondiente a/dev/tty controla tanto el teclado como la pantalla, que a veces se ven como un solo dispositivo: la terminal. Aunque no es posible tener acceso aleatorio a la mayoría de los archivos especiales de ca racteres, a menudo es necesario controlarlos en formas que no se aplican a los archivos espe ciales de bloques. Por ejemplo consideremos entradas que se teclean y se exhiben en la pantalla. Cuando un usuario comete un error de dedo y quiere borrar el úhimo carácter que te cleó, oprime alguna tecla. Algunas personas prefieren usar la de retroceso, y otras prefieren SUPR. En forma similar, para borrar toda la línea que acaba de teclearse hay muchas conven
RkJQdWJsaXNoZXIy MjI4NDcx