You are on page 1of 4

6.

PRINCIPIOS EN EL MANEJO DE ENTRADA SALIDA
El código destinado a manejar la entrada y salida de los diferentes periféricos en un sistema operativo es de una extensión considerable y sumamente complejo. Resuelve la necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas al sistema para los programadores. En esta sección se repasarán los principios más importantes a tomar en cuenta en este módulo 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 operación de posicionamiento sobre el dispositivo. Los dispositivos más 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 agrupación en especial. $o son dispositivos direccionables. Ejemplos de estos dispositivos son el teclado, la pantalla o display y las impresoras. La clasificación 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 periféricos !ue no se puedan categorizar, todos están administrados por el sistema operativo por medio de una parte electrónica ' mecánica y una parte de soft(are. )*an+,-.

6. Controladores de Dispositivos ! Ter"inales # Dis$os D%ros&
Los controladores de dispositivos .también llamados adaptadores de dispositivos/ son la parte electrónica de los periféricos, 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 través 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 ejecución 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 volátil y re'escribible !ue interact#a con el correspondiente manejador en la computadora. 3uando un proceso re!uiere algunos blo!ues de un dispositivo. se envia una se6al al controlador con la dirección del blo!ue deseado. muc5as veces se usan registros o secciones predefinidas de la memoria de la computadora. para una 9<= "3 se muestran los vectores de interrupción y las direcciones para la entrada 'salida en la tabla 8.memory mapped 9:. 7 este es!uema se le llama 2manejo de entrada ' salida mapeado por memoria2 . 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./. El 3"4 . Controlador Reloj Teclado Di!co Duro I%pre!ora (onitor (ono (onitor Color Di!co #lexi*le Dirección(Hex) 040 060 3"0 3&8 380 3D0 3#0 043 063 3"# 3&# 3)# 3D# 3#& Vector de Interrupción 8 $3 $' $4 *abla 8. 3uando los recibe los escribe en un buffer local y env%a una se6al al 3"4 indicándole !ue los datos están listos.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.trabajo s%ncrono/ o puede estar 5aciendo otra cosa .1 se muestra un es!uema simple de dispositivos orientados a blo!ues y otros a caracteres. "ara comprender su funcionamiento vale la pena revisar cómo trabaja un controlador sin >=7. "ara intercambiar datos o se6ales entre la computadora y los controladores. El controlador recibe la se6al y lee la dirección del bus.trabajo as%ncrono/.1. El controlador lo recibe a través del 2bus2 y el proceso puede estar esperando la respuesta . la terminal . Este 2c5ip2 también se encarga de leer secuencias de bits !ue agrupa para su despiegue en la pantalla o para ejecutar algunas funciones de control.' A$$eso Dire$to a Me"oria !DMA& El acceso directo a memoria se inventó con el propósito de liberar al 3"4 de la carga de atender a algunos controladores de dispositivos. En la figura 8. "or ejemplo. Env%a a su vez una o varias se6ales al dispositivo mecánico . "or ejmplo.si es !ue lo 5ay/ y espera los datos.1 >irecciones de =apeo de Entrada ' &alida 6.

7!u% el sistema operativo debe ser capaz.(. Mane+adores de disposisitivos El sistema debe proveer los manejadores de dispositivos necesarios para los periféricos. para el usuario o programador las diferencias técnicas entre ellos no le deben importar. 6. los deben poder almacenar temporalmente. 3omo se ve. los medios mecánicos. los niveles de voltaje y otros. 6. !ue para todos los dispositivos orientados a blo!ues se tenga una llamada para decidir si se desea usar 2buffers2 o no.. ya !ue el 3"4 no está listo en todo momento para leerlos.recibe esta interrupción y comienza a leer byte por byte o palabra por palabra los datos del buffer del controlador . 3uando todos los datos fueron escritos. de ofrecer un conjunto de utiler%as para accesar periféricos o programarlos de una manera consistente.( 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. >esde el punto de vista del proceso o usuario.(.en cuanto a !ue tiene el poder de tomar el control del 2bus2 e indicarle al verdadero 3"4 !ue espere. se le env%a una interrupción al 3"4 para !ue use los datos. o para posicionarse en ellos.a través del device driver/ 5asta terminar la operación. El >=7 soluciona ese problema de la manera siguiente. el sistema simplemente se tardó más o menos en responder a su petición. as% como ocultar las peculiaridades del manejo interno de cada uno de ellos. el 3"4 env%a al controlador la petición junto con el n#mero de bytes deseados y la dirección de en dónde !uiere !ue se almacenen de regreso.(. 6. soft(are !ue sea independiente de los dispositivos y soft(are para usuarios. tales como el formato de la información. . El >=7 actuará como un 2cpu secundario2 )&tal+. y los manejadores le deben ofrecer el mismo conjunto de rutinas para leer y escribir datos. 6. "or ejemplo.aun!ue s% puede ser retardado por el >=7/ salvando as% el 2cambio de contexto2 y además el >=7 aprovec5ará a!uellos ciclos en !ue el 2bus2 no fue usado por el 3"4. manejadores de dispositivos. El 5ec5o de !ue los controladores necesiten buffers internos se debe a !ue conforme ellos reciban datos de los dispositivos !ue controlan. "or ejemplo. el >=7 2escuc5a2 si el 2bus2 está libre aprovec5ando esos ciclos para ir leyendo los datos del buffer del controlador e ir escribiéndolos en el área de memoria !ue el 3"4 le indicó. 3uando un proceso re!uiere uno o varios blo!ues de datos. el 3"4 gasta varios ciclos en leer los datos deseados.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. si el sistema tiene varios tipos diferentes de discos duros.' So)t*are independiente del dispositivo Este es un nivel superior de independencia !ue el ofrecido por los manejadores de dispositivos. El a5orro con el >=7 es !ue el 3"4 ya no es interrumpido . 3uando el controlador tiene listos los datos. en lo más posible.

.. etc/. El reloj de mayor frecuencia sirve para controlar el tiempo de ejecución de los procesos. 6.(. para despertar los procesos !ue están 2durmiendo2 y para lanzar o iniciar procesos !ue fueron calendarizados. se almacena un valor en un registro . . @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 periódica. "ara lanzar procesos . 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.6.escoger un nuevo proceso en ejecución.tra facilidad ofrecida son las áreas de trabajos encolados . aun!ue se suspenda la energ%a la fec5a permanece. Existen otras librer%as en donde el usuario si tiene poder de decisión . terminación del time slice de un proceso.( So)t*are para %s%arios La mayor%a de las rutinas de entrada ' salida trabajan en modo privilegiado.valor B47$*4=/ el cual se decrementa con cada ciclo del reloj. etc/. en la calendarización de trabajos por lote y para la asignación de turnos de ejecución entre otras tareas relevantes. y cuando llega a cero se dispara un proceso !ue ejecutará las operaciones necesarias . "ara mantener la 5ora y fec5a del sistema generalmente se usa un registro alimentado por una pila de alta duración !ue almacena estos datos y !ue se programan de fábrica por primera vez.spooling areas/. 7s%.c5e!ueo de tiempo ocioso de un dispositivo. tales como las de impresión y correo electrónico.por ejemplo la llamada a ?printf? en el lenguaje ?3?/. verificar el funcionamiento del motor del disco flexible. 5acer eco de un caracter del teclado. Relo+es Los relojes son esenciales para el buen funcionamiento de cual!uier sistema por!ue juegan un papel decisivo en la sincronización de procesos.