Typy segmentů 286

Popisovač
Typ popisovaného segmentu je definován obsahem slabiky přístupová práva. Podle typu segmentu rozlišujeme v 80286 4 základní druhy popisovačů:
  1. popisovač segmentu obsahujícího data (datový segment)
  2. popisovač segmentu obsahujícího instrukce (instrukční segment)
  3. popisovač segmentu obsahujícího informace pro systém (systémový segment)
  4. popisovač brány


3 typy segmentů:
1) Datový segment (může sloužit i jako zásobník)
2) Instrukční segment
3) Systémový segment
(4) Popisovač brány (zvláštní typ systémového segmentu)


Popisovač datového segmentu

Popisovač

P

- Segment Present
- jestliže = 1 tak je platný (obsah segmentu je uložen v reálné paměti)
- když je tam 0, tak je neplatný

DPL

- Descriptor Privilege Level
- určuje úroveň oprávnění, jež je přidělena segmentu

W

- Writable
- zda je povolen zápis do segmentu
- w=1 – povoleno čtení i zápis
- w=0 – povoleno jen čtení
- zásobník musí mít vždy W=1

A

- Accesssed
- jestliže k segmentu přistupujeme, bude tento bit nastaven do 1

ED

- Expansion Direction
- určuje, zda-li se bude jednat o data nebo zásobník
- 0 = data, 1 = zásobník
- indikuje, kterým směrem se bude do segmentu zapisovat

Platí:
U dat: Čím větší limit, tím větší je prostor pro data.
U zásobníků je to naopak: Čím menší limit, tím větší je zásobník.

Když je u zásobníku limit = 0, tak je zásobník celých 64 kilobajtů.

Je-li nastaveno ED = 0 (data), bude se obsah segmentu rozšiřovat směrem k vyšším adresám. Data se ukládají (v rámci 64 KB segmentu) od adresy 0000 směrem k adrese 0FFFFh. Při požadavku na zvětšení obsahu se musí zvětšit hodnota limitu segmentu.
Když se ED = 1 (zásobník), bude se obsah segmentu rozšiřovat směrem k nižším adresám. položky zásobníku se ukládají od adresy 0FFFFh směrem k adrese 0000 (uvnitř 64 KB segmentu). Při požadavku na zvětšení obsahu se musí zmenšit hodnota limitu segmentu (ten se totiž i v případě zásobníku počítá od adresy 0).
(????? musim ještě dořešit to, co tam znamená to SS:SP a SS a DS a DS:EA ?????)

Bit s číslem 4 a 3

- To nám říká, že je to datový typ segmentu


Popisovač instrukčního segmentu

C

- Conforming
- jestliže c=0, tak podprogramy volané v tomto segmentu budou mít úroveň oprávnění dle úrovně oprávnění segmentu
- jestliže c=1, tak podprogramy volané v tomto segmentu budou mít úroveň oprávnění dle úrovně oprávnění, ze které je podprogram volán

R

- Readable
- je-li R = 0, je zakázáno čtení obsahu. Je povoleno pouze obsah segmentu spustit
- je li R = 1, je povoleno čtení i spuštění

Popisovač systémového segmentu

Typ

– 0 až 3, přičemž hodnota 0 je zakázaná

0 nepovolená hodnota
1 TSS - jedná se o segment stavu procesu (právě NEaktivního)
2 lokální deskriptorová tabulka
3 TSS právě aktivní

Popisovač brány

- je zvláštní typ systémového popisovače

- typ je ale větší než 3:
4 brána pro předání řízení
5 brána pro TSS
6 maskující přerušení
7 nemaskující přerušení


coded by Xagatron, powered by XRS engine