Chráněný režim

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 21. května 2017; kontroly vyžadují 14 úprav .

Chráněný režim (chráněný režim virtuálního adresování) - režim provozu procesorů kompatibilních s x86 . Částečně byl implementován již v procesoru 80286 , ale tam byl způsob práce s pamětí výrazně odlišný, protože procesory byly stále 16bitové a stránkování paměti nebylo implementováno . První 32bitovou implementací chráněného režimu je procesor Intel 80386 . Používá se v kompatibilních procesorech jiných výrobců. Tento režim se používá v moderních multitaskingových operačních systémech Windows , Linux , macOS .

Podobný režim používala společnost Digital Equipment (DEC) pro 32bitové počítače: VAX-11 .

Vlastnosti procesoru 80286

V procesoru 80286 byl kromě reálného režimu implementován také chráněný režim. V chráněném režimu může procesor změnou mechanismu adresování adresovat až 16 MB fyzické paměti a 1 GB virtuální paměti (16384 segmentů po 64 KB). Přepnutí z reálného režimu do chráněného režimu se provádí softwarově a je poměrně jednoduché, nicméně pro přepnutí zpět je nutný hardwarový reset procesoru. Registr Machine Status Word (MSW) se používá ke sledování aktuálního provozního režimu procesoru. Programy v reálném režimu nemohou běžet v chráněném režimu bez úprav, stejně jako programy systému BIOS počítače .

Podstata chráněného režimu je následující: programátor a jím vyvíjené programy využívají logický adresní prostor, jehož velikost může být 1 gigabajt. Logická adresa je automaticky převedena na fyzickou adresu jednotkou správy paměti (MMU). V tomto případě obsah registru segmentů přímo nesouvisí s fyzickou adresou, ale je to číslo segmentu v odpovídající tabulce. Díky chráněnému režimu lze do paměti uložit pouze tu část programu, která je v danou chvíli potřebná, zbytek lze uložit do externí paměti (například na pevný disk). Pokud dojde k přístupu k části programu, která není aktuálně v paměti, operační systém může program pozastavit, načíst požadovanou část kódu z externí paměti a obnovit provádění programu. V důsledku toho se programy, které jsou větší než velikost dostupné paměti, stanou platnými a uživatel má pocit, že pracuje s více pamětí, než ve skutečnosti je.

Fyzická adresa je vytvořena následovně. Segmentové registry ukládají selektor obsahující index deskriptoru v tabulce deskriptorů (13 bitů), 1 bit, který určuje, ke které tabulce deskriptorů se bude přistupovat (lokální nebo globální) a 2 bity požadované úrovně oprávnění. Dále se přistupuje k odpovídající tabulce deskriptorů a odpovídajícímu deskriptoru, který obsahuje počáteční 24bitovou adresu segmentu , velikost segmentu a přístupová práva, načež se vypočítá požadovaná fyzická adresa přidáním adresy segmentu s posunem od 16bitového Registrovat.

Vlastnosti procesoru 80386 - 80486

S příchodem 32bitových procesorů 80386 od Intelu mohou procesory pracovat ve třech režimech: skutečný , chráněný a virtuální procesor 8086.

V chráněném režimu jsou využity plné možnosti 32bitového procesoru - je zajištěn přímý přístup ke 4 GB fyzického adresního prostoru a multitasking s paralelním prováděním několika programů ( procesů ). Přísně vzato, režim multitaskingu je organizován operačním systémem multitasking, nicméně mikroprocesor poskytuje spolehlivý mechanismus nezbytný pro tento režim k ochraně úloh před sebou navzájem pomocí čtyřúrovňového systému oprávnění . Také v tomto režimu je k dispozici stránkovací paměť, která zvyšuje úroveň ochrany úkolů vůči sobě navzájem a efektivitu jejich provádění.

S procesorem i386 Intel rozpoznal potřebu lepší podpory reálného režimu, protože software nebyl v době svého vydání plně připraven ke spuštění v chráněném režimu. Proto je například v i386 možné přepnout z chráněného režimu zpět do reálného režimu (při vývoji 80286 se uvažovalo, že to nebude potřeba, proto je na počítačích s procesorem 80286 návrat do reálného režimu prováděno obvody - prostřednictvím resetu procesoru).

Po zapnutí mikroprocesoru se v něm automaticky nastaví režim reálné adresy. Přechod do chráněného režimu se provádí programově provedením příslušné sekvence příkazů. Programy určené pro chráněný režim musí být napsány zvláštním způsobem. To znamená, že skutečný a chráněný režim jsou nekompatibilní.

Stránkování paměti

Veškerá fyzická paměť je rozdělena na stránky s pevnou velikostí ( 4K bajtů , 2MB nebo 4MB, x86_64 také 1GB). Každá stránka, bez ohledu na velikost, je zarovnána na hranici 4K Byte .

Hlavní myšlenka spočívá ve vytvoření tabulek popisu paměti, které určují stav jejích jednotlivých segmentů/stránek atd. V případě nedostatku paměti může operační systém uvolnit část dat z RAM na disk a zadat indikace nepřítomnosti těchto dat v paměti v popisné tabulce. Při pokusu o přístup k chybějícím datům procesor vygeneruje výjimku #PF (druh přerušení) a předá řízení operačnímu systému, který vrátí data do paměti a poté řízení vrátí programu. U programů tak zůstává proces výměny dat z disků bez povšimnutí.

Lineární adresování

Lineární  adresování paměti je schéma adresování paměti počítače v chráněném režimu (počínaje procesory Intel 80386 a dalšími kompatibilními procesory x86). Používá většina moderních multitaskingových operačních systémů.

Díky mechanismu lineárního adresování můžete vytvořit libovolný (omezený pouze velikostí RAM ) počet nezávislých virtuálních adresních prostorů . Kromě toho může být každá stránka lineárního adresního prostoru umístěna na jakékoli fyzické adrese nebo může být dokonce stránkována na disk.

Při použití lineárního adresování je 32bitová logická adresa rozdělena do tří částí:

Při použití stránek o velikosti 4 M bajtů chybí druhá část. Offset na stránce bude určen bity 21-0 (22 bitů).

Chcete-li povolit lineární adresování, musíte v chráněném režimu nastavit bit PG v registru CR0 . Nejprve musíte v paměti vytvořit adresář stránek ( anglicky  Page Directory , PD) a tabulku stránek ( anglicky  Page Table , PT) a poté načíst fyzickou adresu adresáře stránek do registru CR3 .

Katalog a tabulky stránek

Obě tyto struktury jsou tabulky záznamů adresáře a tabulky stránek ( anglicky  Page Directory Entry , PDE a anglicky  Page Table Entry , PTE) paměťové stránky o velikosti 4 kB .

Oba prvky jsou dlouhé 4 bajty (32 bitů ) a mají podobnou strukturu:

Žlutá pole (Adresa tabulky stránek, Adresa stránky) obsahují horních 20 bitů tabulky stránek a adresa stránky (dolních 12 bitů fyzické adresy je vždy nula - nezapomeňte na zarovnání).

Tři bity Avl jsou bity dané systému. Dá se do nich napsat cokoliv.

Popis vlajek:

Viz také

Poznámky

  1. Přesněji řečeno, plná adresa (32 bitů) se zapisuje do CR2 . Např. pokud program přistoupil na adresu 00001543h (tj. na druhou stránku (č. 1) se stránkami o velikosti 4 KB), pak se toto číslo zapíše do CR2
  2. Nezkrácené Pentium 4: Genealogie procesoru IA32 ISBN 0-321-24656-X „Funkce PAT (tabulka atributů stránky)“, strana 797
  3. kernel.org/doc/ols/2008/ols2008v2-pages-135-144.pdf
  4. ↑ Pomocí privilegovaného příkazu INVLPG můžete odstranit jakoukoli stránku z mezipaměti TLB

Literatura

Odkazy