Está en la página 1de 4

6.

PRINCIPIOS EN EL MANEJO DE ENTRADA SALIDA


El cdigo destinado a manejar la entrada y salida de los diferentes perifricos en un sistema operativo es de una extensin considerable y sumamente complejo. Resuelve la necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. En esta seccin se repasarn los principios ms importantes a tomar en cuenta en este mdulo del sistema operativo.

6.1 Dispositivos de Entrada - Salida


Los dispositivos de entrada salida se dividen, en general, en dos tipos dispositivos orientados a blo!ues y dispositivos orientados a caracteres. Los dispositivos orientados a blo!ues tienen la propiedad de !ue se pueden direccionar, esto es, el programador puede escribir o leer cual!uier blo!ue del dispositivo realizando primero una operacin de posicionamiento sobre el dispositivo. Los dispositivos ms comunes orientados a blo!ues son los discos duros, la memoria, discos compactos y, posiblemente, unidades de cinta. "or otro lado, los dispositivos orientados a caracteres son a!uellos !ue trabajan con secuencias de byes sin importar su longitud ni ning#na agrupacin en especial. $o son dispositivos direccionables. Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificacin anterior no es perfecta, por!ue existen varios dispositivos !ue generan entrada o salida !ue no pueden englobarse en esas categor%as. "or ejemplo, un reloj !ue genera pulsos. &in embargo, aun!ue existan algunos perifricos !ue no se puedan categorizar, todos estn administrados por el sistema operativo por medio de una parte electrnica ' mecnica y una parte de soft(are. )*an+,-.

6. Controladores de Dispositivos ! Ter"inales # Dis$os D%ros&


Los controladores de dispositivos .tambin llamados adaptadores de dispositivos/ son la parte electrnica de los perifricos, el cual puede tener la forma de una tarjeta o un circuito impreso integrado a la tarjeta maestra de la computadora. "or ejemplo, existen controladores de discos !ue se venden por separado y !ue se insertan en una ranura de la computadora, o existen fabricantes de computadoras !ue integran esa funcionalidad en la misma tarjeta en !ue viene la unidad central de procesamiento .tarjeta maestra/. Los controladores de dispositivos generalmente trabajan con voltajes de 0 y 1, volts con el dispositivo propiamente, y con la computadora a travs de interrupciones. Estas interrupciones viajan por el 2bus2 de la computadora y son recibidos por el 3"4 el cual a su vez pondr en ejecucin alg#n programa !ue sabr !u 5acer con esa se6al. 7 ese programa se le llama 2manejador de disposito2 .device driver/. 7lgunas veces el mismo controlador contiene un pe!ue6o programa en una memoria de solo lectura o en memoria de acceso

aleatoria no voltil y re'escribible !ue interact#a con el correspondiente manejador en la computadora. En la figura 8.1 se muestra un es!uema simple de dispositivos orientados a blo!ues y otros a caracteres.

"or ejemplo, la terminal .3R*/ tiene un 2c5ip2 !ue se encarga de enviar cadenas de bits por medio de un cable serial !ue a su vez son recibidos por un controlador de puerto serial en la computadora. Este 2c5ip2 tambin se encarga de leer secuencias de bits !ue agrupa para su despiegue en la pantalla o para ejecutar algunas funciones de control. Lo importante en todos estos dispositivos es !ue se debe ejercer un mecanismo para sincronizar el env%o y llegada de datos de manera concurrente. "ara intercambiar datos o se6ales entre la computadora y los controladores, muc5as veces se usan registros o secciones predefinidas de la memoria de la computadora. 7 este es!uema se le llama 2manejo de entrada ' salida mapeado por memoria2 .memory mapped 9:;/. "or ejmplo, para una 9<= "3 se muestran los vectores de interrupcin y las direcciones para la entrada 'salida en la tabla 8.1.
Controlador Reloj Teclado Di!co Duro I%pre!ora (onitor (ono (onitor Color Di!co #lexi*le Direccin(Hex) 040 060 3"0 3&8 380 3D0 3#0 043 063 3"# 3&# 3)# 3D# 3#& Vector de Interrupcin 8 $3 $' $4

*abla 8.1 >irecciones de =apeo de Entrada ' &alida

6.' A$$eso Dire$to a Me"oria !DMA&


El acceso directo a memoria se invent con el propsito de liberar al 3"4 de la carga de atender a algunos controladores de dispositivos. "ara comprender su funcionamiento vale la pena revisar cmo trabaja un controlador sin >=7. 3uando un proceso re!uiere algunos blo!ues de un dispositivo, se envia una se6al al controlador con la direccin del blo!ue deseado. El controlador lo recibe a travs del 2bus2 y el proceso puede estar esperando la respuesta .trabajo s%ncrono/ o puede estar 5aciendo otra cosa .trabajo as%ncrono/. El controlador recibe la se6al y lee la direccin del bus. Env%a a su vez una o varias se6ales al dispositivo mecnico .si es !ue lo 5ay/ y espera los datos. 3uando los recibe los escribe en un buffer local y env%a una se6al al 3"4 indicndole !ue los datos estn listos. El 3"4

recibe esta interrupcin y comienza a leer byte por byte o palabra por palabra los datos del buffer del controlador .a travs del device driver/ 5asta terminar la operacin. 3omo se ve, el 3"4 gasta varios ciclos en leer los datos deseados. El >=7 soluciona ese problema de la manera siguiente. 3uando un proceso re!uiere uno o varios blo!ues de datos, el 3"4 env%a al controlador la peticin junto con el n#mero de bytes deseados y la direccin de en dnde !uiere !ue se almacenen de regreso. El >=7 actuar como un 2cpu secundario2 )&tal+,- en cuanto a !ue tiene el poder de tomar el control del 2bus2 e indicarle al verdadero 3"4 !ue espere. 3uando el controlador tiene listos los datos, el >=7 2escuc5a2 si el 2bus2 est libre aprovec5ando esos ciclos para ir leyendo los datos del buffer del controlador e ir escribindolos en el rea de memoria !ue el 3"4 le indic. 3uando todos los datos fueron escritos, se le env%a una interrupcin al 3"4 para !ue use los datos. El a5orro con el >=7 es !ue el 3"4 ya no es interrumpido .aun!ue s% puede ser retardado por el >=7/ salvando as% el 2cambio de contexto2 y adems el >=7 aprovec5ar a!uellos ciclos en !ue el 2bus2 no fue usado por el 3"4. El 5ec5o de !ue los controladores necesiten buffers internos se debe a !ue conforme ellos reciban datos de los dispositivos !ue controlan, los deben poder almacenar temporalmente, ya !ue el 3"4 no est listo en todo momento para leerlos.

6.( Prin$ipios en el So)t*are de Entrada - Salida


Los principios de soft(are en la entrada ' salida se resumen en cuatro puntos el soft(are debe ofrecer manejadores de interrupciones, manejadores de dispositivos, soft(are !ue sea independiente de los dispositivos y soft(are para usuarios. 6.(.1 Mane+adores de interr%p$iones El primer objetivo referente a los manejadores de interrupciones consiste en !ue el programador o el usuario no debe darse cuenta de los manejos de bajo nivel para los casos en !ue el dispositivo est ocupado y se debe suspender el proceso o sincronizar algunas tareas. >esde el punto de vista del proceso o usuario, el sistema simplemente se tard ms o menos en responder a su peticin. 6.(. Mane+adores de disposisitivos El sistema debe proveer los manejadores de dispositivos necesarios para los perifricos, as% como ocultar las peculiaridades del manejo interno de cada uno de ellos, tales como el formato de la informacin, los medios mecnicos, los niveles de voltaje y otros. "or ejemplo, si el sistema tiene varios tipos diferentes de discos duros, para el usuario o programador las diferencias tcnicas entre ellos no le deben importar, y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. 6.(.' So)t*are independiente del dispositivo Este es un nivel superior de independencia !ue el ofrecido por los manejadores de dispositivos. 7!u% el sistema operativo debe ser capaz, en lo ms posible, de ofrecer un conjunto de utiler%as para accesar perifricos o programarlos de una manera consistente. "or ejemplo, !ue para todos los dispositivos orientados a blo!ues se tenga una llamada para decidir si se desea usar 2buffers2 o no, o para posicionarse en ellos.

6.(.( So)t*are para %s%arios La mayor%a de las rutinas de entrada ' salida trabajan en modo privilegiado, o son llamadas al sistema !ue se ligan a los programas del usuario formando parte de sus aplicaciones y !ue 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 decisin .por ejemplo la llamada a ?printf? en el lenguaje ?3?/. ;tra facilidad ofrecida son las reas de trabajos encolados .spooling areas/, tales como las de impresin y correo electrnico.

6., Relo+es
Los relojes son esenciales para el buen funcionamiento de cual!uier sistema por!ue juegan un papel decisivo en la sincronizacin de procesos, en la calendarizacin de trabajos por lote y para la asignacin de turnos de ejecucin entre otras tareas relevantes. @eneralmente se cuenta con dos relojes en el sistema uno !ue lleva la 5ora y fec5a del sistema y !ue oscila entre 0A y 8A veces por segundo y el reloj !ue oscila entre 0 y 1AA millones de veces por segundo y !ue se encarga de enviar interrupciones al 3"4 de manera peridica. El reloj de mayor frecuencia sirve para controlar el tiempo de ejecucin de los procesos, para despertar los procesos !ue estn 2durmiendo2 y para lanzar o iniciar procesos !ue fueron calendarizados. "ara mantener la 5ora y fec5a del sistema generalmente se usa un registro alimentado por una pila de alta duracin !ue almacena estos datos y !ue se programan de fbrica por primera vez. 7s%, aun!ue se suspenda la energ%a la fec5a permanece. "ara lanzar procesos .c5e!ueo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc/, se almacena un valor en un registro .valor B47$*4=/ el cual se decrementa con cada ciclo del reloj, y cuando llega a cero se dispara un proceso !ue ejecutar las operaciones necesarias .escoger un nuevo proceso en ejecucin, verificar el funcionamiento del motor del disco flexible, 5acer eco de un caracter del teclado, etc/.