Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Calculatoare


Qdidactic » stiinta & tehnica » informatica » calculatoare
Gestionarea intreruperilor - surse de intrerupere, mecanismul de functionare a intreruperilor



Gestionarea intreruperilor - surse de intrerupere, mecanismul de functionare a intreruperilor


Exista o categorie de sarcini a caror aparitie in sistem face necesara tratarea lor imediata de catre UCP; vom numi aceste sarcini evenimente.

Pe de alta parte, UCP nu trebuie sa afecteze timp pentru a verifica daca a aparut o astfel de solicitare in sistem, stiut fiind ca timpul UCP este o resursa critica a sistemului de calcul. Apare astfel o problema de comunicare de la componentele fizice sau logice ale sistemului de calcul catre UCP, problema rezolvata, in sistemele de calcul moderne, utilizand tehnica intreruperilor.

Intreruperea reprezinta suspendarea temporara a executiei procesului care are alocata UCP, in momentul in care apare un eveniment in sistem, in scopul tratarii acestui eveniment de catre UCP.

Pentru ca o intrerupere sa fie functionala, este necesar sa poata fi indeplinite doua conditii:

    • UCP sa dispuna de capacitatea de a fi intrerupta, adica sa fie posibil ca UCP sa fie alocata altui proces, inainte de incheierea executiei procesului caruia ii este alocata, la un moment dat;
    • sa existe posibilitatea de a conserva parametrii procesului suspendat, pentru ca acesta sa poata fi continuat ulterior, din punctul in care a fost intrerupt.

1. Surse de intrerupere

Sursele de intrerupere identifica acele componente fizice sau logice ale sistemului care pot solicita intreruperi, in cazul aparitiei unor evenimente.



Semnalele transmise pentru UCP de catre sursele de intrerupere care solicita o intrerupere se numesc cereri de intrerupere (CI).

In functie de natura surselor de intrerupere si a evenimentelor care pot genera o intrerupere, se pot identifica mai multe tipuri de intreruperi:

intreruperi hardware, generate de surse hardware, pentru evenimente externe procesului; de exemplu:

o        dispozitivele periferice pot solicita, printr-o cerere de intrerupere, servicii sau actiuni specifice (imprimanta “anunta” terminarea hartiei, in timpul unei listari; unitatea de disc “anunta” incheierea unei operatii de citire/scriere sau aparitia unei erori in timpul unei astfel de operatii; tastatura “anunta” activarea sau dezactivarea unei taste, etc.)

o        dispozitivele hardware de supraveghere a functionarii normale a sistemului de calcul pot emite cereri de intrerupere in cazul sesizarii unor anomalii de functionare (circuitele detectoare de paritate pot semnala erori de paritate in timpul unui transfer de date, circuite specializate pot sesiza scaderea tensiunii de alimentare a sistemului, etc.)

intreruperi software, care apar in timpul si in legatura cu executia unui proces; ele sunt de doua tipuri:

o        intreruperi software programate, generate cu ocazia executiei unui program, cu scopul de a solicita anumite servicii; aceste intreruperi nu apar intamplator, in timpul executiei programului, ci sunt generate intentionat, prin intermediul unei instructiuni specializate care se insereaza in program si care, atunci cand se executa, lanseaza o cerere de intrerupere.

o        intreruperi software de exceptie care apar in timpul executiei unui program, cand se incearca executarea unor operatii nepermise, de exemplu:

impartirea la 0


depasirea domeniului de valori disponibil pentru anumite moduri de reprezentare a datelor

utilizarea, intr-o instructiune, a unui cod de operatie necunoscut

incercarea de acces intr-o zona de memorie protejata, etc.

Aceste intreruperi sunt determinate de conditii de exceptie in executia programului si sunt generate in scopul evitarii unei evolutii imprevizibile sau eronate a procesului.

Aceste intreruperi sunt sincrone cu programul, adica daca o intrerupere de exceptie apare in timpul executarii unui program, cu un anumit set de date, atunci aceasta intrerupere va apare de fiecare data cand programul respectiv se executa cu acest set de date.


2. Mecanismul de functionare a intreruperilor

Mecanismul de functionare a intreruperilor presupune:

      • lansarea unei cereri de intrerupere si transmiterea ei pe un nivel de intrerupere
      • intreruperea temporara a procesului activ, cu conservarea starii sale in momentul intreruperii
      • executarea rutinei de tratare a intreruperii de pe nivelul corespunzator
      • reluarea procesului intrerupt si continuarea lui, pornind de la starea din momentul intreruperii.

In functie de sursa intreruperii, fiecare CI se identifica printr-un numar, numit nivel de intrerupere; numarul nivelelor de intrerupere disponibile in sistem este o constanta constructiva a sistemului de calcul, determinata de numarul de linii pe care UCP poate primi cereri de intrerupere. Sursele de intrerupere sunt grupate, fiecare grup avand rezervat un anumit nivel de intrerupere (de exemplu, exista cate un nivel de intrerupere pentru: unitatile de disc, imprimanta, tastatura, ceasul sistemului, etc.)

In cazul intreruperilor hardware, nivelul de intrerupere este determinat de o componenta de pe placa de baza, numita controler de intreruperi hardware; acesta primeste cererea de intrerupere si o directioneaza catre UCP pe un anumit nivel de intrerupere, in functie de sursa care a generat-o.

In cazul intreruperilor software, programul care lanseaza o cerere de intrerupere trebuie sa specifice si nivelul de intrerupere corespunzator.

Pentru fiecare nivel de intrerupere exista un program de sistem specializat, numit rutina de tratare a intreruperii sau handler. Fiecarui nivel de intrerupere ii corespunde o adresa fixa in memorie, unde este memorata adresa rutinei de tratare a intreruperii respective. Toate aceste adrese fixe formeaza in memoria interna vectorul de intrerupere.

Operatia de executare a rutinei de tratare a intreruperii corespunzatoare unei cereri de intrerupere poarta numele de servire a cererii de intrerupere respective.

Rutinele de tratare a intreruperilor sunt incluse in firmware, de exemplu in ROM-BIOS, sau in componentele sistemului de operare. Pot exista si rutine de tratare a intreruperilor proprii unor programe de aplicatie. Aceste rutine pot fi create fie pentru a inlocui o intrerupere standard, fie pentru a crea un nou tip de intrerupere.

Activitatea UCP poate fi intrerupta la incheierea executiei unei instructiuni masina. La aparitia unei cereri de intrerupere, UCP executa urmatoarele operatii:

      • salveaza starea procesului in executie, prin memorarea pe stiva a continutului registrului contor de program, al cuvantului de stare program si al registrelor generale
      • accepta intreruperea si localizeaza rutina de intrerupere
      • executa rutina de intrerupere
      • reface contextul de executie al procesului intrerupt
      • reia procesul din punctul in care a fost intrerupt.

Controlul intreruperilor

In timpul executarii unui proces, exista anumite operatii critice, care nu trebuiesc intrerupte. In acest scop, exista posibilitatea invalidarii unei CI.

Controlul intreruperilor se refera la posibilitatea acordata UCP de a accepta sau nu o cerere de intrerupere. In cod masina exista doua instructiuni complementare:

      • EI (Enable Interrupt) care permite validarea unei cereri de intrerupere
      • DI (Disable Interrupt) care nu permite validarea unei cereri de intrerupere, pana la o noua instructiune EI. Prin intermediul acestei instructiuni se poate realiza invalidarea soft a unei cereri de intrerupere.

Intreruperile care pot fi invalidate soft se numesc intreruperi mascabile.

Exista insa si cereri de intrerupere care trebuie sa genereze obligatoriu intreruperea procesului in curs, in momentul aparitiei lor. Intreruperile care nu pot fi invalidate soft se numesc intreruperi nemascabile.

4. Ierarhizarea intreruperilor

La un moment dat, in sistem, pot fi activate, simultan, mai multe cereri de intrerupere. Acestea sunt servite in ordinea in care apar in sistem. De exemplu: se opreste, temporar, executia unei rutine de intrerupere, pentru a lansa in executie o alta rutina de intrerupere, apelata de o cerere de intrerupere aparuta ulterior in sistem.

Se poate realiza o ierarhizare a intreruperilor, prin acordarea de prioritati de executie fiecarui nivel de intrerupere. In cazul ierarhizarii intreruperilor, ordinea de servire a cererii de intrerupere va fi stabilita conform urmatoarelor principii:

      • servirea unei cereri de intrerupere poate fi intrerupta numai de o cerere de intrerupere cu nivel de prioritate mai mare;
      • intreruperile nemascabile au prioritate maxima;
      • dupa incheierea unei rutine de tratare a intreruperii se reia executia intrerupta, care poate fi a unui proces sau a altei rutine de tratare a unei intreruperi cu prioritate mai mica.

5. Functiile sistemului de intreruperi

In concluzie, sistemul de intreruperi permite comunicarea in sistemul de calcul si sincronizarea activitatii UCP cu evenimentele externe sau interne din sistem, asigurand:

      • directionarea majoritatii cererilor adresate UCP, din mediul extern
      • degrevarea UCP de sarcina explorarii intrarilor in sistemul de calcul, pentru a detecta sarcinile care ii revin
      • micsorarea timpului de raspuns al UCP la solicitarile externe sau interne primite
      • detectarea rapida a unor situatii de disfunctionalitate a sistemului, determinand astfel cresterea fiabilitatii acestuia.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright