miércoles, 28 de agosto de 2013

Actividad #4 Investigar sobre conceptos de interrupciones y llamadas a servicios de sistema

INTERRUPCIONES
Las interrupciones son algoritmos suministrados en su mayor porcentaje por el sistema operativo y l BIOS, aunque todavía pueden existir algunas generadas por empresas diferentes a las del sistema o por el usuario.
Una interrupción puede tener varias funciones y de simular manera de un procedimiento cuando se la invoque se deberá determinar la función que se está solicitando con los parámetro que corresponden.

Las interrupciones desde el punto de vista del Hardware

El Esquema Ordenador debe atender los requerimientos de los dispositivos de entrada/salida y para ello utiliza 2 técnicas: el Polling o encuestas.
Las interrupciones se clasifican en externas a aquellas que son pedidas por el hardware que a su vez pueden ser enmascarables o no enmascarables.
El significado del enmascaramiento es que si se enmascaran no se atienden, esto se logra con una instrucción conocida como DI (Disenell Interlap) inhabilitación de interrupciones.
Las interrupciones no enmascarables que realizan sus pedidos a través de la línea MNI (None Enmascarable Interrup) a la línea de interrupciones no enmascarables.
El indicador de interrupciones no enmascarables es el bit I del Registro de Estado.
En la arquitectura de la PC el Microprocesador trabaja con un gestor de interrupciones conocido como Controlador programable de interrupciones (PIC 8259). Los diferentes dispositivos de entrada/salida solicitaran una interrupción al PIC a través de una línea IRQ (Interrap Request) desrequerimiento de interrupciones. Éste a su vez la solicitará al microprocesador a través de una línea INT de pedidos de interrupciones.
El micro evaluará si la interrupción es enmascarable leyendo el bit I del Registro de Estado, en el caso de no estarla aceptará la interrupción del PIC por medio de una señal de reconocimiento a través del INTA (Interrap Acrnoplep).
Cuando esta ocurre en PIC escribe en el bus de datos un valor de 8 bits que identifica el número interrupción solicitada (entre el 00h hasta FFh).
El hecho que un dispositivo pida interrupción a través de un número de IRQ no significa que el número de interrupción solicitada es el mismo.
Las interrupciones internas no son enmascarables porque entran directo al micro y como este lee – interpreta – ejecuta, si la leyó deberá ejecutarla porque no tiene capacidad para interrumpirla (el que decide si una interrupción es enmascarable o no es el software, es decir, el programador).

Las interrupciones desde el punto de vista del software

Al momento de solicitarse una interrupción (interna o externa) se está ejecutando un programa, si la interrupción se atiende se empilan los valores del CS, IP y del Registro de Estado y se asigna al CS el valor 0 y al IP 4 por el número de interrupciones, generando una dirección efectiva que provoca un salto a la parte baja de la memoria, un área conocida como Zona de vectorización.
La Zona de vectorización es un área de 1024 bytes (256 interrupciones por 4 bytes que tiene cada una) que se extiende desde la dirección 0 a la 3FF y que almacena las direcciones de comienzo de los algoritmos de interrupción.
Utiliza 4 bytes para la dirección, 2 para el segmento y 2 para el desplazamiento y estas direcciones se almacenan secuencialmente desde la dirección más baja, interrupción tras interrupción.
Siguiendo con la secuencia anterior se lee en la zona de vectorización la dirección de comienzo del algoritmo de interrupción asignándosele 2 bytes al segmento CS y 2 bytes al desplazamiento IP generándose en consecuencia una nueva dirección de salto que no lleva al algoritmo de interrupción.
Una vez allí se ejecutará el algoritmo (lee – interpreta – ejecuta) hasta encontrar la instrucción final del algoritmo que será un IRET o Retorno de Interrupción. Esta instrucción desempila los valores del RE, IP y CS volviendo a la instrucción ejecutada donde se había atendido la interrupción.

La interrupción 21


Es la interrupción más importante del Sistema Operativo dos y como muchas interrupciones tienen un conjunto de funciones que permiten hacer deferentes cosas. Las funciones de una interrupción suelen indicarse con el registro AH.

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. En otras palabras, el sistema operativo actúa como intermediario, ofreciendo una interfaz de programación (API) que el programa puede usar en cualquier momento para solicitar recursos gestionados por el sistema operativo.
Algunos ejemplos de llamadas al sistema son las siguientes:
  • 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.
Todo sistema operativo ofrece un conjunto de llamadas al sistema. En el caso de Linux 3.0, se ofrecen un total de 345 llamadas al sistema.

No hay comentarios:

Publicar un comentario