Catalog Peter Editura Electronic

Software-ul de sistem:: Edition Textbook pentru licee

Ca parte a acestui tutorial, vom, desigur, nu va lua în considerare diversitatea de microprocesoare pe 32 de biți de astăzi utilizate în PC-uri și alte sisteme informatice. Aici ne limităm la specificațiile numai, mai degrabă decât arhitecturale tehnice de microprocesoare. Sub denumirea i80x86 ne referim la orice microprocesor pe 32 de biți, cu același set de bază de comenzi, la fel ca în primul 32-bit microprocesor Intel 80386, aceleași soluții arhitecturale, la fel ca în microprocesoare Intel.

procesor Real și protejate în modul

Noul sistem înregistrează i80x86 microprocesoare

Registrele de bază i80x86 microprocesor care sunt necesare pentru o înțelegere a modului protejat, prezentat în Fig. 3.2. O atenție deosebită trebuie acordată următoarelor:

Suport segment de drum de memorie virtuală


Fig. 3.3. descriptor de segment


Fig. 3.5. Sarcina segment de stat (TSS)

Suport modalitate de paginare de memorie virtuală


Fig. 3.7. descriptor pagina

Modul VM pentru a executa aplicații-mod real

poartă de acces pentru transmiterea de mecanism de control pe segmentele de cod la alte niveluri de privilegiu

Deoarece tranzițiile între segmente sunt controlate cu ajutorul niveluri privilegiu și există necesitatea de a transfera controlul de la un nivel la un alt nivel de privilegii, implementat în mecanismul de gateway-uri microprocesor i80x86. pe care le explicăm cu ajutorul fig. 3.9. Blocarea vă permite să organizați un apel la așa-numitele segmente de cod slave care îndeplinesc funcții comune și ar trebui să fie disponibile la multe probleme, este situat la un nivel mai scăzut de privilegii la fel sau.


Fig. 3.9. blochează mecanismul de a trece la un alt nivel de privilegii


Fig. 3.10. Trecerea la un segment de cod mai privilegiat
Fig. 3.11. Format gateway-Descriptor

Următoarele reguli de utilizare a încuietori, de tip:

  • DPL valoare de gateway de apel trebuie să fie mai mare sau egal cu cel actual CPL nivel de privilegii;
  • DPL valoare de gateway apel trebuie să fie mai mare sau egală cu valoarea RPL gateway-selector câmp;
  • DPL valoare de gateway de apel trebuie să fie mai mare sau egală cu segmentul de cod țintă DPL;
  • valoarea segmentului de cod țintă DPL trebuie să fie mai mic sau egal cu cel actual CPL nivel de privilegii.

Cerința pentru prezența și disponibilitatea apelului la trecerea poarta de acces la un cod mai privilegiat limitează codul de mai puțin privilegiat pentru un anumit set de puncte de intrare în codul cu mai mult privilegiu. Din moment ce gateway numesc sunt elemente din tabelul descriptor (și ni sa spus că au fost nu numai posibil, dar, de asemenea, de dorit să-l aibă), atunci programul mai puțin privilegiat nu poate crea o suplimentare (și, prin urmare, necontrolate) gateway-uri. Astfel, a considerat mecanismul de gateway are următoarele avantaje în mediul organizației de a efectua calcul de încredere:

Prezentați pe scurt protecția hardware a privilegiilor mecanismului este destul de complicat și greu. Cu toate acestea, din moment ce toate situațiile practice în considerare în circuitele de microprocesor este imposibilă, atunci dezvoltarea procedurilor pentru sistemele de operare și alte tipuri de cod este extrem de privilegiat ar trebui să adere la următoarele recomandări, extrase din cartea [22].
Riscul major asociat cu controlul transmisiei prin poarta apel procedura de mai preferată. Este imposibil să dea apelantului orice avantaj care rezultă din escaladarea privilegiu temporar. Această observație este deosebit de important pentru un nivel zero al privilegiilor procedurilor (PL0-proceduri).
Apelantul poate perturba procedura, care trece parametrii „rele“. Prin urmare, este recomandabil ca parametrii de transfer înainte de procedura poate fi monitorizată. Call Gateway în sine nu verifică valorile parametrilor sunt copiate în noul stivă, astfel încât fiabilitatea fiecărui parametru transmis monitorizează numita procedură. Iată câteva modalități de a controla parametrii de transmisie.

Sistemul de întreruperi microprocesoare pe 32 de biți i80x86

Familia microprocesor i80x86 sistem de întrerupere este construit în așa fel încât, pe de o parte, oferă posibilitatea de a crea sisteme de operare multiprogramming eficiente și fiabile care să funcționeze în modul protejat, dar, pe de altă parte - pentru a oferi o oportunitate de a efectua programe concepute pentru mod real. Să considerăm pe scurt cele două regimuri.

Funcționarea sistemului întrerupe CPU în mod real

  • întrerupe prin împărțirea la zero; IRQ - 0;
  • TF întrerupere de pavilion (pavilion trap). În acest caz, o întrerupere este utilizat în mod normal, cu programe speciale, cum ar fi depanare DEBUG. IRQ - 1;
  • Instrucțiuni INT (întrerupere - o întrerupere cu numărul corespunzător) și INTO (întrerupe dacă overflow - întrerupere preaplin). Aceste întreruperi sunt numite de software.

Ca un operand INT specifică numărul de întrerupere să fie efectuate, cum ar fi INT 10H. Software-ul întrerupe ca un mijloc de a sări la procedurile corespunzătoare au fost introduse pentru a se asigura că punerea în aplicare a acestei proceduri a fost efectuată într-un mod privilegiat, și nu în obiceiul de obicei.
întreruperi externe au loc pe un semnal al oricărui dispozitiv extern. Există două semnal extern special între procesorul de semnal de intrare, folosind care este posibil să-și întrerupă programul actual și, prin urmare, a comuta funcționarea procesorului. Acest lucru semnaleaza NMI (fara masca de întrerupere, întrerupere non-Maskable) și INTR (cerere de întrerupere, cererea de întrerupere). Prin urmare, întreruperile externe sunt împărțite în non-maskable și maskable.
controler de întreruperi Maskable întreruperi generate de aplicarea anumitor periferice. Întrerupere Controler (denumirea sa - i8259A) suportă opt nivele (linii) cu prioritate; la fiecare nivel al unui dispozitiv periferic „legat“. întrerupe Maskable este adesea numit, de asemenea, întreruperi hardware. În PC-uri, începând cu IBM PC-AT, construit pe baza de microprocesor i80286 utilizează două i8259A întrerupe controler; acestea sunt conectate într-o manieră în cascadă. Schema de conexiune serială a regulatoarelor prezentate în Fig. 3.12.
Astfel, în IBM PC AT 15 linii IRQ furnizate (Interrupt Request), care utilizează o parte din placa controler de sistem intern, iar celălalt ocupat de adaptoare standard sau care nu sunt utilizate. Mai jos sunt listate liniile de cerere de întrerupere pe care le vom prezenta, deoarece fiecare experți în informatică trebuie să cunoască standardele de bază pentru PC. Prin urmare, linia IRQ:

  • 0 - temporizator de sistem;
  • 1 - controler tastatură;
  • 2 - un semnal de resetare pe cadrul (EGA / VGA), conectat la AT pe IRQ 9;
  • 3 - de obicei COM2 / COM4;
  • 4 - de obicei COM1 / COM3;
  • 5 - controler HDD (în primul calculator IBM PC XT), în mod obișnuit disponibile pe IBM PC-AT și placa de sunet este utilizat;
  • 6 - Controler FDD;
  • 7 - LPT1, multe LPT-kontpollepami nu este utilizat;
  • 8 - Ceas în timp real cu baterie (RTC - ceas de timp real);
  • 9 - paralel IRQ 2;
  • 10 - nu este folosit, adică, liber;
  • 11 - gratuit;
  • 12 - de obicei, controlerul mouse PS tip / 2;
  • 13 - coprocesor matematic;
  • 14 - controler de obicei ide0 (primul pasaj);
  • 15 - de obicei, controlerul IDE1 (al doilea canal).

Fig. 3.12. Cascadă de întrerupere controler

După cum se știe, o întrerupere poate fi inițiată de către un dispozitiv extern sau o comandă specială PC întrerupere de program. În orice caz, dacă întreruperile sunt permise, atunci următoarea procedură:

Atunci când rutina de sistem preia controlul, se poate reactiva Maskable întrerupe echipa ITS (set de pavilion de întrerupere, setați pavilion de întrerupere), care ia steagul IF în starea 1, care permite microprocesorul să răspundă din nou pentru a întrerupe declanșat de dispozitive externe, organizarea stivă permite întreruperi imbricate reciproc.
Când terminat, IRET rutina de întrerupere (întoarcere întrerupere) trebuie să execute o instrucțiune care împinge cele trei valori pe 16 biți, și le încarcă în indicatorul de instrucțiuni IP, înregistrare și CS registru segment de comandă PSW respectiv. Astfel, procesorul poate continua din punctul în care a fost întrerupt.
În cazul extern întrerupe procedura de trecere la rutina de întrerupere se completează cu următoarele etape:

  1. Controlerul de întrerupere primește o solicitare de la un dispozitiv periferic particular și observarea schemei de prioritate, generează un semnal INTR (cerere de întrerupere), care este introdus la microprocesor.
  2. Microprocesorul verifică indicatorul, dacă în registrul PSW. Dacă este setat la 1, apoi mergeți la pasul 3. În caz contrar, operațiunea procesorului nu este întreruptă. Se spune adesea că sunt mascate întrerupe, deși corect să spunem că acestea sunt dezactivate. Maskable (interzis) separat linie cerere de întrerupere de o programare controler de întrerupere.
  3. Microprocesorul generează un semnal INTA (confirmare de întrerupere). Ca răspuns la acest semnal de întrerupere, controlerul trimite date pe autobuz numărul de întrerupere. După aceea, procedura descrisă mai devreme de transfer al managementului de rutină de întrerupere relevante.

Numărul de întrerupere și prioritatea sa este stabilită în faza de inițializare a sistemului. După ce a început utilizatorul sistemului de operare, așa cum am spus, se poate schimba tabelul vectorului de întrerupere, deoarece este disponibil pentru el.

Sistemul este în operarea sigură procesor de întrerupere

  • întrerupe comutator (poarta de întrerupere);
  • comutator de interceptare (gate trap);
  • switcher sarcină (poarta sarcină).
Întrerupe Manipularea în contextul sarcinii curente
  1. Teancul la nivelul privilegiului segmentului de cod curent plasat in:
    • Valorile SS și SP, în cazul în care nivelul de privilegii de mai sus nivelurile de comutare privilegiu cod executabil anterior;
    • steaguri EFLAGS registru;
    • înregistrează CS și IP.
  2. Dacă întreruperea considerată corespundea comutator poarta de întrerupere, atunci întreruperile sunt dezactivate (IF flag = 0 în EFLAGS registru). În cazul în care comutatorul de capcana pavilion poarta de întrerupere nu este resetat și procesarea de noi întreruperi în perioada de procesare întrerupere de curent, astfel, nu sunt interzise.
  3. Domeniul selectorului de întrerupere descriptor tabelă descriptor este utilizat pentru sarcina de indexare. descriptor segment este stocat în registrul umbră și abaterea de la începutul noului segment de cod este determinat de câmpul prejudecată a handler de întrerupere.

Fig. 3.13. schema de control al transmisiei este întreruptă atunci când, în contextul sarcinii curente
Întrerupe Manipularea cu trecerea la o nouă sarcină


Fig. 3.14. schema de control al transmisiei este întreruptă atunci când se trece la o nouă sarcină

În același timp, există un comutator complet într-o nouă problemă cu un atașament care este, va avea loc următoarele:

întrebări de control și sarcini

Întrebări pentru a testa