A megszakítás a számítástechnika egyik alapfogalma , amely abban rejlik, hogy egy esemény bekövetkezésekor a vezérlés egy speciális eljárásra, az úgynevezett megszakításkezelőre (ISR, eng. Interrupt Service Routine ) kerül át [1] . A feltételes és feltétel nélküli ugrásokkal ellentétben a megszakítás bárhol hívható a programban, beleértve azt is, ha a program végrehajtása felfüggesztve van, és általában a programon kívüli események okozzák. A szükséges műveletek elvégzése után a megszakításkezelő rendszerint visszaadja a vezérlést a megszakított programnak [2] .
Általános szabály, hogy a megszakításokat a perifériás eszközökkel való munkához használják. Például el kell küldenie egy kérést, hogy adatokat töltsön be a lemezről a memóriába, és miközben a betöltés folyamatban van, végre kell hajtania néhány egyéb műveletet, vagy le kell állítania a végrehajtást, amíg megszakítás nem érkezik, majd a letöltés befejezése után lépjen a megszakításkezelőhöz. amely elkezdi feldolgozni a bejövő adatokat [1] . A megszakítások segítségével megvalósítható a multitasking , programhibakeresés , bizonyos eszközök emulációja stb .
A megszakító jel forrásától függően ezek a következőkre oszthatók:
A "csapda" ( angolul trap ) kifejezést néha a "megszakítás" vagy a "belső megszakítás" szinonimájaként használják. Általános szabály, hogy a felhasználást az adott processzorarchitektúra gyártójának dokumentációja határozza meg.
A külső megszakítások a tiltás lehetőségétől függően a következőkre oszthatók:
A megszakításkezelőket általában úgy írják, hogy a feldolgozási idejük minél rövidebb legyen, mivel működésük során más megszakításokat nem lehet feldolgozni, és ha sok van belőlük (főleg egy forrásból), akkor elveszhetnek. A Windows a késleltetett eljáráshívási mechanizmust használja ehhez .
A megszakítási feldolgozás végéig általában tiltják az ilyen típusú megszakítások feldolgozását, hogy a processzor ne lépjen be egy megszakítás feldolgozási ciklusába. A prioritás azt jelenti, hogy az összes megszakítási forrás osztályokra van osztva, és minden osztályhoz saját megszakításkérés prioritási szint tartozik [3] .
A megszakítási vektor egy eszközhöz rendelt szám, amely azonosítja a megfelelő megszakításkezelőt. A megszakítási vektorokat a megszakításkezelők címeit tartalmazó megszakítási vektortáblázatba egyesítjük [4] . A táblázat elhelyezkedése a processzor típusától és üzemmódjától függ.
Feltételezhető, hogy a megszakításnak átláthatóságot kell biztosítania - vagyis a megszakítás célja alapján módosítandó adatok kivételével a megszakítási feldolgozás befejezése után a feldolgozót abba az állapotba kell visszaállítani, amelyben felhívása idején volt [5] . A legegyszerűbb esetben elég az összes processzorregiszter állapotát a verembe menteni.
A szoftvermegszakítás olyan szinkron megszakítás, amelyet egy program egy speciális utasítás segítségével valósíthat meg .
Az x86-os processzorokban egy szinkron megszakítás kifejezetten hívására van egy utasításInt , amelynek argumentuma a megszakítás száma (0-tól 255-ig). IBM PC-kompatibilis számítógépeken egyes megszakításokat a ROM -ban tárolt BIOS - rutinok dolgoznak fel , és a megszakítás interfészként szolgál a BIOS által nyújtott szolgáltatás eléréséhez. A megszakításokat a bővítőkártyák (például hálózati vagy videokártyák ) BIOS-a, az operációs rendszer, és még a szokásos (alkalmazási) programok is kiszolgálhatják, amelyek folyamatosan a memóriában vannak, miközben más programok futnak (ún. rezidens programok ). ). Ellentétben a valós móddal , az x86 processzorok védett üzemmódjában a közönséges programok nem tudják kiszolgálni a megszakításokat, ez a funkció csak a rendszerkód (operációs rendszer) számára érhető el.
Az MS-DOS 20h-tól 3Fh-ig számozott megszakításokat használ a moduljaival és az alkalmazási programjaival való interakcióhoz (a számokat hexadecimális jelöléssel adják meg , ahogy az x86 assembly nyelven történő programozáskor szokásos ). Például az MS-DOS függvények fő készletéhez való hozzáférés egy utasítás végrehajtásával történik Int 21h(ebben az esetben a függvény száma és argumentumai regiszterekben kerülnek átvitelre ). A megszakítási számok ilyen kiosztása nem vezetékes, és más programok telepíthetik saját megszakításkezelőket az MS-DOS vagy más programok által telepített meglévő kezelők helyett vagy fölé, ami általában a funkcionalitás megváltoztatására vagy a rendszerfunkciók listájának bővítésére szolgál. A vírusok is kihasználják ezt a lehetőséget .
Az operációs rendszerek szempontjai | |||||
---|---|---|---|---|---|
| |||||
Típusok |
| ||||
Sejtmag |
| ||||
Folyamatmenedzsment _ |
| ||||
Memóriakezelés és címzés | |||||
Betöltési és inicializálási eszközök | |||||
Héj | |||||
Egyéb | |||||
Kategória Wikimedia Commons Wikikönyvek Wikiszótár |
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |