Sistemas operativos modernos
específico para un disposifivo. Antes de POSIX, casi todos los sistemas tenían una llamada al sis tema iocti que realizaba un gran número de acciones para dispositivos específicos con archivos especiales. Al paso de los años, esto se volvió una maraña. POSIX hizo aseo dividiendo sus fun ciones en varias llamadas distintas que eran primordialmente para la terminal. Que sean llamadas al sistema distintas, que compartan una sola llamada al sistema o que se manejen de algún otro mo do depende de la implementación. Las primeras cuatro que se presentan en la figura 10-20 sirven para establecer y averiguar la velocidad de la terminal. Se proporcionan llamadas distintas para entrada y salida porque al gunos módems operan a velocidad dividida. Por ejemplo, los viejos sistemas videotex permi tían tener acceso a bases de datos públicas con solicitudes cortas del hogar al servidor a 75 bits/s, mientras que las respuestas llegaban a 1200 bits/s. Esta norma se adoptó en una época en la que tener 1200 bits/s en ambas direcciones era demasiado costoso para uso casero. Esta asimetría aún persiste, y algunas compañías telefónicas ofrecen servicio de entrada a 1.5 Mbps y servicio de salida a 384 Kbps, por lo regular con el nombre de Línea Digital Asimétrica de Suscriptor (ADSL; Asymmetric Digital Subscriber Line). Llam ad a a fu nció n D e scrip ció n s = cfsetospeed(&termios, speed) Fija la velocidad de salida s = cfsetispeed(&termios, speed) Fija la velocidad de entrada s = cfgetospeed(&termios, speed) Obtiene la velocidad de salida s = cfqtetispeed(&termios, speed) Obtiene la velocidad de entrada 8 = tcsetattr{fd,ópt, &termios) Establece los atributos 8 = tcgetattr(fd, &termios) Obtiene los atributos Figura 10-20. Principales llamadas POSIX para manejar la terminal. {Speed = velo cidad; opt = opciones; fd = descriptor de archivo.) Las últimas dos llamadas de la lista son para establecer y consultar todos los caracteres es peciales que se usan para borrar caracteres y líneas, interrumpir procesos, etc. Además, habili tan e inhabilitan el eco, manejan el control de flujo y otras funciones relacionadas. Existen más llamadas a funciones de E/S, pero son un tanto especializadas, así que no hablaremos más de ellas. Además, ioctI sigue existiendo en casi todos los sistemas UNIX. 10.5.3 Implementación de entrada/salida en UNIX La E/S en UNIX se implementa con una colección de controladores de dispositivos, uno por tipo de dispositivo. La función de los controladores es aislar el resto del sistema de las pecu liaridades del hardware. Al proporcionar interfaces estándar entre los controladores y el resto del sistema operativo, casi todo el sistema de E/S puede colocarse en la parte del kernel que es independiente de la máquina. Cuando el usuario tiene acceso a un archivo especial, el sistema de archivos determina los nú meros de dispositivo principal y secundario que le pertenecen y si se trata de un archivo especial
RkJQdWJsaXNoZXIy MjI4NDcx