Está en la página 1de 4

Capitulo 5 Entrada/Salida

"El aspecto ms confuso de los sistemas operativos es la Entrada/Salida (E/S), es muy difcil de desarrollar una solucin que sea vlida para todos los dispositivos de E/S, dada su amplia diversidad, tanto desde el punto de vista funcional como del modo de acceso."
En este captulo se examina el hardware de entrada y salida desde el punto de vista de cmo este se programa, pero primero para comenzar ser necesario conocer el funcionamiento interno de los dispositivos de E/S. Dentro de los dispositivos de e/s existen varias caractersticas que los hacen nicos y especiales dentro de su clase las cuales algunas de ellas son La unidad de transferencia: Los datos pueden intercambiarse de a un carcter denominado "Dispositivos en modo carcter" tales como la terminal o consola, y los "Dispositivos en modo bloque" cual su transferencia es de a bloques como es el caso de los discos. La velocidad de trasmisin: La velocidad es bastante variable y va a depender directamente del hardware. La utilidad: Este se refiere a que el mismo dispositivo puede ser utilizado con una finalidad distinta y dependiendo de esto el SO se comportara de una forma u otra, como por ejemplo puede ser una unidad de almacenamiento que puede ser utilizado para almacenar archivos y/o como memoria virtual o swap. Su complejidad de control: Este se refiere a que existen dispositivos mas difciles de controlar que otros por ejemplo la impresora. Todas esas caractersticas hay que tener en cuenta para poder realizar la programacin de la E/S, y es por eso que esa programacin es difcil de generalizar y ser particular para cada uno. Controladores Los dispositivos de E/S se componen principalmente de una parte electrnica denominada controlador, y una mecnica. El SO trabaja con el controlador comunicndose a travs del bus del sistema, estos suelen tener registros para comunicarse con el procesador, el cual el SO escribe ordenes en estos registros.

DMA Acceso directo a memoria (Direct Memory Access) este es un sistema integrado a algunos dispositivos, capaz de hacer delegar del procesador, el trabajo de intercambiar cada byte entre la memoria principal y el controlador, pero de igual manera el procesador est involucrado en esta operacin, pero solo en el principio y en el final, donde el procesador programa al DMA para hacer las operaciones correspondientes y al final este lo hace interrumpir para poder finalizar. Ahora ya sabiendo un poco ms las caractersticas de los dispositivos de E/S nos insertaremos en las tcnicas para realizar operaciones con estos dispositivos. E/S programada: Cuando se emplea esta tcnica, el procesador es el responsable de extraer o almacenar en la memoria principal los datos. Cuando el procesador se encuentra con una operacin de E/S enva una orden al controlador, este realiza una accin y activa los bits necesarios en el registro, el problema es que el controlador no le avisa al procesador que este se detendr, sino, el procesador revisa peridicamente el estado del controlador, dejndole as casi toda la tarea al procesador lo que influye directamente en la velocidad de la maquina . E/S dirigida por interrupciones: En este caso el procesador enva la orden de E/S al controlador dejndole esa tarea al l, cuando el controlador est listo para realizar la operacin, interrumpe al procesador y este ejecuta la transferencia de datos. Acceso directo a la memoria (DMA): a diferencia de las otras tcnicas ya expuestas, donde el procesador tiene que realizar la transferencia de los datos entre la memoria principal y el modulo E/S, donde la velocidad de esta transferencia est dada por la velocidad que entregara el procesador al dispositivo, este sistema le cede toda esa tarea de transferencia al DMA, y mientras este realiza la transferencia el procesador se puede ocupar de otras operaciones. A medida que han ido evolucionado los sistemas informticos lo han hecho tambin las tecinas de E/S, tanto as que de pasar del control total o por etapas del procesador, ahora los dispositivos pueden llegar a ser un procesador por separado donde este posee su propia memoria local y funciona especficamente como un computador independiente. Dentro de la programacin de los dispositivos de E/S existen objetivos generales pero el ms importante es

organizar los programas en niveles, otros objetivos encontramos tambin son Independencia de el dispositivo: En este caso cabe recalcar que el usuario no se preocupa de como tener acceso a cada dispositivo, ya que, el SO es el responsable de realizar esa operacin, esta independencia permite que programas realicen operaciones de E/S sobre dispositivos diferentes. Forma de uso del dispositivo: Forma de uso de un dispositivo dedicado, este tipo de dispositivos requieren acceso en exclusividad al mismo, y el otro tipo de dispositivos compartidos que pueden mezclar peticiones procedentes de diversos procesos y/o usuarios. Uniformidad de los nombres: El nombre de cada dispositivo debe ser un String o un numero, el nombre no depende del tipo de dispositivo, marca ,ubicacin fsica, etc. Tipo de transferencia: En la mayora de los dispositivos de E/S el procesador activa una transferencia de datos y continua haciendo otra tarea hasta que recibe la interrupcin del controlador, este proceso se llama transferencia asncrona, el problema es que los programas de usuario son mas fciles de escribir con operaciones sncrona, por lo que el SO se encarga de simular que las operaciones asncronas parezcan sncronas. Manejo de errores: Si el controlador detecta un error, deber encargarse de subsanarlo. (Tanenbaum, 1997) ESTRUCTURACION E/S

Cada controlador posee uno o ms registros de dispositivos: Se utilizan para darle los comandos. Los manejadores de dispositivos proveen estos comandos y verifican su ejecucin adecuada.

La labor de un manejador de dispositivos es la de: Aceptar las solicitudes abstractas que le hace el software independiente del dispositivo. Verificar la ejecucin de dichas solicitudes.

Software de E/S Independiente del Dispositivo Funciones generalmente realizadas por el software independiente del dispositivo: Interfaz uniforme para los manejadores de dispositivos. Nombres de los dispositivos. Proteccin del dispositivo. Proporcionar un tamao de bloque independiente del dispositivo. Uso de buffers. Asignacin de espacio en los dispositivos por bloques. Asignacin y liberacin de los dispositivos de uso exclusivo. Informe de errores.

Las funciones bsicas del software independiente del dispositivo son: Efectuar las funciones de e / s comunes a todos los dispositivos. Proporcionar una interfaz uniforme del software a nivel usuario.

Los principios en que se basa el software de E/S se puede alcanzar estructurndolo en cuatro niveles: Manejadores de Interrupciones Las interrupciones deben ocultarse del S. O. Cada proceso que inicie una operacin de e / s se bloquea hasta que termina la e / s y ocurra la interrupcin. El procedimiento de interrupcin realiza lo necesario para desbloquear el proceso que lo inicio.

El software independiente del dispositivo asocia los nombres simblicos de los dispositivos con el nombre adecuado. Un nombre de dispositivo determina de manera nica el nodo-i de un archivo especial: Este nodo-i contiene el nmero principal del dispositivo, que se utiliza para localizar el manejador apropiado. El nodo-i contiene tambin el nmero secundario de dispositivo, que se transfiere como parmetro al manejador para determinar la unidad por leer o escribir.

Manejadores de Dispositivos Todo el cdigo que depende de los dispositivos aparece en los manejadores de dispositivos.

El software independiente del dispositivo debe:

Ocultar a los niveles superiores los diferentes tamaos de sector de los distintos discos. Proporcionar un tamao uniforme de los bloques, por ej.: considerar varios sectores fsicos como un solo bloque lgico.

Software de E / S en el Espacio del Usuario La mayora del software de e / s est dentro del S. O. Una pequea parte consta de bibliotecas ligadas entre s con los programas del usuario. La biblioteca estndar de e / s contiene varios procedimientos relacionados con e / s y todos se ejecutan como parte de los programas del usuario. Otra categora importante de software de e / s a nivel usuario es el sistema de spooling. El spooling es una forma de trabajar con los dispositivos de e /s de uso exclusivo en un sistema de multiprogramacin: El ejemplo tpico lo constituye la impresora de lneas. Los procesos de usuario no abren el archivo correspondiente a la impresora. Se crea un proceso especial, llamado demonio en algunos sistemas. Se crea un directorio de spooling. DISCOS Las siguientes son las principales ventajas con respecto del uso de la memoria principal como almacenamiento: Mucho mayor capacidad de espacio de almacenamiento. Menor precio por bit. La informacin no se pierde al apagar la computadora.

Hardware Para Discos Los discos estn organizados en cilindros, pistas y sectores. Todos los sectores tienen igual nmero de bytes. Los sectores cercanos a la orilla del disco sern mayores fsicamente que los cercanos al anillo. Un controlador puede realizar bsquedas en una o ms unidades al mismo tiempo: Son las bsquedas traslapadas. Mientras el controlador y el software esperan el fin de una bsqueda en una unidad, el controlador puede iniciar una bsqueda en otra.

Para imprimir un archivo: Un proceso genera todo el archivo por imprimir y lo coloca en el directorio de spooling. El proceso especial, nico con permiso para utilizar el archivo especial de la impresora, debe imprimir los archivos en el directorio. Se evita el posible problema de tener un proceso de usuario que mantenga un recurso tomado largo tiempo.

Un esquema similar tambin es aplicable para la transferencia de archivos entre equipos conectados: Un usuario coloca un archivo en un directorio de spooling de la red. Posteriormente, el proceso especial lo toma y transmite. Un ej. son los sistemas de correo electrnico.

Muchos controladores pueden: Leer o escribir en una unidad. Buscar en otra.

(Deitel, 1987)

Los controladores no pueden leer o escribir en dos unidades al mismo tiempo.

Algoritmos de Programacin del Brazo del Disco En la mayora de los discos, el tiempo de bsqueda supera al de retraso rotacional y al de transferencia, debido a ello, la reduccin del tiempo promedio de bsqueda puede mejorar en gran medida el rendimiento del sistema Si el manejador del disco utiliza el algoritmo primero en llegar primero en ser atendido (FCFS), poco se puede hacer para mejorar el tiempo de bsqueda. Es posible que mientras el brazo realiza una bsqueda para una solicitud, otros procesos generen otras solicitudes. Muchos manejadores tienen una tabla: El ndice es el nmero de cilindro. Incluye las solicitudes pendientes para cada cilindro enlazadas entre s en una lista ligada. Cuando concluye una bsqueda, el manejador del disco tiene la opcin de elegir la siguiente solicitud a dar paso: o Se atiende primero la solicitud ms cercana, para minimizar el tiempo de bsqueda. o Este algoritmo se denomina primero la bsqueda ms corta (SSF: short seek first). o Reduce a la mitad el nmero de movimientos del brazo en comparacin con FCFS.

Ocasionalmente es mejor que el algoritmo SSF. Generalmente es peor que SSF.

Una variante consiste en rastrear siempre en la misma direccin: Luego de servir al cilindro con el nmero mayor: o El brazo pasa al cilindro de nmero o

menor con una solicitud pendiente. Contina su movimiento hacia arriba.

(Tanenbaum, 1993)
S. Tanenbaum. Sistemas Operativos Modernos. Prentice Hall Hispanoamericana, S.A., Mxico, 1993. S. Tanenbaum. Organizacin de Computadoras - Un Enfoque Estructurado - Tercera Edicin. Prentice Hall Hispanoamericana S. A., Mxico, 1997. H. M. Deitel. Introduccin a los Sistemas Operativos. Addison-Wesley Iberoamericana, Mxico, 1987.

El algoritmo SSF tiene el siguiente problema: El ingreso de nuevas solicitudes puede demorar la atencin de las ms antiguas. Con un disco muy cargado, el brazo tender a permanecer a la mitad del disco la mayora del tiempo, como consecuencia de ello las solicitudes lejanas a la mitad del disco tendrn un mal servicio. Entran en conflicto los objetivos de: o Tiempo mnimo de respuesta. o Justicia en la atencin.

La solucin a este problema la brinda el algoritmo del elevador (por su analoga con el ascensor o elevador) : Se mantiene el movimiento del brazo en la misma direccin, hasta que no tiene ms solicitudes pendientes en esa direccin; entonces cambia de direccin. El software debe conservar el bit de direccin actual.

El algoritmo del elevador:

También podría gustarte