stringtranslate.com

Nivel de prioridad de interrupción

El nivel de prioridad de interrupción ( IPL ) es parte del estado actual de interrupción del sistema , que indica las solicitudes de interrupción que se aceptarán actualmente. La IPL puede indicarse en hardware mediante los registros en un controlador de interrupciones programable , o en software mediante una máscara de bits o un valor entero y el código fuente de los subprocesos.

Descripción general

Una IPL basada en números enteros puede ser tan pequeña como un solo bit, con solo dos valores: 0 (todas las interrupciones habilitadas) o 1 (todas las interrupciones deshabilitadas), como en MOS Technology 6502 . Sin embargo, algunas arquitecturas permiten una gama mayor de valores, donde cada valor habilita solicitudes de interrupción que especifican un nivel superior, mientras bloquea las del mismo nivel o de un nivel inferior.

Asignar diferentes prioridades a las solicitudes de interrupción puede resultar útil para intentar equilibrar el rendimiento del sistema frente a la latencia de interrupción . Es necesario responder a algunos tipos de interrupciones más rápidamente que a otros, pero la cantidad de procesamiento puede no ser grande, por lo que tiene sentido asignar una mayor prioridad a ese tipo de interrupción.

También se utilizó el control del nivel de interrupción para sincronizar el acceso a las estructuras de datos del kernel. Por lo tanto, el manejador de interrupciones del programador de nivel 3 aumentaría temporalmente la IPL a 7 antes de acceder a cualquier estructura de datos del programador, y luego volvería a bajarla a 3 antes de cambiar los contextos del proceso. Sin embargo, no se le permitía a un manejador de interrupciones reducir la IPL por debajo de la que se ingresó, ya que hacerlo podría destruir la integridad del sistema de sincronización.

Por supuesto, los sistemas multiprocesador añaden sus complicaciones, que no se abordan aquí.

Independientemente de lo que pueda soportar el hardware, los sistemas típicos de tipo UNIX sólo usan dos niveles: el mínimo (todas las interrupciones deshabilitadas) y el máximo (todas las interrupciones habilitadas).

IPL de OpenVMS

Como ejemplo de uno de los sistemas de manejo de IPL más elaborados jamás implementados, la computadora VAX y el sistema operativo VMS asociado admiten 32 niveles de prioridad, del 0 al 31. Las prioridades 16 y superiores son para solicitudes de hardware externo, mientras que los valores por debajo de 16 son disponible para interrupciones de software (utilizado internamente por el sistema operativo para programar sus propias actividades). En realidad, no se utilizan todos los valores, pero estos son algunos de los más importantes:

El hardware Alpha contiene soporte nativo para IPL. Cuando OpenVMS se portó a Itanium en 2001, el esquema de IPL se simuló utilizando funciones proporcionadas por el hardware de Itanium.

Ver también