Sop_05_wyk_1.0.pdf

(3742 KB) Pobierz
Microsoft PowerPoint - SOP_wyk_nr_5.ppt
Systemy operacyjne
Pamięćwirtualna
Systemy operacyjne
Pamięćwirtualna
Wykład prowadzą:
Jerzy Brzeziński
Dariusz Wawrzyniak
Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o
tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku). Pamięć
operacyjna (fizyczna) jest dla tych zasobów tylko pewnym oknem,
przechowującym częśćzawartości na potrzeby bieżącego przetwarzania.
Stosowanie pamięci wirtualnej ma wiele zalet nie tylko związanych z
możliwością powiększenia zasobów pamięci ponad dostępną pamięć fizyczną.
Umożliwia bardziej racjonalne wykorzystanie pamięci operacyjnej, gdyż
programy tworzone sączęsto z nadmiarem w stosunku do typowych potrzeb. Na
przykład rozmiary tablic statycznych ustala się z nadmiarem w stosunku do
typowych potrzeb, w kodzie uwzględnia się obsługę sytuacji wyjątkowych do
których może nigdy nie dojść. Ten nadmiar nie musi być ładowany do pamięci.
Zastosowanie pamięci wirtualnej może też zmniejszyć czas odpowiedzi, gdyż
skraca czas ładowania kodu, który często odwzorowywany jest w przestrzeń
adresowąprocesu bezpośrednio z pliku i sprowadzany w niewielkich porcjach na
żądanie.
Celem wykładu jest przedstawienie zasady działania i problemów realizacji
pamięci wirtualnej oraz omówienie algorytmów wymiany stron pomiędzy
pamięciąoperacyjnąa pamięciądrugiego rzędu (obszarem wymiany).
529574935.014.png 529574935.015.png
Systemy operacyjne
Pamięćwirtualna
Systemy operacyjne
Plan wykładu
• Stronicowanie na żądanie
– obsługa błędu strony
–wymiana
• Problemy realizacji stronicowania na żądanie
– problem wyboru ofiary
– problem wznawiania rozkazów
• Algorytmy wymiany
– algorytmy wymiany na żądanie
– algorytmy wymiany ze sprowadzaniem na żądanie
– algorytmy wstępnego stronicowania
Pamięć wirtualna (2)
Podstawą funkcjonowania pamięci wirtualnej jest mechanizm stronicowania na
żądanie, od omówienia którego rozpoczyna się wykład. Działanie mechanizmu
oparte jest na stronicowaniu i polega na sprowadzaniu do pamięci operacyjnej
stron adresowanych przez procesor. Sprowadzenie strony jest zadaniem systemu
operacyjnego i realizowane jest w przypadku wystąpienia błędu strony. Ponieważ
pamięć operacyjna jest na ogół mniejsza od pojemności zasobów pamięci
wirtualnej, sprowadzenie może wymagać usunięcia innej strony — dochodzi
wówczas do wymiany. Realizacja pamięci wirtualnej oprócz wsparcia
sprzętowego wymaga rozwiązania dwóch zasadniczych problemów na poziomie
systemu operacyjnego:
•problemu wyboru ramki ofiary do wymiany strony, jeśli zajdzie potrzeba
wymiany,
•problemu wznawiania rozkazów, którego rozwiązanie sprowadza siędo
zapewnienia dostępności odpowiednio dużej liczby ramek dla procesu.
Rozwiązanie problem wyboru ofiary bazuje na przesłankach o charakterze
losowym i związane jest ściśle z algorytmem wymiany. Klasyfikacja i
omówienie algorytmów wymiany stanowiąostatniączęśćwykładu.
529574935.016.png 529574935.017.png 529574935.001.png
Systemy operacyjne
Pamięćwirtualna
Systemy operacyjne
Mechanizm stronicowania na żądanie
• Działanie mechanizmu: strony są sprowadzane do
pamięci tylko wówczas, gdy jest to konieczne, czyli
wówczas gdy następuje odniesienie do komórki o
adresie, znajdującym się na tej stronie
• Wymaganie sprzętowe
– tablica stron z bitem poprawności (ang. valid-invalid
bit) dla każdej pozycji (dodatkowo z bitem modyfikacji
i odniesienia),
– mechanizm reakcji na odniesienie do strony
niepoprawnej,
– urządzenie wymiany (ang. swap device) — pamięć
pomocnicza.
Pamięć wirtualna (3)
Stronicowanie na żądanie związane jest przede wszystkim z wymianą stron
pomiędzy pamięcią pierwszego rzędu (operacyjną, fizyczną) i drugiego rzędu
(masową, dyskową). Dzięki wykorzystaniu pamięci masowej można rozszerzyć
wirtualną przestrzeń adresową i tym samym zwiększyć stopień
wieloprogramowości lub uruchamiać zadania, których rozmiar wykracza poza
dostępną pamięć operacyjną. Kosztem wprowadzenia takiego mechanizmu jest
złożoność zarządzania pamięcią i narzut czasowy związany z dostępem,
wynikający z wykorzystania stosunkowo wolnej pamięci dyskowej.
Adresowanie stron odbywa się tak samo, jak w prostym stronicowaniu,
omówionym w poprzednim module. W tablicy stron przechowywany jest jednak
bit poprawności, informujący o stanie strony. Strona poprawna (ang. valid) to
taka, która zlokalizowana jest w pamięci operacyjnej. Odniesienie do takiej
strony nie wymaga jej sprowadzania. Jeśli zgodnie z wartościąbitu poprawności
strona jest uznana za niepoprawną, występuje błąd braku strony i zgłaszane jest
odpowiednie przerwanie diagnostyczne. W ramach obsługi błędu strony
następuje sprowadzenie strony z obszaru wymiany (ang. swap space),
umieszczenie w wolnej ramce i ponowne wykonanie rozkazu. Takie działanie
nazywa się leniwąwymianą (ang. lazy swapping).
Urządzeniem wymiany jest najczęściej dysk, na którym znajduje się plik
wymiany lub specjalnie wyodrębniona strefa (tzw. partycja wymiany).
W dalszej części wykładu zamiennie będzie używane sformułowanie:
adresowanie strony i odniesienie do strony , oznaczające wystawienie przez
procesor adresu logicznego komórki, zlokalizowanej na tej stronie.
529574935.002.png 529574935.003.png 529574935.004.png
Systemy operacyjne
Pamięćwirtualna
Systemy operacyjne
Obsługa błędu strony
system
operacyjny
tablica
stron
błąd prog.
p
urządzenie
wymiany
błąd
strony
i
procesor
p o
adres
logiczny
pamięć
Pamięć wirtualna (4)
Zgodnie z zasadątransformacji adresu w pamięci stronicowanej, w celu zamiany
numeru strony na numer ramki lokalizowany jest odpowiedni wpis w tablicy
stron. Wpis może być jednak w danej chwili niepoprawny (ang. invalid), gdyż
strona mogła zostaćusunięta z pamięci —zastąpiona innąstroną. W przypadku
odwołania się do strony, opisanej jako niepoprawna, następuje zgłoszenie błędu
(przerwania diagnostycznego), które obsługuje system operacyjny. W ramach
obsługi adresowana strona sprowadzana jest z obszaru wymiany do pamięci
operacyjnej.
529574935.005.png 529574935.006.png 529574935.007.png 529574935.008.png 529574935.009.png 529574935.010.png
Systemy operacyjne
Pamięćwirtualna
Systemy operacyjne
Powtórne wykonania rozkazu
tablica
stron
p —numer strony
f —numer ramki
o —przesunięcie
p
adres
fizyczny
f o
f i
v
procesor
p o
adres
logiczny
pamięć
Pamięć wirtualna (5)
Po sprowadzeniu strony do pamięci operacyjnej odpowiedni bit poprawności w
tablicy stron jest ustawiany. Przyjmijmy, że ustawienie bitu poprawności
oznacza, że strona jest poprawna (ang. valid). Następnie rozkaz, który
spowodował błąd strony, wykonywany jest ponownie przez procesor. To
odniesienie do pamięci, które spowodowało wcześniej błąd strony powinno teraz
wykonaćsiępoprawnie.
529574935.011.png 529574935.012.png 529574935.013.png
Zgłoś jeśli naruszono regulamin