Sei sulla pagina 1di 4

Principios de Software de E/S Consiste en organizar el software como una serie de estratos que oculten las caractersticas del

hardware y presente una interfaz sencilla a los usuarios. Es importante resaltar la independencia del dispositivo, el control de errores, y los dispositivos con solo un propsito y dispositivos compartibles por varios usuarios al mismo tiempo. Para lograr esto el software se estructura en 4 niveles: Manejo de Interrupciones. Manejadores de Dispositivos. Software de E/S independiente del dispositivo. Software del Usuario. 1. Manejadores de interrupciones: Es la parte ms oculta de la estructura, cuando se emite un comando y se espera una interrupcin el manejador del dispositivo queda bloqueado. Los procedimientos de interrupciones comienzan con una orden de grabar para salvar los registros del proceso en ejecucin, despus la orden interrupcin llama a un manejador que controla la interrupcin y devuelve el control al proceso cuando se elimina el error o peticin que provoco la interrupcin. 2. Manejadores de dispositivos: Todo el cdigo dependiente del dispositivo se coloca en los controladores de dispositivo. Cada controlador maneja un tipo de dispositivo o, cuando ms, una clase de dispositivos similares. Por ejemplo, podra ser aconsejable tener un solo controlador de terminal, aun si el sistema maneja terminales de distintas marcas, todas con pequeas diferencias. Por otro lado, una terminal mecnica tonta que produce salidas impresas y una terminal inteligente con grficos de mapa de bits y ratn son tan distintas que es preciso usar diferentes controlado en software. En trminos generales, la tarea de un controlador de dispositivo en software es aceptar peticiones abstractas del software independiente del dispositivo que est arriba de l y ver que dichas peticiones sean atendidas. Una peticin tpica sera leer el bloque n. Si el controlador est ocioso en el momento en que llega una peticin, comenzar a atenderla de inmediato, pero si ya est ocupado con otra peticin, normalmente colocar la nueva peticin en una cola de peticiones pendientes que se atendern tan pronto como sea posible. 3. Software de E/S independiente del dispositivo: Aunque una parte del software de E/S es especfica para los dispositivos concretos existentes en el sistema, otras partes son independientes del dispositivo. La frontera exacta entre los drivers y el software independiente del dispositivo depende del sistema (y del dispositivo), porque algunas funciones que podran realizarse con independencia del dispositivo en realidad se llevan a cabo en los drivers por cuestiones de eficiencia u otras razones. Las funciones que se

muestran en la Tabla se realizan tpicamente en el software independiente del dispositivo. Interfaz uniforme con los drivers de los dispositivos Buffering Informar de los errores Asignacin y liberacin de dispositivos dedicados. Proporcionar un tamao de bloque independiente del dispositivo Tabla Funciones del Software de E/S independiente del dispositivo. Interfaz uniforme con los drivers de los dispositivos: La interfaz con los discos, impresoras, teclados, etc., son diferentes para cada caso, cada vez que se aada un nuevo dispositivo al sistema ser preciso modificar el sistema operativo para ese nuevo dispositivo. Un aspecto de esta cuestin es la interfaz entre los drivers de los dispositivos y el resto de sistema operativo. En la Figura 01 se ilustra una situacin en la que cada driver de dispositivo tiene una interfaz diferente con el sistema operativo, lo que significa que las funciones del driver que el sistema puede invocar difieren de un driver a otro. Tambin podra significar que las funciones del ncleo que necesita el driver difieren tambin de un controlador a otro. En conjunto, todo esto significa que la interfaz con cada nuevo driver requiere un elevado nuevo esfuerzo de programacin.

Figura 01
(a) Sin una interfaz estandar con los drivers. (b) Con una interfaz estandar con los drivers.

Buffering: Por varias razones la utilizacin de bferes es otra cuestin importante, tanto para los dispositivos de bloques como para los de caracteres. Para entender una de ellas consideremos un proceso que quiere leer datos desde un mdem. Una posible estrategia para tratar el flujo de caracteres que llegan es hacer que el proceso de usuario realice una llamada al sistema read y se bloquee a la

espera del siguiente carcter. La llegada de cada carcter provoca una interrupcin. La rutina de tratamiento de esa interrupcin entrega el carcter al proceso de usuario, desbloquendolo a continuacin. Despus de dejar el carcter en algn lado, el proceso lee otro carcter y se bloquea de nuevo. Este modelo se ilustra en la Figura 02 (a).

(a) (b) (c) (d)

Figura 02 Entrada sin bfer. Buffering en el espacio del usuario Buffering en el ncleo seguido de copia en el espacio de usuario. Doble Buffering en el ncleo.

En la Figura 02 (b) se ilustra una mejora que consiste en que el proceso de usuario proporciona un bfer de n caracteres en el espacio de usuario y realiza una lectura de n caracteres. La rutina de tratamiento de la interrupcin deja los caracteres que llegan en ese bfer hasta que se llena, momento en el que despierta al proceso de usuario. Un tercer enfoque consiste en crear un bfer dentro del ncleo y hacer que el manejador de la interrupcin deje all los caracteres, como se muestra en la Figura 02 (c). Cuando el bfer se llena, se carga del disco la pgina que contiene el bfer del usuario, si es necesario, y el bfer del ncleo se copia all en una nica operacin. Este esquema es mucho ms eficiente. Despus de que se llene el primer bfer, y mientras se copia al espacio del usuario, se utiliza el segundo bfer, como se muestra en la Figura 02 (d). Cuando se llene el segundo bfer, podr copiarse en el bfer de usuario (suponiendo que el usuario lo pidi). Mientras el segundo bfer se est copiando en el espacio de usuario, el primero puede utilizarse para guardar los nuevos caracteres. De esta manera los dos bferes van alternndose: mientras uno se est copiando en el espacio de usuario, el otro est acumulando las nuevas entradas. Este esquema de utilizacin de bferes se denomina doble buffering.

Informe de errores: Los errores son mucho ms comunes en el contexto de E/S que en otros contextos. Cuando se presentan, el sistema operativo debe solventarlos lo mejor que pueda. Muchos errores son especficos del dispositivo por lo que su tratamiento slo puede llevarlo a cabo el correspondiente driver. No obstante el marco general del tratamiento de los errores es independiente del dispositivo. Una clase particular de errores de E/S es la de los errores de programacin. stos se presentan cuando un proceso solicita algo imposible, como escribir en un dispositivo de entrada (teclado, ratn, escner, etc.) o leer de un dispositivo de salida (impresora, ploter, etc.). Otros errores frecuentes consisten en proporcionar una direccin de bfer u otro parmetro invlido, o en especificar un dispositivo invlido (por ejemplo, el disco 3 cuando el sistema slo tiene dos discos). La medida a tomar ante tales errores es sencilla: devolver un cdigo de error al proceso que efectu la llamada al sistema para hacer E/S. Si el driver no sabe lo que hacer, tendr que comunicar el problema al software independiente del dispositivo. Algunos errores no pueden tratarse de esta manera. Por ejemplo, podra haberse destruido una estructura de datos crucial, como el directorio raz o la lista de bloques libres, y en tal caso, el sistema tendr que mostrar un mensaje de error y detenerse completamente para evitar que el dao se propague. 4. Software del usuario:

Potrebbero piacerti anche