Interrupciones y llamadas del sistema

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

Transcript of Interrupciones y llamadas del sistema

Page 1: Interrupciones y llamadas del sistema

INTERRUPCIONES Y LLAMADAS DEL SISTEMA

Lenguajes de Interfaz José Manuel Puentes García

Page 2: Interrupciones y llamadas del sistema

INTERRUPCIONES Un dispositivo periférico puede generar una

señal eléctrica llamada interrupción que modifica ciertas banderas que se encuentran en el CPU. La detección de una interrupción es parte del ciclo de instrucción. En cada ciclo de instrucción, el CPU chequea las banderas hardware para ver si algún dispositivo necesita atención.

Page 3: Interrupciones y llamadas del sistema

COMO SE GENERA LAS INTERRUPCIONES? Las interrupciones generadas por los dispositivos

periféricos son generalmente asíncronas con respecto al programa que se está ejecutando. Un evento es asíncrono a 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 ejecución de un programa. En contraste, un evento de error como la división por cero es síncrono en el sentido de que siempre ocurre durante la ejecución de una instrucción particular si el mismo dato es presentado a la instrucción.

Page 4: Interrupciones y llamadas del sistema

PASOS DURANTE UNA INTERRUPCIÓN El CPU suspende lo que estaba realizando. El hardware

transfiere el control al sistema de operación. Deshabilita las interrupciones. Mientras se atiende una

interrupción no se puede atender otra que llegue. Algunas arquitecturas con manejo de interrupciones sofisticadas permiten, mediante un esquema de prioridades, interrumpir un servicio de interrupción para atender otra de mayor prioridad. Aquellas interrupciones de menor o igual prioridad son deshabilitadas.

El kernel del sistema de operación salva el estado actual del proceso interrumpido

Transfiere su ejecución a una dirección fija. Esta dirección por lo general contiene la dirección de comienzo donde la rutina de servicio de la interrupción se encuentra.

Page 5: Interrupciones y llamadas del sistema

Se ejecuta la rutina de interrupción Se restaura el estado anterior Se habilitan las interrupciones. La arquitectura de interrupciones debe

también almacenar la dirección de la instrucción interrumpida.

Page 6: Interrupciones y llamadas del sistema

INTERRUPCIONES DE SOFTWARE

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

Page 7: Interrupciones y llamadas del sistema

INTERRUPCIONES POR HARDWARE

Son aquellas que son provocadas por dispositivos externos al procesador su característica principal es que no son programadas, esto es, pueden ocurrir en cualquier momento en el programa.

Page 8: Interrupciones y llamadas del sistema

TIPOS DE INTERRUPCIONES POR HARDWARE

Interrupciones 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.

Page 9: Interrupciones y llamadas del sistema

LLAMADAS AL SISTEMA

Una llamada al sistema es un método o función que puede invocar un proceso para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos del sistema requieren la ejecución de código en modo privilegiado, el sistema operativo ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a dichos recursos.

Page 10: Interrupciones y llamadas del sistema

EJEMPLOS Time, 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 magnético.

Read, que es usada para leer de un dispositivo de entrada, tales como un teclado o un disco magnético.

Open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero suele pasarse a write.