Documente Academic
Documente Profesional
Documente Cultură
NTRERUPERI I EXCEPII
5.1. Definiii
Variant de transfer al controlului
Procedura general de rspuns la o cerere de ntrerupere:
1.
2.
3.
[ se reseteaz fanionul IF ]
4.
5.
Microcontrolere - Capitolul 5
Corneliu BURILEANU
Observaii:
Variante de ntreruperi:
ntreruperi propriu-zise (hard): - nemascabile
- mascabile
Excepii:
Microcontrolere - Capitolul 5
Corneliu BURILEANU
2.
3.
Capcane:
- toate ntreruperile soft sunt considerate capcane
- se genereaz la apariia erorilor dup efectuarea unei instruciuni
- exemplu: INTO
- la revenirea din rutina de deservire a ntreruperii se trece la instruciunea imediat urmtoare
celei care a generat ntreruperea soft
- se aplic mecanismul privilegiilor multi-nivel pentru protecie
Microcontrolere - Capitolul 5
Corneliu BURILEANU
4.
Greeli:
- se genereaz la apariia erorilor n timpul efecturii unei instruciuni
- exemplu: ncercarea de acces ntr-o pagin non-prezent
- se refer la erori corectabile: revenirea din rutina de deservire a ntreruperii se face chiar la
instruciunea care a generat ntreruperea astfel nct sistemul de operare, dup ce a corectat
eroarea, permite reluarea instruciunii curente
- se aloc un tip specific fiecrei ntreruperi tip greeal
5.
Greeli fatale:
- se genereaz la apariia erorilor n timpul efecturii unei instruciuni
- eroarea este att de sever nct revenirea la execuia instruciunii curente nu mai este posibil
- funcionarea procesorului se oprete (halt, shut-down etc.)
Microcontrolere - Capitolul 5
Corneliu BURILEANU
pori de proces
pori pentru ntreruperi
pori pentru capcane
Microcontrolere - Capitolul 5
Corneliu BURILEANU
tip
0110
tip
1110
tip
0111
tip
1111
1.
2.
3.
Excepiile pot utiliza pori pentru ntreruperi numai pentru compatibilitate cu modul real:
- poarta conine adresa virtual a rutinei de deservire a ntreruperii
- procedura de rspuns reseteaz fanionul IF exact ca n modul real
Accesul la o poart e posibil numai dac Regula 1 a privilegiilor multi-nivel este respectat
Microcontrolere - Capitolul 5
Corneliu BURILEANU
Se folosesc coduri de eroare informaii adiionale trimise n stiv nainte de transferarea controlului
la rutina de deservire a ntreruperii
Coduri de eroare
- INDEX i TI sunt luate din selectorul asociat segmentului n care a aprut excepia
- I = 1 indic faptul c INDEX se refer la IDT i nu direct la GDT sau la o LDT
- EXT = 1 indic faptul c instruciunea curent nu e responsabil pentru generarea excepiei
(de exemplu, referina la un segment non-prezent)
Microcontrolere - Capitolul 5
Corneliu BURILEANU
Varianta
de
ntrerupere
Semnificaie
Adresa de revenire
Restartabil
Cod
eroare
greeal
mprire la 0
DA
NU
greeal/capcan
Instruciunea urmtoare
NU
NU
ntrerupere hard
ntrerupere nemascabil
DA
NU
capcan
Breakpoint
Instruciunea urmtoare
DA
NU
capcan
INTO
Instruciunea urmtoare
DA
NU
greeal
DA
NU
greeal
DA
NU
greeal
Coprocesor non-disponibil
DA
NU
greeal fatal
Dubl greeal
NU
DA
greeal fatal
Eroare coprocesor
Impredictibil
NU
NU
10
greeal
TSS non-valid
DA
DA
11
greeal
P = 0 segment non-prezent
DA
DA
12
greeal
NU
DA
13
greeal
Violare de protecie
NU
DA
14
greeal
Eroare de paginare
DA
NU
15
rezervat
16
greeal
Eroare coprocesor
NU
NU
17
greeal
DA
NU
18-31
32-255
rezervate
pentru utilizator
Microcontrolere - Capitolul 5
Corneliu BURILEANU
Restartabil: dup nlturarea cauzei erorii, programul continu prin re-executarea instruciunii
Microcontrolere - Capitolul 5
Corneliu BURILEANU
10
Depanarea
1.
2.
3.
4.
11