Interrupt

Denne artikel bør gennemlæses af en person med fagkendskab for at sikre den faglige korrekthed.
    Artiklen har ingen referencer og et uklart sprog der ikke harmonerer med det fagligt-tekniske tema

Interrupt (dansk: afbrydelse) er en mekanisme i cpu-arkitekturen der har som formål at afbryde den aktive opcode (de) processering. Interruptet signalerer - i metaforisk forstand - at der er indtruffet en hændelse (event (de)) der kræver øjeblikkelig håndtering, og håndteringen implementeres jævnfør en 'interrupthandler', evt. også kaldet 'interrupt service routine'. Disse håndteringsforløb vil typisk være at finde som en liste af instrukser i RAM som indlæst af BIOS. Mekanismen agerer dels på register-niveau men kan i visse (få) tilfælde tilgåes ved programmering - et softwareinterrupt. Interrupt mekanismen skelner - såvidt vides - ikke mellem software-genererede kritiske hændelser og hardware-kritiske hændelser.

Hardwareinterrupt

Et hardwareinterrupt kan f.eks. signalere, at der er modtaget et tastetryk fra tastaturet, at musen er flyttet, at der er klikket på musen, at der er modtaget noget på en port, at en IO-operation med en ydre enhed er afsluttet, at der er fejl på strømforsyningen (så maskinen evt. kan nå at lukke ned på en ordentlig måde) og adskilligt andet.

Et hardwareinterrupt kan benytte egne linjer til at overføre signalet, dvs. forbindelser på computerens styrebus, eller de kan være anbragt i maskinens adresserum. I så fald skal maskinens memory management unit (MMU) kunne håndtere interruptet.

Ved at benytte en mekanisme med hardwareinterrupt kan en computer arbejde mere effektivt i forhold til alternativet, nemlig jævnligt at afprøve status på en statusbit eller et statusflag for de ydre enheder (at polle), en teknik der blev benyttet på simple computere (eller indlejrede systemer) og stadig kan forekomme andre simple maskiner.

Softwareinterrupt

Et softwareinterrupt udløses af et program. Det sker som en særlig instruktion, for hvilke nok ikke alle programmeringssprog kan bruges, dels er gemt af vejen i kompilerings-processen.

Gængse Opcodes (de)

  • INT xxh (Interrupt / Intel 8086)
  • SC xxh (System Call / Zilog Z8000)
  • TRAP xh (Trap / Motorola 68000)
  • CALL 0005h (CP/M-80)

Eksempelvis i assemblersprog

int  80h

Maskable interrupt og Non-maskable interrupt

Når en interrupthandler startes, vil dens første handling typisk være at gemme yderligere oplysninger om det program, der blev afbrudt (dvs. gemme de af maskinens registre, som handleren vil ændre) og derpå selv sætte sit miljø op. Under dette arbejde, kan det være skadeligt, hvis andre interrupts afbryder interrupthandleren. Derfor kan en særlig instruktion slå interrupts fra. Når handleren er klar, frigives muligheden for igen at reagere på et interrupt. Visse typer af interrupts er dog så vigtige, at de ikke kan blokeres, de er non-maskable interrupt (NMI).

Se også

Kilder

  • Structured Computer Organization, Andrew S. Tanenbaum, 1984, s. 263 ff.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.