licencjat - opracowania (wszystkie


4. Mechanizm ochrony pamięci. Pamięć wirtualna.

Mechanizm ochrony pamięci - aby oddzielić od siebie obszary pamięci każdego programu, musimy mieć możliwość rozstrzygania o zakresie dopuszczalnych adresów programu i chronienia pamięci poza tymi adresami. Tego rodzaju ochronę można uzyskać za pomocą dwóch rejestrów:

Rejestr bazowy - przechowuje najmniejszy (najniższy) dopuszczalny adres fizyczny pamięci.

Rejestr graniczny - zawiera rozmiar obszaru pamięci przydzielonej programowi.

Jeśli np. zawartość rejestru bazowego wynosi 300040, a granicznego 120900, to jako poprawne w programie mogą wystąpić odniesienia do wszystkich adresów od 300040 do 420940 włącznie.

Ochronę taką sprawuje sprzęt jednostki centralnej poprzez porównywanie każdego adresu wygenerowanego w trybie pracy użytkownika z zawartością opisanych rejestrów.

Próba uzyskania przez program użytkownika dostępu do zakresu pamięci poza granicami wyznaczonymi przez rejestry powoduje przekazanie sterowania monitorowi, który traktuje taki zamiar jako poważny błąd.

Pamięć wirtualna jest techniką, która umożliwia wykonywanie procesów, chociaż nie są one

w całości przechowywane w pamięci operacyjnej. Najbardziej widoczną zaletą takiego podejścia jest to, że programy mogą być większe niż pamięć fizyczna. Co więcej, pamięć wirtualna pozwala utworzyć abstrakcyjną pamięć główną w postaci olbrzymiej, jednolitej tablicy do magazynowania informacji i oddzielić pamięć logiczną, oglądaną przez użytkownika, od pamięci fizycznej. Uwalnia to programistów od trosk związanych z ograniczeniami ilościowymi pamięci.

Aby zapewnić każdemu procesowi prywatną przestrzeń adresową, dostaje on własną tablicę stron wirtualnych. W związku z tym tablica ta jest elementem kontekstu procesu. Przełączenie kontekstu wymaga wczytania do procesora tablicy stron nowego procesu (a przynajmniej jej

części).

Atrybutem strony może być uprawnienie procesu do posługiwania się tą stroną:

Uprawnienie do odczytu i zapisu (read/write). To uprawnienie otrzymują strony obszarów

danych i stosu programu.

Uprawnienie do odczytu (read only). To uprawnienie nadaje się m.in. stronom zawierającym kod programu. Można dzięki temu współdzielić te strony między procesami wykonującymi ten sam program bez obawy, że jeden proces zmodyfikuje kod programu i tym samym wpłynie katastrofalnie na przebieg działania drugiego procesu.

Uprawnienie zabraniające wszelkich operacji (no access). Tym atrybutem oznacza się strony przechowujące kod i dane jądra systemu operacyjnego oraz strony nie zarezerwowane dotąd przez proces.

Niektóre systemy operacyjne wyróżniają bardziej złożony system uprawnień np. copy on write i execute only, pod warunkiem, że procesor wspiera takie uprawnienia.

Proces, działając w trybie użytkownika, nie ma możliwości bezpośredniej zmiany zawartości tablicy stron. Może on zlecić systemowi operacyjnemu rezerwację nowych stron (np. na zmienne dynamiczne) lub zwolnienie tych, które przestał używać. Odbywa się to przez wywołanie odpowiednich podprogramów jądra (działających w trybie jądra).



Wyszukiwarka

Podobne podstrony:
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie
licencjat - opracowania (wszystkie

więcej podobnych podstron