Linux resolución llamadas e interrupciones del sistema

Linux resolución llamadas e interrupciones del sistema

diagrama de la estructura de las llamadas y las interrupciones del sistema

Autor: tomate sabor BAK
enlace: https://www.zhihu.com/question/30432536/answer/54998416
Fuente: sabemos casi
con derechos de autor por el autor. reimpresión comercial póngase en contacto con el autor autorizada, reimpresión no comercial por favor indique la fuente.

Interrupción : también conocido como interrupciones asíncronas , otro hardware de acuerdo con la señal de reloj de la CPU generado aleatoriamente 's. La interrupción se ha dividido en las interrupciones de hardware enmascarables y las interrupciones no enmascarable . Cursos de computación, en principio, hay dos pines del procesador de MNI y INTR responsables de recibir una señal de interrupción, así como avanzada controlador de interrupción programable (APIC), tales como la señal de interrupción de gestión 8259A. Las alarmas de proceso pueden estar protegidos: Cualquier INTR al procesador o por un APIC local de interrupción señales se denominan interrupción de hardware enmascarable, IRQ (solicitud de interrupción) generado por los dispositivos IO son interrupción de hardware enmascarable. Sin embargo, haciendo pasar el perno INTR interrupción de hardware enmascarable puede definirse utilizando la arquitectura Intel el vector de interrupción (0-255), y algunos APIC local transmitida utilizando sólo un número vector 16-255. Si la señal de interrupción se transmite sobre el pasador de NMI, que se produce es una interrupción no enmascarable.

Al igual que nuestro común, teclado, tarjeta de red de entrada es interrupciones asíncronas , las interrupciones asíncronas (interrupción de hardware) de procesamiento en lenguaje ensamblador que hemos aprendido

Una vez que la fuente de solicitud de interrupción no enmascarable, CPU debe responder incondicionalmente, y para la fuente de solicitud de interrupción enmascarable, la respuesta de la CPU, no pueden responder. cpu petición de interrupción se proporciona generalmente dos líneas de entrada: enmascarable petición de interrupción INTR (Interrupt Requerir) y una solicitud de interrupción no enmascarable NMI (no enmascarable de interrupción). Para interrupciones enmascarables, en sí controlado por la adición de los bits de máscara, pero también están sujetos a un control global, es decir, registro de control de interrupción habilitar el indicador de IF (indicador de interrupción) banderas en la CPU, el Si el bit es 1, se puede obtener CPU respuesta, de lo contrario, no hay respuesta. Si el bit puede ser controlada por el usuario, o instrucción STI Habilitar Turbo c de la función (), la posición 1 (en la rotura) IF, el comando Disable de CLI o función () Turbo_c, el Si el bit a 0 (off de interrupción).

Ejemplos típicos de fuente de interrupción no enmascarable es falla de energía , una vez allí, debe responder de inmediato y sin condiciones, o realizar cualquier otro trabajo no tiene sentido.

Los ejemplos típicos de fuente de interrupción enmascarable es impresora de interrupción , respuesta de la impresora a la CPU petición de interrupción puede ser más rápido, también puede ser más lento debido a que la impresora espera para los niños que hacer es totalmente posible.
----------------
responsabilidad: Este artículo es RDCC blogger "artículo original lidandan2016', siga el CC 4.0 BY-SA acuerdo de derecho de autor, reproduce, por favor adjuntar el enlace de la fuente original y esta declaración. .
fuente original: https://blog.csdn.net/lidandan2016/java/article/details/53437273

Anormal : también conocido como interrupciones síncronas , cuando se ejecuta la instrucción unidad de control CPU produce , y se llama síncrona, ya que la CPU será emitido sólo después de la ejecución de la terminación de interrupción una instrucción. Al mismo tiempo, sin perder la continuidad del proceso de implementación, causado por la instrucción anormal si se debe volver a ejecutar, y de acuerdo con la forma en que se reportaron, trastornos caer en el error , la trampa , y termina tres casos.

Error : un error puede corregirse en general ser anormal, una vez corregido, el programa puede entonces ser ejecutado sin pérdida de continuidad. Al informar se produce un error, el procesador restaurar el estado de la máquina al estado anterior a errores de ejecución. De la instrucción después de la rutina de control de dirección de retorno que apunta a una instrucción mal, en lugar del comando de error de error. Tales como errores de página.

Trampa : Cuando la instrucción que causó la trampa que se produzca, generando de inmediato la excepción. Trampa de permitir que el programa continúe sin perder continuidad. Trampa manejo de instrucciones rutina que causó la dirección excepción de retorno que apunta a la siguiente instrucción (la diferencia en la naturaleza del error). Tal desbordamiento como.

Terminación : no siempre produce el informe para determinar la excepción comando de posición, no se les permite causar la terminación del proceso o volver a ejecutar la tarea. Tales como errores de bus causa de terminación anormal.


Linux en el vector de interrupción:

0-19 vector de interrupción correspondiente a la interrupción no enmascarable y excepción.

20-31Intel reservados

32-127 interrupciones de hardware maskable

programable anormal para llamadas al sistema 128

129-238 interrupciones de hardware maskable

239 local de interrupción del temporizador APIC

240 APIC local interrupción de alta temperatura

241-250 reservados para uso futuro por el Linux

Inter-procesador interrumpir 251-253

254 de interrupción de error APIC local

APIC 255 de interrupción maniquí Local (CPU cuando se genera una interrupción en la máscara)

También conocido como anormalidades de programación de interrupción blandos, principalmente para llamadas al sistema, es decir, int * * 0x80 depurador y para informar a un evento específico, por lo que una interrupción suave es anormal, son de interrupción síncrona.

Nuestra llamada al sistema se implementa interrupción alcohol en base: Tenga en cuenta que digo se basa en las llamadas al sistema de interrupción blandos se implementan, no es que la llamada al sistema se interrumpe suave! Este punto de vista del sistema de llamar a los siguientes principios sabrán

sistemas Linux procesan las interrupciones y llamadas

Después nos centramos en las llamadas al sistema, excepciones y otras interrupciones de hardware, por lo que ponemos en en adelante como alarma de proceso de interrupción, utilice también excepciones, llamada al sistema para mostrar distinción

Interrupciones, excepciones y llamadas al sistema el flujo del proceso

Con este par de la figura se puede ver, la interacción entre el usuario y el núcleo principalmente a través de la llamada al sistema, y entre el núcleo y el dispositivo principalmente a través de interrupción de hardware externo

La ejecución de las llamadas al sistema

  1. La emisión de una llamada al sistema (int 0x80, SYSENTER, syscall) Ciertas instrucciones

    El int 0x80 es un llamadas al sistema programable de excepción , por supuesto, esto es sólo una de las maneras de lograr, debido a los malos resultados de las llamadas al sistema iniciados por el modo de interrupción, la CPU y los nuevos núcleos apoyan el uso de estos SYSENTER dos llamadas al sistema y las instrucciones especiales para iniciar una llamada al sistema. En donde SYSENTER usando el sistema de 32 bits, la instrucción correspondiente a sysexit salida; syscall en el sistema de 64 bits, la correspondiente sysret salida de instrucciones.

  2. CPU se cambia de modo de usuario al modo kernel, algunos registros y ajustes ambientales

  3. System_call función de llamada núcleo, el número de llamadas al sistema por la tabla de llamadas al sistema de adquisición de una rutina de servicio correspondiente

  4. gestor de llamadas del sistema

  5. El uso de un determinado llamadas instrucción de retorno al modo de usuario (IRET, sysexit, sysret) del sistema

Podemos ver, y diferente interrupción de hardware, software interrumpir básicamente por el proceso de núcleo del sistema operativo. Y todas las llamadas al sistema sólo utiliza un vector de interrupción

alarmas de proceso de ejecución

  1. El dispositivo de accionamiento de su propio controlador de interrupción en el núcleo, el núcleo se carga cuando la inicialización tabla de vectores de interrupción, función de tabla vector de interrupción tiene un controlador en el vector de interrupción de interrupción procesamiento

Vector de interrupción: es una interrupción rutina de servicio de dirección de entrada de desplazamiento con el valor de base de segmento, un vector de interrupción de 4 bytes ocupa espacio. tabla de vectores de interrupción es la memoria del sistema de gama baja más 8088 1K bytes de espacio, su papel es de acuerdo con el tipo de número de interrupción en el orden de almacenamiento ascendente vector de interrupción correspondiente, un total de 256 vectores de interrupción almacenada. En el proceso de interrupción, la CPU mediante el cálculo del número de interrupción tipo (número vector de interrupción) circuito de interfaz correspondiente al vector de posición adquirida en la tabla de interrupción, y obtener el vector de interrupción de la tabla de vector de interrupción, el flujo del programa a la entrada de rutina de servicio de interrupción dirección.

  1. En la ejecución de la instrucción de la CPU semanas ciclo de detección de fin de comprobar interrupción, el ciclo de interrupción ha entrado solicitud de interrupción y puede manejar, empezar a hacer el trabajo de preparación, excepto los puntos de interrupción, determinar el vector de interrupción (interrupción dirección de entrada manejador), y ajuste la unidad PC, entonces es inverosímil y ejecutado.

  2. La parte inferior del dispositivo externo y el equipo utilizado para la comunicación se interrumpe: hardware (por ejemplo, presiona el teclado) activa una señal eléctrica, la señal a través de la rotura para llegar a la i8259A controlador de interrupciones, i8259A después que se recibe esta señal, la CPU envía INT señal de la CPU aplicación realice sólo las operaciones de hardware, y se interrumpirá el número de modelo también fue enviado a la CPU

  3. Después de la interrupción de la CPU para comprobar la tabla de vectores de interrupción, encontrar la rutina de servicio de interrupción, las llamadas de rutina de la comunicación entre el controlador de dispositivo correspondiente con un dispositivo externo

Se puede ver en las interrupciones de hardware básicos del trabajo de la CPU, se refiere en parte al núcleo del sistema operativo raramente

Así como detalles sobre el vector de interrupción para lograr, se puede ver en este artículo: https://www.cnblogs.com/frankyou/p/8649435.html

Referencia

  1. https://blog.csdn.net/weixin_41376979/article/details/83756975?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
  2. https://www.cnblogs.com/answercard/p/4288431.html
  3. https://www.zhihu.com/question/30432536
  4. https://blog.csdn.net/dillanzhou/java/article/details/82733562
  5. https://www.cnblogs.com/frankyou/p/8649435.html

Supongo que te gusta

Origin www.cnblogs.com/jiading/p/12606978.html
Recomendado
Clasificación