Curs - clasificarea întreruperilor

Întreruperile care apar în timpul funcționării unui sistem informatic pot fi împărțite în două clase principale:

1) extern (acestea sunt uneori numite asincrone);

2) intern (sincron).

Întreruperile externe sunt cauzate de evenimente asincrone care apar în afara procesului fiind întrerupte, de exemplu:

1) întrerupe de la cronometru;

2) întrerupe de la dispozitive externe (intreruperea I / O);

3) întreruperi ale curentului;

4) întreruperile de la biroul operatorului sistemului informatic;

5) întrerupe de la un alt procesor sau alt sistem informatic.

Întreruperile interne sunt cauzate de evenimente care sunt asociate cu munca procesorului și sunt sincronizate cu operațiunile sale. Exemple sunt următoarele solicitări de întrerupere:

2) dacă există o combinație binară neutilizată în câmpul de cod;

3) la diviziune la zero;

4) depășirea sau dispariția ordinii;

5) dacă erorile de paritate, erorile în funcționarea diferitelor dispozitive ale echipamentului sunt detectate prin intermediul controlului.

Este posibil să existe întreruperi atunci când accesați supervizorul OS - pe unele computere, o parte din comenzi pot fi utilizate numai de sistem de operare, și nu de utilizatori. În consecință, în aparat sunt furnizate diferite moduri de funcționare, iar programele utilizator sunt executate într-un mod în care aceste instrucțiuni privilegiate nu sunt executate. Când încercați să utilizați o comandă dezactivată în acest mod, apare o întrerupere internă și controlul este transferat supervizorului de sistem. Comenzile privilegiate includ comenzile pentru comutarea modului de operare al procesorului.

În cele din urmă, există întreruperi software efective. Aceste întreruperi sunt bazate pe comanda de întrerupere pro-corespunzătoare, care este, această echipă pro-tsessor poartă aproape aceiași pași ca și în convențional intern de întrerupere ei. Acest mecanism a fost introdus în mod specific, în scopul de a porni modulele software-ul de sistem nu este pur și simplu ca o tranziție spre o subrutină, și exact în același mod ca și o întrerupere obișnuită. Aceasta asigură comutarea automată a procesorului în modul privilegiat, cu capacitatea de a executa comenzi.

Semnalele care provoacă întreruperi sunt generate în afara procesorului sau chiar în procesor; ele pot apărea simultan. Alegerea uneia dintre ele pentru prelucrare se realizează pe baza priorităților. atribuite fiecărui tip de întrerupere. Evident, întreruperile din schemele de control ale CPU ar trebui să aibă cea mai mare prioritate (dacă hardware-ul nu funcționează corect, atunci nu are sens să continuăm procesarea informațiilor). În Fig. 7 descrie ordinea obișnuită (priorități) de manipulare a întreruperii, în funcție de tipul de întreruperi. prioritate de contabilitate pot fi încorporate în hardware-ul, precum și la sistemul de operare, care este, cu excepția priorităților de întrerupere bazate pe hardware ale majorității calculatoarelor și a sistemelor permit software și hardware de control procedura de procesare a semnalului de întrerupere. Al doilea mod, care completează primul, permite aplicarea diferitelor discipline ale serviciului de întrerupere.

Fig. 7. Distribuția întreruperilor pe nivele prioritare

Prezența unui semnal de întrerupere nu cauzează neapărat o întrerupere a programului de execuție. Procesorul poate avea mijloace de protecție împotriva întreruperilor: dezactivarea sistemului de întrerupere, mascarea (interzicerea) semnalelor separate de întrerupere. Management Software a acestor fonduri (existente-există echipă specială pentru a opera sistemul întrerupe) în sistemul de operare permite să reglementeze procesarea semnalului de întrerupere, provocând procesorul pentru a le procesa imediat după sosire, să amâne tratamentul lor pentru un timp sau complet ignorate. În mod normal, o operație de întrerupere se efectuează numai după terminarea comenzii actuale. Deoarece semnalele de întrerupere apar în momente arbitrare, în momentul întreruperii, pot exista mai multe semnale de întrerupere, care pot fi procesate numai secvențial. Pentru a procesa semnalele de întrerupere într-o ordine rezonabilă, acestea (după cum sa menționat deja) sunt atribuite priorități. Un semnal cu o prioritate mai mare este procesat mai întâi, procesarea semnalelor de întrerupere rămase este amânată.

Controlul software al registrelor speciale de mască (semnale de întrerupere a mascării) permite implementarea diferitelor discipline de întreținere:

1) cu priorități relative, adică serviciul nu este întrerupt, chiar dacă există cereri cu priorități mai mari. După terminarea serviciului, cererea este oferită cu cea mai mare prioritate. Pentru a organiza o astfel de disciplină, este necesar să mascați toate celelalte semnale de întrerupere din programul de întreținere al acestei solicitări sau pur și simplu să dezactivați sistemul de întrerupere;

2) cu priorități absolute, adică o întrerupere cu cea mai mare prioritate este întotdeauna servită. Pentru a implementa acest mod, este necesar să se ascundă toate cererile cu o prioritate mai mică în momentul procesării întreruperilor. În acest caz, este posibilă o întrerupere pe mai multe niveluri, adică întreruperea programelor de procesare a întreruperii. Numărul de niveluri de întrerupere în acest mod variază și depinde de prioritatea solicitării;

3) pe baza stivei, sau, așa cum, uneori, se spune, pentru LCFS disciplina (Ultimul venit, primul servit - ultimul venit - primul servit), adică cereri cu o prioritate mai mică se poate întrerupe procesarea întrerupe peste prioritate te-sokim. Pentru aceasta, nu este nevoie să mascați semnalul de întrerupere și să nu opriți sistemul de întrerupere.

Trebuie remarcat în mod special că pentru implementarea corectă a ultimelor două discuri este necesar să se asigure mascarea completă a sistemului de întrerupere atunci când se execută pașii 1-4 și 6-7. Acest lucru este necesar pentru a nu pierde cererea și pentru a o servi în mod corespunzător. O întrerupere pe mai multe niveluri ar trebui să apară la etapa reală de manipulare a întreruperilor, și nu la trecerea de la un proces la altul.

progresul managementului sarcinilor de către sistemul de operare este de a organiza răspunsurile să întrerupă, în schimbul de informații (date și pro-grame), asigurarea resurselor necesare, în dinamica punerii în aplicare a cabane și în servicii de organizare. Cauzele întreruperilor sunt determinate de sistemul de operare (un modul numit un supraveghetor de întrerupere) și efectuează, de asemenea, acțiunile necesare pentru această întrerupere și în această situație. Prin urmare, compoziția oricărui timp real de operare în principal includ ATI-subiect sarcini de stat de control program de management de întrerupere și evenimente, sincronizare sarcină, fonduri de alocare de memorie și de gestionare, precum și date apoi mai târziu mijloacele organizației (folosind sisteme de fișiere, și așa mai departe. Etc. ) .. Trebuie remarcat totuși că un sistem modern de operare în timp real ar trebui să contribuie cu ceva mai mult la sistemul hardware și software decât să ofere un răspuns rapid la întreruperi.

După cum știm deja, atunci când apare o cerere de întrerupere, sistemul de întrerupere identifică semnalul și, dacă întreruperile sunt activate, controlul este transferat la subrutina de procesare corespunzătoare. Din fig. 6 că în rutina de întrerupere a serviciului există două secțiuni de service. Aceasta - prima secțiune, în care întreruperea sarcinii de economisire context, co-Tory nu au putut fi stocate în pasul 2 și ultima secțiune finală, în care, dimpotrivă, recuperarea context se efectuează. Pentru a întrerupe sistemul nu a reacționat la semnalul re-cerere de întrerupere, de obicei, în mod automat „închide“ (dezactivare) întrerupe, astfel încât în ​​mod opțional, atunci du-te în rutina de întrerupere de servicii includ din nou sistemul de întreruperi. Instalarea modurilor de manipulare a întreruperilor considerate (cu priorități relative și absolute și conform regulii LCFS) se efectuează la sfârșitul primei secțiuni a subrutinei de procesare. Astfel, pentru timpul executării secțiunii centrale (în cazul operării în moduri cu prioritate absolută și disciplina LCFS), sunt permise întreruperi.

Mai multă muncă în domeniul informaticii

Eseu despre informatică

Clasificarea pe tipuri de interfețe utilizator.

Articole similare