PRINCIPIOS DE SOFTWARE DE ENTRADA Y SALIDA Los principios de software en la entrada/salida se resumen en cuatro puntos: el software debe ofrecer

manejadores de interrupciones, manejadores de dispositivos, software que sea independiente de los dispositivos y software para usuarios.

Manejadores de Interrupciones. El primer objetivo referente a los manejadores de interrupciones consiste en que el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas. Desde el punto de vista del proceso o usuario, el sistema simplemente se tardó más o menos en responder a su petición.

Manejadores de Dispositivos. El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos, así como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la información, los medios mecánicos, los niveles de voltaje y otros. Por ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias técnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos.

Software que sea independiente de los dispositivos. Este es un nivel superior de independencia que el ofrecido por los manejadores de dispositivos. Aquí el sistema operativo debe ser capaz, en lo más posible, de ofrecer un conjunto de utilerías para accesar periféricos o programarlos de una manera consistente. Por ejemplo, que para todos los dispositivos orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para posicionarse en ellos.

Software para Usuarios. La mayoría de las rutinas de entrada - salida trabajan en modo privilegiado, o son llamadas al sistema que se ligan a los programas del usuario formando parte de sus aplicaciones y que no le dejan ninguna flexibilidad al usuario en cuanto a la apariencia de los datos. Existen otras librerías en donde el usuario si tiene poder de decisión (por ejemplo la llamada a "printf" en el lenguaje"C"). Otra facilidad ofrecida son las áreas de trabajos encolados (spooling areas), tales como las de impresión y correo electrónico.

Todos los archivos y dispositivos adquieren direcciones de la misma forma. • La programación es más fácil si la e / s es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer. Generalmente el software de e / s se estructura en capas • Manejadores de interrupciones. debe administrar los dispositivos compartidos (ej. • El problema debe ser resuelto por el S.OBJETIVOS DE SOFTWARE DE ENTRADA Y SALIDA Un concepto clave es la independencia del dispositivo: • Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos. se informa a los niveles superiores. sin tener que modificar los programas para cada tipo de dispositivo. Otro aspecto clave son las transferencias síncronas (por bloques) o asíncronas (controlada por interruptores): • La mayoría de la e / s es asíncrona: la CPU inicia la transferencia y realiza otras tareas hasta una interrupción. • Software de S. independiente de los dispositivos. • Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente. Otro aspecto importante del software es el manejo de errores de e / s: • Generalmente los errores deben manejarse lo más cerca posible del hardware. • Software a nivel usuario. es decir mediante el nombre de su ruta de acceso. O. O. .: impresoras). O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. El S.: discos) y los de uso exclusivo (ej. O. • Directivas de dispositivos. También el S. • Solo si los niveles inferiores no pueden resolver el problema. El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo.

-Presentar una interfaz de E/S sencilla.Los objetivos más importantes del software de E/S son: -Ocultar la complejidad del hardware a los procesos que se ejecutan por encima del sistema operativo. de forma que las capas inferiores ocultan la complejidad del hardware a las capas superiores y éstos se encargan de conseguir una interfaz sencilla. Para conseguir estos objetivos se estructura el software de E/S en capas. MANEJADORES DE INTERRUPCIONES Las interrupciones deben ocultarse en el S.: • Cada proceso que inicie una operación de e / s se bloquea hasta que termina la e / s y ocurra la interrupción. MANEJADORES DE INTERRUPCIONES: Su principal objetivo es que el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en que el dispositivo está ocupado y se debe suspender el proceso o sincronizar algunas tareas . O. • El procedimiento de interrupción realiza lo necesario para desbloquear el proceso que lo inicio.

o Verificar si el motor de la unidad funciona. agregara la nueva solicitud a una cola de solicitudes pendientes. o Envía los comandos al controlador al escribir en los registros de dispositivo del mismo. transferirá los datos al software independiente del dispositivo. Cada controlador posee uno o más registros de dispositivos: • Se utilizan para darle los comandos.k. o Al finalizar la operación debe verificar los errores. o Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo. una interrupción lo libera de este bloqueo. Si al recibir una solicitud el manejador está ocupado con otra solicitud. Para un disco. por ej. o Regresa información de estado sobre los errores a quien lo llamó. La labor de un manejador de dispositivos es la de: • Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo. se debe traducir de términos abstractos a términos concretos: • El manejador de disco debe: o Estimar el lugar donde se encuentra en realidad el bloque solicitado. o Verificar si el brazo está colocado en el cilindro adecuado. o Resumiendo: debe decidir cuáles son las operaciones necesarias del controlador y su orden. etc. • Los manejadores de dispositivos proveen estos comandos y verifican su ejecución adecuada. La solicitud de e / s. • Verificar la ejecución de dichas solicitudes.MANEJADORES DE DISPOSITIVOS (drivers) Todo el código que depende de los dispositivos aparece en los manejadores de dispositivos. o Inicia otra solicitud pendiente o queda en espera . o Si todo esta o.

SOFTWARE DE ENTRADA Y SALIDA INDEPENDIENTE DE DISPOSITIVOS Funciones generalmente realizadas por el software independiente del dispositivo: • Interfaz uniforme para los manejadores de dispositivos. • Proporcionar una interfaz uniforme del software a nivel usuario. El software independiente del dispositivo debe: • Ocultar a los niveles superiores los diferentes tamaños de sector de los distintos discos. Un nombre de dispositivo determina de manera única el nodo-i de un archivo especial: • Este nodo-i contiene el número principal del dispositivo. • Proporcionar un tamaño de bloque independiente del dispositivo. • El nodo-i contiene también el número secundario de dispositivo. que se transfiere como parámetro al manejador para determinar la unidad por leer o escribir. • Asignación de espacio en los dispositivos por bloques. • Nombres de los dispositivos. • Informe de errores. • Asignación y liberación de los dispositivos de uso exclusivo. • Uso de buffers. • Proporcionar un tamaño uniforme de los bloques. que se utiliza para localizar el manejador apropiado. • Protección del dispositivo. El software independiente del dispositivo asocia los nombres simbólicos de los dispositivos con el nombre adecuado. Las funciones básicas del software independiente del dispositivo son: • Efectuar las funciones de e / s comunes a todos los dispositivos.: considerar varios sectores físicos como un solo bloque lógico . por ej.

El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramación: • El ejemplo típico lo constituye la impresora de líneas. La biblioteca estándar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario. O. el proceso especial lo toma y transmite. • Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo. son los sistemas de correo electrónico . Un ej. Un esquema similar también es aplicable para la transferencia de archivos entre equipos conectados: • Un usuario coloca un archivo en un directorio de spooling de la red. Una pequeña parte consta de bibliotecas ligadas entre sí con los programas del usuario. Otra categoría importante de software de e / s a nivel usuario es el sistema de spooling. único con permiso para utilizar el archivo especial de la impresora. debe imprimir los archivos en el directorio. • El proceso especial. • Se crea un proceso especial. • Los procesos de usuario no abren el archivo correspondiente a la impresora. • Posteriormente. Para imprimir un archivo: • Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling. • Se crea un directorio de spooling. llamado demonio en algunos sistemas.ESPACIO DEL USUARIO PARA SOFTWARE DE ENTRADA Y SALIDA La mayoría del software de e / s está dentro del S.

es decir mediante el nombre de su ruta de acceso. La programación es más fácil si la entrada/salida es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer. El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo. Todos los archivos y dispositivos adquieren direcciones de la misma forma. Otro aspecto importante del software es el manejo de errores de entrada/salida:    Generalmente los errores deben manejarse lo más cerca posible del hardware. Un concepto clave es la independencia del dispositivo:     Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos. La idea básica es organizar el software como una serie de capas donde: Las capas inferiores se encarguen de ocultar las peculiaridades del hardware a las capas superiores. El problema debe ser resuelto por el S. La programación es más fácil si la entrada/salida es síncrona (por bloques): el programa se suspende automáticamente hasta que los datos estén disponibles en el buffer. Objetivos del Software de Entrada/Salida. Las capas superiores deben presentar una interfaz agradable. se informa a los niveles superiores. Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente.SOFTWARE ENTRADA Y SALIDA Principios de Software de entrada/salida. O. . sin tener que modificar los programas para cada tipo de dispositivo. Solo si los niveles inferiores no pueden resolver el problema. Otro aspecto clave son las transferencias síncronas (por bloques) o asíncronas (controlada por interruptores):     La mayoría de la entrada/salida es asíncrona: la cpu inicia la transferencia y realiza otras tareas hasta una interrupción. limpia y regular a los usuarios. El Sistema Operativo se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario.

. O. Software de S. Directivas de dispositivos.: discos) y los de uso exclusivo (ej. También el Sistema Operativo debe administrar los dispositivos compartidos (ej.: impresoras). Software a nivel usuario. Generalmente el software de entrada/salida se estructura en capas:     Manejadores de interrupciones. independiente de los dispositivos.

Sign up to vote on this title
UsefulNot useful