Skillnad mellan systemsamtal och avbrott
Systemsamtal vs Avbryt
En typisk processor utför instruktioner en efter en. Men det kan finnas tillfällen när processorn måste sluta tillfälligt och hålla den aktuella instruktionen och genomföra något annat program eller kodsegment (bosatt på någon annan plats). Efter detta har processorn återgått till det normala utförandet och fortsätter från var den slutade. Ett systemanrop och ett avbrott är sådana tillfällen. Ett systemsamtal är ett samtal till en subrutin inbyggd i systemet. Ett avbrott är ett programstyrningsavbrott som orsakats av externa hårdvaruhändelser.
Vad är ett systemsamtal?
Systemsamtal ger program som körs på datorn ett gränssnitt för att prata med operativsystemet. När ett program behöver begära en tjänst (för vilken det inte har tillstånd själv) från operativsystemets kärna används det ett systemsamtal. Användarnivåprocesser har inte samma behörigheter som processerna som direkt interagerar med operativsystemet. Till exempel för att kommunicera med och extern I / O-enhet eller att interagera med andra processer måste ett program använda systemsamtal.
Vad är ett avbrott?
Under normalt utförande av ett datorprogram kan det finnas händelser som kan orsaka att CPU-enheten tillfälligt stannar. Händelser som detta kallas avbrott. Avbrott kan orsakas av programvaru- eller maskinvarufel. Hårdvaruproblem kallas (helt enkelt) Avbrott, medan programavbrott kallas undantag eller fällor. När en avbrott (mjukvara eller hårdvara) har höjts överförs kontrollen till en särskild subrutin som heter ISR (Interrupt Service Routine) som kan hantera de villkor som uppstår vid avbrottet.
Som nämnts ovan är termen Avbryt vanligtvis reserverad för hårdvaruproblem . De är programkontrollavbrott som orsakas av externa hårdvaruhändelser. Här betyder externt externt för CPU . Hårdvaruproblem kommer vanligtvis från många olika källor, såsom timerchip, kringutrustning (tangentbord, mus etc.), I / O-portar (seriell, parallell osv.), Hårddiskar, CMOS-klocka, expansionskort kort, grafikkort, etc.). Det betyder att hårdvaruavbrott nästan aldrig uppstår på grund av en händelse som är relaterad till exekveringsprogrammet. Exempelvis kan en händelse som en tangent trycka på tangentbordet av användaren, eller en intern hårdvarutimerstimer kan öka denna typ av avbrott och kan informera CPU: n att en viss enhet behöver viss uppmärksamhet. I en sådan situation kommer CPU-enheten att sluta vad som helst (det vill säga pausar det aktuella programmet), ger den service som krävs av enheten och kommer tillbaka till det normala programmet.
Vad är skillnaden mellan systemanrop och avbrott?
Systemsamtal är ett samtal till en subrutin inbyggd i systemet, medan Avbryt är en händelse, vilket gör att processorn tillfälligt håller den aktuella körningen. En stor skillnad är dock att systemsamtal är synkrona, medan avbrott inte är. Det innebär att system samtal sker vid en bestämd tid (vanligtvis bestämd av programmeraren), men avbrott kan uppstå när som helst på grund av en oväntad händelse, såsom en tangenttryck på tangentbordet av användaren. Därför, när som helst ett systemsamtal inträffar, måste processorn bara komma ihåg var man ska återvända till, men i händelse av avbrott måste processorn komma ihåg både platsen att återvända till och systemets tillstånd. Till skillnad från ett systemsamtal har vanligtvis inte något att göra med det aktuella programmet.