Tryb chroniony – Wikipedia, wolna encyklopedia
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:
- segmentacja pamięci,
- stronicowanie pamięci,
- sprzętowa ochrona pamięci (układ MMU),
- wywłaszczanie procesów,
- wsparcie w przełączaniu kontekstu procesora/rdzenia.
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]- ↑ a b Syck 1994 ↓, s. 239.
- ↑ a b c Syck 1994 ↓, s. 244.
- ↑ Syck 1994 ↓, s. 245.
- ↑ Syck 1994 ↓, rys. 7-3, s. 246.
- ↑ Syck 1994 ↓, s. 242, 244.
- ↑ Syck 1994 ↓, s. 251.
- ↑ Stallings 2018 ↓, s. 417.
- ↑ Stallings 2018 ↓, s. 370, 386.
- ↑ 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 .