unidad 4 sistemas operativos-1

Embed Size (px)

Citation preview

Instituto Tecnolgico de la Laguna

Ingeniera en Sistemas ComputacionalesSISTEMAS OPERATIVOS UNIDAD 4 Administracin de dispositivos de entrada y salidaALUMNOS: 07131290 Jorge Eduardo Pea Briones 07131154 Miguel Loya Prez 07130327 Papalotzi Cruz Eduardo 06130645 Felipe de Jesus Puente Ortiz PROFESORA: Ing. Georgina Vela AlvarezTorren, Coah. A 21 de Marzo del 2011

Tec. Laguna

Pgina 1

INDICE Administracin de E/S Caractersticas de los dispositivos 4.1.-Dispositivos de Entrada/Salida 4.2.-Mecanismos y funciones de los manejadores de dispositivos (device drivers) Dispositivos de bloques y de caracteres E/S programada o por interrupciones Estructura y componentes del sistema de E/S Organizacin de las funciones de Entrada/Salida 4.3.-Estructuras de datos para manejo de dispositivos .. Manejadores de interrupcin.. .. .. . .. . . . .. .... . ..3 .3 .4 7 ...10 .11 ..13 ..14 .17 .17 ..18 19 20 20 ..21 21 ..21 23 .24 24 25 .25 .. 25 ..26 26

Manejadores de dispositivos . Software de E / S Independiente del Dispositivo. BUFFERING(uso de memoria intermedia) .. SPOOLING 4.4.-Operaciones de Entrada /Salida ........... Bus de direcciones Entrada / Salida Mdulo de E/S E/S Programada E/S mediante Interrupciones Inicio de la Operacin de E/S Procesamiento de la Interrupcin Tabla de Estado de Dispositivos DMA (Direct Memory Access) Transferencias va DMA .

Tec. Laguna

Pgina 2

UNIDAD IV: Administracin de E/S Que hace????? El subsistema de administracin de E/S controla todas las entradas y salidas del sistema informtico. Para la seguridad, las tareas ms importantes que lleva a cabo el subsistema de administracin de E/S son administrar la transferencia de datos. aplicar los controles de acceso a los datos mientras se estn transfiriendo.

Durante la transferencia de bloques o secuencias de datos, y durante la operacin de E/S de caracteres, cada transaccin de E/S est completamente separada de las dems. Esta transaccin sigue una ruta bien conocida y definida; por tanto, la integridad de todos los datos se mantiene durante las transacciones con datos. Adems, se imponen los permisos que protegen los datos contra accesos no autorizados.

Que caractersticas al menos 3 Caractersticas de los dispositivos Los dispositivos se caracterizan por su heterogeneidad, lo que introduce complejidad en el sistema operativo. Algunas de las caractersticas en las que los dispositivos pueden diferir son las siguientes: Unidad de transferencia. Unos dispositivos utilizan el byte como unidad de transferencia (dispositivos de caracteres, como el teclado o el ratn). Otros transfieren y/o almacenan la informacin en bloques (dispositivos de bloques, como discos y cintas magnticas). Velocidad. Los rangos en los que se mueven los dispositivos son muy amplios. Los discos y los dispositivos de comunicacin transfieren millones de caracteres por segundo y pueden hacerlo a velocidad constante, mientras que con el teclado se transfieren a lo sumo unos cuantos caracteres por segundo, con un periodo concreto impredecible. Representacin de los datos. Incluso un mismo dispositivo puede utilizar diferentes codificaciones configurables en la instalacin, como es el caso del teclado y el monitor.

Tec. Laguna

Pgina 3

Protocolos de comunicacin. La comunicacin entre el dispositivo y la CPU se realiza de acuerdo a un determinado protocolo que depende del dispositivo y del bus de comunicacin. Operaciones. Hay dispositivos de entrada, de salida y de entrada/salida. Adems, algunos dispositivos requieren operaciones especficas (por ejemplo, posicionar el cabezal de lectura/escritura en los discos). Errores. Las condiciones de error varan con la naturaleza del dispositivo. Por ejemplo, en la impresora hay que tratar la falta de papel como una situacin de error especfica, mientras que en un disco puede haber errores en el posicionamiento del cabezal.

4.1.-Dispositivos de Entrada/Salida Los dispositivos de E/S pueden dividirse aproximadamente en dos categoras: dispositivos de bloque y dispositivos de caracteres. Un dispositivo de bloque es aquel que almacena informacin en bloques de tamao fijo, cada uno con su direccin. Los tamaos comunes de los bloques van de 128 bytes a 1024 bytes. La propiedad esencial de un dispositivo de bloques es que es posible leer o escribir cada bloque en forma independiente de los dems. En otras palabras, el programa en cualquier momento, puede leer o escribir en cualquiera de los bloques. Los discos son dispositivos de bloque. Si se observa cuidadosamente, la frontera entre los dispositivos que son direccionables por bloque y aquellos que no lo son no est bien definida. Todos estamos de acuerdo en que un disco es un dispositivo de bloque direccionable porque no importa dnde se encuentra corrientemente el brazo, siempre es posible buscar otro cilindro y esperar entonces a que el bloque requerido gire debajo de la cabeza. Ahora considrese una cinta magntica que contenga bloques de 1k byte. Si a la unidad de cinta se le da un comando para leer el bloque N, sta siempre puede regresar la cinta y adelantarla hasta que llegue a l bloque N. Esta operacin es anloga a un disco que realiza una localizacin, salvo que se lleva mucho ms tiempo. Asimismo, puede o no ser posible reescribir un bloque en la mitad de una cinta. Aun si fuese posible utilizar cintas magnticas como dispositivos de bloque, eso nos lleva a quitar amplitud del concepto de alguna manera: normalmente no se utiliza en esa forma.

Tec. Laguna

Pgina 4

El otro tipo de dispositivo de E/S es el dispositivo de caracteres. Un dispositivo de caracteres entrega o acepta un flujo de caracteres, sin importar de cul estructura de bloques se trate. Este no es direccionable y no tiene ninguna operacin de localizacin. Las terminales, las impresoras de lneas, las cintas de papel, tarjetas perforadas, interfaces de redes, los ratones (para apuntar) y la mayora de los dems dispositivos que no sean como el disco se pueden concebir como dispositivos de caracteres.

Este esquema de clasificacin no es perfecto. Algunos dispositivos simplemente no entran en ella. Por ejemplo, los relojes no son direccionables de bloque. Tampoco generan ni aceptan flujos de caracteres. Todo lo que hacen es producir interrupciones en intervalos bien definidos. A pesar de ello, el modelo de los dispositivos de bloque y de caracteres es lo suficientemente general que se puede utilizar como base para hacer que algo como el software del sistema operativo trabaje con la E/S independiente del dispositivo. Por ejemplo, el sistema de archivo trata precisamente con dispositivos de bloque abstractos y deja la parte dependiente del dispositivo al software de nivel inferior llamado manejadores de dispositivos.

Ejemplos de bloques y de cararcteres 3 de c/u

Tec. Laguna

Pgina 5

DISPOSITIVO TECLADO MOUSE SCANNER VOS (Salida) IMPRESORA (Lnea) IMPRESORA (Lser) MODEM RED LAN FLOPPY CD CINTA MAGNETICA DISCO MAGNETICO

COMPORTAMIENTO Entrada " " Salida " " Entrada / salida " Almacenamiento " " "

CLASIFICACION Carcter " " " " " " " Bloque " " "

TASA KB/SEG. 0,01 0,02 400 0,6 1,0 100 2,0-8,0 500-6000 100 1000 2000 2000-10000

Tec. Laguna

Pgina 6

4.2.-Mecanismos y funciones de los manejadores de dispositivos (device drivers). Un manejador de dispositivos es un programa de bajo nivel que permite a los programas de alto nivel interactuar con el dispositivo (hardware). El controlador es uno de los componentes ms importantes del sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora. El sistema operativo generalmente trabaja con el controlador y no con el dispositivo. Todo el cdigo que depende del dispositivo est en los manejadores de los dispositivos. Cada uno de ellos se hace cargo de un tipo de dispositivo o, cuando mucho, de una clase de dispositivos ntimamente relacionados. Por ejemplo, probablemente sera adecuado tener un solo manejador de la terminal, aun si el sistema soportara varios tipos distintos de terminal, todos un poco diferentes. Por el otro lado, una terminal tonta de copia dura mecnica y una terminal inteligente de grficas con mapa de bits son tan diferentes que deben utilizarse manejadores distintos. Los controladores tienen uno o ms registros de dispositivo que se emplean para darle comandos. Los manejadores de los dispositivos emiten estos comandos y verifican que se ejecuten adecuadamente. Por lo tanto, el manejador del disco es la nica parte del sistema operativo que sabe cuntos registros tiene ese controlador del disco y para que se utilizan. Slo l sabe de los sectores, pistas, cilindros, cabezas, movimiento del brazo, factores de intercalacin, manejadores de motor, tiempo de asentamiento de la cabeza y toda la mecnica restante de hacer que el disco funcione como se debe. En trminos generales, el trabajo de un manejador de dispositivo consiste en aceptar solicitudes abstractas del software independiente del dispositivo que esta sobre l y observar que se cumpla la requisicin. Una solicitud comn es leer el bloque n. Si el manejador esta ocioso en el momento en que llega una requisicin, inicia su ejecucin de inmediato. Sin embargo, si ya esta ocupado con una solicitud, normalmente meter la nueva solicitud en una lista de espera de requisiciones pendientes con la cual trabajar lo ms pronto posible. Como funciona el driver y la explicacion

Tec. Laguna

Pgina 7

Programas independientes del dispositivo

Manejador del dispositivo

Controlador del dispositivo

El primer paso en la ejecucin real de la solicitud de E/S, por ejemplo, para un disco, consiste en traducirla de trminos abstractos a concretos. Para un manejador de disco, esto significa indagar donde est en realidad el bloque solicitado, verificando si el motor de la unidad est en ejecucin, determinando si el brazo esta situado en el cilindro adecuado, etc. En resumen, debe decidir que operaciones del controlador se requieren y en que orden. Una vez que se haya determinado cuales comandos hay que emitir al controlador, ste inicia su emisin escribiendo en los registros del dispositivo del controlador. Algunos controladores pueden hacerse cargo solo de un comando cada vez. Otros controladores estn dispuestos a aceptar una lista enlazada de comandos, que despus ejecutan por si mismo sin ms ayuda del sistema operativo. Despus de que le comando o comandos se hayan emitido, se aplicar una de dos situaciones. En muchos casos el manejador del dispositivo debe esperar hasta que el controlador realice algn trabajo por l, de modo que se auto bloquee hasta que la interrupcin llegue para desbloquearlo. Sin embargo, en otros casos la operacin finaliza sin retraso, de manera que el manejador no necesita bloquearse. Para poner un ejemplo de esta ultima situacin, el deslizamiento (scroll) de la pantalla en algunas terminales (entre ella la IBM PC) requiere la escritura de algunos bytes en los registros del controlador. No se necesita movimiento mecnico, de manera que toda la operacin se pueda completar en unos cuantos microsegundos. En el primer caso, el manejador bloqueado ser desbloqueado por la interrupcin. En el ltimo caso, nunca se bloquear. En cualquier forma, despus de que la operacin se ha completado debe verificar si hay errores. Si todo est bien, el manejador puede hacer que pasen datos al software independiente del dispositivo (por ejemplo, un bloque recin ledo) por ltimo, produce alguna informacin sobre la condicin para transmitirla a su solicitante. Si alguna otra requisicin se forma en lista de espera, una de ellas puede ser

Tec. Laguna

Pgina 8

seleccionada e iniciada ahora. Si no se coloca nada en la lista de espera, el manejador se bloquea esperando la siguiente solicitud. Hay tres registros importantes en casi todos los controladores: registro de datos, estado y control. 1.- El registro de datos: Sirve para el intercambio de datos. Se localiza el controlador cargando los datos ledos y se ir extrayendo los datos para su escritura en el perifrico. Un bit del registro de estado sirve para indicar que el controlador puede transferir un dato. 2.- Estado: En las operaciones de lectura esto significa que ha cargado un nuevo valor, mientras que en las de escritura significa que necesita un nuevo dato. Otros bits de este registro sirven para que el controlador indique los problemas que ha encontrado en la ejecucin de la ltima operacin de E/S. 3.- El registro de control: Sirve para indicarle al controlador las operaciones que ha de realizar. Los distintos bits de este registro indican distintas acciones que ha de realizar el perifrico. Para empezar una operacin de E/S, la UCP tiene que escribir sobre los registros anteriores los datos de la operacin a travs de una direccin de E/S.

Los controladores de dispositivo se suelen agrupar en alguna de las siguientes categoras o clases: Adaptadores de audio (tarjetas de sonido). Dispositivos de comunicacin (infrarrojos, mdems, etc). Dispositivos de visualizacin; pantallas (displays). Teclados. Ratn ( mouse y otros sealadores grficos). Dispositivos multimedia. Dispositivos de Red. Impresoras. Almacenamiento Las caractersticas del controlador son muy importantes, ya que definen el aspecto del perifrico para el sistema operativo. Atendiendo a las caractersticas del hardware de los

Tec. Laguna

Pgina 9

dispositivos, se pueden observar los siguientes aspectos distintivos: Direccin de E/S. En general hay dos modelos de direccionamiento de E/S, los que usan puertos y los que proyectan los registros en memoria. Unidad de transferencia. Los dispositivos suelen usar unidades de transferencia de tamao fijo. Hay dos modelos clsicos de dispositivos: de caracteres y de bloques. Interaccin computadora-controlador. La computadora tiene que interaccionar con la computadora para realizar las operaciones de E/S y saber cundo terminan. Dispositivos de bloques y de caracteres Definicin y ejemplos Los Dispositivos E/S tambin se pueden clasificar por medio a su funcionamiento en dos grandes categoras: Dispositivos de bloque. Dispositivos de carcter.

Los dispositivos de almacenamiento secundario y terciario manejan la informacin en unidades de tamao fijo, denominadas bloques, por lo que a su vez se denominan dispositivos de bloques. Estos bloques se pueden direccionar de manera independiente, lo que permite leer o escribir un bloque con independencia de los dems. Los dispositivos de bloque lo son porque el hardware fuerza la existencia de accesos de un tamao determinado. Un disco, por ejemplo, se divide en sectores de 512 bytes o de 1 KB, siendo un sector la unidad mnima de transferencia que el controlador del disco puede manejar. Las principales caractersticas de los dispositivos de bloque son: La informacin se almacena en bloques de tamao fijo. Cada bloque tiene su propia direccin. Los tamaos ms comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes. Se puede leer o escribir en un bloque de forma independiente de los dems, en cualquier momento. Un ejemplo tpico de dispositivos de bloque son los discos. Los dispositivos de caracteres, como los terminales, impresoras, tarjetas de red, mdems, etctera, no almacenan informacin en bloques de tamao fijo. Gestionan flujos de

Tec. Laguna

Pgina 10

caracteres de forma lineal y sin ningn tipo de estructura de bloque. Un teclado es un buen ejemplo de estos dispositivos. Est conectado a una UART (Universal Asvnchronous Receiver/Transmiter) que recibe un carcter del teclado cada vez que se pulsa una tecla. No es posible leer un bloque de teclas de un golpe o buscar dentro del dispositivo por ninguna unidad. Un terminal por lnea serie tambin es un dispositivo de caracteres. Su controlador se limita a enviar al perifrico el flujo de caracteres que debe representar en la pantalla y a recibir del mismo los caracteres tecleados por el usuario.

Las principales caractersticas de los dispositivos de carcter son: La informacin se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques. No se pueden utilizar direcciones. No tienen una operacin de bsqueda. Un ejemplos tpico de dispositivos de caracter son las impresoras de lnea, terminales, interfaces de una red, ratones, etc.

E/S programada o por interrupciones La informacin entre los controladores de dispositivo y la unidad central de proceso o memoria principal se puede transferir mediante un programa que ejecuta continuamente y lee o escribe los datos del (al) controlador. Con esta tcnica, que se denomina E/S programada, la transferencia de informacin entre un perifrico y el procesador se realiza mediante la ejecucin de una instruccin de E/S. Con esta tcnica, es el procesador el responsable de extraer o enviar datos entre el procesador y el controlador de dispositivo, lo que provoca que el procesador tenga que esperar mientras se realiza la transferencia entre el perifrico y el controlador. Dado que los perifricos son sensiblemente ms lentos que el procesador, ste deber esperar una gran cantidad de tiempo hasta que se complete la operacin de E/S. En este caso no existe ningn tipo de concurrencia entre la E/S y el procesador ya que ste debe esperar a que finalice la operacin.

Empleando E/S dirigida por interrupciones el procesador enva la orden de E/S al controlador de dispositivo y no espera a que ste se encuentre listo para enviar o transmitir los datos, sino que se dedica a otras tareas hasta que llega una interrupcin del dispositivo que indica que se ha realizado la operacin solicitada. Las rutinas de interrupcin suelen tener dos partes: una genrica y otra particular para el

Tec. Laguna

Pgina 11

dispositivo. La parte genrica permite:

1. 2. 3. 4. 5. 6. 7.

Capturar la interrupcin. Salvaguardar el estado del procesador. Activar la rutina de manejo de la interrupcin. Indicar al planificador que debe poner lista para ejecutar la rutina particular. Desactivar la interrupcin. Restaurar el estado del procesador Ceder el control

Estructura y componentes del sistema de E/S La arquitectura del sistema de entrada/salida es compleja y est estructurada en capas, cada una de las cuales tiene una funcionalidad bien definida: Interfaz del sistema operativo para entrada/salida. Proporciona servicios de E/S sncrona y asncrona a las aplicaciones y una interfaz homognea para poderse comunicar con los manejadores de dispositivo ocultando los detalles de bajo nivel. Sistemas de archivos. Proporcionan una interfaz homognea, a travs del sistema de archivos virtuales, para acceder a todos los sistemas de archivos que proporciona el sistema operativo (FFS, SV, NTFS, FAT, etc.). Permite acceder a los manejadores de los dispositivos de almacenamiento de forma transparente, incluyendo en muchos casos, como NFS o NTFS, accesos remotos a travs de redes. En algunos sistemas, como Windows NT, los servidores para cada tipo de sistema de archivos se pueden cargar y descargar dinmica- mente como cualquier otro manejador. Gestor de redes. Proporciona una interfaz homognea para acceder a todos los sistemas de red que proporciona el sistema operativo (TCP/IP, Novell, etc.). Adems, permite acceder a los manejadores de cada tipo de red particular de forma transparente. Gestor de bloques. Los sistemas de archivos y otros dispositivos lgicos con acceso a nivel de bloque se suelen limitar a traducir las operaciones del formato del usuario al de bloques que entiende el dispositivo y se las pasan a este gestor de bloques. El gestor de bloques admite nicamente operaciones a nivel de bloque e interacciona

Tec. Laguna

Pgina 12

con la cache de bloques para optimizar la E/S. Gestor de cache. Optimiza la entrada/salida mediante la gestin de almacenamiento intermedio en memoria para dispositivos de E/S de tipo bloque. Es importante saber que su tamao vara dinmicamente en funcin de la memoria RAM disponible y que los bloques se escriben a los dispositivos segn una poltica bien definida, que en UNIX y WINDOWS NT es la de escritura retrasada. Manejadores de dispositivo. Proporcionan operaciones de alto nivel sobre los dispositivos y las traducen en su mbito interno a operaciones de control de cada dispositivo particular. Como ya se ha dicho, los manejadores se comunican con los dispositivos reales mediante puertos o zonas de memoria especiales.

Cada uno de los componentes anteriores se considera un objeto del sistema, por lo que habitualmente todos los sistemas operativos permiten modificar el sistema operativo de forma esttica o dinmica para reemplazar, aadir o quitar manejadores de dispositivos. Sin embargo, habitualmente te, y por razones de seguridad, no se permite a las

Tec. Laguna

Pgina 13

aplicaciones de usuario acceder directamente a los dispositivos, sino a travs de la interfaz de llamadas al sistema operativo.

Organizacin de las funciones de Entrada/Salida Por otra parte, y dependiendo en gran parte de las caractersticas del dispositivo, hay que distinguir tres tipos de entrada/salida, en funcin de cmo el sistema se sincroniza con el controlador:

E/S programada. La sincronizacin es por encuesta, realizndose un bucle de espera activa en la consulta del registro de estado del controlador. Los sistemas operativos multiprogramados evitan este tipo de operacin.

Tec. Laguna

Pgina 14

E/S por interrupciones. El controlador activa una interrupcin que permite la comunicacin asncrona del sistema operativo, que puede estar realizando otras tareas, con el dispositivo. Es la base que permite implementar un sistema operativo multiprogramado.

o E/S por DMA. Los dispositivos de bloques, que requieren una tasa de transferencia muy elevada, utilizan el acceso directo a memoria para las operaciones de entrada/salida, bien utilizando ciclos de memoria libres (robo de ciclo), bien aduendose de los buses de memoria para transferir un bloque completo.

Tec. Laguna

Pgina 15

Almacenamiento intermedio de la E/S Cual era el objetivo del almacvenamieto intermedio y explikar os esquememas de almacenamiento intermedio Para desacoplar las velocidades de funcionamiento de los dispositivos con las de otros elementos del sistema y, por lo tanto, aumentar el rendimiento, es habitual la utilizacin de almacenamiento intermedio o buffering tanto de entrada como de salida. El manejador del dispositivo proporciona buffers del sistema sobre los que se realiza la transferencia de entrada/salida. El buffer del sistema se copia a/desde el buffer de usuario, sobre el que la aplicacin especifica la operacin de E/S. El objetivo es doble. Por una parte, se amortigua la diferencia entre el ritmo de las peticiones de E/S y la capacidad del dispositivo para servirlas. Por otra parte, se consigue que, en sistemas con swapping y/o memoria virtual, las pginas de los programas de usuario que contienen los vectores especificados para la E/S no tengan que permanecer en memoria mientras el proceso est bloqueado. Puede pensarse en diferentes esquemas de buffering, que dan lugar a diferentes formas de comportamiento de la entrada/salida en cuanto a la posibilidad de concurrencia entre las aplicaciones de usuario y los dispositivos (Figura 5.3):

Tec. Laguna

Pgina 16

E/S sin buffer.- La transferencia se realiza directamente sobre el buffer de usuario, que debe quedar fijado en memoria. Si una aplicacin pretende transferencias asncronas, debe gestionarse sus propios buffers. Buffer simple. No permite transferencias simultneas, pero soporta transferencias asncronas. Buffer doble. Introduce concurrencia al permitir simultneamente dos transferencias (usuario-sistema en un buffer y sistema-dispositivo en otro). Buffer circular, que permite soportar concurrencia del tipo productor-consumidor. Un ejemplo caracterstico es el buffer de anticipacin del teclado. La utilizacin de buffers mejora los parmetros de rendimiento temporal a cambio de espacio para implementarlos. Tambin mejora la eficiencia de la CPU, aunque parcialmente compensada por el hecho de tener que copiar informacin entre los buffers del sistema y del usuario.

En algunos sistemas operativos la utilizacin o no de buffers se prametriza en la llamada al sistema de abrir y queda reflejada en la tabla de canales del proceso. 4.3.-Estructuras de datos para manejo de dispositivos. Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operacin de E/S, el sistema operativo prepara dicha operacin yTec. Laguna Pgina 17

bloquea al proceso hasta que se recibe una interrupcin del controlador del dispositivo indicando que la operacin est completa. Las peticiones se procesan de forma estructurada en las siguientes capas: Manejadores de interrupcin. Manejadores de dispositivos o drivers. Software de E/S independiente de los dispositivos. Este software est formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos. Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario. Manejadores de interrupcin Los manejadores de interrupcin se encargan de tratar las interrupciones que generan los controladores de dispositivos una vez que stos estn listos para la transferencia de datos o bien han ledo o escrito los datos de memoria principal en caso de acceso directo a memoria. Para tratar dicha interrupcin se ejecuta el correspondiente manejador de interrupcin cuyo efecto es el de salvar los registros, comunicar el evento al manejador del dispositivo y restaurar la ejecucin de un proceso (que no tiene por qu ser el interrumpido). Manejadores de dispositivos Todo el cdigo que depende de los dispositivos aparece en los manejadores de dispositivos. 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:

Tec. Laguna

Pgina 18

Aceptar las solicitudes abstractas que le hace el software independiente del

dispositivo. Verificar la ejecucin de dichas solicitudes.

Si al recibir una solicitud el manejador est ocupado con otra solicitud, agregara la nueva solicitud a una cola de solicitudes pendientes. La solicitud de e / s, por ej. para un disco, se debe traducir de trminos abstractos a trminos concretos: El manejador de disco debe: o Estimar el lugar donde se encuentra en realidad el bloque solicitado. o Verificar si el motor de la unidad funciona. o Verificar si el brazo est colocado en el cilindro adecuado, etc. o Resumiendo: debe decidir cules son las operaciones necesarias del controlador y su orden. o Enva los comandos al controlador al escribir en los registros de dispositivo del mismo. o Frecuentemente el manejador del dispositivo se bloquea hasta que el controlador realiza cierto trabajo; una interrupcin lo libera de este bloqueo. o Al finalizar la operacin debe verificar los errores. o Si todo esta o.k. transferir los datos al software independiente del dispositivo. o Regresa informacin de estado sobre los errores a quien lo llam. o Inicia otra solicitud pendiente o queda en espera. Software de E / S Independiente del Dispositivo La mayor parte del sistema de E/S es software independiente de dispositivo. Este nivel incluye el sistema de archivos y el de gestin de red, el gestor de bloques, la cache de bloques y una parte de los manejadores de dispositivo. La principal funcin de esta capa de software es ejecutar las funciones de E/S que son comunes a todos los dispositivos a travs de una interfaz uniforme. Internamente, en este nivel se proporciona acceso a nivel de bloques o caracteres, almacenamiento intermedio, gestin de los dispositivos, planificacin de la E/S y control de errores. Funciones generalmente realizadas por el software independiente del dispositivo:

Tec. Laguna

Pgina 19

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.

El software independiente del dispositivo asocia los nombres simblicos de los dispositivos con el nombre adecuado.

Que es???? BUFFERING(uso de memoria intermedia). El buffering trata de mantener ocupados tanto la CPU como los dispositivos de E/S. La idea es sencilla, los datos se leen y se almacenan en un buffer, una vez que los datos se han ledo y la CPU va a iniciar inmediatamente la operacin con ellos, el dispositivo de entrada es instruido para iniciar inmediatamente la siguiente lectura. La CPU y el dispositivo de entrada permanecen ocupados. Cuando la CPU est libre para el siguiente grupo de datos, el dispositivo de entrada habr terminado de leerlos. La CPU podr empezar el proceso de los ltimos datos ledos, mientras el dispositivo de entrada iniciar la lectura de los datos siguientes. Este sistema soluciona en forma parcial el problema de mantener ocupados todo el tiempo la CPU y los dispositivos de E/S. Ya que todo depende del tamao del buffer y de la velocidad de procesamiento tanto de la CPU como de los dispositivos de E/S. El manejo de buffer es complicado. Uno de los principales problemas reside en determinar tan pronto como sea posible que un dispositivo de E/S a finalizado una operacin. Este problema se resuelve mediante las interrupciones. Tan pronto como un dispositivo de E/S acaba con una operacin interrumpe a la CPU, en ese momento la CPUTec. Laguna Pgina 20

detiene lo que est haciendo e inmediatamente transfiere el control a una posicin determinada. Normalmente las instrucciones que existen en esta posicin corresponden a una rutina de servicio de interrupciones. La rutina de servicio de interrupcin comprueba si el buffer no est lleno o no est vaco y entonces inicia la siguiente peticin de E/S. La CPU puede continuar entonces el proceso interrumpido. Que es???SPOOLING. Se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer(un rea especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando est listo. El spooling es til en caso de dispositivos que acceden a los datos a distintas velocidades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente ms lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo ms lento acabe de procesar el trabajo. La aplicacin ms comn del spooling es la impresin. En este caso, los documentos son cargados en un buffer, que habitualmente es un rea en un disco, y la impresora los saca de ste a su propia velocidad. El usuario puede entonces realizar otras operaciones en la computadora mientras la impresin tiene lugar en segundo plano. El spooling permite tambin que los usuarios coloquen varios trabajos de impresin en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente. 4.4.-Operaciones de Entrada /Salida. Antes de empezar a hablarles sobre lo que son los mtodos y tcnicas de entrada y salida de datos primero daremos un breve repaso sobre el medio de transporte de la informacin, tal y como lo es el bus de direcciones, para que una vez comprendido el concepto de este nos sea mas fcil entender los trminos y el contenido en general sobre la entrada y salida de datos. Bus de direcciones Es utilizado por el microprocesador para sealar la celda de memoria (o el dispositivo de E/S) con el que se quiere operar. El tipo de operacin ser de lectura o de escritura y los datos implicados viajarn por el bus de datos. Por l circula la expresin binaria de la direccin de memoria a la cual el microprocesador quiere acceder. Tiene sentido de flujo unidireccional desde el microprocesador hacia la memoria. Una vez localizados los datos perdidos, su transmisin hacia el microprocesador (o hacia donde sea) se har a travs del bus de datos.

Tec. Laguna

Pgina 21

Los dispositivos de E/S intercambian la informacin con el microprocesador mediante los puertos de E/S. Cada puerto est asociado con un determinado dispositivo y tiene una direccin que lo identifica. El ancho de este bus tambin es una medida de la potencia del microprocesador, ya que determina la cantidad de memoria a la que ste puede acceder, es decir, la cantidad de espacio direccionable. El espacio de direcciones es el rango de valores distintos que el microprocesador puede seleccionar. La cantidad mxima de direcciones disponibles ser 2 a la n, siendo n el nmero de lneas del bus de direcciones. ENTRADA/SALIDA Tanto en la E/S programada como la basada en interrupciones, la CPU debe encargarse de la transferencia de datos una vez que sabe que hay datos disponibles en el controlador. Una mejora importante para incrementar la concurrencia entre la CPU y la E/S consiste en que el controlador del dispositivo se pueda encargar de efectuar la transferencia de datos, liberando de este trabajo a la CPU, e interrumpir a la CPU slo cuando haya terminado la operacin completa de EIS. Esta tcnica se denomina acceso directo a memoria (DMA, Direct Memory Access).

Cuando se utiliza acceso directo a memoria, es el controlador el que se encarga directamente de transferir los datos entre el perifrico y la memoria principal, sin requerir intervencin alguna por parte del procesador. Esta tcnica funciona de la siguiente manera: Cuando el procesador desea que se imprima un bloque de datos, enva una orden al controlador indicndole la siguiente informacin: Tipo de operacin: lectura o escritura. Perifrico involucrado en la operacin. La direccin de memoria desde la que se va a leer o a la que va a escribir directamente con el controlador de dispositivo (direccin). El nmero de bytes a transferir (contador).Tec. Laguna Pgina 22

Donde el campo Operacin corresponde al cdigo de operacin de las instrucciones mquina normales. Especifica la operacin que debe realizar la CCW. La unidad de control decodifica este campo y enva las seales adecuadas de control al dispositivo. Existen varias operaciones, las ms importantes son las siguientes: Lectura: el canal transfiere a memoria principal un bloque de palabras de tamao especificado en el campo n de palabras, en orden ascendente de direcciones, empezando en la direccin especificada en el campo direccin del dato. Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operacin de lectura. Control: se utiliza esta orden para enviar instrucciones especficas al dispositivo de E/S, como rebobinar una cinta magntica, etc. Bifurcacin: cumple en el programa de canal la misma funcin que una instruccin de salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este tipo, que utiliza el campo direccin del dato como la direccin de la siguiente CCW a ejecutar. Flags: Los bits de este campo indican lo siguiente: CC (Encadenamiento de comando): cuando este bit est a 1, indica al canal que la siguiente CCW especifica una nueva operacin de E/S que debe realizarse con el mismo dispositivo. El canal ejecuta primero la operacin de E/S especificada en la CCW que tiene a 1 el flag CC. Despus ejecuta la siguiente sobre el mismo dispositivo. Desde el punto de vista del dispositivo, las dos operaciones resultantes de la primera y segunda CCW aparecen como dos comandos de E/S separados. CD (Encadenamiento de datos): una CCW con el bit CD a 1, indica al canal que la siguiente CCW contiene una nueva direccin del dato y un nuevo n de palabras. stos deben utilizarse para transferir un segundo bloque de datos hacia o desde el dispositivo de E/S, mediante la orden especificada por la CCW actual. Cuando el canal termina la transferencia de datos especificada en la CCW con el bit CD a 1, no corta la conexin con el dispositivo de E/S, contina la transferencia utilizando la direccin y el n de palabras de la siguiente CCW. SKIP (Salto): este bit, cuando est a 1, hace que el programa de canal salte un nmero de palabras igual al especificado en el campo n de palabras. Cuando se utiliza con la orden de lectura, este flag hace que los datos se lean del dispositivo sin que se transfieran a la memoria principal. PCI (Interrupcin controlada por programa): el canal produce una interrupcin cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va precedida por otra CCW con encadenamiento de comandos, la interrupcin se genera despus de que

Tec. Laguna

Pgina 23

hayan concluido todas las transferencias de datos. Una vez emitida la orden, el procesador contina realizando otro trabajo sin necesidad de transferir el bloque de datos. Es el propio controlador el que se encarga de transferir el bloque de datos del perifrico a memoria. La transferencia se realiza palabra a palabra. Cuando el controlador ha completado la transferencia, genera una interrupcin que activa la rutina de tratamiento correspondiente, de tal manera que se sepa que la operacin ha concluido. Mdulo de E/S Cada controlador est a cargo de un tipo especfico de dispositivo. Dependiendo del controlador, pueden estar varios dispositivos conectados al mismo controlador. El controlador se encarga de mover datos entre el dispositivo periferico que controla y el buffer de almacenamiento local. El tamao del buffer vara de un controlador a otro y depende del dispositivo que controla. Son posibles tres tcnicas para las operaciones de E/S: E/S programada E/S mediante interrupciones DMA E/S Programada Los datos se intercambian entre el CPU y el mdulo de E/S. El CPU ejecuta un programa que controla directamente la operacin de E/S, incluyendo la comprobacin del estado del dispositivo, el envo de la orden de lectura o escritura y la transferencia del dato. Cuando el CPU enva la orden debe esperar hasta que la operacin de E/S concluya. Si el CPU es ms rpido, ste estar ocioso. El CPU es el responsable de comprobar peridicamente el estado del mdulo de E/S hasta que encuentre que la operacin ha finalizado. Normalmente habr muchos dispositivos de E/S conectados al sistema a travs de los mdulos de E/S. Cada dispositivo tiene asociado un identificador o direccin. Cuando el CPU enva una orden de E/S, la orden contiene la direccin del dispositivo deseado. E/S mediante Interrupciones El problema con E/S programada es que el CPU tiene que esperar un tiempo considerable a que el mdulo de E/S en cuestin est preparado para recibir o transmitir los datos. El CPU debe estar comprobando continuamente el estado del mdulo de E/S. Se degrada el desempeo del sistema. Una alternativa es que el CPU tras enviar una orden de E/S continue realizando algn trabajo til. El mdulo de E/S interrumpir al CPU para solicitar su servicio cuando est

Tec. Laguna

Pgina 24

preparado para intercambiar datos. El CPU ejecuta la transferencia de datos y despus continua con el procesamiento previo. Se pueden distinguir dos tipos: E/S sncrona y E/S asncrona E/S Sncrona: cuando la operacin de E/S finaliza, el control es retornado al proceso que la gener. La espera por E/S se lleva a cabo por medio de una instruccin wait que coloca al CPU en un estado ocioso hasta que ocurre otra interrupcin. Aquellas mquinas que no tienen esta instruccin utilizan un loop. Este loopcontinua hasta que ocurre una insterrupcin transfiriendo el control a otra parte del sistema de operacin. Slo se atiende una solicitud de E/S por vez. El sistema de operacin conoce exactamente que dispositivo est interrumpiendo. Esta alternativa excluye procesamiento simultneo de E/S. E/S Asncrona: retorna al programa usuario sin esperar que la operacin de E/S finalice. Se necesita una llamada al sistema que le permita al usuario esperar por la finalizacin de E/S (si es requerido). Tambin es necesario llevar un control de las distintas solicitudes de E/S. Para ello el sistema de operacin utiliza una tabla que contiene una entrada por cada dispositivo de E/S (Tabla de Estado de Dispositivos). La ventaja de este tipo de E/S es el incremento de la eficiencia del sistema. Mientras se lleva a cabo E/S, el CPU puede ser usado para procesar o para planificar otras E/S. Como la E/S puede ser bastante lenta comparada con la velocidad del CPU, el sistema hace un mejor uso de las facilidades. Inicio de la Operacin de E/S Para iniciar una operacin de E/S, el CPU actualiza los registros necesarios en el mdulo de E/S. El mdulo de E/S examina el contenido de estos registros pare determinar el tipo de accin a ser llevada a cabo. Por ejemplo, si encuentra un requerimiento de lectura, el mdulo de E/S empezar a transferir data desde el dispositivo a los buffers locales. Una vez terminada la transferencia, el mdulo informa al CPU que la operacin ha terminado por medio de una interrupcin. Procesamiento de la Interrupcin Cuando un dispositivo de E/S termina una operacin de E/S, se produce la siguiente secuencia de eventos: El dispositivo enva una seal de interrupcin al procesador El procesador termina la ejecucin de la instruccin en curso antes de responder a la interrupcin. El procesador comprueba si hay alguna interrupcin. Si hay alguna, enva una seal de reconocimiento al dispositivo que la origin

Tec. Laguna

Pgina 25

El procesador debe prepararse para transferir el control a la rutina de interrupcin.

Debe guardar la informacin necesaria para continuar con el proceso en curso en el punto en que se interrumpi. Guarda en la pila del sistema el contenido de los registros, etc. El procesador carga en el PC la direccin de inicio del programa de gestin o servicio de interrupcin solicitada. Una vez modificado el PC, el procesador contina con el ciclo de instruccin siguiente. Es decir, se transfiere el control a la rutina servidora de la interrupcin. Cuando finaliza el servicio de la interrupcin, se restauran los valores de los registros.

Tabla de Estado de Dispositivos Que es y ejemplo no lo mandara de la exposicin el dibujo Cuando el CPU recibe una interrupcin que indica que se ha finalizado una operacin de E/S, el sistema de operacin debe saber a cul proceso pertenece. Para esto se mantiene una tabla de estado de dispositivos. Cada entrada en la tabla contiene el tipo de dispositivo, su direccin y su estado (ocioso, ocupado, no funcionando). Si es dispositivo se encuentra ocupado, entonces el tipo de solicitud junto con otros parametros son almacenados en la tabla (lista). Las operaciones TYPEAHEAD son un esquema usado por algunos dispositivos que permiten a los usuarios "adelantar" la entrada de datos antes de ser requeridas. Cuando sucede la interrupcin de final de E/S no hay proceso que la requiri, por lo tanto se necesita un buffer para almacenar los caracteres adelantados hasta que algn programa los requiera. En general, se requiere un buffer para cada terminal de entrada. DMA (Direct Memory Access) La E/S con interrupciones, aunque ms eficiente que la E/S programada, tambin requiere la intervencin del CPU para transferir datos entre la memoria y el mdulo de E/S. Consideren el siguiente ejemplo: Cuando se va a leer una lnea desde un terminal, el primer carcter escrito es enviado al computador. Cuando el carcter es recibido por el controlador, ste interrumpe al CPU. El CPU le da servicio a la interrupcin y luego continua con el proceso que estaba ejecutando. Esto es posible cuando el dispositivo es muy lento comparado con el CPU. Entre un carcter y otro el CPU lleva a cabo gran cantidad de procesamiento. Pero qu sucede cuando estamos trabajando con dispositivos de E/S ms veloces? Tendramos interrupciones muy seguidas y se estara desperdiciando mucho tiempo. Para evitar esto, se utiliza DMA para dispositivos de E/S de alta velocidad. E1 controlador del dispositivo transfiere un bloque de datos desde o para sus buffers de almacenamiento a memoria directamente sin intervencin del CPU. Solo se produce una interrupcin por bloque en lugar de tener una interrupcin por cada byte (o palabra).

Tec. Laguna

Pgina 26

Por ejemplo, un programa solicita una transferencia de datos. El Sistema de Operacin busca un buffer disponible. El controlador de DMA tiene sus registros actualizados con las direcciones del fuente y del destino y la longitud de la transferencia . Por lo general esta actualizacin es realizada por el manejador de dispositivo (rutina). Se indica al controlador de DMA a travs de bits de control en un registro de control pare que inicie la operacin de E/S. Mientras tanto el CPU puede llevar a cabo otras operaciones. El controlador de DMA interrumpe el CPU cuando la transferencia ha sido terminada . El CPU interviene solo al comienzo y al final de la transferencia. Transferencias va DMA. Algunos dispositivos de entrada/salida envan datos a la memoria ms rpido de lo que el microprocesador puede manejar. El controlador de DMA (Direct Memory Access) es un circuito integrado dedicado que puede enviar y recibir datos ms rpido que el microprocesador. Luego, dispositivos como discos pticos y magnticos utilizan este integrado para acceder a la memoria del sistema. El controlador de DMA (Direct Memory Access) toma prestado los buses de datos, de direcciones y de control del sistema y envia un nmero programado de bytes desde un dispositivo de entrada/salida hasta la memoria. El "8237 DMA controller" es el nombre del circuito integrado que utilizan los PCs para esta funcin. Cuando un dispositivo tiene un bloque de datos preparado para enviar a la memoria, envia una peticin al DMA poniendo una seal DRQn a "1". Si el canal de DMA se halla disponible, el DMA enviar una seal HRQ (hold request) al microprocesador. El microprocesador responder dejando los buses libres y enviando una seal HLDA (hold acknowledge) al DMA. Luego el DMA obtiene el control de los buses poniendo la seal AEN a nivel alto y envia la direccin de memoria a ser escrita. Despues el DMA envia la seal de DACKn (DMA acknowledge) al dispositivo. Finalmente el controlador de DMA se ocupa de manejar las seales de MEMW y IOR del bus de control. Cuando la transferencia de datos se ha completado vuelve a poner la seal HRQ a nivel bajo y el procesador recupera el control de los buses de nuevo. Si un dispositivo necesita datos de la memoria, el proceso es similar. La nica diferencia consiste en que el controlador de DMA usa las seales MEMR y IOW en el bus control. Utilizando acceso directo a memoria el procesador nicamente se ve involucrado al inicio y al final de la transferencia. Por tanto, cuando el sistema operativo despierta al proceso que pidi la E/S, no tiene que copiar el bloque a memoria porque ya est all. El DMA requiere una etapa de almacenamiento intermedio en el controlador del dispositivo para armonizar la velocidad del dispositivo de EIS con la copia de los datos en memoria principal. La razn para este almacenamiento intermedio reside en que una vez que el dispositivo empieza la transferencia de datos, sta debe hacerse a velocidad constante para evitar transferencias parciales y nuevas esperas de posicionamiento del dispositivo sobre los datos (latencia). Una vez transferidos los datos a la memoria del controlador, ste los copia en memoria principal aprovechando el ancho de banda libre del bus. Los pasos a seguir en una operacin de E/S con DMA son los siguientes:

Tec. Laguna

Pgina 27

Los paso a seguir en un DMA SON: 1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los datos a transferir y la direccin de memoria sobre la que se efectuar la operacin. 2. El controlador contesta aceptando la peticin de E/S. 3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una cierta cantidad de datos desde una posicin determinada del dispositivo a su memoria interna. 4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el contador de datos pendientes de transferir. 5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer. 6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP para in dicar que la operacin de DMA ha terminado.

Tec. Laguna

Pgina 28