Sistēmas zvans pret pārtraukumu
Tipisks procesors izpilda instrukcijas pa vienam. Bet var būt gadījumi, kad procesoram uz laiku jāpārtrauc un jāuztur pašreizējā instrukcija un jāizpilda kāda cita programma vai koda segments (kas dzīvo citā vietā). Pēc tam procesors atgriežas normālā izpildē un turpina turpināties, kur to pārtrauca. Šādi gadījumi ir sistēmas zvans un pārtraukums. Sistēmas izsaukums ir izsaukums uz sistēmā iebūvētu apakšprogrammu. Pārtraukums ir programmas vadības pārtraukums, ko izraisa ārēji aparatūras notikumi.
Kas ir sistēmas izsaukums?
Sistēmas zvani nodrošina datorā darbināmām programmām saskarni, lai runātu ar operētājsistēmu. Ja programmai ir jāpieprasa pakalpojums (kuram tai pašai nav atļaujas) no operētājsistēmas kodola, tā izmanto sistēmas izsaukumu. Lietotāja līmeņa procesiem nav tādu pašu atļauju kā procesiem, kas tieši mijiedarbojas ar operētājsistēmu. Piemēram, lai sazinātos ar ārējo I / O ierīci vai mijiedarbotos ar citiem procesiem, programmai ir jāizmanto sistēmas zvani.
Kas ir pārtraukums?
Normālas datorprogrammas 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. 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.
Kā minēts iepriekš, termins Pārtraukt parasti tiek rezervēts 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.
Kāda ir atšķirība starp sistēmas izsaukumu un pārtraukumu?
Sistēmas izsaukums ir izsaukums uz sistēmā iebūvētu apakšprogrammu, savukārt pārtraukt ir notikums, kas liek procesoram uz laiku turēt pašreizējo izpildi. Tomēr viena būtiska atšķirība ir tā, ka sistēmas zvani ir sinhroni, savukārt pārtraukumi nav. Tas nozīmē, ka sistēmas zvani notiek noteiktā laikā (parasti to nosaka programmētājs), bet pārtraukumi var notikt jebkurā laikā negaidīta notikuma dēļ, piemēram, lietotāja nospiežot taustiņu uz tastatūras. Tāpēc, kad notiek sistēmas izsaukums, procesoram atliek tikai atcerēties, kur atgriezties, bet pārtraukuma gadījumā procesoram jāatceras gan vieta, kur atgriezties, gan sistēmas stāvoklis. Atšķirībā no sistēmas izsaukuma, pārtraukumam parasti nav nekāda sakara ar pašreizējo programmu.