Pārtraukt vs slazdu
Jebkurā datorā programmas normālas izpildes laikā var būt notikumi, kas var izraisīt CPU īslaicīgu apstāšanos. Šādus notikumus sauc par pārtraukumiem. Pārtraukumus var izraisīt vai nu programmatūras, vai aparatūras kļūmes. Aparatūras pārtraukumus sauc par (vienkārši) pārtraukumiem, bet programmatūras pārtraukumus - par izņēmumiem vai slazdiem. Izņēmums ir automātiski ģenerēts programmatūras pārtraukums, savukārt slazds ir programmatūras izsaukts pārtraukums, kuru ierosina programmētājs. Kad tiek pārtraukts pārtraukums (programmatūra vai aparatūra), vadība tiek pārsūtīta uz īpašu apakšprogrammu, ko sauc par ISR (Interrupt Service Routine), kas var tikt galā ar apstākļiem, kurus rada pārtraukums.
Kas ir pārtraukums?
Terminu Pārtraukt parasti rezervē aparatūras pārtraukumiem. Tie ir programmas vadības pārtraukumi, ko izraisa ārēji aparatūras notikumi. Šeit ārēji nozīmē CPU ārēju. Aparatūras pārtraukumi parasti nāk no daudziem dažādiem avotiem, piemēram, taimera mikroshēmas, perifērijas ierīcēm (tastatūras, pele utt.), I / O portiem (sērijas, paralēli utt.), Diskdziņiem, CMOS pulkstenim, paplašināšanas kartēm (skaņas karte, video karte utt.). Tas nozīmē, ka aparatūras pārtraukumi gandrīz nekad nenotiek kāda notikuma dēļ, kas saistīts ar izpildes programmu. Piemēram, notikums, piemēram, lietotāja nospiežams taustiņš uz tastatūras, vai iekšēja aparatūras taimera taimauts var izraisīt šāda veida pārtraukumu un var informēt CPU, ka noteiktai ierīcei jāpievērš īpaša uzmanība. Šādā situācijā centrālais procesors pārtrauks visu, ko tas darīja (ti, aptur pašreizējo programmu),nodrošina ierīcei nepieciešamo pakalpojumu un atgriezīsies pie parastās programmas. Kad notiek aparatūras pārtraukumi un CPU sāk ISR, citi aparatūras pārtraukumi tiek atspējoti (piemēram, 80 × 86 mašīnās). Ja jums ir nepieciešami citi aparatūras traucējumi, kamēr notiek ISR, jums tas jādara skaidri, notīrot pārtraukuma karodziņu (ar sti instrukciju). 80 × 86 mašīnās pārtraukšanas karodziņa notīrīšana ietekmēs tikai aparatūras pārtraukumus.pārtraukuma karodziņa notīrīšana ietekmēs tikai aparatūras pārtraukumus.pārtraukuma karodziņa notīrīšana ietekmēs tikai aparatūras pārtraukumus.
Kas ir lamatas?
Slazdu var identificēt kā vadības nodošanu, kuru uzsāk programmētājs. Termins Slazds tiek aizstāts ar terminu Izņēmums (kas automātiski notiek programmatūras pārtraukumā). Bet daži var iebilst, ka slazds ir vienkārši īpašs apakšprogrammas izsaukums. Tātad viņi ietilpst programmatūras izsaukto pārtraukumu kategorijā. Piemēram, 80 × 86 mašīnās programmētājs var izmantot int instrukciju, lai sāktu slazdu. Tā kā slazds vienmēr ir beznosacījuma, vadība vienmēr tiks pārsūtīta uz apakšprogrammu, kas saistīta ar slazdu. Precīzu instrukciju, kas izsauc rutīnas darbību slazdā, var viegli noteikt, jo slazda norādīšanai tiek izmantota skaidra instrukcija.
Kāda ir atšķirība starp Interrupt un Trap?
Pārtraukumi ir aparatūras traucējumi, savukārt slazdi ir programmatūras izsaukti pārtraukumi. Aparatūras pārtraukumi parasti atspējo citus aparatūras traucējumus, taču tas nav taisnība slazdiem. Ja jums ir jāatspējo aparatūras pārtraukumi, līdz tiek slazds, jums ir skaidri jānotīra pārtraukuma karodziņš. Un parasti pārtraukuma karogs datorā ietekmē (aparatūras) pārtraukumus, nevis slazdus. Tas nozīmē, ka šī karodziņa notīrīšana neaizkavēs slazdus. Atšķirībā no slazdiem, pārtraucējiem vajadzētu saglabāt CPU iepriekšējo stāvokli.