interrupcionesyllamadasdelsistema-130829190942-phpapp02

10
INTERRUPCIONES Y LLAMADAS DEL SISTEMA Lenguajes de Interfaz José Manuel Puentes García

description

df

Transcript of interrupcionesyllamadasdelsistema-130829190942-phpapp02

Interrupciones y llamadas del sistema

Interrupciones y llamadas del sistemaLenguajes de Interfaz Jos Manuel Puentes GarcaInterrupcionesUn dispositivo perifrico puede generar una seal elctrica llamada interrupcin que modifica ciertas banderas que se encuentran en el CPU. La deteccin de una interrupcin es parte del ciclo de instruccin. En cada ciclo de instruccin, el CPU chequea las banderas hardware para ver si algn dispositivo necesita atencin.

Como se genera las interrupciones?Las interrupciones generadas por los dispositivos perifricos son generalmente asncronas con respecto al programaque se est ejecutando. Un evento esasncronoa una entidad si el momento cuando ocurre no est determinado por la entidad. Las interrupciones no siempre ocurren en el mismo punto dentro de la ejecucin de un programa. En contraste, un evento de error como la divisin por cero essncronoen el sentido de que siempre ocurre durante la ejecucin de una instruccin particular si el mismo dato es presentado a la instruccin.Pasos durante una interrupcinEl CPU suspende lo que estaba realizando. El hardware transfiere el control al sistema de operacin.Deshabilita las interrupciones. Mientras se atiende una interrupcin no se puede atender otra que llegue. Algunas arquitecturas con manejo de interrupciones sofisticadas permiten, mediante un esquema de prioridades, interrumpir un servicio de interrupcin para atender otra de mayor prioridad. Aquellas interrupciones de menor o igual prioridad son deshabilitadas.El kernel del sistema de operacin salva el estado actual del proceso interrumpidoTransfiere su ejecucin a una direccin fija. Esta direccin por lo general contiene la direccin de comienzo donde la rutina de servicio de la interrupcin se encuentra.

Se ejecuta la rutina de interrupcinSe restaura el estado anteriorSe habilitan las interrupciones.La arquitectura de interrupciones debe tambin almacenar la direccin de la instruccin interrumpida.

Interrupciones de softwareSon aquellas programadas por el usuario, es decir, el usuario decide cuando y donde ejecutarlas, generalmente son usadas para realizar entrada y salida.

Interrupciones por hardwareSon aquellas que son provocadas por dispositivos externos al procesador su caractersticaprincipales que no son programadas, esto es, pueden ocurrir en cualquier momento en el programa.

Tipos de interrupciones por hardwareInterrupciones por hardware enmascarables:Aquellas en las que el usuario decide si quiere o no ser interrumpido.Interrupciones por hardware no enmascarables (NMI):Aquellas que siempre interrumpen al programa.

Llamadas al Sistema

Una llamada al sistema es un mtodo o funcin que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requieren la ejecucin de cdigo en modo privilegiado, el sistema operativo ofrece un conjunto de mtodos o funciones que el programa puede emplear para acceder a dichos recursos.

EjemplosTime, que permite obtener la fecha y hora del sistema.Write, que se emplea para escribir un dato en un cierto dispositivo de salida, tales como una pantalla o un disco magntico.Read, que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magntico. Open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.