Interrup c i Ones

download Interrup c i Ones

of 11

description

interrupciones

Transcript of Interrup c i Ones

Diapositiva 1

Funcionamiento del computadorinterrupcionesCLASES DE INTERRUPCIONESFuncionamiento del computadorinterrupcionesEjemplo, ya sabemos que la mayora de los dispositivos externos son mas lentos que la CPU, imaginemos la CPU imprimiendo un documento

Funcionamiento del computadorinterrupcionesProcesador a 200 MHz (tiempo ciclo reloj = 5 ns; Ciclos por instruccin CPI = 2 , en promedio) Una instruccin tarda en promedio 2 x 5 ns = 10 ns =>lla computadora puede ejecutar ~100 Mips Queremos imprimir un archivo de 10 Kbytes en una impresora lser de 20 pginas por minuto 1 pgina 3.000 caracteres (1 carcter = 1 byte) La impresora imprime 60.000 caracteres por minuto = 1 Kbyte/s

Hasta hora lo nico que podamos hacer era que la CPU enve los datos que pudiera recibir la impresora y esperar que termine de imprimir o que solicite mas datos.

Funcionamiento del computadorinterrupcionesSin interrupciones:

La CPU entra en un bucle y enva un nuevo byte cada vez que la impresora est preparada para recibirlo. La impresora tarda 10 seg en imprimir 10 Kbytes La CPU est ocupada con la operacin de E/S durante 10 seg. (en ese tiempo la CPU podra haber ejecutado 1000 millones de instrucciones)

Con el uso de interrupciones la CPU no tiene que esperar, mandara los datos a la impresora y seguira haciendo alguna tarea productiva.

Funcionamiento del computadorinterrupcionesCon interrupciones: .La impresora genera una interrupcin cada vez que est preparada para recibir un nuevo byte. Si la gestin de interrupcin (ATI) tiene 10 instrucciones (salvar contexto, comprobar estado, transferir byte, restaurar contexto, rti) Para transferir 10 Kbytes tenemos que ejecutar 10.000 veces la ATI ejecutar 100.000 instrucciones para atender al perifrico la CPU tarda 0,001 seg. La CPU est ocupada con la operacin de E/S durante 0,001 seg. La E/S por interrupciones reduce en 10.000 veces el tiempo que la CPU est ocupada gestionando la impresora.

Esta diferencia es tan marcada porque el perifrico es realmente muy lento, con perifricos rpidos, solo con las interrupciones no alcanza para solucionar el problema.

Funcionamiento del computadorinterrupcionesEn este grfico se muestra el tiempo que utiliza la CPU en el perifrico, la lnea punteada nos marca en que se estara utilizando el CPU.Cuando se atiende, un perifrico el procesador ejecuta un programa que atiende al modulo de entrada salida, este programa se carga, prepara lo necesario para que se pueda realizar la operacin requerida con el perifrico, seguido a esto se ejecuta la instruccin solicitada, cuando termina el perifrico su tarea, en algunos casos el programa cargado puede realizar alguna otra tarea relacionada, para el lado del perifrico o para el lado de los buses, por ejemplo mandar informacin de algn error que se halla detectado en el perifrico, para luego proseguir con la ejecucin del programa original

Funcionamiento del computadorinterrupciones

Se puede ver, en la primera seccin, que mientras esta funcionando el perifrico (entre los crculos 4 y 5) el CPU no hace nada, solo espera que termine.En cambio se puede apreciar en la segunda seccione del grfico, que luego de que el programa que atiende la E/S pone en funcionamiento el perifrico, el procesador dedica su tiempo en procesar el programa original hasta que reciba una nueva interrupcin, las 2 cruces identifican las interrupciones.

Funcionamiento del computadorinterrupcionesSabiendo un poco de las interrupciones ahora podemos agregar una nueva etapa al ciclo de la instruccin bsico. INICIOPARADACapturasiguienteinstruccinEjecutainstruccinCiclo Fetch (Captura)Ciclo de ejecucinComprobacin de interrupcin;interrupcin del procesoInterrupciones habilitadasInterrupciones inhabilitadasCiclo de interrupcinEn este grfico podemos ver que si las interrupciones estn deshabilitadas, el ciclo es igual, pero si estn habilitadas antes de captar la prxima instruccin, chequea si hay alguna interrupcin pendiente, si lo hay, en la etapa Ciclo de interrupcin" el procesador guardara el contexto (registro que contiene los flags, registro PC, etc) cargara en el registro PC la direccin donde esta el programa que atiende la interrupcin, y empezara a captar y ejecutar las instrucciones del programa de atencin a la interrupcin. Funcionamiento del computadorinterrupcionesTambin vamos a agregar la etapa de deteccin de interrupciones el grfico mas detallado: VariosoperandosVariosoperandosInstruccin completadaCaptar la siguiente instruccinCadena o vectorde datosCaptacinde instruccinClculo de ladireccin dela instruccinDecodificacinde la operacinde la instruccinCaptacindel operandoClculo de ladireccin deloperandoOperacincon datosAlcacena-miento de operandoClculo de ladireccin deloperandoClculo de ladireccin deloperandoClculo de ladireccin deloperandoFuncionamiento del computadorinterrupcionesBien, que sucedera si ocurre una interrupcin mientras se esta ejecutando una interrupcin? Hay 2 alternativas, la primera es que mientras se esta atendiendo una interrupcin se desactivan las dems, luego que se termina de atender la interrupcin el procesador, antes de proseguir con la ejecucin del programa principal, chequea si hay alguna interrupcin pendiente, y as las va ejecutando secuencialmente. La desventaja es que no se tiene en cuenta ninguna prioridad, y es necesario porque hay peticiones que en la que es importante atenderlas rpidamente y hay otras que no.

Funcionamiento del computadorinterrupcionesLa otra alternativa es que las interrupciones tengan prioridad, entonces, si una interrupcin es interrumpida por otra que posee mayor prioridad, se almacena el contexto de ejecucin de la interrupcin en curso, se carga el PC con la nueva direccin y se empieza a ejecutar las instrucciones del programa que atiende la nueva interrupcin, al terminar se continua atendiendo la interrupcin anterior, y cuando se termina de atender esta, se vuelve a la ejecucin del programa principal.