81
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.

Zarządzanie pamięcią operacyjną i pamięć wirtualna

  • Upload
    dominh

  • View
    222

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 2: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 3: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

)

Page 4: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 5: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 6: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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)

Page 7: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 8: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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…

Page 9: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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).

Page 10: Zarządzanie pamięcią operacyjną i pamięć wirtualna

Systemy operacyjne Wykład 4 10/81

Fragmentacja

prz

ydzia

ł

zapotr

zebow

anie

obszar niewykorzystany

zewnętrzna wewnętrzna

Page 11: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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).

Page 12: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 13: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 14: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 15: Zarządzanie pamięcią operacyjną i pamięć wirtualna

Systemy operacyjne Wykład 4 15/81

Przydział dynamiczny – wybór

bloku

kie

runek p

rzeszukiw

ania

pierwszedopasowanie

najlepszedopasowanie

najgorszedopasowanie

Page 16: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 17: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 18: Zarządzanie pamięcią operacyjną i pamięć wirtualna

Systemy operacyjne Wykład 4 18/81

Obraz procesu w pamięci

• Tworzenie obrazu:– Kompilacja,– Konsolidacja,– Ładowanie kodu.

• Relokacja.• Ochrona.• Współdzielenie.

Page 19: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 20: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 21: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 22: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 23: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 24: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 25: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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).

Page 26: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 27: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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).

Page 28: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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)

Page 29: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 30: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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)

Page 31: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 32: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 33: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 34: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 35: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 36: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 37: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 38: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 39: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 40: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 41: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 42: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 43: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 44: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 45: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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ą.

Page 46: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 47: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 48: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 49: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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).

Page 50: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 51: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 52: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 53: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

?

Page 54: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 55: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 56: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 57: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 58: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 59: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 60: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 61: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 62: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 63: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 64: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 65: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 66: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 67: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 68: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 69: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 70: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 71: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 72: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 73: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 74: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 75: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 76: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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

Page 77: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 78: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 79: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 80: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.

Page 81: Zarządzanie pamięcią operacyjną i pamięć wirtualna

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.