Principios de entrada y salida de software
Un adecuado software de entrada/salida debe cumplir con varios principios:
Independencia del dispositivo: consiste en poder escribir programas capaces de acceder a cualquier dispositivo de Entrada/Salida sin tener que especificar por adelantado de qué dispositivo se trata.
Nombres uniformes: el nombre del archivo o dispositivo debe ser una cadena o un entero y no depender en absoluto del dispositivo.
Manejo de errores: los errores deben manejarse tan cerca del hardware como sea posible, si un dispositivo descubre un error deberá tratar de corregirlo él mismo si puede, de no ser así, entonces el software deberá tratar de corregirlo.
Transferencias síncronas y asíncronas: las transferencias síncronas son aquellas controladas por bloqueo, las asíncronas son las controladas por interrupciones. Casi toda la E/S física es síncrona y los programas son mucho más fáciles de escribir si las operaciones son bloqueadoras; en este principio el sistema operativo debe hacer que, operaciones que en realidad son controladas por interrupciones, parezcan bloqueadoras desde la perspectiva de los programas del usuario.
Manejo de buffers: es común que los datos que provienen de un dispositivo no puedan almacenarse en forma directa en su destino final sino hasta haber sido manipulados por el sistema operativo. Este principio consiste en almacenar datos en un buffer de salida mediante software, para reducir insuficiencias en el desempeño de los búferes.
Dispositivos compartidos y dedicados: el sistema operativo debe tener la capacidad de manejar dispositivos de forma tal que se eviten problemas como bloqueos.
Fuente: Apuntes de Informática VII de la FCA de la UNAM