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.

O. • Software de S. • Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente. También el S. O. se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. Generalmente el software de e / s se estructura en capas • Manejadores de interrupciones.: impresoras). sin tener que modificar los programas para cada tipo de dispositivo. O. O.: discos) y los de uso exclusivo (ej. El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del 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. independiente de los dispositivos. • Software a nivel usuario. • El problema debe ser resuelto por el S. El S. es decir mediante el nombre de su ruta de acceso. .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. • Directivas de dispositivos. • Solo si los niveles inferiores no pueden resolver el problema. 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. 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. debe administrar los dispositivos compartidos (ej. se informa a los niveles superiores.

O.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. -Presentar una interfaz de E/S sencilla. MANEJADORES DE INTERRUPCIONES Las interrupciones deben ocultarse en el S. 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 .: • Cada proceso que inicie una operación de e / s se bloquea hasta que termina la e / s y ocurra la interrupción. Para conseguir estos objetivos se estructura el software de E/S en capas. de forma que las capas inferiores ocultan la complejidad del hardware a las capas superiores y éstos se encargan de conseguir una interfaz sencilla. • El procedimiento de interrupción realiza lo necesario para desbloquear el proceso que lo inicio.

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

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

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. Un ej. • Posteriormente. debe imprimir los archivos en el directorio. llamado demonio en algunos sistemas. • Los procesos de usuario no abren el archivo correspondiente a la impresora. único con permiso para utilizar el archivo especial de la impresora. • Se crea un directorio de spooling. el proceso especial lo toma y transmite. 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. • Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo. 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. Otra categoría importante de software de e / s a nivel usuario es el sistema de spooling. • El proceso especial. • Se crea un proceso especial. Una pequeña parte consta de bibliotecas ligadas entre sí con los programas del usuario. son los sistemas de correo electrónico .ESPACIO DEL USUARIO PARA SOFTWARE DE ENTRADA Y SALIDA La mayoría del software de e / s está dentro del S. Para imprimir un archivo: • Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling. O.

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. Solo si los niveles inferiores no pueden resolver el problema. es decir mediante el nombre de su ruta de acceso.SOFTWARE ENTRADA Y SALIDA Principios de Software de entrada/salida. 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. 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. O. . Generalmente la recuperación se puede hacer en un nivel inferior y de forma transparente. se informa a los niveles superiores. 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. El problema debe ser resuelto por el S. limpia y regular a los usuarios. 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. Todos los archivos y dispositivos adquieren direcciones de la misma forma. Las capas superiores deben presentar una interfaz agradable. Objetivos del Software de Entrada/Salida. El Sistema Operativo se encarga de hacer que operaciones controladas por interruptores parezcan del tipo de bloques para el usuario. Un concepto clave es la independencia del dispositivo:     Debe ser posible escribir programas que se puedan utilizar con archivos en distintos dispositivos. sin tener que modificar los programas para cada tipo de dispositivo. El objetivo de lograr nombres uniformes está muy relacionado con el de independencia del dispositivo.

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

Sign up to vote on this title
UsefulNot useful