Interrupciones En Lenguaje De Bajo Nivel

Páginas: 13 (3020 palabras) Publicado: 24 de noviembre de 2012
Consideren una tarea que require tomar caracteres desde un teclado y mostrarlos en la pantalla de un monitor. La tasa de transferencia desde un teclado a un computador está limitado por la velocidad del tipeo del usuario que por lo general no excede los pocos caracteres por segundo. La tasa de transferencia desde el computador al monitor es un poco mayor y está limitada por la velocidad en quelos caracteres pueden ser transmitidos sobre el enlace entre el computador y el monitor. Esta tasa de transferencia es mucho menor que la velocidad del procesador. Esta diferencia de velocidad entre el procesador y los distintos dispositivos crea la necesidad de usar mecanismos para sincronizar sus operaciones.

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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Lenguajes De Bajo Nivel
  • Lenguaje De Bajo Nivel 
  • Lenguajes de bajo nivel ejemplos
  • Lenguaje ensamblador de bajo nivel
  • lenguaje de bajo nivel
  • Lenguaje De Bajo Nivel
  • SESION 1 LENGUAJE DE BAJO NIVEL INTRO 1
  • Realizacion de programas en debug lenguaje de bajo nivel

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS