Conceptul de intrerupere
In cadrul procesului de executie al unui program CPU trebuie sa asigure urmatoarele functii:
- evidentierea starii in care se afla si asigurarea unui mecanism de schimbarea starii;
- asigurarea inlantuirii automate a instructiunilor;
- asigurarea comenzilor necesare executiei unei instructiuni.
In ceea ce priveste schimbarea starii CPU, aceasta se poate realiza prin:
- memorarea dinamica a informatiei de stare, in cuvantul de stare al procesorului (MSW -Machine Status Word);
- sistemul de intreruperi.
CPU se poate afla in una din urmatoarele stari:
- operationala- atunci cand poate executa operatii de prelucrare a datelor;
- neoperationala- care corespunde unei situatii de defect.
Starea operationala se caracterizeaza prin una din urmatoarele stari generate de procese:
- activa sau in asteptare;
- intreruptibila sau neintreruptibila, functie de luarea in considerare a intreruperii sau nu (se spune ca intreruperea este mascata);
- sistem sau utilizator, dupa cum este sub controlul sistemului de operare sau al programelor de aplicatie lansate de utilizatori.
Informatia de stare este dinamica si reflecta in orice moment functionarea CPU, fiind
memorata intr-un registru de stare sub denumirea de cuvant de stare program MSW (Machine Status Word), continand in general, urmatoarele informatii:
- dreptul de acces al programului la zona respectiva de memorie;
- o informatie sintetica asupra modului cum s-a incheiat executia instructiunii precedente, numita cod de conditie (registrul Eflags la microprocesoarele Intel);
- mastile de intreruperi;
- starea CPU;
- nivelul de prioritate al programului;
- adresa urmatoarei instructiuni de executat (registrul EIP - Extended Instruction Pointer la microprocesoarele Intel).
Posibilitatea comutarii starii CPU se realizeaza prin procese de intrerupere care (de exemplu, in cazul multiprogramarii) este o conditie indispensabila in sensul asigurarii trecerii controlului de la un program la altul. Prelucrarea intreruperilor este realizata de o componenta hardware specializata inclusa in CPU si o componenta software (ce dispune de rutine incluse in sistemul de operare pentru a trata fiecare intrerupere in parte).
Etapele tratarii unei intreruperi :
1. in momentul aparitiei unei cereri de intreruperi, aceasta se va lua in considerare daca este cea mai prioritara din sirul de intreruperi;
2. analiza tipului de intrerupere si salvarea cuvantului de stare al programului la o anumita adresa din memoria interna;
3. incarcarea unui cuvant de stare al programului specific intreruperii si lansarea in executie a rutinei ce prelucreaza intreruperea;
4. reincarcarea vechiului cuvant de stare al programului de la adresa unde a fost salvat in memoria interna, dupa terminarea prelucrarii intreruperii;
5. redarea controlului programului intrerupt.
Intreruperile pot fi generate: de program, de operatiile de intrare/iesire, de defect al CPU sau externe sistemului de calcul provenind de la alte echipamente cu care este cuplat.
1.2. Intreruperi la PC - uri
La microprocesoarele implementate pe PC -uri care permit multiprogramarea (I80286, I80386, I80486, Pentium), controlul accesului intre programele de aplicatie si sistemul de operare este asigurat prin controlul spatiului de adresa si un mecanism de protectie privilegiat astfel:
- controlul spatiului de adresa separa programele de aplicatii unele fata de altele;
- mecanismul privilegiat de protectie izoleaza software-ul de baza de software-ul aplicatii.
Acesta garanteaza posibilitatea programelor de a avea acces la segmentul de cod, de date si resursele de intrare/iesire de baza, numai pentru nivelul privilegiat al segmentului respectiv.
Protectia se bazeaza pe notiunea de ierarhie de tutela, existand patru niveluri privilegiate aranjate in inel, incepand cu cea mai mare tutela 0 (fig.4.2.)
Pentru a descărca acest document,
trebuie să te autentifici in contul tău.