mc cap 4

16
Microcontrolere - Capitolul 4 Corneliu BURILEANU © 1 4. MULTIPROCESAREA 4.1. Defini ii Proces: execu ia a unul sau mai multe programe nivelul de privilegiu este dinamic (dup programul în curs de rulare) atribute: spa iul adreselor, utilizarea registrelor, stiv , date O secven de ac iuni coerente care duc la îndeplinirea unui scop, folosind dinamic resursele calculatorului i nivelele de privilegii Multiprocesare (concuren , multiprogramare): Capabilitatea calculatorului de a executa, aparent, mai multe procese simultan; aceasta se realizeaz prin comutarea de la o secven de instruc iuni apar inând unui proces la o alt secven apar inând altui proces i a a mai departe, apoi din nou la prima secven etc.

Upload: iulian-pavaloiu

Post on 09-Aug-2015

99 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

1

4. MULTIPROCESAREA

4.1. Definiţii

Proces:•execuţia a unul sau mai multe programe•nivelul de privilegiu este dinamic (după programul în curs de rulare)•atribute: spaţiul adreselor, utilizarea registrelor, stivă, date

O secvenţă de acţiuni coerente care duc la îndeplinirea unui scop, folosind dinamic resursele calculatorului şi nivelele de privilegii

Multiprocesare (concurenţă, multiprogramare):Capabilitatea calculatorului de a executa, aparent, mai multe procese simultan; aceasta se realizează prin comutarea de la o secvenţă de instrucţiuni apar ţinând unui proces la o altăsecvenţă aparţinând altui proces şi aşa mai departe, apoi din nou la prima secvenţă etc.

Page 2: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

2

4.2. Segmentul de stare al procesului şi descriptorul aferent

Segmentul de stare al procesului(TSS) – un segment special de sistem; fiecare proces are unTSS unic

TSS e descris, ca orice segment de către un descriptor special de control de tip b.2numit descriptorTSS

TSS conţine toate informaţiile esenţiale legate de resursele unui proces

TSS conţine: - o porţiune obligatorie- o porţiune la dispoziţia utilizatorului

Ne ocupăm de porţiunea obligatorie: - o parte statică – nu se modifică la schimbarea procesului- o parte dinamică – se modifică la fiecare schimbare a procesului

Page 3: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

3

Câmpuri:

•selector legătur ă TSS anterior

•bazele stivelor de pe nivelele privilegiate

•[adresa directorului paginilor pentru IA32 – CR3]

•adresa efectivă a instrucţiunii curente şi conţinutul tuturor registrelor atribute de arhitectur ă

•selectoarele din registrele segment

•selectorul dinLDTR

•[bitul de „trap” pentru schimbarea procesului – T ; când T=1 apare INT 1]

•[BAZA „tabelei de I/O permişi”]

Page 4: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

4

Structura por ţiunii obligatorii pentru TSS

Page 5: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

5

Un TSS areLIMITA ≥≥≥≥ 42 pentru Intel 80286 (44B)LIMITA ≥≥≥≥ 100 pentru Intel 386/486/Pentium (104B)

Dimensiunea maximă este cea permisă în mod normal pentru orice segment

BAZA „tabelei de porturi I/O permise” conţine adresa efectivă (offsetul adresei) dinTSS care este baza tabelei propriu-zise

Tabela de porturi I/O permise conţine harta biţilor ce indică permisiunea de acces la porturi; dacăbitul din tabelă e 1, accesul la portul corespunzător este interzis

Pentru familia Intel există 1b pentru fiecare port din cele 64 kporturi de câte un octet ⇒ tabela are 8 kB

În afara acestei tabele, permisiunea de acces la porturi e dată şi de nivelul de privilegiu al porturilor I/O descris cu 2 biţi în registrul de fanioane: IOPL. Regula de acces care se aplică este „Regula 1” (de acces la date)

Page 6: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

6

Exemplu:

Pentru acest proces se pot accesa:porturile cu nr. 8, 9, 10, 11 şi 12 pe octetporturile cu nr. 8 şi 10 pe 2 octeţiportul cu nr. 8 pe 4 octeţi

Page 7: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

7

Descriptorul „segmentului de stare al procesului” (TSS)

Caracteristici:

Este situat obligatoriu înGDT

Există un registru special –TR care conţine selectorul pentru identificarea acestui descriptor; registrul are şi porţiune cache

(TR) = SELECTOR pentru localizarea descriptorului deTSS în GDT

Este un descriptor special de control, tip b.2

Page 8: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

8

Anatomia descriptorului TSS:

TIP = 1 (0 0 0 1) : TSS pentru 80286TIP = 3 (0 0 1 1) : TSS ocupat pentru 80286TIP = 9 (1 0 0 1) : TSS pentru 386/486/PentiumTIP = 11 (1 0 1 1) : TSS ocupat pentru 386/486/Pentium

Bitul a 2-lea semnifică „ocupat” ( B);B=1 – ocupat →→→→ proces activB=0 – liber →→→→ proces pasiv (în aşteptare)

DPL indică nivelul de privilegiu al segmentului de sistem care esteTSS

BAZA şi LIMITA ocupă aceleaşi poziţii în descriptor ca în cazul oricărui descriptor de segment de tip a sau b1

Page 9: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

9

4.3 Schimbarea proceselor

1. Se folosesc instrucţiunile de tip JMP şi CALL din a căror adresă virtual ă selectorul identificădescriptorul unui TSS; offsetul se ignoră

2. Se folosesc instrucţiunile de tip JMP şi CALL din a căror adresă virtual ă selectorul identifică o „poart ă de proces” cu care se face o adresare indirectă la un alt TSS; şi aici offsetul se ignoră

3. Se foloseşte o instrucţiune de tip INT care este vectorizată către o poartă de proces aflată în „tabela cu descriptori de întreruperi” – IDT, ceea ce constituie tot o referire indirectă la un alt TSS; şi aici offsetul se ignoră

4. Se foloseşte o instrucţiune de tip IRET care permite revenirea la un proces anterior dacăNT=1 (NT este un fanion din registrul de fanioane)

Page 10: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

10

Se observă că nu există instrucţiuni dedicate; deosebirea faţă de salturile obişnuite:

- pentru JMP, CALL şi INT contează ce tip de descriptor vizează selectorul aferent

- pentru IRET trebuie ca NT=1

Pentru instrucţiunile de tip CALL şi INT se aşteaptă o reîntoarcere din procesul apelat

Accesul la alt proces se face :

- fie direct, folosind descriptorul unui TSS

- fie indirect, prin poart ă de proces

Se respectă întotdeauna regula mecanismului privilegiilor multi-nivel pentru accesul datelor („Regula 1”)

Page 11: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

11

Etapele la schimbarea procesului:

1. Validarea:max (CPL, RPL) apelant ≤≤≤≤ DPL descriptor deTSS sau poartă de proces

Observaţii:- această verificare se face numai pentru instrucţiunile de tip JMP, CALL şi INT- poarta de proces poate conţine referinţa către un TSS aflat la un nivel mai privilegiat

2. Verific ă: - pentru procesul apelant: - prezent;- LIMITA are val minimă cerută

- pentru procesul apelat: - prezent;- nu e ocupat;- LIMITA are val minimă cerută;- SELECTOR din LDTR valid;- Tabela adreselor locale prezentă;- SELECTOR din CS valid;- Segment de cod prezent

Page 12: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

12

3. Declară: - noul proces - devine „ocupat”(B=1);- vechiul proces: - devine „liber” dacă s-au folositJMP sauIRET;

- rămâne „ocupat” pentru CALL sauINT

4. Salvează partea dinamică în TSS al vechiului proces

5. Încarcă TR (+ porţiunea cache) cuSELECTOR, respectivBAZA şi LIMITA noului TSS

6. Actualizează registrele cu cele din noulTSS (în afară de cele segment şi LDTR)

7. Dacă s-a folositCALL , în noul TSS se realizează NT ←←←← 1

8. Actualizează LDTR (+ porţiunea cache) cu elementele descriptoruluiLDT pentru noul proces

9. Actualizează registrele segment (+ porţiunile cache) cu elementele descriptoarelor pentru segmentele de program, date şi stivă

10. Încarcă IP şi începe execuţia noului proces de la adresa virtuală dată de (CS) şi (IP)

Page 13: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

13

4.4 Poarta de proces

Caracteristici:

Este un nivel suplimentar de adresare indirectă ca şi poarta de apelare

Este un descriptor special de control, tip b.3

Este situat înGDT, LDT sauIDT

Regula de protecţie la apelare:

EPL al procesului apelant ≤≤≤≤ DPL poartă de proces

Page 14: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

14

Ca şi la poarta de apelare, offsetul adresei virtuale care vizează poarta de proces se ignoră

SELECTOR pentru localizarea descriptorului deTSS în GDT se citeşte din poartă; seignoră RPL

Poarta de proces poate conţine referinţa către un TSS aflat la un nivel mai privilegiat

Page 15: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

15

Exemplu de schimbare a proceselor prin poartă de proces

Premise

- fie două procese activate succesiv

- fiecare proces are tabelă de descriptori locali proprie

- LDT pentru procesul A conţine o poartă de proces pentru trecerea la procesul B

- dacă se foloseşte o instrucţiune tip INT, poarta de proces pentru trecerea la procesul B de află în IDT

Page 16: Mc cap 4

Microcontrolere - Capitolul 4 Corneliu BURILEANU ©

16