sistem de întrerupere a programului spp

sistem de întrerupere a programului (PPS)

1. Conceptul programului de stat. Vector (cuvânt) de stat

CSP este format în registrele respective ale unității centrale de procesare (CPU), schimbarea după fiecare comandă. Diferite calculatoare au diferite seturi de elemente de informații care constituie SSP. De exemplu, în modul real al 80h86 MTP microprocesor să fie stocate în stiva cuprinde următoarele componente:

Valoarea instrucțiunii registrului segment CS (în acest segment al celulelor de memorie conține comenzi executate de program);

Valoarea de comandă IP registru pointer;

Flags steaguri înregistra valoarea.

2. Principiile NGN

În cazul în care funcționarea calculatorului în sine și a mediului legate pot să apară evenimente care necesită un răspuns imediat pentru a le din partea computerului. Această reacție constă în faptul că computerul întrerupe programul actual de procesare, care este interuptibil, și continuă la un alt program, numit întrerupând și special concepute să se ocupe de eveniment. Procesul în cauză se numește o întrerupere de program. Momentele unora dintre evenimentele care necesită întreruperea programelor, nu sunt cunoscute și, prin urmare, nu pot fi luate în considerare în timpul programării.

Orice eveniment care necesită întrerupere este însoțită de un semnal de notificare a unui calculator. Aceste semnale sunt numite întreruperi cereri sunt generate și execută procese multiple în paralel în timp, de exemplu:

procesul de executie a programului actual la CPU și memoria internă a unui calculator;

hardware de control proces de funcționare corectă a unui calculator și periferice canale (PU);

procesul de operare a canalului și UE;

funcționare temporizator proces;

proces de funcționare de calculator care implică un computer dat, etc.

Întreruperile de dispozitiv hardware de control apar atunci când dispozitivul detectează o defecțiune la calculator, sau canalul de IP.

Întrerupe IO apar la închidere sau un canal de IP.

Timer întrerupere apare atunci când cronometrul inundată.

Posibilitatea întreruperii programelor - o caracteristică importantă a computerelor, care vă permite să crească în mod semnificativ eficiența utilizării resurselor sale, precum și utilizarea calculatoarelor pentru sisteme de control în timp real. Pentru a pune în aplicare întrerupere în calculator trebuie să fie adecvate hardware și software, software-ul de întrerupere numit sistem (PPS), sau întrerupe controler. Funcția de bază CPR constă în memorarea MSP și tranziția la programul de întrerupere, în care pentru stocarea MSP utilizează o suprafață fixă ​​de RAM (de exemplu, tipul de computer IBM / 360 și IBM / 370 și, respectiv, SCU) sau stiva de memorie (de exemplu, tip de calculator IBM PC cu tipul MP ​​80h86).

Atunci când există trebuie să fie stabilite mai multe surse de anumite ordine de cereri de întrerupere (disciplina) pentru a deservi cererile primite. Cu alte cuvinte, acestea ar trebui să aibă prioritate relații care determina care dintre mai multe dintre cereri care urmează să fie prelucrate în primul rând și dacă acesta are dreptul de a întrerupe programul actual. Prioritatea parte cererea de selecție a procesului de tranziție pentru întreruperea programului.

Un rol important este jucat de registru masca de întrerupere. nivel care poate atât hardware cât și software-ul setat la „1“ sau „0“. Acest lucru se realizează printr-o prioritate de întrerupere software-controlate. Setați la „1“ interzice registrul masca de declanșare corespunzătoare întrerupere, și setat la „0“ permite acest lucru. Unele cauze de întrerupere în anumite tipuri specifice de software de calculator nu pot fi mascate.

3. Vector întrerupere

4. gestionare a întreruperilor

Vom enumera principalele acțiuni pe care ar trebui să execute handler de întrerupere:

Menținerea dacă este necesar, conținutul tuturor sau a unei părți a registrelor-software accesibile (această procedură este uneori denumită de comutare context);

Blocați toate întreruperile, apariția care, în cursul executării handler ar putea duce la un conflict (de multe ori acest lucru se face prin echipament informatic fără program);

Permite toate întreruperile care au dreptul de a apărea în timpul procesării de întreruperi;

Determinați sursa de întrerupere;

Rulați procesul de întrerupere programată;

Permite toate întreruperile care au fost interzise în procesarea întreruperii.

Reluare executarea procesului întrerupt; în schimb, rutina de tratare a întreruperii poate duce la transferul lor calculatoare de lucru în starea de așteptare (de exemplu, masina de accident) sau de control al transmisiei sistemului de operare.

Principalele tipuri de întreruperi în tipul PC calculator IBM cu 80h86 MP

Întrerupere în calculator pot fi împărțite în următoarele grupe:

întrerupere hardware non-Maskable care rezultă din eșec hardware gravă a MP și memoria internă.

extern hardware întrerupe, care apar atunci când un semnal de întrerupere de timer, tastatura și diverse PU;

Evenimente interne numite excepții și atunci când apar procesorul nu poate executa următoarea comandă, de exemplu, datorită egalității împărțitor zero, la efectuarea unei operațiuni de divizare, un cod de comandă invalid, etc.; acest grup include, de asemenea, o întrerupere numit exclusiv la depanarea și se produce atunci când pe instrucțiunile unui programator pe echipa în traducere. facilitate scripting capcana așa-numitele;

întreruperile soft care decurg din punerea în aplicare a comanda procesorului int cu un argument numeric.

Contor de timp. temporizator

Un alt dispozitiv hardware, de o importanță pentru organizarea procesului de calcul este un cronometru. Utilizarea sa permite software și hardware pentru a seta metoda de evenimente de program care apar după o perioadă predeterminată de timp, începând din momentul în care locul de muncă al acestor evenimente. Aceste evenimente sunt puse în aplicare prin generarea unui semnal de întrerupere de timer-ul și pentru a permite handler de întrerupere corespunzătoare. Luați în considerare mai detaliat dispozitivul timer cu titlu de exemplu, în tip PC cu calculatorul IBM de tip IP 80h86.

Acest temporizator este compus din trei canale de aproape identice - canal „0“, „1“ și „2“. În cazul în care programul este folosit mai ales de canalul „0“, așa că va fi luate în considerare; Figura 1 prezintă schema lui. un generator de impulsuri (GI) generează o secvență continuă de frecvență f = 1193180 Hz de impulsuri care sosesc la intrările de impulsuri de toate cele trei canale. Fiecare impuls ajunge la intrare de 16 biți contorul se scade din conținutul ultimului „1“ în starea de tranziție contraanalizei 000. 01 de stat 000. întrerupere este generat semnal 00, furnizate CSE pentru a activa ultimul handler cronometrul de software întrerupere. Dacă inițial contra 00. Timer-0, apoi devine egal cu 11. 1, și a redus în continuare prin „1“ de fiecare dată pulsul ajunge de la GOP la primirea următorului impuls al stării contra GOP. În acest caz, un semnal de întrerupere va fi emis cronometrul după primirea la intrare de 65536 impulsuri, adică după un interval de timp aproximativ egal cu 55 ms, care corespunde cu temporizatorul de aproximativ 18,2 Hz. Dacă timpul intervalului de temporizator de răspuns trebuie să aibă o valoare mai mică de 55 ms, contorul timer este necesară introducerea unui cod care corespunde numărului de impulsuri N, se calculează cu formula

unde F - valoarea dorită timer-ul de frecvență de răspuns, inegalitatea ar trebui să fie satisfăcută F> Hz 18,2. De exemplu, pentru F = 72,8 Hz descoperim că N = 16389,8; rotunjiri, constatăm că în contorul cronometrul trebuie să fie introdus codul binar 0 100 000 000 000 110.

Introducerea codului dorit în contorul de timp este realizată după cum urmează. În primul rând MP x86 trebuie să execute un program care transmite în portul temporizator cu un număr hexazecimal

40h dorit cod binar. Apoi x 86 MP ar trebui să efectueze un program de comandă care transmite un 43h octet număr de port timer hexazecimal, care indică numărul canalului timer programabil, ca modul de canal și numărul de octeți transmise în contra cronometru - 1 sau 2. După aceea, timer-ul de canal programat începe imediat să funcționeze, mai întâi introducerea unui circuit de control cod în contra cronometru și contorul timer-ul este apoi el însuși, în conformitate cu atribuirea primite.

Fig.1. Circuitul timer în canalul IBM PC-PC „0“

Luați în considerare acum funcționarea programului, care este de obicei numit un temporizator. Necesitatea de a utiliza acest program este determinată de faptul că, în cele mai multe tipuri de computere, inclusiv în IBM calculatoare de tip PC, doar un singur timer, deși în multe cazuri, operațiuni, mai degrabă programe complexe, este necesar să se organizeze mai multe programe paralele existente care urmează să fie incluse în diferite momente predeterminate. Una dintre modalitățile posibile de organizare a cronometrului de interval este după cum urmează. Acest program, pentru controlul procesului de execuție în paralel a mai multor programe în memoria RAM este un tabel care identifică mai multe linii care conțin următorii parametri pentru fiecare dintre aceste programe:

valoarea T (i) intervalul de timp, după care ar trebui incluse programul, acest interval de numărare începe cu organizarea programului cronometrului de interval;

valoarea curentă (i) intervalul de timp t, după care trebuie incluse programul;

facilitate c (i) includerea acestui modul program - o singură dată sau ciclic (deși, de exemplu, (i) = 0 pentru modul single).

În plus, acest tabel trebuie să fie o altă linie comună pentru toate programele, care conține valoarea intervalului de timp T, care este setat pentru curentul la timp.

Apoi, pentru fiecare dată de tratare a întreruperii de program temporizator în acest tabel sunt ajustate toate intervalele de timp, valoarea care este mai mare decât zero, prin reducerea valorilor lor de către o T. cantitate Dacă după ajustarea se pare că pentru unele programe de magnitudine t (i) = 0 sau t (i) 3