principala diferență între capcane și întreruperi este asta capcana este declanșată de un program de utilizator pentru a invoca funcționalitatea sistemului de operare, în timp ce întreruperea este declanșată de un dispozitiv hardware pentru a permite procesorului să execute rutina de tratare a întreruperilor corespunzătoare.
Un sistem de operare este condus de evenimente. Un eveniment poate apărea brusc în timpul executării unui program. Aceasta va declanșa executarea sistemului de operare. Aceasta va schimba modul de utilizator în modul kernel. După execuția sistemului de operare, comanda este transferată înapoi la programul original. Capcanele și întreruperile sunt două tipuri de evenimente. O capcană este ridicată de un program de utilizator, în timp ce o întrerupere este ridicată de un dispozitiv hardware, cum ar fi tastatura, cronometrul etc. O capcană trece controlul la dispozitivul de preluare a capcanei, iar întreruperea trece controlul la un dispozitiv de tratare a întreruperilor. După executarea manualului, comanda revine la programul original.
1. Ce este Trap
- Definiție, funcționalitate
2. Ce este întreruperea
- Definiție, funcționalitate
3. Relația dintre capcana și întrerupere
- Schița Asociației
4. Diferența dintre capcana și întrerupere
- Compararea diferențelor cheie
Întrerupere, sistem de operare, cap
Capcanele sunt generate de programul de utilizator pentru a invoca o funcționalitate a sistemului de operare. Să presupunem că programul de utilizator necesită imprimarea ceva pe ecran. Aceasta ar invoca o capcană și sistemul de operare va efectua scrierea acelor date pe ecran. Capcanele sunt utilizate în principal pentru implementarea apelurilor de sistem.
Figura 1: Tipuri de evenimente
Un exemplu este după cum urmează. Să presupunem că există o declarație ca printf ("% s \ n", str); Se va invoca funcția de scriere pentru a imprima ieșirea la ieșirea standard care este monitorul. Aceasta va invoca o capcană și va trece controlul la dispozitivul de trap. Apoi, modul de utilizator se modifică la modul kernel și sistemul de operare execută apelul de scriere. După terminarea sarcinii, comanda este transferată din nou în modul utilizator din modul kernel.
O întrerupere este ridicată de un dispozitiv hardware. Dispozitivul USB, cardul NIC, tastatura pot provoca întreruperi. Întreruperile sunt asincrone. Prin urmare, ele pot apărea în orice moment.
Un procesor are un pin dedicat numit pin de întrerupere. Se mai numește și PIN-ul INT. Dispozitivele, cum ar fi tastaturile, sunt conectate la procesor prin pinul de întrerupere. Atunci când o tastă este apăsată, va genera o întrerupere. Procesorul va trece de la procesul care rulează în prezent într-o rutină de întrerupere a procesului de întrerupere. În acest scenariu, se invocă rutina de întrerupere a tastaturii. După terminarea rutinei de tratare a întreruperii, procesorul revine la programul original care se execută. Practic, atunci când apare o întrerupere, procesorul comută contextul și execută procedura de întrerupere. După terminare, se trece la starea anterioară.
Un procesor are un singur pin de întrerupere, dar există mai multe dispozitive hardware. Controlerul de întrerupere ajută la partajarea pinului de întrerupere unică între pinii multiple. Procesorul va comunica cu controlerul de întrerupere pentru a determina care dispozitiv a generat efectiv întreruperea. În funcție de aceasta, procesorul va executa rutina de tratare a întreruperilor corespunzătoare. Poate fi temporizator, USB sau tastatură de întrerupere a rutinei de rutină.
În plus față de capcane și întrerupe, există un alt tip de eveniment numit excepții. Acestea sunt generate automat de procesor. Excepțiile se împart în defecte și abordează. O eroare este o eroare recuperabilă în timp ce o întrerupere este o eroare dificil de manevrat.
O capcană este generată de o instrucțiune din programul de utilizator în timp ce o întrerupere este generată de dispozitivele hardware.
Mai mult, o capcană invocă funcționalitatea OS. Transmite controlul la dispozitivul de preluare a capcanei. O întrerupere declanșează procesorul pentru a executa rutina de tratare a întreruperilor corespunzătoare.
De asemenea, o capcană este sincronă și poate ajunge după executarea oricărei instrucțiuni în timp ce o întrerupere este asincronă și poate apărea la executarea oricărei instrucțiuni.
O capcană este numită și o întrerupere de software în timp ce o întrerupere este numită și o întrerupere hardware.
Capcana și întreruperea sunt două tipuri de evenimente. Diferența dintre capcană și întrerupere este că capcana este declanșată de un program de utilizator pentru a invoca funcționalitatea sistemului de operare, în timp ce întreruperea este declanșată de un dispozitiv hardware pentru a permite procesorului să execute rutina de tratare a întreruperilor corespunzătoare.
1. Sistemul de operare # 14 Ce este o întrerupere? Tipuri de întreruperi, Xoviabcs, 31 august 2017, Disponibil aici.
2. Sistemul de operare # 16 întrerupe software-ul Apeluri sistem în xv6, Xoviabcs, 1 septembrie 2017, disponibil aici.