Upload
dominh
View
222
Download
2
Embed Size (px)
Citation preview
Systemy operacyjne Wykład 4 1/81
Zarządzanie pamięcią operacyjną
i pamięć wirtualna
• Pamięć jako zasób systemu komputerowego.• Wsparcie dla zarządzania pamięcią na poziomie
architektury komputera.• Podział i przydział pamięci.• Obraz procesu w pamięci.• Stronicowania.• Segmentacja.• Stronicowanie na żądanie.• Problemy realizacji stronicowania na żądanie.• Algorytmy wymiany.
Systemy operacyjne Wykład 4 2/81
Pamięć jako zasób systemu
komputerowego• Pamięć jest zasobem służący do przechowywania
danych i programów.• Z punktu widzenia systemu pamięć jest zasobem
o strukturze hierarchicznej (począwszy odrejestrów procesora, przez pamięć podręczną,pamięć główną, skończywszy na pamięcimasowej), w której na wyższym poziomieprzechowywane są dane, stanowiące fragmentzawartości poziomu niższego.
• Z punktu widzenia procesu (również procesora)pamięć jest zbiorem bajtów identyfikowanychprzez adresy, czyli tablicą bajtów, w której adresysą indeksami.
Systemy operacyjne Wykład 4 3/81
Hierarchia pamięci
rejestry
pamięćpodręczna
pamięć główna
dysk magnetyczny
taśmy dyski optyczne
pam
ięć I rz
ędu
(prim
ary
)
pam
ięć II rz
ędu
(secondary
)
Systemy operacyjne Wykład 4 4/81
Przestrzeń adresowa
• Przestrzeń adresowa jest zbiór wszystkich dopuszczalnych adresów w pamięci.
• W zależności od charakteru adresu odróżnia się: – przestrzeń fizyczną — zbiór adresów
przekazywanych do układów pamięci głównej (fizycznej).
– przestrzeń logiczną — zbiór adresów generowanych przez procesor w kontekścieaktualnie wykonywanego procesu.
Systemy operacyjne Wykład 4 5/81
Adres logiczny i fizyczny
jednostkasterująca
jednostkaarytmetyczno-logiczna (ALU)
rejestry
jednostkaadresowa
jednostkazarządzania
pamięcią (MMU)
adreslogiczny
adresfizyczny
szynaadresowa
PROCESOR
Systemy operacyjne Wykład 4 6/81
Odwzorowanie adresu logicznego
na fizyczny - przykład
procesor + pamięć
adreslogiczny
25
adresfizyczny
1049
rejestrprzemieszczenia
1024
jednostka zarządzaniapamięcią (MMU)
Systemy operacyjne Wykład 4 7/81
Weryfikacja poprawności adresu
- przykład
procesor
>
+
rejestrgraniczny
rejestrprzemieszczenia
pamięć
MMU
adreslogiczny
adresfizyczny
256 1024
błą
dpro
gra
mow
y
Systemy operacyjne Wykład 4 8/81
Podział pamięci• Podział stały:
– partycje o równym rozmiarze,– partycje o różnych rozmiarach.
• Podział dynamiczny.• Podział na bloki bliźniacze (zwany też metodą sąsiedzkich stert).
Ogólny obraz pamięci fizycznej
przestrzeńdla
procesówużytkowników przestrzeń
dlaprocesów
użytkowników
przestrzeńdla
procesówużytkowników
jądrosystemu
operacyjnego
jądrosystemu
operacyjnego
tab. wektorówprzerwań
jądro systemu
0
0xFFF…
Systemy operacyjne Wykład 4 9/81
Fragmentacja
• Fragmentacja wewnętrzna — pozostawienieniewykorzystywanego fragmentu przestrzeniadresowej wewnątrz przydzielonego obszaru(formalnie fragment jest zajęty, w rzeczywistościnie jest wykorzystany).
• Fragmentacja zewnętrzna — podział obszarupamięci na rozłączne fragmenty, które niestanowią ciągłości w przestrzeni adresowej (możeto dotyczyć zarówno obszaru wolnego, jak izajętego).
Systemy operacyjne Wykład 4 10/81
Fragmentacja
prz
ydzia
ł
zapotr
zebow
anie
obszar niewykorzystany
zewnętrzna wewnętrzna
Systemy operacyjne Wykład 4 11/81
Podział stały
• Podział pamięci na stałe obszary (strefy, partycje),których rozmiar i położenie ustalane są na etapiekonfiguracji systemu.
• Przydział całego obszaru o rozmiarze większym lubrównym zapotrzebowaniu, określonym w żądaniu.
• Zalety: łatwość implementacji i zarządzania.• Wady: słaba efektywność wykorzystania pamięci
(fragmentacja wewnętrzna, ograniczona odgórnieliczba jednocześnie przydzielonych partycji).
Systemy operacyjne Wykład 4 12/81
Podział stały
jądro jądrojądrojądro
partycje o równymrozmiarze
obrazprzed
przydziałem
obrazpo
przydziale
nakładki
częśćstała
sekcja
nakła
dko
wania
problem zbytmałych partycji
nakładkowanie
?
partycjeo różnychrozmiarach
Systemy operacyjne Wykład 4 13/81
Podział dynamiczny• Podział pamięci tworzony jest w
czasie pracy systemu stosowniedo żądań procesów.
• Proces ładowany jest w obszar orozmiarze dosyć dokładnieodpowiadającym jego wymaganiom.
• Zalety: lepsze wykorzystanie pamięci (brak fragmentacjiwewnętrznej).
• Wady: skomplikowane zarządzanie,wynikające z koniecznościutrzymywania odpowiednichstruktur danych w celu identyfikacjiobszarów zajętych oraz wolnych.
jądro
obrazprzed
przydziałem
obrazpo
przydziale
Obraz pamięci przypodziale dynamicznym
Systemy operacyjne Wykład 4 14/81
Problem wyboru bloku w przydziale
dynamicznym• Pierwsze dopasowanie (first fit) — przydziela się
pierwszy wolny obszar (tzw. dziurę) o wystarczającej wielkości. Poszukiwanie kończy się poznalezieniu takiego obszaru.
• Najlepsze dopasowanie (best fit) — przydziela sięnajmniejszy dostatecznie duży wolny obszar pamięci.Konieczne jest przeszukanie wszystkich dziur.
• Następne dopasowanie — podobnie jak pierwszedopasowanie, ale poszukiwania rozpoczyna się domiejsca ostatniego przydziału.
• Najgorsze dopasowanie (worst fit)— przydziela sięnajwiększy wolny obszar pamięci. Konieczne jestprzeszukanie wszystkich dziur.
Systemy operacyjne Wykład 4 15/81
Przydział dynamiczny – wybór
bloku
kie
runek p
rzeszukiw
ania
pierwszedopasowanie
najlepszedopasowanie
najgorszedopasowanie
Systemy operacyjne Wykład 4 16/81
System bloków bliźniaczych
• Pamięć dostępna dla procesów użytkownika marozmiar 2U.
• Przydzielany blok ma rozmiar 2K, gdzie L≤K≤U.• Początkowo dostępny jest jeden blok o rozmiarze
2U.• Realizacja przydziału obszaru o rozmiarze s
polega na znalezieniu lub utworzeniu (przezpołowienie) bloku o rozmiarze 2i takim, że2i−1 < s ≤ 2i.
Systemy operacyjne Wykład 4 17/81
System bloków bliźniaczych
— przykład realizacji
1 MB
512 KB 512 KB 512 KB
256 KB256 KB256 KB
256 KB
256 KB
256 KB
128 KB128 KB128 KB
128 KB
128 KB
128 KB
100 KB 240 KB 64 KB 250 KB
kolejneżądaniaprzydziału
Systemy operacyjne Wykład 4 18/81
Obraz procesu w pamięci
• Tworzenie obrazu:– Kompilacja,– Konsolidacja,– Ładowanie kodu.
• Relokacja.• Ochrona.• Współdzielenie.
Systemy operacyjne Wykład 4 19/81
Tworzenie obrazu procesu
programźródłowy
programźródłowy
programźródłowy
modułwynikowymoduł
wynikowymoduł
wynikowy
modułbiblioteczny
modułbiblioteczny
modułbiblioteczny
translator
konsolidatorprogram
ładowalny
mechanizmładowania
mechanizmłączenia
dynamicznego
programwykonywany
obraz wpamięci
operacyjnej
konsolidacjadynamiczna
w czasie ładowania
konsolidacjastatyczna
Systemy operacyjne Wykład 4 20/81
Wiązanie i przekształcanie
adresów
• W modelu von Neumana adresy dotyczą rozkazów(instrukcji) oraz zmiennych (danych).
• Jeśli w programie źródłowym występują adresy, to mają one najczęściej postać symboliczną(etykiety w asemblerze) lub abstrakcyjną(wskaźniki w C lub Pascalu).
• Adresy związane z lokalizacją pojawiają się naetapie translacji i są odpowiednio przekształcaneaż do uzyskania adresów fizycznych.
Systemy operacyjne Wykład 4 21/81
Translacja
• W wyniku translacji (kompilacja, asemblacja)powstaje przemieszczalny moduł wynikowy (relocatable object module), w którym wszystkieadresy liczone są względem adresu początkumodułu.
• Gdyby program składał się z jednego modułu,a jego docelowa lokalizacja w pamięci była z góryznana, na etapie translacji mogłyby zostaćwygenerowane adresy fizyczne.
Systemy operacyjne Wykład 4 22/81
Konsolidacja
• Konsolidacja statyczna — odniesienia do innychmodułów zamieniane są na adresy w czasietworzenia programu wykonywalnego.
• Konsolidacja dynamiczna:– w czasie ładowania — w czasie ładowania
programu następuje załadowanie modułówbibliotecznych i związanie odpowiednichadresów,
– w czasie wykonania — załadowanie modułówbibliotecznych i związanie adresów następujedopiero przy odwołaniu się do nich w czasiewykonywania programu.
Systemy operacyjne Wykład 4 23/81
Konsolidacja statyczna
• W czasie łączenia modułów przemieszczalnych wjeden program ładowalny zwany też modułemabsolutnym (ang. absolute module), do adresówprzemieszczalnych dodawane są wartości,wynikające z przesunięcia danego modułuprzemieszczalnego względem początku modułuabsolutnego.
• Gdyby docelowa lokalizacja programu w pamięcibyła z góry znana, na etapie tym mogłyby zostaćwygenerowane adresy fizyczne.
Systemy operacyjne Wykład 4 24/81
Ładowanie kodu
• Ładowanie absolutne — program ładowany jest w ustalone miejsce w pamięci, znane w momencie tworzenia programuładowalnego.
• Ładowanie relokowalne — fizyczna lokalizacja procesu ustalanaprzy ładowaniu do pamięci.
• Ładowanie dynamiczne w czasie wykonania — fizyczna lokalizacja procesu w pamięci może ulec zmianie w czasiewykonywania.
kod
dane
blok kontrolny
kod
dane
stos
plik z programemładowalnym pamięć operacyjna
Systemy operacyjne Wykład 4 25/81
Współdzielenie pamięci
• Efektywność wykorzystania pamięci:– współdzielenie kodu programu,– współdzielenie kodu funkcji bibliotecznych.
• Kooperacja procesów:– synchronizacja działań procesów,– komunikacja pomiędzy procesami
(współdzielenie danych).
Systemy operacyjne Wykład 4 26/81
Ochrona pamięci
• Weryfikacja poprawności adresu pod kątem zakresu dopuszczalności.
• Weryfikacja praw dostępu:– prawa zapisu,– prawa odczytu,– prawa wykonania.
Systemy operacyjne Wykład 4 27/81
Stronicowanie
• Arbitralny podział pamięci fizycznej na ramki, w któreładowane są odpowiednie strony obrazu procesu.
• Podział logicznej przestrzeni adresowej na stronyo takim samym rozmiarze, jak ramki w pamięcifizycznej.
• Zalety:– brak problemu fragmentacji zewnętrznej,– wspomaganie dla współdzielenia i ochrony pamięci.
• Wady:– narzut czasowy przy transformacji adresu,– narzut pamięciowy (na potrzeby tablicy stron),– fragmentacja wewnętrzna (niewielka).
Systemy operacyjne Wykład 4 28/81
Stronicowanie — transformacja
adresu
• Adres logiczny zawiera numer strony i przesunięciana stronie (offset), np.:
• Transformacja adresu polega na zastąpieniunumeru strony numerem ramki.
• Odwzorowanie numeru strony na numer ramkiwykonywane jest za pomocą tablicy stron(page table).
nr strony
(22 bity)
przesunięcie
(10 bitów)
Systemy operacyjne Wykład 4 29/81
Schemat transformacji adresu w
systemie pamięci stronicowanej
procesor p o
f o
f
adres logiczny
adresfizyczny
tablica stronpamięć
p
o
p – numer stronyf – numer ramkio – przesunięcie
Systemy operacyjne Wykład 4 30/81
Odwzorowanie stron w ramki
- przykład
0 a1 b2 c3 d4 e5 f6 g7 h8 i9 j10 k11 l 12 a
13 b14 c15 d
8 e9 f10 g11 h
4 5 6 7
0 i1 j2 k3 l
0
1
2
strony
3
0
1
2
0
1
2
3
0
1
2
3
tablicastron
ramki
g: adres logiczny = 06 (01102)adres fizyczny = 10 (10102)
Systemy operacyjne Wykład 4 31/81
Bufory translacji adresów stron
(TLB)
tablica stron
procesor p o
f o
f
adres logiczny
adresfizyczny
pamięć
p
o
p – numer stronyf – numer ramkio – przesunięcie
bufory TLB
Systemy operacyjne Wykład 4 32/81
Stronicowanie wielopoziomowe
p1 p2 o
p1
p2
o
zewnętrznatablica stron
wewnętrznatablica stron
ramkapamięci
nr strony
zewnętrznej
nr strony
wewnętrznej
przesunięcie
na stronie
Systemy operacyjne Wykład 4 33/81
Segmentacja
• Przestrzeń adresów logicznych jest postrzeganajako zbiór segmentów.
• Podstawowe atrybuty segmentu:– identyfikator,– adres bazowy,– rozmiar,– informacja o rodzaju zawartości i formach
dostępu.• Adres logiczny składa się z numeru segmentu i
przesunięcia wewnątrz segmentu.• Odwzorowanie adresów logicznych w fizyczne
zapewnia tablica segmentów.
Systemy operacyjne Wykład 4 34/81
Schemat adresowania z
segmentacją
s o
granica baza
>
+
błą
dpro
gra
mow
y
N T
s
tablica segmentów
pamięć
adresfizyczny
adres logiczny
Systemy operacyjne Wykład 4 35/81
Schemat adresowania z
segmentacją i stronicowaniem
>
+
pamięć
błą
dpro
gra
mow
y
f of
s
op
a
granicabaza tablicy
stron
s
adres logiczny
adresfizyczny
N T
tablica segmentów
Systemy operacyjne Wykład 4 36/81
Rozdzielenie fizycznej i logicznej
przestrzeni adresowej.
Współdzielenie pamięci
12 a13 b14 c15 d
8 e9 f10 g11 h
4 5 6 7
0 i1 j2 k3 l
0
1
2
3
0 a1 b2 c3 d4 e5 f6 g7 h
0
1
0 e1 f2 g3 h4 i5 j6 k7 l
0
1
2
0
0
1
2
3
3
2
0
1
2
3
prz
estrz
eń fiz
yczna
tablicaodwzorowania
tablicaodwzorowania
przestrzeńlogiczna
Systemy operacyjne Wykład 4 37/81
Pamięć wirtualna
• 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.
Systemy operacyjne Wykład 4 38/81
Mechanizm stronicowania na
żądanie
• Działanie mechanizmu: strony są sprowadzane dopamięci tylko wówczas, gdy jest to konieczne,czyli wówczas gdy następuje odniesienie dokomórki o adresie, znajdującym się na tej stronie.
• Wymaganie sprzętowe:– tablica stron z bitem poprawności (valid-invalid
bit) dla każdej pozycji (dodatkowo z bitemmodyfikacji i odniesienia),
– mechanizm reakcji na odniesienie do stronyniepoprawnej,
– urządzenie wymiany (swap device) — pamięćpomocnicza.
Systemy operacyjne Wykład 4 39/81
Obsługa błędu strony
p o
i
p
tablica stron
procesor
adres logiczny
błądstrony
błąd prog.
pamięć
urządzeniewymiany
systemoperacyjny
Systemy operacyjne Wykład 4 40/81
Powtórne wykonania rozkazu
p o
f v
p
tablica stron
procesor
adres logiczny pamięć
f o
adresfizyczny
p – numer stronyf – numer ramkio – przesunięcie
Systemy operacyjne Wykład 4 41/81
Zastępowanie stronProblem zastępowania (wymiany, page replacement)stron pojawia się, gdy w pamięci fizycznej brakuje wolnych ramek i konieczne jest zwolnienie jakieś ramki poprzez usunięcie z niej strony.
Jeśli strona byłamodyfikowana w pamięci,konieczne jest zapisaniejej w obszarze wymiany
koniecznośćwprowadzenia bitumodyfikacji (modify bit),zwanego też bitemzabrudzenia (dirty bit).
pamięć
urządzeniewymiany
Systemy operacyjne Wykład 4 42/81
Koszt wymiany stron
• Całkowity koszt sprowadzenia stron w ogólnym przypadku danyjest wzorem:
gdzie:– t — dyskretna chwila czasu, w której następuje odniesienie do
pamięci (do strony),– kt — liczba stron sprowadzanych w chwili t,– h(k) — koszt jednorazowego sprowadzenia grupy k stron, przy
czym h(0) = 0, h(1) = 1.• W przypadku zastosowania dysku jako urządzenia wymiany, na
czas sprowadzania wypływ mają:– Tw — czas oczekiwania (suma czasu oczekiwania w kolejce do
urządzenia oraz czasu przygotowania urządzenia dotransmisji),
– Ttr — czas dostępu do danych.
t
tkh
Systemy operacyjne Wykład 4 43/81
Koszt wymiany stron
• Postać funkcji h(k) dla dysku jest zatem następująca:h(k) = Tw + k · Ttr
• Własność funkcji h(k) przy założeniu, że Tw > 0 i k > 0 :h(k) < k · (Tw + Ttr) 1 ≤ h(k) ≤ k · h(1)
• Koszt wymiany można aproksymować za pomocą parametrów FN (liczba wygenerowanych błędów strony) iTN (liczba transmisji stron).
• Całkowity czas oczekiwania na urządzenie (istotna składowa czasu wymiany) również jest zależny od liczby błędówstrony.
• Wniosek: należy minimalizować liczbę błędów strony i tymsamym redukować czas realizacji wymiany, czyli koszt.
Systemy operacyjne Wykład 4 44/81
Problemy zastępowania stron
• Problem wyboru ofiary — niewłaściwy wybór ramki-ofiary powoduje wzrost kosztu wymiany.– W skrajnym przypadku może dojść do zjawiskamigotania, w przypadku którego często dochodzido wystąpienia odniesienia do właśnie usuniętejstrony.
• Problem wznawiania rozkazów — w przypadkuwielokrotnego odniesienia do pamięci w jednymcyklu rozkazowym należy zapewnić, że wszystkieadresowane strony są jednocześnie dostępne wramkach w pamięci fizycznej.
Systemy operacyjne Wykład 4 45/81
Problem wyboru ofiary
• Zakładając, że przyszły ciąg odniesień do pamięcinie jest znany, na podstawie historii odniesieńnależy wybrać taką ramkę, do którejprawdopodobieństwo odniesienia w przyszłościjest małe.
• Podstawowa własność programów, na podstawiektórej można szacować takie prawdopodobieństwo, nazywana jest lokalnością.
Systemy operacyjne Wykład 4 46/81
Własność lokalności
• Lokalność czasowa — tendencja procesów dogenerowania w stosunkowo długich przedziałachczasu odniesień do niewielkiego podzbioru stronwirtualnych zwanego zbiorem stron aktywnych.– Formalnie jest to tendencja procesu do
generowania z dużym prawdopodobieństwem wprzedziale czasu (t, t + τ) odniesień do stronadresowanych w przedziale czasu (t − τ, t).
• Lokalność przestrzenna — tendencja procesu dogenerowania z dużym prawdopodobieństwemkolejnych odniesień do stron o zbliżonychnumerach (stron sąsiednich) lub stron o numerachskojarzonych w trakcie przetwarzania.
Systemy operacyjne Wykład 4 47/81
Problem efektywności systemu z
pamięcią wirtualną
• Efektywność działania systemu pamięci wirtualnej zależy od precyzji identyfikacji zbiorustron aktywnych i możliwości utrzymania ich wpamięci fizycznej.
• Wobec braku a priori pełnego ciągu odniesień dostron wirtualnych identyfikacja takiego zbiorumoże wynikać z różnych przesłanek, czegoskutkiem jest duża różnorodność algorytmówwymiany.
Systemy operacyjne Wykład 4 48/81
Klasyfikacja algorytmów wymiany ze
względu na okoliczności sprowadzania
i usuwania stron• Algorytmy wymiany na żądanie:
– sprowadzenie odbywa się na żądanie — stronasprowadzana jest dopiero wówczas, gdy następujeodniesienie do niej i nie ma jej w pamięci,
– usuwanie odbywa się na żądanie — strona usuwanajest wówczas, gdy konieczne jest sprowadzenie innejstrony w wyniku odniesienia i nie ma wolnej ramki.
• Algorytmy wymiany ze sprowadzaniem na żądanie:– tylko sprowadzanie dobywa się na żądanie.
• Algorytmy wstępnego sprowadzania:– sprowadzana jest strona żądana, a wraz z nią inne
strony.
Systemy operacyjne Wykład 4 49/81
Klasyfikacja algorytmów wymiany
ze względu na sposób
zastępowania stron
• Zastępowanie lokalne (local replacement) —algorytm wymiany zastępuje tylko strony wramkach przydzielonych procesowi, któryspowodował błąd strony.
• Zastępowanie globalne (global replacement) —algorytm wymiany zastępuje strony znajdujące sięw dostępnej puli ramek w całym systemie(w szczególności zatem usuwa strony innychprocesów).
Systemy operacyjne Wykład 4 50/81
Klasyfikacja algorytmów wymiany
ze względu na
przydział ramek dla procesów
• Przydział statyczny — liczba ramekprzydzielonych procesowi jest ustalona inie ulega zmianie w trakcie przetwarzania.
• Przydział dynamiczny — liczba ramekprzydzielonych procesowi może się zmienićw trakcie przetwarzania.
Systemy operacyjne Wykład 4 51/81
Dobór liczby ramek
• Minimalna liczba ramek — zdefiniowana przezarchitekturę komputera (zależna od maksymalnej liczby komórek adresowanychprzez jeden rozkaz).
• Liczba ramek przydzielona dla procesu:– podział równomierny (equal allocation),– podział proporcjonalny (proportional
allocation),– przydział zależny od priorytetu procesu.
Systemy operacyjne Wykład 4 52/81
Algorytmy wymiany na żądanie
• MIN — zastępowana jest strona, która najdłużejnie będzie używana (optymalny w tej klasie).
• FIFO (First In First Out) — zastępowana jeststrona najstarsza (najwcześniej sprowadzona).
• LIFO (Last In First Out) — zastępowana jeststrona najmłodsza (najpóźniej sprowadzona).
• LRU (Least Recently Used) — zastępowana jestnajdawniej użyta strona (najdłużej nie używana).
• LFU (Least Frequently Used) — zastępowana jestnajrzadziej używana strona.
• MFU (Most Frequently Used) — zastępowana jestnajczęściej używana strona.
Systemy operacyjne Wykład 4 53/81
Przykład działania algorytmów
wymiany na żądanie• W systemie pamięci wirtualnej są 4 ramki.• Wszystkie ramki są początkowo puste.• W systemie pojawiają się następujące odniesień
(odwołań) do stron: 1, 2, 3, 4, 1, 4, 3, 4, 5, 2, 1, 4,3, 4.
1 1
2
1
2
3
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1 2 3 4 5
?
Systemy operacyjne Wykład 4 54/81
Przykład działania algorytmów
wymiany na żądanie cd.
MIN
MFULIFO
LFULRU
FIFO
5
2
3
4
1
1
2
5
4
3
1
2
3
5
41
5
3
4
2
Dalszy ciąg odniesień:2, 1, 4, 3, 4
Systemy operacyjne Wykład 4 55/81
Przykład anomalii Belady’egoNastępujący ciąg odniesień obsługiwany jest zgodnie z algorytmem FIFO w systemie z 3, a następnie 4 ramkami: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
1 512
413
512
423
512
123
532
12
412
534
534
1 12
123
1234
1234
1234
5234
5134
5124
5123
4123
4523
Systemy operacyjne Wykład 4 56/81
Zagadnienia implementacyjne
• Implementacja algorytmu FIFO.• Implementacja algorytmu LRU.• Algorytmy przybliżające metodę LRU:
– algorytm dodatkowych bitów odwołań,– algorytm drugiej szansy (FINUFO),– ulepszony algorytm drugiej szansy.
Systemy operacyjne Wykład 4 57/81
Implementacja algorytmu FIFO
• Utrzymywanie listy numerów stron wkolejności ich sprowadzania do pamięci.
• Umieszczanie numeru sprowadzanej strony na końcu listy.
• Usuwanie z pamięci (i z listy) strony,której numer znajduje się na początkulisty.
Systemy operacyjne Wykład 4 58/81
Implementacja algorytmu LRU
• Licznik — przy każdym odniesieniu do pamięci zwiększana jest wartość pewnego licznika i wpisywanado odpowiedniej pozycji opisującej stronę w tablicystron (lub w innej specjalnej strukturze systemuoperacyjnego). Z pamięci usuwana jest wówczasstrona z najmniejszą wartością tego licznika, cowymaga przejrzenia całej tablicy stron.
• Stos — numery stron, do których następuje odniesienie, odkładane są na szczycie stosu. Przedodłożeniem na szczycie numer strony musi byćwydobyty ze środka stosu, czyli z miejsca, gdzie byłostatnio odłożony. W tej implementacji z pamięciusuwana jest strona, która jest na dnie stosu.
Systemy operacyjne Wykład 4 59/81
Algorytmy przybliżające metodę
LRU• Niezbędne wspomaganie sprzętowe:
– bit odniesienia (reference bit) — ustawiany,gdy następuje odniesienie do strony,
– bit modyfikacji (modify bit) — ustawiany, gdynastępuje zapis na stronie.
• Algorytmy korzystające ze wspomaganiasprzętowego:– algorytm dodatkowych bitów odniesienia —
wykorzystuje bit odniesienia,– algorytm drugiej szansy — wykorzystuje bit
odniesienia,– ulepszony algorytm drugiej szansy —
wykorzystuje bit odniesienia i bit modyfikacji.
Systemy operacyjne Wykład 4 60/81
Algorytm dodatkowych bitów
odniesienia
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
5
3
2
ostatnia
1
4
str
ony d
o u
sunię
cia
tablica dodatkowychbitów odniesienia
tablicastron b
it o
dnie
sie
nia
Systemy operacyjne Wykład 4 61/81
Algorytm drugiej szansy
1
0
0
1
0
1
0
1
0
tablicastron b
it o
dnie
sie
nia
0
1
2
3
4
5
6
7
8
strona dousunięcia
0
6
2 5
8
7
301
4
lista stron
Systemy operacyjne Wykład 4 62/81
Ulepszony algorytm drugiej szansy
0
0
1
1
0
1
0
1
0
tablicastron b
it o
dnie
sie
nia
0
1
2
3
4
5
6
7
8
strona dousunięcia
6
2 5
8
7
301
4
lista stron
1
0
0
1
1
1
0
1
0
bit m
odyfikacji
Systemy operacyjne Wykład 4 63/81
Algorytmy ze sprowadzaniem na
żądanie
• VMIN — usuwane są strony, których kosztutrzymania w pamięci jest większy od kosztuponownego sprowadzenia.
• WS — usuwane są strony, do których nie byłoodniesień przez określony czas.
• WSClock — przybliżona wersja algorytmu WS,oparta na bicie odniesienia.
• PFF, VSWS — przydział i zwalnianie ramekprocesów realizowane jest na podstawie częstościzgłaszania błędów strony.
Systemy operacyjne Wykład 4 64/81
Zbiór roboczy
• Zbiór roboczy procesu (working-set) — zbiórstron, które zostały zaadresowane w ciąguostatnich odniesień do pamięci (w tzw. okniezbioru roboczego).
• Okno zbioru roboczego (working-set window) —zakres odniesień do pamięci, które adresująstrony należące do zbioru roboczego.
• Zbiór roboczy w chwili t przy rozmiarze okna oznaczony będzie jako W(t, ).
• Algorytm zbioru roboczego usuwa z pamięciwszystkie strony, które nie należą do zbioruroboczego.
Systemy operacyjne Wykład 4 65/81
Przykład wymiany stron w oparciu
o zbiór roboczy
Ciąg odniesień: 1, 2, 4, 5, 7, 3, 2, 4, 4, 6, 7, 4, 1Rozmiar okna: 5
1 1
2
1
2
4
1
2
4
5
1
2
4
5
7
7
2
4
6
3
2
4
6
3
2
4
7
3
2
4
5
7
1 2 34 7
7
1
4
6
7
4
6
3
2
4
5
7
3
2
4
5
7
5 7 2 4 6 1
Systemy operacyjne Wykład 4 66/81
Koncepcja identyfikacji zbioru
roboczego
• Dla każdej ramki utrzymywany jest wirtualny (mierzony odniesieniami do pamięci) czasostatniego odniesienia do niej.
• Po każdym odniesieniu do strony zwiększana jestwartość licznika odniesień i wpisywana doodpowiedniej tablicy na pozycji odpowiadającejramce, w której znajduję się adresowana strona.
• Do zbioru roboczego należą te strony, dla którychróżnica pomiędzy bieżącą wartością licznikaodniesień, a wartością wpisaną w tablicy jestmniejsza lub równa rozmiarowi okna zbioruroboczego.
Systemy operacyjne Wykład 4 67/81
Przybliżona realizacja koncepcji
zbioru roboczego• Wspomaganie sprzętowe — bit odniesienia.• Okresowe (wyznaczone przez czasomierz lub przez
wystąpienie błędu strony) zwiększanie licznikareprezentującego upływ czasu wirtualnego orazsprawdzanie bitu odniesienia dla każdej z ramek.
• Jeśli bit odniesienia jest ustawiony, to skasowanie bituodniesienia i wpisanie bieżącej wartości licznika doodpowiedniej tablicy na pozycji odpowiadającej ramce.
• Jeśli bit odniesienia jest skasowany, to sprawdzenieróżnicy pomiędzy bieżącą wartością licznika a wartością wpisaną na odpowiedniej pozycji w tablicy iusunięcie strony, gdy różnica jest większa niż rozmiarokna.
Systemy operacyjne Wykład 4 68/81
Algorytm WSClock• Dla każdej ramki (strony w ramce) utrzymywany jest wirtualny czas
(przybliżony) ostatniego odniesienia.• Wszystkie ramki pamięci (niezależnie od przynależności do procesu)
powiązane są w cykl.• W wyniku wystąpienia błędu strony sprawdzany jest bit odniesienia do
strony wskazywanej jako kolejna do usunięcia.• Jeśli bit odniesienia jest ustawiony, zostaje on skasowany, po czym
następuje wskazanie następnej ramki w cyklu i sprawdzenie bitu odniesienia.
• Jeśli bit odniesienia jest skasowany, sprawdzana jest różnica pomiędzywirtualnym czasem bieżącym, a czasem ostatniego odniesienia dowskazywanej strony:– jeśli różnica jest większa od rozmiaru okna zbioru roboczego,
następuje wymiana strony w ramce,– w przeciwnym razie strona pozostaje i następuje wskazanie i
sprawdzenie ramki następnej.• W przypadku wykonania pełnego obiegu przez wskazówkę i stwierdzenia
braku stron do wymiany następuje zawieszenie jakiegoś procesu.
Systemy operacyjne Wykład 4 69/81
Przykład działania algorytmu
WSClock
1
0
0
1
0
1
0
1
0
tablicastron b
it o
dnie
sie
nia
0
1
2
3
4
5
6
7
8
strona dousunięcia
6
4 5
8
7
301
2
lista stron
39
30
22
50
45
48
33
49
41
czas o
dnie
sie
nia
51
czas bieżący: 51rozmiar okna: 10
Systemy operacyjne Wykład 4 70/81
Algorytm zegarowy
dwuwskazówkowy
• Wszystkie strony pamięci (niezależnie procesu)powiązane są w listę cykliczną.
• Lista przeglądana jest okresowo przez 2 wskazówki:– wiodąca (przednia) zeruje bit odniesienia,– zamykająca (tylna) wskazuje stronę do usunięcia.
• Jeśli bit odniesienia przed nadejściem tylnejwskazówki zostanie ponownie ustawiony, stronapozostaje w pamięci, w przeciwnym przypadku jestusuwana.
• Algorytm sterowany jest następującymi parametrami: – tempo przeglądania,– rozstaw wskazówek.
Systemy operacyjne Wykład 4 71/81
Algorytm zegarowy dwuwskazówkowy.
Przykład działania
0
1
1
1
0
1
1
1
1
0
tablicastron b
it o
dnie
sie
nia
0
1
2
3
4
5
6
7
8
strona dousunięcia
6
4 5
8
7
301
2
lista stron
Systemy operacyjne Wykład 4 72/81
Algorytm PFF
• Jeśli częstotliwość błędów strony generowanychprzez proces przekroczy ustalony poziom fH, todla stron tego procesu sprowadzanych do pamięciprzydzielana są nowe ramki.
• Jeśli częstotliwość błędów strony spadnie poniżejustalonego poziomu fL, to:– zwalniana jest jedna ramka procesu lub,– zwalniane są wszystkie ramki ze stronami, do
których nie było odniesienia od chwili wystąpienia ostatniego błędu strony w danymprocesie.
• W szczególności fH = fL.
Systemy operacyjne Wykład 4 73/81
Implementacja algorytmu PFF —
kontrola częstości błędów strony• Przy każdym błędzie strony generowanym przez
proces zwiększany jest licznik błędów strony danegoprocesu oraz zerowane są bity odniesienia do jegostron.
• W określonych interwałach czasu, wyznaczanych przez czasomierz, sprawdzane są (a następniezerowane) liczniki poszczególnych procesów.
• Jeśli wartość licznika jest większa od górnej granicy,to procesowi przydzielana jest dodatkowa ramka.
• Jeśli wartość licznika jest mniejsza od ustalonejdolnej granicy, to zwalniana jest:– jedna ramka lub,– wszystkie ramki z wykasowanym bitem odniesienia.
Systemy operacyjne Wykład 4 74/81
Implementacja algorytmu PFF —
kontrola okresu pomiędzy błędami strony
• Przy każdym błędzie strony sprawdzany jest czasjaki upłynął od poprzedniego błędu strony.
• Jeśli czas jest mniejszy od ustalonej wielkościTmin, to na potrzeby sprowadzanej stronyprzydzielana jest dodatkowa ramka.
• Jeśli czas jest większy od ustalonej wielkościTmax, to:
– zwalniana jest jedna ramka lub,– zwalniane są wszystkie ramki z wykasowanym
bitem odniesienia.• Bit odniesienia dla stron pozostających w pamięci
jest kasowany.
Systemy operacyjne Wykład 4 75/81
Algorytm VSWS
• Przy każdym błędzie strony zwiększany jest licznik błędów strony danego procesu — n.
• Co pewien okres czasu Tt, wynikający ze stanuwymiany, następuje kontrola odniesień do stron.
• W ramach kontroli wykonywane są następująceczynności:– strony, do których nie było odniesienia są
usuwane (ich ramki są zwalniane),– bity odniesienia stron pozostających na
następny okres (do których było odniesienie)są kasowane,
– wartość licznika n jest zerowana.
Systemy operacyjne Wykład 4 76/81
Wielkość interwału czasu dla
algorytmu VSWS
• Algorytm sterowany jest następującymiparametrami:– Tmax — maksymalna wielkość interwału czasu,– Tmin — minimalna wielkość interwału czasu,– nmax — maksymalna liczba błędów strony.
• Kontrola następuje w chwili t, po czasie Tt odmomentu poprzedniej kontroli, ustalanymnastępująco:
maxminmax
maxmax
TTTnn
TTnn
tt
tt
Systemy operacyjne Wykład 4 77/81
Techniki poprawy efektywności
wymiany
• Wymiana ramek zamiast wymiany stron —przyspieszenie wymiany brudnej strony.
• Buforowanie usuniętych stron zamiast usuwania— mniej kosztowna obsługa błędu strony.
• Czyszczenie stron — ułatwienie ewentualnejwymiany.
• Utrzymywanie listy brudnych stron do usunięcia— opóźnienie zapisu stron w obszar wymiany.
Systemy operacyjne Wykład 4 78/81
Algorytmy wstępnego
stronicowania
• DPMIN — sprowadzane są wszystkie strony potrzebne w najbliższej przyszłości, któremieszczą się dostępnych ramkach.
• OBL — sprowadzana jest strona żądana orazstrona następna (wg. numeracji w tablicy stron).
• SL — na podstawie wcześniejszych odniesień i błędów strony budowana jest tablica skojarzeństron sprowadzanych po sobie i informacja taka wykorzystywana jest prze następny sprowadzaniu.
• FDPA — podejście uwzględniające sugestie programisty co do stron potrzebnych w przyszłości.
Systemy operacyjne Wykład 4 79/81
Algorytm SL
• System utrzymuje dodatkową tablicę pred, gdzie dlakażdej strony pamiętana jest strona, sprowadzona poniej do pamięci. Początkowo pred[i] = i + 1.
• u jest zmienną przechowującą nr strony ostatniosprowadzanej do pamięci w wyniku odniesienia do niej.
• W chwili wystąpienia błędu strony następuje sprowadzenie żądanej strony — p. Jeśli przy poprzedniejwymianie nie dokonano wstępnego sprowadzenia lub niebyło odniesienia do strony wstępnie sprowadzonej dochwili obecnej pred[u] := p.
• Jeśli strona q = pred[p] nie znajduje się w pamięci, tonastępuje również jej sprowadzenia.
• u := p.
Systemy operacyjne Wykład 4 80/81
Algorytm FDPA
• W programie występują dodatkowe instrukcje dla systemu operacyjnego:– FREE(p) — strona p nie będzie wykorzystywana w niedalekiej
przyszłości,– PRE(p) — strona p będzie wkrótce wykorzystywana.
• Wykonanie takiej instrukcji skutkuje ustawieniem odpowiednich bitów dlastrony:– bitu usunięcia — D,– bitu wstępnego sprowadzenia — P.
• W przypadku wystąpienia błędu strony sprowadzana jest strona żądana,ewentualnie wymieniana z jakąś stroną z ustawionym bitem D. Jeśli nie matakiej strony stosowany jest inny algorytm usuwania np. LRU, z pominięciem stron, dla których ustawiony jest bit P.
• Jeśli w systemie są wolne ramki lub mogą zostać zwolnione przez usunięciestron z ustawionym bitem D, to sprowadza się tyle stron z ustawionymbitem P, na ile pozwala potencjalna liczba wolnych ramek.
• W przypadku odniesienia do strony z ustawionym bitem P, bit ten jestkasowany.
Systemy operacyjne Wykład 4 81/81
Segmentacja w systemie pamięci
wirtualnej
• Segmentacja na żądanie — wymiana segmentówpomiędzy pamięcią pierwszego i drugiego rzędu.
• Skomplikowana wymiana — zróżnicowany rozmiarsegmentów.
• Mniejsza przewidywalność czasu dostępu —zróżnicowany czas przesyłania zawartościsegmentu.