OS E S
Las aplicaciones utilizan los dispositivos (devices) para realizar la I/O (entrada-salida). Estos dispositivos son variados y trabajan de manera diferente: secuencialmente, random; transfieren datos asincrónicamente o sincrónicamente; pueden ser de sólo lectura (read-only) o lectura-escritura (read-write), etc.
El sistema operativo debe permitir que lasaplicaciones puedan utilizar esos dispositivos, proveyendo una interfaz que los presente de la manera más simple posible.
Los dispositivos son una de las partes más lentas de un sistema de cómputo. Por lo tanto, el SO, debe manejar la situación como para salvar esa diferencia de velocidad.
La función de un SO en los sistemas de I/O, es manejar y controlar las operaciones y los dispositivos de I/O.
Laaplicación y la I/O
EL SO debe ofrecer al resto del sistema una interface standard, simple y uniforme para el uso de un dispositivo.
La aplicación trata de abrir un archivo de un disco, abstrayéndose del tipo de disco que es. Una interface define un conjunto de funciones estandarizadas que permite la abstracción, el encapsulamiento y la división del software en capas.
Los device drivers sonmódulos del kernel que si bien internamente diferencian entre los distintos tipos de dispositivo, ofrecen al sistema interfaces estándar.
Veamos la estructura en capas de software de la parte del
kernel relacionada con la I/O.
Kernel
Susbsistema de I/O del kernel
Driver SCSI
Driver
del
Driver
del
...........
Driver
del
Driver
del
Driver
teclado
mouse
bus PCI
disketteATAPI
Controller
Controller
Controller
Controller
Controller
Controller
SCSI
del teclado
del mouse
del bus PCI
del diskette
ATAPI
Device SCSI
Device
del
Device
del
Device
del
Device
del
Device
teclado
mouse
bus PCI
diskette
ATAPI
Hardware
Software
La capa correspondiente a device drivers esconde al subsistema de I/O del kernel las diferencias entre los diferentes controladores. De lamisma manera, las llamadas a sistema
(system calls) de I/O son las interfaces entre las aplicaciones y las particularidades del hardware, agrupando éste en unas pocas clases.
Al crear un subsistema de I/O independiente del HW se simplifica la tarea del desarrollador del SO y de los fabricantes del HW.
Consideremos que constantemente se crean nuevos dispositivos de HW y, sin embargo, puedenconectarse rápidamente sin tener que esperar que el desarrollador del SO escriba el código. Esto se logra porque los nuevos dispositivos se adaptan a las interfaces ya existentes.
Diferentes características que tienen los dispositivos
Orientados a carácter o a bloque
Acceso secuencial o random
Sincrónicos o asincronicos
Compartido o dedicado
Diferentes velocidades de operación
Read-Write, ReadOnly, Write Only
El SO esconde algunas de las características propias de cada dispositivo para facilitar el acceso desde las aplicaciones, agrupando los dispositivos en algunos tipos standard.
El SO provee llamdas a sistema (system calls) especiales para acceder a dispositivos tales como el timer y el reloj (clock) que marca la fecha (date). También para el dispositivo gráfico (graphicaldisplay), video y audio.
Las convenciones de acceso incluyen normalmente entrada/salida bloqueante (block I/O), entrada/salida de flujo de caracteres (character-stream I/O), archivo mapeado a memoria (memory mapped file), y sockets de red (network sockets).
La mayoría de los SO proveen llamdas a sistema (system calls) especiales para acceder a los dispositivos desde la aplicación pasándole comandosdirectamente al controlador de dispositivos (device driver). En el caso de UNIX la system call es ioctl. Con ella se puede acceder a cualquier driver sin tener que crear una nueva system call.
ioctl tiene tres argumentos:
Descriptor de archivos:
Relaciona la aplicación con el driver refiriéndose al dispositivo que maneja ese driver.
Identificador del comando a ejecutar
Puntero a una...
Regístrate para leer el documento completo.