Entenderemos por hardware de E/S como la programación de los dispositivos de entrada y salida. Los dispositivos de E/S se dividen en dos categorías: dispositivos de bloque y dispositivos de caracteres. Los dispositivos de bloque transfieren la información en bloques direccionables de tamaño fijo. Los dispositivos de caracteres aceptan o entregan un flujo de caracteres sin importar la estructura.
Podemos reunir en tres grandes grupos: · Dispositivos de almacenamiento. · Terminales. · Comunicaciones. A su vez los dispositivos se pueden clasificar, atendiendo al tipo de información que manejan y como lo hacen, los siguientes grupos: Dirigidos a bloques. -Tratan la información en bloques de tamaño fijo. Su característica principal es que se puede leer cada bloque como una unidad independiente de las demás (por ejemplo los discos). Dirigidos al carácter. - Entregan o aceptan cadenas de caracteres sin tener en cuenta ninguna estructura prefijada. No son direccionables ni pueden realizar operaciones de búsqueda (por ejemplo un terminal). Dispositivos de almacenamiento. Los dispositivos de almacenamiento son todos aquellos elementos informáticos que se utilizan para almcenar datos del ordenador de una manera temporal o permanente. Estos dispositivos graban la información en en cantidades fijas y con cierto formato conocido como: bloques de control, los cuales tienen una dirección única que identifica a cada bloque, razón por la cual son también llamados como dispositivos de bloque base
Un concepto importante es el de independencia del dispositivo. Esto quiere decir que los archivos deben utilizarse de la misma manera independientemente de si están en un disco duro o en un disco flexible.
Aunque la entrada y salida programada a veces es útil en la mayoría de las operaciones de e/s las interrupciones son inevitables por lo molestas que sean, lo mejor es ocultarlas en las profundidades del sistema operativo, de modo que la parte de este ultimo que tiene conocimiento de ellas sea lo mas reducible posible. La mejor manera de manejar las interrupciones es hacer que el controlador que inicia una operación de E y salida se bloque hasta que la entrada y salida haya terminado y se presente la interrupción. Dicho controlador puede bloquearse ejecutando Down con un semáforo White con la variable de condición o reserve con un mensaje o algo similar.
El proceso del sistema de archivo de minix contiene todo el código de E/S independiente del dispositivo. La frontera exacta entre los controladores y el software independiente del dispositivo depende del sistema (y del dispositivo) porque algunas funciones que podrían efectuarse con la independencia del dispositivo en realidad podrían ejecutarse en controladores Funciones que muestran la independencia: · Interfaz uniforme para controladores de dispositivo · Manejo de búferes · Informe de errores · Asignar y liberar dispositivos dedicados Proveer un tamaño de bloqueo independiente de dispositivos