Semnale de întrerupere de mascare - stadopedia

În funcție de sursă, întreruperile sunt împărțite în următoarele tipuri:

1. Hardware - apar ca o reacție a microprocesorului la un semnal fizic de la un dispozitiv (tastatură, ceas de sistem, tastatură, hard disk, etc.); în momentul apariției, aceste întreruperi sunt asincron, adică apar la întâmplare.







2. Software - se numesc în mod artificial cu ajutorul comenzii corespunzătoare din program, concepute pentru a efectua anumite acțiuni ale sistemului de operare. Acest mecanism a fost introdus în mod special pentru a trece la modulele programului de sistem nu doar ca tranziție la o subrutină, ci în același mod ca o întrerupere normală.

Adică, există comenzi care fac ca microprocesorul să funcționeze ca și când s-ar produce o întrerupere externă în timpul execuției. Astfel de acțiuni se numesc întreruperi ale programelor, deoarece acestea sunt generate de programe, dar simulează acțiunile întreruperilor obișnuite. Procesorul pune toate cele trei registre de control pe stivă și selectează un vector de întrerupere în funcție de valoarea de un octet specificată de program. Microprocesorul utilizează vectorul de întrerupere înregistrat la începutul memoriei ca indicator al rutinei de întrerupere.

3. Excepții - sunt reacția microprocesorului la situația non-standard care a apărut în interiorul microprocesorului în timpul executării unei anumite comenzi de program.

Întreruperile interne sunt inițiate de circuitele procesorului propriu-zis când apare una dintre situațiile specificate, de exemplu, atunci când se efectuează o operațiune de divizare la zero sau când se încearcă executarea unei comenzi inexistente. În spatele fiecăruia dintre aceste întreruperi, este fixat un anumit vector, numărul cărora este cunoscut procesorului. De exemplu, în IBM PC, vectorul 0 este fixat cu 0, iar vectorul 6 pentru o comandă greșită. Dacă procesorul întâlnește una din aceste situații, execută procedura de întrerupere descrisă mai sus utilizând vectorul de întrerupere atribuit pentru această situație.

În multe computere, o parte din comenzi ar trebui executate numai de codul sistemului de operare în sine, dar nu de programele de aplicație. Acest lucru se face pentru a îmbunătăți securitatea calculelor calculatorului. În consecință, în aparat sunt furnizate diferite moduri de funcționare, iar programele de utilizator sunt executate într-un mod în care un anumit subset de comenzi, numite privilegiate, nu este executat. Printre comenzile privilegiate, în plus față de comenzile de intrare / ieșire, există, de asemenea, instrucțiuni pentru comutarea modului de funcționare a procesorului și comenzile pentru inițializarea anumitor registre de sistem ale procesorului. Când încercați să utilizați o comandă dezactivată în acest mod, apare o întrerupere internă și controlul este transferat în sistemul de operare în sine.







Semnalele care provoacă întreruperi sunt generate în afara procesorului sau chiar în procesor, ele pot apărea simultan. Alegerea uneia dintre ele pentru procesare se bazează pe prioritățile atribuite fiecărui tip de întrerupere. Deci, în mod evident, întreruperile din schemele de control ale procesorului ar trebui să aibă cea mai mare prioritate (într-adevăr, dacă hardware-ul nu funcționează corect, atunci nu are sens să continuăm procesarea informațiilor). Contabilitatea prioritară poate fi integrată în mijloace tehnice, precum și determinată de sistemul de operare, adică pe lângă prioritățile de întrerupere implementate de hardware, majoritatea computerelor și sistemelor permit controlul software-ului asupra procesării semnalelor de întrerupere. Al doilea mod, care completează primul, permite aplicarea diferitelor discipline ale serviciului de întrerupere.

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 (inhibarea) semnalelor individuale de întrerupere. Controlul software al acestor instrumente (există comenzi speciale pentru controlul funcționării sistemului de întrerupere) permite sistemului de operare să regleze procesarea semnalelor de întrerupere, forțând procesorul să le proceseze imediat după sosire; amânarea procesării pentru un timp; ignorați complet întreruperile. În mod obișnuit, operația de întrerupere se efectuează numai după terminarea comenzii actuale. Deoarece semnalele de întrerupere apar în momente arbitrare, pot exista mai multe semnale de întrerupere în momentul întreruperii, 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ă întreruperea cu cea mai mare prioritate este întotdeauna întreținută. Pentru a implementa acest mod, este necesar să se ascundă toate cererile cu o prioritate mai mică în timpul procesării întreruperilor. În acest caz, este posibilă o întrerupere pe mai multe niveluri, adică întreruperea programelor de procesare a întreruperii. Numărul de nivele de întrerupere în acest mod variază și depinde de prioritatea solicitării.

3. În conformitate cu principiul stiva sau, cum se spune uneori, cu privire la disciplina LCFS (Last Come First Served), adică cererile cu o prioritate mai mică pot întrerupe procesarea unei întreruperi cu o prioritate mai mare. Pentru aceasta este necesar să nu se aplice o mască niciunuia dintre semnalele de întrerupere și să nu se oprească sistemul de întrerupere.







Articole similare

Trimiteți-le prietenilor: