Interrupt er et signal, der udsendes af udstyr eller programmer, når en proces eller en begivenhed kræver øjeblikkelig opmærksomhed. Det advarer processoren til en høj prioritet proces, der kræver afbrydelse af den aktuelle arbejdsproces. I I / O-enheder er en af busstyringslinjerne dedikeret til dette formål og kaldes Interrupt Service Routine (ISR).
Når en enhed rejser en afbrydelse ved lad os sige proces i, afslutter processoren først udførelsen af instruktion i. derefter indlæses Programtælleren (PC) med adressen på den første instruktion af ISR. Før du læser Programtælleren med adressen, flyttes adressen til den afbrudte instruktion til et midlertidigt sted. Efter håndtering af afbrydelsen kan processoren derfor fortsætte med proces i + 1.
mens processoren håndterer afbrydelserne, skal den informere enheden om, at dens anmodning er blevet genkendt, så den holder op med at sende afbrydelsesanmodningssignalet. Ved at gemme registre, så den afbrudte proces kan gendannes i fremtiden, øges forsinkelsen mellem det tidspunkt, hvor en afbrydelse modtages, og starten på udførelsen af ISR. Dette kaldes Interrupt Lattency.
afbrydere:
i en afbrydelsesafbrydelse er alle enheder forbundet til Afbrydelsesforespørgselslinjen. En enkelt anmodningslinje bruges til alle n-enheder. For at anmode om en afbrydelse lukker en enhed den tilknyttede kontakt. Når en enhed anmoder om en afbrydelse, er værdien af INTR den logiske eller af anmodningerne fra individuelle enheder.
sekvens af hændelser involveret i håndtering af en irk:
- enheder hæver en irk.
- Processor afbryder det program, der i øjeblikket udføres.
- enheden informeres om, at dens anmodning er blevet genkendt, og enheden deaktiverer anmodningssignalet.
- den ønskede handling udføres.
- Interrupt er aktiveret, og det afbrudte program genoptages.
håndtering af flere enheder:
når mere end en enhed rejser et afbrydelsesanmodningssignal, er der behov for yderligere oplysninger for at beslutte, hvilken enhed der skal overvejes først. Følgende metoder bruges til at bestemme, hvilken enhed der skal vælges: Polling, vectored Interrupts og Interrupt Nesting. Disse forklares som følgende nedenfor.
- Polling:
i polling er den enhed, der skal serviceres først. Passende ISR kaldes til at servicere det samme. Det er let at implementere, men meget tid spildes ved at forhøre IR-bit af alle enheder. - vectored Interrupts:
i vectored interrupts identificerer en enhed, der anmoder om en interrupt, sig direkte ved at sende en særlig kode til processoren over bussen. Dette gør det muligt for processoren at identificere den enhed, der genererede afbrydelsen. Den specielle kode kan være ISR ‘ s startadresse, eller hvor ISR er placeret i hukommelsen og kaldes afbrydelsesvektoren. - Afbryd Nesting:
i denne metode er i/O-enheden organiseret i en prioriteret struktur. Derfor genkendes afbrydelsesanmodning fra en enhed med højere prioritet, hvor anmodning fra en enhed med lavere prioritet ikke er. For at gennemføre denne hver proces/enhed (selv processoren). Processor accepterer kun afbrydelser fra enheder / processer, der har prioritet mere end det.
processorer prioritet er kodet i et par bits af PS (proces Status register). Det kan ændres ved hjælp af programinstruktioner, der skriver ind i PS. Processoren er kun i overvåget tilstand, mens du udfører os-rutiner. Det skifter til brugertilstand, før du udfører applikationsprogrammer.
opmærksomhed læser! Stop ikke med at lære nu. Få fat i alle de vigtige CS-Teoribegreber til SDE-samtaler med CS Theory-kurset til en studentvenlig pris og bliv brancheklar.