Interrupciones En Lenguaje De Bajo Nivel
Una posible solución a este problema es conocida como spin waiting. Por ejemplo parallevar a cabo una salida en el monitor, el CPU envía el primer caracter y espera por una señal del monitor que indique que el caracter ya ha sido mostrado. El CPU envía el segundo caracter y espera por una señal que indique que el segundo caracter fue mostrado. Estos pasos se repiten para cada caracter a ser transferido. En el caso de una entrada desde el teclado, un caracter es enviado. El CPUespera por una señal que le indique que una tecla ha sido presionada y que el código correspondiente está disponible en alguna localidad apropiada, y asi sucesivamente para el resto de los caracteres. Esta solución en donde el CPU espera explícitamente por Entrada/Salida ocasiona un
desperdicio enorme de ciclos de CPU. El CPU chequea constantemente el estado del dispositivo y durante ese periodo,el procesador no lleva a cabo ningún trabajo provechoso. Otras tareas pudieran llevarse a cabo mientras el dispositivo de E/S lleva a cabo su trabajo.
Otra alternativa es un chequeo ocasio nal, en este caso el CPU debe recordar periódicamente que debe revisar los dispositivos. Si pregunta muy a menudo desperdicia mucho tiempo revisando y si toma mucho tiempo entre verificación entonces podemostener dispositivos ociosos. Otra posible solución es el uso de las interrupciones. La idea es que
1. el CPU le indica al dispositivo que requiere un servicio 2. el CPU se pone a trabajar en otras tareas 3. el dispositivo interrumpe al CPU cuando ha completado el servicio 4. el CPU toma la información proporcionada por el dispositivo y 5. continua una vez obtenido el servicio deseado.
Desdeel punto de vista del programa del usuario, una interrupción es precisamente eso, una interrupción en la secuencia normal de ejecución del programa. El programa del usuario no tiene que incluir ningún código para posibilitar las interrupciones. Se añade el ciclo de interrupción al ciclo de instrucción.
Con el uso de interrupciones, el procesador puede dedicarse a ejecutar otras instruccionesmientras una operación de E/S está en curso Aspectos a considerar en interrupciones • • • • • • • Señal de petición de interrupción Procesamiento de una interrupción Rutina de servicio de la interrupción Vector de Interrupción Habilitación o deshabilitación de interrupciones Prioridad de interrupción Interrupciones no enmascarables
Señal de petición de Interrupción
La interrupción debeprocesarse sin intervención del software que se está ejecutando en el momento en el que ocurre. Para esto es necesario que el hardware provea el mecanismo básico a través del cual se dé curso a la interrupción. Para esto es necesario que el CPU tenga una línea de entrada que provenga del dispositivo y que una señal que llegue por dicha línea obligue al CPU a atenderla.
Para permitir el uso deinterrupciones, se añade un ciclo de interrupción al ciclo de instrucción (Figura 1)
En el ciclo de interrupción, el procesador comprueba si se ha producido alguna interrupción indicada por la presencia de una señal de interrupción. Si no hay señales pendientes de interrupción, el procesador continúa con el ciclo de captación y accede a la siguiente instrucción del programa en curso. Si hay una...
Regístrate para leer el documento completo.