Sistēmas zvans vs pārtraukt
Tipisks procesors izpilda instrukcijas pa vienam. Bet var būt gadījumi, kad procesoram uz laiku jāapstājas un jāuztur pašreizējā instrukcija un jāizpilda kāda cita programmas vai koda segments (kas atrodas citā vietā). Pēc tam procesors atgriežas normālā izpildē un turpina to, no kurienes to pārtrauca. Sistēmas zvans un pārtraukums ir šādi gadījumi. Sistēmas zvans ir izsaukums uz sistēmā iebūvētu apakšprogrammu. Pārtraukums ir programmas vadības pārtraukums, ko izraisa ārējie aparatūras notikumi.
Kas ir sistēmas zvans?
Sistēmas zvani nodrošina programmas, kas datorā darbojas ar interfeisu, lai runātu ar operētājsistēmu. Kad programmai ir jāpieprasa pakalpojums (kam pašam nav atļaujas) no operētājsistēmas kodola, tas izmanto sistēmas zvanu. 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 jāizmanto sistēmas zvani.
Kas ir pārtraukums?
Datorprogrammas normālas izpildes laikā var būt notikumi, kas var izraisīt CPU īslaicīgu apturēšanu. Šādus notikumus sauc par pārtraukumiem. Traucējumus var izraisīt programmatūras vai aparatūras traucējumi. Aparatūras pārtraukumus sauc par (vienkārši) pārtraukumiem, savukārt programmatūras pārtraukumus sauc par izņēmumiem vai slazdiem. Kad pārtraukums (programmatūra vai aparatūra) ir paaugstināts, vadība tiek pārvietota uz īpašu apakšprogrammu, ko sauc par ISR (Interrupt Service Routine) un kas var izturēties pret pārtraukuma radītajiem apstākļiem..
Kā minēts iepriekš, termins Interrupt parasti tiek rezervēts aparatūras pārtraukumiem. Tie ir programmas vadības pārtraukumi, ko izraisa ārēji aparatūras notikumi. Šeit CPU ārēji līdzekļi. 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.), Disku 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 izpildošo programmu. Piemēram, tāds notikums kā lietotāja taustiņu nospiešana uz tastatūras vai iekšējā aparatūras taimera taimauts var izraisīt šāda veida pārtraukumus un var informēt centrālo procesoru, ka noteiktai ierīcei jāpievērš uzmanība. Šādā situācijā CPU pārtrauks visu, ko tas darīja (t.i., aptur pašreizējo programmu), nodrošina ierīces prasītos pakalpojumus un atgriežas normālā programmā.
Kāda ir atšķirība starp sistēmas zvanu un pārtraukumu?
Sistēmas zvans ir izsaukums uz sistēmā iebūvētu apakšprogrammu, savukārt pārtraukt ir notikums, kura dēļ procesors īslaicīgi aiztur pašreizējo izpildi. Tomēr viena būtiska atšķirība ir tā, ka sistēmas zvani ir sinhroni, turpretī pārtraukumi nav. Tas nozīmē, ka sistēmas izsaukumi notiek noteiktā laikā (parasti to nosaka programmētājs), taču pārtraukumi var notikt jebkurā laikā neparedzēta notikuma dēļ, piemēram, lietotāja taustiņa nospiešanai uz tastatūras. Tāpēc, ja rodas sistēmas izsaukums, procesoram ir tikai jāatceras, kur atgriezties, bet pārtraukuma gadījumā procesoram ir jāatceras gan atgriešanās vieta, gan sistēmas stāvoklis. Atšķirībā no sistēmas zvana pārtraukumam parasti nav nekā kopīga ar pašreizējo programmu.