viernes, 16 de junio de 2017

E/S Controlada por Interrupciones

Ahora vamos a considerar el caso de imprimir en una impresora que no coloca los caracteres en un
búfer, sino que imprime cada uno a medida que va llegando. Si la impresora puede imprimir (por
ejemplo,) 100 caracteres/seg, cada carácter requiere 10 mseg para imprimirse. Esto significa que
después de escribir cada carácter en el registro de datos de la impresora, la CPU estará en un ciclo
de inactividad durante 10 mseg, esperando a que se le permita imprimir el siguiente carácter. Este
tiempo es más que suficiente para realizar un cambio de contexto y ejecutar algún otro proceso durante
los 10 mseg que, de otra manera, se desperdiciarían.
La forma de permitir que la CPU haga algo más mientras espera a que la impresora esté lista es
utilizar interrupciones. Cuando se realiza la llamada al sistema para imprimir la cadena, el búfer se
copia en espacio de kernel (como vimos antes) y el primer carácter se copia a la impresora, tan pronto
como esté dispuesta para aceptar un carácter. En ese momento, la CPU llama al planificador y se
ejecuta algún otro proceso. El proceso que pidió imprimir la cadena se bloquea hasta que se haya impreso
toda la cadena.




No hay comentarios:

Publicar un comentario

Software de Salida

Ahora consideremos el software de salida. Primero analizaremos una salida de ejemplo a una ventana de texto, que es lo que los programadores...