Razlika između prekida i zamke

Razlika između prekida i zamke
Razlika između prekida i zamke

Video: Razlika između prekida i zamke

Video: Razlika između prekida i zamke
Video: Астрономия для детей. Планеты солнечной системы 2024, Juli
Anonim

Interrupt vs Trap

U svakom računaru, tokom njegovog normalnog izvršavanja programa, može doći do događaja koji mogu uzrokovati da se CPU privremeno zaustavi. Događaji poput ovih nazivaju se prekidima. Prekidi mogu biti uzrokovani ili softverskim ili hardverskim greškama. Hardverski prekidi se nazivaju (jednostavno) prekidi, dok se softverski prekidi nazivaju izuzeci ili zamke. Izuzetak je automatski generisani softverski prekid, dok je zamka softverski prizvan prekid koji je pokrenuo programer. Jednom kada je prekinut (softverski ili hardverski) pokrenut, kontrola se prenosi na poseban potprogram koji se zove ISR (Interrupt Service Routine) koji može upravljati uvjetima koje je pokrenuo prekid.

Šta je prekid?

Izraz Interrupt je obično rezervisan za hardverske prekide. To su prekidi kontrole programa uzrokovani vanjskim hardverskim događajima. Ovdje eksterno znači eksterno za CPU. Hardverski prekidi obično dolaze iz mnogo različitih izvora kao što su tajmer čip, periferni uređaji (tastature, miš, itd.), I/O portovi (serijski, paralelni, itd.), disk jedinice, CMOS sat, kartice za proširenje (zvučna kartica, video kartica, itd). To znači da se hardverski prekidi gotovo nikada ne događaju zbog nekog događaja povezanog s programom koji se izvršava. Na primjer, događaj poput pritiska na tipku na tipkovnici od strane korisnika ili internog hardverskog tajmera tajmera može izazvati ovu vrstu prekida i može obavijestiti CPU da je određenom uređaju potrebna pažnja. U takvoj situaciji CPU će zaustaviti sve što je radio (tj. pauzirati trenutni program), pružiti uslugu koju uređaj zahtijeva i vratit će se u normalan program. Kada dođe do hardverskih prekida i CPU pokrene ISR, ostali hardverski prekidi su onemogućeni (npr.g. u mašinama 80×86). Ako trebate da dođe do drugih hardverskih prekida dok ISR radi, to morate učiniti eksplicitno brisanjem zastavice prekida (sa sti instrukcijom). Na mašinama veličine 80×86, brisanje zastavice prekida će uticati samo na hardverske prekide.

Šta je zamka?

Zamka se može identifikovati kao prenos kontrole, koji inicira programator. Termin Trap se koristi naizmjenično sa terminom Izuzetak (koji je automatski nastali softverski prekid). Ali neki mogu tvrditi da je zamka jednostavno poseban poziv potprograma. Dakle, oni spadaju u kategoriju softverskih prekida. Na primjer, u mašinama veličine 80×86, programer može koristiti int instrukciju da pokrene zamku. Budući da je zamka uvijek bezuvjetna, kontrola će se uvijek prenijeti na potprogram povezanu sa zamkom. Tačna instrukcija, koja poziva rutinu za rukovanje zamkom, lako se identificira jer se eksplicitna instrukcija koristi za specificiranje zamke.

Koja je razlika između Interrupt i Trap?

Prekidi su hardverski prekidi, dok su zamke softverski pozvani prekidi. Pojave hardverskih prekida obično onemogućuju druge hardverske prekide, ali to ne vrijedi za zamke. Ako trebate zabraniti hardverske prekide dok se zamka ne posluži, morate eksplicitno izbrisati oznaku prekida. I obično zastavica prekida na računaru utiče na (hardverske) prekide za razliku od zamki. To znači da brisanje ove zastavice neće spriječiti zamke. Za razliku od zamki, prekidi bi trebali sačuvati prethodno stanje CPU-a.

Preporučuje se: