Forskjellen mellom avbrudd og felle

Forskjellen mellom avbrudd og felle
Forskjellen mellom avbrudd og felle

Video: Forskjellen mellom avbrudd og felle

Video: Forskjellen mellom avbrudd og felle
Video: Psykologi 1 Psykologiens biologiske grunnlag del 1 (2020) 2024, November
Anonim

Interrupt vs Trap

I en hvilken som helst datamaskin, under normal kjøring av et program, kan det være hendelser som kan føre til at CPU-en stopper midlertidig. Hendelser som disse kalles avbrudd. Avbrudd kan være forårsaket av enten programvare- eller maskinvarefeil. Maskinvareavbrudd kalles (bare) avbrudd, mens programvareavbrudd kalles unntak eller feller. Et unntak er et automatisk generert programvareavbrudd, mens en felle er et programvare-påk alt avbrudd initiert av programmereren. 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.

Hva er et avbrudd?

Begrepet avbrudd er 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 vil CPU-en stoppe uansett hva den gjorde (dvs. pauser gjeldende program), leverer tjenesten som kreves av enheten og vil gå tilbake til det vanlige programmet. Når maskinvareavbrudd oppstår og CPU-en starter ISR, blir andre maskinvareavbrudd deaktivert (f.g. i 80×86-maskiner). Hvis du trenger andre maskinvareavbrudd mens ISR kjører, må du gjøre det eksplisitt ved å fjerne avbruddsflagget (med sti-instruksjon). I 80×86-maskiner vil fjerning av avbruddsflagget bare påvirke maskinvareavbrudd.

Hva er en felle?

En felle kan identifiseres som en overføring av kontroll, som initieres av programmereren. Begrepet Trap brukes om hverandre med begrepet Exception (som er et automatisk opptredende programvareavbrudd). Men noen vil kanskje hevde at en felle rett og slett er et spesielt subrutineanrop. Så de faller inn i kategorien programvare-påk alte avbrudd. For eksempel, i 80×86-maskiner, kan en programmerer bruke int-instruksjonen for å starte en felle. Fordi en felle alltid er ubetinget, vil kontrollen alltid bli overført til subrutinen knyttet til fellen. Den nøyaktige instruksjonen som påkaller rutinen for håndtering av fellen er lett å identifisere fordi en eksplisitt instruksjon brukes til å spesifisere en felle.

Hva er forskjellen mellom Interrupt og Trap?

Avbrudd er maskinvareavbrudd, mens feller er avbrudd som påkalles av programvare. Forekomster av maskinvareavbrudd deaktiverer vanligvis andre maskinvareavbrudd, men dette er ikke sant for feller. Hvis du trenger å ikke tillate maskinvareavbrudd før en felle blir servert, må du eksplisitt fjerne avbruddsflagget. Og vanligvis påvirker avbruddsflagget på datamaskinen (maskinvare) avbrudd i motsetning til feller. Dette betyr at fjerning av dette flagget ikke vil forhindre feller. I motsetning til feller, bør avbrudd bevare den forrige tilstanden til prosessoren.

Anbefalt: