Forskjellen mellom systemanrop og avbrudd

Forskjellen mellom systemanrop og avbrudd
Forskjellen mellom systemanrop og avbrudd

Video: Forskjellen mellom systemanrop og avbrudd

Video: Forskjellen mellom systemanrop og avbrudd
Video: System Of A Down - Toxicity (Official HD Video) 2024, Juli
Anonim

Systemsamtale kontra avbrudd

En typisk prosessor utfører instruksjoner én etter én. Men det kan være tilfeller hvor prosessoren må stoppe midlertidig og holde inne den gjeldende instruksjonen og utføre et annet program eller kodesegment (bosatt et annet sted). Etter å ha gjort dette går prosessoren tilbake til normal utførelse og fortsetter der den slapp. Et systemanrop og et avbrudd er slike anledninger. Et systemanrop er et anrop til en subrutine innebygd i systemet. Et avbrudd er et programkontrollavbrudd forårsaket av eksterne maskinvarehendelser.

Hva er et systemanrop?

Systemanrop gir programmer som kjører på datamaskinen et grensesnitt for å snakke med operativsystemet. Når et program trenger å be om en tjeneste (som det ikke selv har tillatelse til) fra kjernen til operativsystemet, bruker det et systemkall. Prosesser på brukernivå har ikke de samme tillatelsene som prosessene som samhandler direkte med operativsystemet. For eksempel, for å kommunisere med en ekstern I/O-enhet eller for å samhandle med andre prosesser, må et program bruke systemanrop.

Hva er et avbrudd?

Under normal kjøring av et dataprogram kan det være hendelser som kan føre til at CPU-en stopper midlertidig. Hendelser som dette kalles avbrudd. Avbrudd kan være forårsaket av enten programvare- eller maskinvarefeil. Maskinvareavbrudd kalles (bare) avbrudd, mens programvareavbrudd kalles unntak eller feller. Når et avbrudd (programvare eller maskinvare) er hevet, overføres kontrollen til en spesiell subrutine k alt ISR (Interrupt Service Routine) som kan håndtere forholdene som oppstår av avbruddet.

Som nevnt ovenfor, er begrepet avbrudd vanligvis reservert for maskinvareavbrudd. De er programkontrollavbrudd forårsaket av eksterne maskinvarehendelser. Her betyr ekstern ekstern til CPU. Maskinvareavbrudd kommer vanligvis fra mange forskjellige kilder som timerbrikke, eksterne enheter (tastaturer, mus osv.), I/O-porter (serielle, parallelle osv.), diskstasjoner, CMOS-klokke, utvidelseskort (lydkort, video). kort osv.). Det betyr at maskinvareavbrudd nesten aldri oppstår på grunn av en eller annen hendelse relatert til det kjørende programmet. For eksempel kan en hendelse som et tastetrykk på tastaturet av brukeren, eller en intern maskinvaretidsavbrudd, øke denne typen avbrudd og kan informere CPU'en om at en bestemt enhet trenger litt oppmerksomhet. I en slik situasjon stopper CPU-en uansett hva den gjorde (dvs. pauser det gjeldende programmet), leverer tjenesten som kreves av enheten og vil gå tilbake til det vanlige programmet.

Hva er forskjellen mellom systemanrop og avbrudd?

Systemanrop er et kall til en subrutine innebygd i systemet, mens Interrupt er en hendelse som får prosessoren til midlertidig å holde den gjeldende utførelsen. En stor forskjell er imidlertid at systemanrop er synkrone, mens avbrudd ikke er det. Det betyr at systemanrop skjer på et fast tidspunkt (vanligvis bestemt av programmereren), men avbrudd kan oppstå når som helst på grunn av en uventet hendelse, for eksempel et tastetrykk på tastaturet av brukeren. Derfor, hver gang et systemanrop oppstår, trenger prosessoren bare å huske hvor han skal gå tilbake til, men i tilfelle et avbrudd må prosessoren huske både stedet å returnere til og tilstanden til systemet. I motsetning til et systemanrop har et avbrudd vanligvis ikke noe med gjeldende program å gjøre.

Anbefalt: