E/S Linux
1 Conceptos fundamentales
Los ordenadores cuyo S.O. es Linux tienen dispositivos de E/S como discos,impresoras, redes… Pero se busca la manera de que los programas puedan acceder a dichos dispositivos. Para ello Linux integra los dispositivos dentro del sistema de archivos, lo que da lugar a los archivos especiales.
A cada dispositivos de E/S se le asignará un nombre de ruta, que se encontrará en /dev. Para poder utilizar estos archivos nos sirven llamadas al sistema como open, ready write. Ejemplo cparchivo /dev/lp (copeia el archivo con nombre archivo a la impresora, por lo tanto lo imprimimos)
Estos archivos especiales los dividimos en 2 categorías:
- Archivo especial de bloques: secuencia de bloques enumerados. Se pueden direccionar y utilizar cada bloque de forma independiente.
- Archivo especial de caracteres: su uso se centra en dispositivos que reciben o envían un flujo de caracteres(teclados, impresoras…)
Cada archivo especial tendrá asociado un driver de dispositivos encargado de manejar dicho dispositivo. Cada driver tiene un número de dispositivo mayor para identificarlo. Si tenemos un driver que acepta varios dispositivos, cada uno de esos dispositivos tendrá un número de dispositivo menor. Ambos números (de disp. Mayor y menor) especifican cada uno de losdispositivos de E/S de una forma única.
2 Redes
Socket: los sockets actúan como interfaz entre los usuarios y la red.
Se pueden crear y destruir de forma dinámica. Cuando se crea se devuelve un descriptor al archivo, que se requiere para poder establecer la conexión. Cada socket admite un tipo de red, que se especificará cuando se crea.
1. Flujo de bytes confiable orientado a conexión: permiteque 2 procesos de distintas máquinas establezcan una canalización entre ellos. Los bytes entran por un extremo y salen por el otro. Se garantiza que todos los bytes enviados llegan y en el mismo orden
2. Flujo de paquetes confiable orientado a conexión: en este caso se preserva los límites de los paquetes.
Si el emisor realiza cinco llamadas separadas a write, cada una de 512 bytes, y elreceptor pide 2560 bytes, con un socket de tipo 1 se devolverán los 2560 sockets al mismo tiempo. Con un socket de tipo 2, sólo se devolverán 512 bytes. Se requieren 4 llamadas para obtener el resto.
3. Transmisión de paquetes desconfiable: este tipo de socket se utiliza para dar acceso al usuario a la red cruda. Será muy útil para las aplicaciones en tiempo real. La ventaja será que habrá unmayor rendimiento.
Al crear un socket uno de los parámetros especifica el protocolo a usar, TCP(Transmission Control Protocol) es el más popular para transmisiones confiables. Mientras que si las transmisiones de flujos de bytes no son confiables usaremos UDP(UserDatagramProtocol)
Una vez que se crean los sockets en el ordenador de destino y origen se puede establecer la conexión, pero antes depoder usar el socket hay que enlazarlo con una dirección.
Cuando la conexión esté establecida un proceso podrá leer y escribir datos mediante el uso de un descriptor de archivo para su socket local. Con la llamada close podemos cerrar la conexión cuando ya no la usemos.
3 Llamadas al sistema de Entrada/Salida en Linux
Cada dispositivo de E/S en Linux tiene asociado un archivo especial.
Lossistemas UNIX tenían una llamada al sistema ioctl, los problemas ocasionados por esta llamada se solucionaron con la llegada de POSIX, pues se dividen las funciones en llamadas a funciones separadas.
En Linux y en los sistemas modernos UNIX dependerá de la implementación si cada una de estas acciones es una llamada al sistema separada, o si comparten una sola llamada al sistema.
4...
Regístrate para leer el documento completo.