Chráněný režim – elektronické počítače

 

   Otázka: Chráněný režim

   Předmět: Elektronické počítače – Informatika

   Přidal(a): Honzas

 

 

Chráněny režim

– Podstata a princip ochrany +

– Tvorba fyzické adresy v reálném a chráněném režimu +

  • Logická adresa seg:offs + – Selektory a deskriptory + – Tabulky deskriptorů +

– Účel, formáty a druhy deskriptorů a bran +

 

Důvod zavedení ochrany

Umožňuje zavést do OP více programů, každý má vlastní chráněný prostor dělený na segmenty.

Umožňuje přenášet programy mezi počítači.

Rozděluje programy podle důležitosti na aplikace a programy OS včetně podpor.Tyto programy mají chráněné své hranice před vniknutím cizích dat a sowftwearů a před neoprávněným spuštěním.

 

Tvorba fyzické adresy v reálném režimu

Program je uložen v segmentech s pevnou velikostí 64KB a s určením použití- kódový segment, datový segment, zásobníkový segment (hlavně na návratové adresy).

Programátor pracuje s logickou adresou- bázy segmentu určí např.: OS,offset v segmentu určuje programátor např.: sledem instrukcí, deklarací polí, řetězců, dat

– fyzická adresa se spočítá v procesoru z logické adresy (Seg : Offs = např. DS : 1234H )

– vezme se segmentová část adresy, která se vynásobí 10H a přičte se k ní offsetová část FA = Seg * 10H + Offs

-Adresa FA má kapacitu 16 segmentů po 64KB – 1MB

 

Tvorba fyzické adresy v chráněném režimu

– při multitaskingu běží více úloh najednou, přičemž se nesmí navzájem poškodit (zneužít) údaj v OP – chráněný režim chrání paměfové prostory jednotlivých úloh tak, že nedovolí cizí úloze vstoupit do jejího prostoru

– logická adresa (LA) se skládá ze segmentové a offsetové části, přičemž segmentová část má význam viditelné (selektorové) části. Segmentová – Selektorová část umožňuje přístup k 8192 (8K) segmentům, které jsou maximálně velké 64KB (16b systém) nebo 4GB (32b systém). Možná velikost virtuální paměti daná LA je 1GB (16b systém).

– fyzická adresa (FA) se zpracuje z LA získáním deskriptoru segmentu a offsetu z programu

 

Každý ze segmentů v jednotlivých PL má chráněné hranice a přístup a musí je mít popsané deskriptorem. Každý program má deskriptory uložené ve vlastní Lokální tabulce deskriptorů(LDT) , leží jako systémový segment v OP .

 

Př.:

  • Program A: 54 deskriptorů
  • Program B: 624 deskriptorů

 

Důležité programy z oblasti OS a podpor aplikací mají svou Globální tabulku deskriptorů(GDT), leží jako systémový segment v OP.

– segmentové registry (DS, ES, CS, SS) obsahují selektor (ukazatel), který ukazuje do tabulky deskriptorů

– selektor má viditelnou a neviditelnou část

 

Viditelná část selektoru:

– je tvořena z 16b, poslední 3 b jsou TI a PL (Požadovaná PL)

Obsahuje:

TI (Table Indikator): určuje, zda procesor bude vybírat deskriptor z GDT [O], nebo LDT[1]

 

Neviditelná část selektoru (pro 16b systém) :

– je část selektoru, do které se nahraje vybraný deskriptor z tabulky GDT nebo LDT, v této části jsou tyto složky PP( přístupová práva – 8b), báze segmentu (24b) a limit segmentu (16b) + rezerva.

– do neviditelné části selektoru se nahraje jiný deskriptor pouze, pokud se změní obsah v CS,DS…

 

Fyzická adresa FA = báze segmentu + offset segmentu, velikost OP dosahuje 16MB ( pro 16b offset)

 

Deskriptor:

– začátek GDT nebo LDT určuje speciální registr procesoru z jednotky AU GDTR (GDT registr) a LDTR (LDT registr) [obsahují počáteční adresu]

– obsah LDTR se změní vždy, když se změní úloha, u GDTR zůstává obsah stejný

– deskriptor v sobě obsahuje:

PP (přístupová práva)

B (Báze — začátek segmentu)

L (limit — velikost segmentu, Offs ho nesmí překročit)

– procesor provede kontrolu, jestli je Offs < Limit (platí = OK, neplatí = výjimka)

 

FA (fyzická adresa) = báze (z deskriptoru) + offs(z instrukce = DS:51= seg:offs)

– také existuje IDT (Interupt Deskriptor Table): tabulka přerušení, obsahuje pouze B a L

 

Přístupová práva deskriptoru (PP) [8b]:

– P (present): určuje, jestli je deskriptor přítomný v OP

– přístup do segmentu je povolen, když PL má správnou hodnotu

-> numericky PL čím menší číslo, tím větší důležitost (oprávnění) (00 – největší oprávnění]

– typ deskriptoru (10- datový, 11 – instrukční, 01 a 00- systémový) [2b]

– poslední 3 bity určují jak se bude s obsahem segmentu pracovat, např.:

A – Accessed (přistoupeno): zjistí, který segment se používá často

R – Readable: pokud R = 1 (smí se z něj číst), R = O (nesmí se z něj číst)

ED – Expand Data (rozšíří velikost segmentu dat nebo zásobníku o několik B)

Atd…

 

Brány (16b systém)

– aby mohl program s nižší úrovní PL použít programy ze segmentů s vyšší úrovní PL, musí použít bránu (např. aby mohly úlohy používat ovladače)

– brány připravuje OS a jejich prostřednictvím poskytuje služby ostatním aplikacím

-brány mají velikost jako deskriptor a mohou jsou umístěné v tabulce deskriptorů (LDT,IDT…)

– brána je spojkou mezi segmenty s různými úrovněmi a má tyto složky:

PP – 8b, (nový) selektor -16b do GDT, IDT,LDT…,počáteční Offset – 16b v novém segmentu – vstupní bod např.: do podprogramu + rezerva.

-po kontrole PP v procesoru se použije selektor ke konečnému vyhledání deskriptoru  segmentu s kódem, který má začátek určený počátečním offsetem…

– dále máme brány pro přepínání procesů (TSS) a brány pro přerušení (IDT)

💾 Stáhnout materiál   ✖ Nahlásit chybu
error: Content is protected !!