ejercicio 5, concentrador, lineas de entrada

ejercicio 5, concentrador, lineas de entrada

de Alexis Alfonso -
Número de respuestas: 1

Hola, mirando una solución aparentemente oficial en este hilo:

arqcomp: Ejercicio 5 (fing.edu.uy)

Básicamente, se escriben las rutinas de interrupción para "int_entrada" y "int_salida"

y un main que inicializa el buffer y entra en un bucle while True, sin cuerpo.

Me surgen un par de dudas.

La primera es de interpretación de la letra; en una parte dice:

Toda vez que se escribe un byte en DATO_S el controlador transmite el byte por la línea de salida y al terminar la transmisión genera una interrupción que activa la rutina intSalida(). 

En la solución, es la propia rutina de interrupción intSalida() la que escribe un dato desencolado en el registro "DATO_S" (de hecho es lo único que hace). Entonces, por qué la secuencia que indica la letra es 

1- se detecta un byte en DATO_S

2- se transmite por la salida

3- y recién al final se genera una interrupción que activa (es decir, invoca?) a la rutina intSalida

?

La segunda duda es la siguiente. Hay 2 rutinas de interrupción, y hay un método main super simple que entra en un while True sin hacer más nada. Entonces, quién hace el chequeo de los bits de estado de los controladores y efectivamente llama a las interrupciones?

Y si no debemos hacer explicitamente los llamados a las rutinas de interrupción, por qué en otros ejercicios, sí se hace de manera explicita (como en el ejercicio donde se detectan teclas de entrada) ?


Agradezco mucho la ayuda!


Saludos

En respuesta a Alexis Alfonso

Re: ejercicio 5, concentrador, lineas de entrada

de Alexis Alfonso -
Me respondo a mi mismo la segunda duda, después de haber hecho algunos ejercicios más. El llamado explícito a las interrupciones
tiene que ver con qué la letra del ejercicio (el que detecta combinaciones de entrada de teclado ) así lo pide.

Sobre el primer punto sigo teniendo dudas.