Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema5e S
Tema5e S
Por ejemplo, la terminal (CRT) tiene un 'chip' que se encarga de enviar cadenas de bits por
medio de un cable serial que a su vez son recibidos por un controlador de puerto serial en la
computadora. Este 'chip' tambin se encarga de leer secuencias de bits que agrupa para su
despiegue en la pantalla o para ejecutar algunas funciones de control. Lo importante en
todos estos dispositivos es que se debe ejercer un mecanismo para sincronizar el envo y
llegada de datos de manera concurrente.
Para intercambiar datos o seales entre la computadora y los controladores, muchas veces
se usan registros o secciones predefinidas de la memoria de la computadora. A este
esquema se le llama 'manejo de entrada - salida mapeado por memoria' (memory mapped
I/O). Por ejmplo, para una IBM PC se muestran los vectores de interrupcin y las
direcciones para la entrada -salida en la tabla 6.1.
Controlador
Reloj
Teclado
Disco Duro
Impresora
Monitor Mono
Monitor Color
Disco Flexible
Direccin(Hex)
040
060
320
378
380
3D0
3F0
Vector de Interrupcin
043
063
32F
37F
3BF
3DF
3F7
8
9
13
15
14
un buffer local y enva una seal al CPU indicndole que los datos estn listos. El CPU
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) hasta terminar la operacin.
Como se ve, el CPU gasta varios ciclos en leer los datos deseados. El DMA soluciona ese
problema de la manera siguiente. Cuando un proceso requiere uno o varios bloques de
datos, el CPU enva al controlador la peticin junto con el nmero de bytes deseados y la
direccin de en dnde quiere que se almacenen de regreso. El DMA actuar como un 'cpu
secundario' [Stal92] en cuanto a que tiene el poder de tomar el control del 'bus' e indicarle
al verdadero CPU que espere. Cuando el controlador tiene listos los datos, el DMA
'escucha' si el 'bus' est libre aprovechando esos ciclos para ir leyendo los datos del buffer
del controlador e ir escribindolos en el rea de memoria que el CPU le indic. Cuando
todos los datos fueron escritos, se le enva una interrupcin al CPU para que use los datos.
El ahorro con el DMA es que el CPU ya no es interrumpido (aunque s puede ser retardado
por el DMA) salvando as el 'cambio de contexto' y adems el DMA aprovechar aquellos
ciclos en que el 'bus' no fue usado por el CPU.
El hecho de que los controladores necesiten buffers internos se debe a que conforme ellos
reciban datos de los dispositivos que controlan, los deben poder almacenar temporalmente,
ya que el CPU no est listo en todo momento para leerlos.
orientados a bloques se tenga una llamada para decidir si se desea usar 'buffers' o no, o para
posicionarse en ellos.
6.4.4 Software para usuarios La mayora 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 libreras en donde el usuario si tiene poder
de decisin (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 impresin y correo
electrnico.
6.5 Relojes
Los relojes son esenciales para el buen funcionamiento de cualquier sistema porque 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. Generalmente
se cuenta con dos relojes en el sistema: uno que lleva la hora y fecha del sistema y que
oscila entre 50 y 60 veces por segundo y el reloj que oscila entre 5 y 100 millones de veces
por segundo y que se encarga de enviar interrupciones al CPU de manera peridica. El reloj
de mayor frecuencia sirve para controlar el tiempo de ejecucin de los procesos, para
despertar los procesos que estn 'durmiendo' y para lanzar o iniciar procesos que fueron
calendarizados.
Para mantener la hora y fecha del sistema generalmente se usa un registro alimentado por
una pila de alta duracin que almacena estos datos y que se programan de fbrica por
primera vez. As, aunque se suspenda la energa la fecha permanece. Para lanzar procesos
(chequeo de tiempo ocioso de un dispositivo, terminacin del time slice de un proceso, etc),
se almacena un valor en un registro (valor QUANTUM) el cual se decrementa con cada
ciclo del reloj, y cuando llega a cero se dispara un proceso que ejecutar las operaciones
necesarias (escoger un nuevo proceso en ejecucin, verificar el funcionamiento del motor
del disco flexible, hacer eco de un caracter del teclado, etc).