Que es una llamada trap en el nucleo?

Iniciado por Drakaris, 16 Octubre 2020, 22:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Drakaris

Buenas.
El sistema operativo tiene tres mecanimos para acceder al nucleo: interrupciones, excepciones y traps.

http://www.tugurium.com/gti/termino.php?Tr=trap
Según el Glosario de Terminología Informática (GTI) un trap es:
Citar
Operación de bifurcación realizada automáticamente ante la detección de una condición de error.[...] automaticamente asumen el control para analizar e intentar corregir la situación de error.

En la frase:
CitarOperación de bifurcación realizada automáticamente ante la detección de una condición de error.

Que quiere decir que, cuando detecta un error en alguna instruccion, intenta repararlo? Es decir, menos "avisar" al S.O para que este avise al usuario. Lo que hace es repararlo si puede, y hace como si no hubiese ese error?

Gracias
Lo increible, no es lo que ves, sino como es

Serapis

No. El Trap es un estado de trabajo. Cuando se establece es para que tú como programador revises paso a paso el código de tu programa con el fin de detectar errores en tu código y corregirlo.

En dicho estado el núcleo se comporta de forma distinta. Dado que tiene que hacer diferentes cosas, tras hacerlas debe restablecer los registros al estado previo con los cambios únicamente afectados por la instrucción o instrucciones realizadas a fin de que puedas comprobar que dicho estado corresponde con lo esperado. Es decir, no tiene que verse alterado dicho estado por el programa de debug, que lo gobierna y encauza, de modo que a ojos del programador lo único que haya sucedido es la ejecución de dichas instrucciones y nada más. Así puede comprobar el estado previo con el actual y determinar si es como esperaba ser o no...

Cualquier editor de código más o menos avanzado está capacitado para ejecutar el programa en modo debug, paso a paso, que en el caso de lenguajes de alto nivel cada instrucción del código puede corresponderse con una o varias instrucciones del procesador. Justamente activando el banderin de 'interrupción Trap'.