Przejdź do zawartości

Tryb chroniony

Z Wikipedii, wolnej encyklopedii

Tryb chroniony (ang. protected mode) – tryb pracy mikroprocesorów o architekturze x86 wprowadzony po raz pierwszy w modelu Intel 80286. Tryb chroniony umożliwia adresowanie pamięci przekraczającej wielkość 1 MB, który to limit obowiązywał w trybie rzeczywistym procesora, oraz wprowadza wiele nowych udogodnień wspierających wielozadaniowość, m.in. takich jak:

Większość nowoczesnych systemów operacyjnych wykorzystuje procesory serii x86 właśnie w trybie chronionym. Zaliczają się do nich m.in.: Linux, Windows w wersji 3.0 i wyższych, systemy z rodziny BSD.

Tryb chroniony został wprowadzony do mikroprocesora Intel 80286[1], który jest procesorem 16-bitowym, z 24-bitową szyną adresową (może zaadresować 16 MB pamięci RAM)[2]. Posiada on także tryb rzeczywisty (ang. real mode) dla zachowania zgodności z poprzednimi mikroprocesorami rodziny x86[1]. Mikroprocesor Intel 80286 w trybie chronionym wykorzystuje mechanizm segmentacji. 16-bitowe rejestry segmentowe CS, SS, DS, ES, w trybie chronionym zawierają selektor deskryptora (numer deskryptora)[3], który określa deskryptor segmentu, będący 8-bajtową strukturą w pamięci opisującą dany segment. Deskryptor zawiera informacje o segmencie: fizyczna lokalizacja segmentu w pamięci (24-bitowy adres bazowy, 16-bitowa długość segmentu w bajtach), prawa dostępu do segmentu, jego typ itp[4]. W trybie rzeczywistym rejestry segmentowe CS, SS, DS, ES zawierają adresy bazowe (początków) segmentów. Procesor rozpoczyna swoją pracę w trybie chronionym od ustawienia bitu PE (ang. Protection Enable) na jeden i wykonaniu dalekiego skoku[5]; wyzerowanie tego bitu powoduje powrót do trybu rzeczywistego[2] – bit PE to najmłodszy bit rejestru CR0 (ang. Control Register).

Procesory Intel 80386 i jego następcy posiadają już 32-bitowy tryb chroniony, w którym można zaadresować do 4 GB pamięci RAM[2]. Obsługują one 32-bitowy tryb segmentacji, będący rozwinięciem tego znanego z procesora Intel 80286 o dodatkowe pola w deskryptorach segmentów (m.in. 32-bitowy adres bazowy, 20-bitowa długość segmentu w bajtach, granulacja). Najważniejszą jednak cechą nowszych procesorów jest obsługa trybu stronicowania pamięci[6], który jest wykorzystywany w nowych systemach operacyjnych[7] i pozwala na całkowitą izolację procesów we własnej wirtualnej przestrzeni adresowej o rozmiarze do 4 GB (tzw. tryb chroniony z wywłaszczeniem). Ponadto istnieje możliwość użycia stronicowania pamięci w trybie z segmentacją[8], co zwiększa bezpieczeństwo procesów i systemu operacyjnego korzystającego z segmentacji oraz ułatwia zarządzanie samą pamięcią[9].

Zobacz też

[edytuj | edytuj kod]

Przypisy

[edytuj | edytuj kod]
  1. a b Syck 1994 ↓, s. 239.
  2. a b c Syck 1994 ↓, s. 244.
  3. Syck 1994 ↓, s. 245.
  4. Syck 1994 ↓, rys. 7-3, s. 246.
  5. Syck 1994 ↓, s. 242, 244.
  6. Syck 1994 ↓, s. 251.
  7. Stallings 2018 ↓, s. 417.
  8. Stallings 2018 ↓, s. 370, 386.
  9. Stallings 2018 ↓, s. 448.

Bibliografia

[edytuj | edytuj kod]
  • William Stallings, Systemy operacyjne. Architektura, funkcjonowanie i projektowanie, wyd. IX, Gliwice: Helion, 2018, ISBN 978-83-283-3759-6.
  • Gary Syck, Turbo Assembler. Biblia użytkownika, Warszawa: LT&P, 1994, ISBN 83-901237-2-X.