AK-8- pamiec wirtualna

Transkrypt

AK-8- pamiec wirtualna
ARCHITEKTURA KOMPUTERÓW
Zarządzanie pamięcią (memory management)
Funkcje zarządzania pamięcią
• przydział zasobów pamięci (memory allocation)
• ochrona zasobów pamięci (memory protection)
• współdzielenie obszarów pamięci (memory sharing) przez róŜne procesy
• przemieszczanie obszarów pamięci (memory relocation)
• przeźroczysta organizacja pamięci fizycznej i logicznej
o relacje logiczne danych w programie niewraŜliwe na zarządzanie
o elastyczne powiązanie logicznych struktur danych z fizycznymi
lokacjami, realizowane dynamicznie
Pamięć wirtualna
Wirtualna przestrzeń adresowa – suma logicznych przestrzeni pamięci
(widzianych w programie stanowiącym treść procesu
translacja adresu wirtualnego (logicznego) na adres rzeczywisty
odwzorowanie adresu wirtualnego w pamięci fizycznej (real memory).
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-1
ARCHITEKTURA KOMPUTERÓW
Koncepcja pamięci wirtualnej
ALU
dane
pamięć
główna
odwzorowanie
tymczasowe
adres fizyczny
MAG
MMU
translacja
adresu
adres
zewnętrzny
tablica
procesów
pamięć
masowa
odwzorowanie
trwałe
przestrzeń
wirtualna
pamięć
procesu 1
pamięć
procesu 2
pamięć
procesu N
adres
logiczny
adres
logiczny
adres
logiczny
adres
wirtualny
Adres logiczny, wirtualny i fizyczny
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-2
ARCHITEKTURA KOMPUTERÓW
Translacja adresu
procesor
adres
wirtualny
bufor
translacji √
11...111
pamięć główna
adres
fizyczny
[00...000]
00...001
√
...
...
[00...111]
10...101
×
[11...111]
11...000
00...000
jednostka
zarządzania
pamięcią
dane
11...010
10...101
00...111
×
×
√
[...]
[10...101]
√
√
[00...001]
adres
zewnęt
pamięć
masowa
Translacja adresu w układzie zarządzania pamięcią
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-3
ARCHITEKTURA KOMPUTERÓW
Zasada lokalności
W określonym przedziale czasu program przejawia tendencję do grupowania
odwołań do małego fragmentu dostępnej przestrzeni adresowej
Lokalność czasowa – tendencja do powtarzania odwołań, realizowanych
w niedawnej przeszłości (realizacja pętli, referencje do tablicy).
Lokalność przestrzenna – tendencja do odwołań do obiektów w obszarze
adresowym obejmującym obiekty wcześniej uŜyte w programie (kolejne
rozkazy programu, elementy regularnej struktury danych).
mov eax, tablica[4*ebx] ; szukanie najmniejszego w tablicy
label: dec ebx
; liczb naturalnych
cmp eax, tablica[4*ebx]
jbe hop
; omiń gdy (eax) ≤ (tablica[4*ebx])
mov eax, tablica[4*ebx]
mov adres, ebx
hop: cmp ebx, 0
jnz label
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-4
ARCHITEKTURA KOMPUTERÓW
Model zbioru roboczego
Zbiór roboczy – zapotrzebowanie procesu na pamięć w okresie wykonania
S(t, h)
T
Tmax
SP
szamotanie
t
h0
n
nmax
Rozmiar zbioru roboczego S(t,h) i przepustowość przetwarzania
Efekt szamotania
Suma zbiorów roboczych procesów aktywnych > rozmiar dostępnej pamięci
Heurystyka
Nie wymieniaj bloku, który jest częścią zbioru roboczego aktywnego procesu
i nie uaktywniaj procesu, którego zbiór roboczy nie moŜe zostać w całości
odwzorowany w pamięci głównej.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-5
ARCHITEKTURA KOMPUTERÓW
Stronicowanie
tryb dostępu program
rejestr tablicy stron
rwx
{rwx ⊆ RWX}
nie
adres wirtualny
adres tablicy stron
prawo dostępu
P
P
...
...
...
...
P
0
&
1
DP
strona 0
strona 1
P
tak
zakaz dostępu
brak strony
VP
pamięć
adres rzeczywisty:
RPK⋅2S + DP
RWX
RPQ (=Q)
...
...
RWX
RP1 (=1)
RWX
RPK (=K)
RWX
RPT (=T)
...
strona K
...
RPK
strona N–2
DP
strona N–1
P – bit obecności strony, RWX – kod praw dostępu, VP – numer strony
wirtualnej, RP – numer strony rzeczywistej, DP – przemieszczenie na stronie
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-6
ARCHITEKTURA KOMPUTERÓW
Segmentacja
zakaz dostępu
uprawnienia
adres wirtualny
program
rejestr tablicy segmentów
rwx
P
RWX
RSB
P
RWX
RSK
segment A
SL
SL
...
P
0
&
1
adres rzeczywisty:
RWX
RS
tak
pamięć
SD
...
tak
zakaz dostępu
brak segmentu
VS
prawo dostępu
{rwx ⊆ RWX}
nie
adres tablicy
segmentów
SD < SL?
nie
SL
segment B
segment K
segment S
segment Q
Q
RSK + SD
P – bit obecności, RWX – prawo dostępu, VS – numer segmentu wirtualnego,
RS – adres rzeczywisty, SD – przemieszczenie w segmencie, SL – rozmiar
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-7
ARCHITEKTURA KOMPUTERÓW
Segmentacja stronicowana
adres wirtualny
uprawnienia
program
rwx
VP
adres tablicy
segmentów
rejestr tablicy
segmentów
{rwx ⊆ RWX}
nie
VS
tak
P
prawo
dostępu
P
zakaz
dostępu
P
0
brak segmentu
&
RWX
PT0
...
RWX
PTk
...
RWX
PTn
1
brak strony
0
&
DP
1
SL
SL
SL
adres rzeczywisty:
P
P
P
P
...
... ...
...
RP
RP0
RPK
RPS
RPQ
DP
Translacja adresu w trybie segmentacji stronicowanej
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-8
ARCHITEKTURA KOMPUTERÓW
Mechanizmy przyśpieszania translacji adresu
uprawnienia
rwx
nie
program
{rwx ⊆ RWX}
tak
VP
##
DP
=
tak
RWX
#VP
VP
RP
RWX
#VP
VP
RP
RWX
#VP
VP
RP
...
zakaz
dostępu
va
...
...
...
...
0....1....0
...
nie
...
brak wzorca
RP
...
DP
(adres rzeczywisty)
TLB
Bufor antycypacji translacji TLB (translation lookaside buffer)
(va – adres wirtualny, VP, #VP – wirtualny numer strony i jego skrót, RP –
rzeczywisty numer strony, DP – adres na stronie, RWX – kod praw dostępu)
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-9
ARCHITEKTURA KOMPUTERÓW
Odwrócona tablica stron
uprawnienia
program
rwx
adres wirtualny
tak
{rwx ⊆ RWX}
nie
zakaz
dostępu
brak
VP
##
DP
adres fizyczny
tak
bb...b
łańcuch
#VP
RWX
VP0
00...00
...
...
...
...
...
...
...
...
łańcuch
#VP
RWX
(bb...bb) (10…1) RWX
VP1
00...01
(11...10) (10…1) RWX
VPk
bb...bb
(11...10) (10…1) RWX
VP–2
11...10
...
VP–1
DP
...
11...11
VP – numer strony wirtualnej #VP – skrót, DP – adres na stronie
skrót (hash value) – odwzorowanie wirtualnego adresu strony za pomocą
funkcji mieszającej (hashing function)
czas przeszukiwania – bardzo mało zaleŜny od liczby stron rzeczywistych
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-10
ARCHITEKTURA KOMPUTERÓW
Strategie zarządzania pamięcią
• strategie pobierania (fetch policy) – decyzje, kiedy załadować informację do
pamięci głównej
• strategie przydziału (placement policy) – reguły i algorytmy wpasowania
bloków informacji w wolne obszary pamięci głównej
• strategie wymiany (relocation policy) – reguły i algorytmy usuwania
informacji z pamięci głównej.
Strategie pobierania
• pobranie wymuszone (demand fetching) na skutek błędu braku obiektu
(missing–item fault)
• pobranie antycypowane (prefetching) na podstawie prognozy
zapotrzebowania procesu na dane (zasady lokalności).
Strategie przydziału
• w pamięci stronicowanej – trywialne, rozmiar strony ustalony
problem – wewnętrzna fragmentacja pamięci
• w pamięci segmentowanej – wpasowanie segmentów o róŜnych rozmiarach
problem – zewnętrzna fragmentacja pamięci (dziury)
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-11
ARCHITEKTURA KOMPUTERÓW
Przydział pamięci segmentowanej (1)
segment umieszczany w pierwszej dziurze o wystarczającym rozmiarze
Metody:
• BF – najlepsze wpasowanie (best fit) – lista uporządkowana według
rosnących adresów
• WF – najgorsze wpasowanie (worst fit) – lista uporządkowana według
malejących adresów
• FF – pierwsze wpasowanie (first fit) – lista uporządkowana według
rosnących adresów, przeszukiwanie moŜe być cykliczne (wznawialne)
• BB – wpasowanie binarne (binary buddy) – są tworzone listy dziur
ip
(i+1)p
o rozmiarach [2 , 2
], wpasowanie segmentu metodą FF w obrębie listy,
kolejność adresów na listach jest liniowa.
Problemy
• aktualizacja listy dziur
• defragmentacja pamięci (komasacja dziur)
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-12
ARCHITEKTURA KOMPUTERÓW
Zewnętrzna fragmentacja partycji spójnych
system
operacyjny
P4
system
operacyjny
P5
system
operacyjny
P6
system
operacyjny
P3
P3
system
operacyjny
system
operacyjny
P1
P1
P1
P6
P6
P6
P2
P2
P5
P5
P5
P5
P4
P4
P4
P4
komasacja
P3
P4
P3
Fragmentacja partycji (i pamięci segmentowanej)
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-13
ARCHITEKTURA KOMPUTERÓW
Partycje (1)
Procesowi jest przydzielana część adresowalnego obszaru pamięci głównej.
→ intensyfikacja błędu braku bloku
Strategie przydziału obszaru pamięci procesom (memory allocation)
• partycja stała (fixed–size partition) – rozmiar obszaru pamięci przydzielonej
procesowi jest stały w czasie Ŝycia procesu
• partycja zmienna (variable–size partition) – dynamiczny przydział pamięci,
odpowiednio do aktualnych potrzeb procesu.
Strategie wymian dla stałych partycji:
• losowa (random replacement) – wyłącznie w środowisku programowym,
w którym lokalność jest niewielka (np. bazy danych)
• FIFO (first–in, first–out) – kolejka bloków do wymiany jest ustawiana
zgodnie z kolejnością ich umieszczania w pamięci; uwzględniana jest
lokalność bloków, nie uwzględnia się intensywności ich uŜywania
• FINUFO (first–in, not used, first–out) – kaŜde wejście do kolejki ma
znacznik uŜywalności, kolejka przesuwa się cyklicznie
• LRU (least recently used) – wymienia się blok najdawniej uŜywany.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-14
ARCHITEKTURA KOMPUTERÓW
Partycje (2)
Anomalia Belady’ego – częstość błędu braku strony nie jest monotoniczną
funkcją rozmiaru przydzielonego obszaru (liczby stron) i osiąga lokalne
minimum dla pewnej niewielkiej liczby stron
liczba braków stron
16
14
12
10
8
6
4
2
liczba ramek
1
2
3
4
5
6
7
sekwencje odwołań 1,2,3,4,5,1,2,3,6,1,2,3,4,5,6,4 oraz
1,2,3,4,1,2,5,1,2,3,4,5,4
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-15
ARCHITEKTURA KOMPUTERÓW
Partycje (2)
Strategia optymalna (MIN) – wymiana bloku, który będzie uŜyty najpóźniej
teoretyczna, wymaga antycypacji kolejności wymian.
Strategie wymian dla partycji zmiennych (przy stronicowaniu):
• WS – wymiana całego zbioru roboczego (working set replacement)
• PFF – wymiana stosownie do częstości występowania błędu braku strony
(page fault frequency) – ustala się wartość progową PFF i jeŜeli częstość
błędu braku strony pff < PFF, to wymieniane są wszystkie strony
nieuŜywane od ostatniej wymiany, jeśli zaś pff > PFF, to nie jest
dokonywana wymiana, lecz zwiększany jest rozmiar partycji.
Strategia optymalna VMIN – wymiana bloku, który będzie uŜyty najpóźniej,
lecz z moŜliwością zmiany rozmiaru partycji.
teoretyczna, wymaga antycypacji kolejności wymian.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-16
ARCHITEKTURA KOMPUTERÓW
Obsługa wejścia i wyjścia
magistrala
CPU
(host)
host
port
sprzęg
procesor we/wy
port UZ
UZ
bufor
port UZ
UZ
Podsystem wejścia/wyjścia
Urządzenia we/wy:
• magazynujące (storage) – przechowywanie danych
• pamięci wtórne i tercjalne, archiwizery
• gromadząco-rozsyłające (source/sink) – konwersja i rozsyłanie danych
• komunikacja człowieka z komputerem: mysz, klawiatura, monitor
ekranowy, drukarka
• sprzęg procesów przemysłowych z komputerem: czujnik, regulator,
konwerter A/C i C/A, sterownik
• komunikacja między inteligentnymi terminalami: modem, łącze sieci
komputerowej, łącze transmisji szeregowej lub równoległej.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-17
ARCHITEKTURA KOMPUTERÓW
Cechy eksploatacyjne urządzeń zewnętrznych:
• czas dostępu (access time), zwłoka dostępu (latency) – znacznie (>105 razy)
większe niŜ dla pamięci (dostęp sekwencyjny)
• przepustowość (bandwith) – maksymalna liczba danych przesyłanych
w kwancie czasu (transmisja równoległa z szybkością GB/s).
• ryzyko błędu (error rate) – średnia częstość występowania błędów (<10-6)
Sterowniki
• łącza bezpośredniego (COM, LPT) – sprzęg (interface) we/wy
• szeregowego (protokół RS232, RS485)
• równoległego (protokół Centronics)
• magistral dedykowanych
• magistrali współdzielonej.
Sterowanie urządzeniami
• programowanie sterownika (wysyłanie poleceń)
• testowanie sterownika
• obsługa przerwań sygnalizowanych przez urządzenia
• obsługa błędów urządzeń.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-18
ARCHITEKTURA KOMPUTERÓW
Oprogramowanie we/wy
Struktura warstwowa (software layers)
• „uchwyty przerwań” (interrupt handlers) – procedury obsługi zgłoszeń
• sterowniki urządzeń (device drivers) – działania specyficzne dla urządzeń
(translacja poleceń logicznych („odczytaj blok danych”) na zestaw poleceń
fizycznych („odczytaj sektor N na ścieŜce M w dysku H”)):
• buforowanie (kolejkowanie) poleceń logicznych
• zmiana porządku poleceń w celu poprawy przepustowości transmisji
• zmiana logicznych adresów urządzeń i bloków danych na adresy fizyczne
• obsługa błędów transmisji.
• funkcje uŜytkownika – oprogramowanie niezaleŜne od urządzeń:
• zmiana symbolicznej nazwy urządzenia (standardowe wejście i wyjście,
drukarka) na nazwę logiczną (adres bloku sterującego procesu obsługi)
• przeformatowanie danych na postać wymaganą przez urządzenie
(buforowanie, upakowanie, rozpakowanie, translacja kodu danych)
• przydział i zwolnienie przydziału pamięci.
• uaktywnienie (proces uŜytkownika) – określenie parametrów transmisji,
przygotowanie danych i zainicjowanie komunikacji we/wy.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-19
ARCHITEKTURA KOMPUTERÓW
Procesy wejścia i wyjścia
Sterowniki urządzeń (device drivers) – zasoby chronione
Funkcje obsługi wejścia/wyjścia – osobne procesy na poziomie nadzoru.
Proces obsługi wejścia lub wyjścia:
• program wykonywany przez CPU
• program wykonywany przez sterownik
Klasyfikacja
• bezpośrednie we/wy (direct I/O) – funkcje sterownika wykonuje procesor:
testowanie statusu urządzenia (busy waiting) i nadzór wykonaniA poleceń
• nakładane (overlapped) we/wy – obsługa w trybie przerwań precyzyjnych,
wymaga intensywnej synchronizacji
• autonomiczne (autonomous) we/wy – obsługa w trybie DMA (bezpośredni
dostęp do pamięci), wymaga minimum synchronizacji.
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-20
ARCHITEKTURA KOMPUTERÓW
Nakładane we/wy (overlapped I/O)
Synchronizacja procesu obsługi we/wy w trybie przerwań sygnalizujących:
• gotowość peryferala (urządzenia we/wy) do transmisji
• zakończenie operacji
• wystąpienie wyjątku sygnalizowanego (na przykład błąd transmisji).
Procesy we/wy są niezaleŜne:
• wiele urządzeń obsługiwanych jednocześnie, problem identyfikacji źródła
• konieczność przełączania procesów
C
A
INT
RS–1
P–1
magistrala
portu P–1
D
BUF
procesor
RC
RS–N
P–N
magistrala
portu P–N
magistrala systemu
Realizacja nakładanego we/wy
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-21
ARCHITEKTURA KOMPUTERÓW
Autonomiczne we/wy
Transmisja bloku danych zamiast transmisji danych pojedynczych:
• zmniejszenie częstości synchronizowania procesów
• redukcja narzutów czasowych synchronizowania
• konieczne bufory danych – najprościej w pamięci głównej
→ transmisja z pominięciem CPU (DMA)
A D
RQ1
RA1
LA1
C1
procesor
D1
HLD
RQN
pamięć
RC
RAN
LAN
CN
DN
A’
D’
Realizacja autonomicznego we/wy
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-22
ARCHITEKTURA KOMPUTERÓW
Bezpośredni dostęp do pamięci (DMA)
Obsługa w trybie bezpośredniego dostępu do pamięci
• programowanie procesora DMA – podanie parametrów transmisji: adresu
źródłowego i docelowego danych, rozmiaru bloku i protokołu transmisji
• zainicjowanie transmisji – skutek zgłoszenia Ŝądania transmisji przez kanał
DMA (procesor DMA ma zwykle kilka niezaleŜnych kanałów).
Procedura:
• zgłoszenie w kanale DMA Ŝądania transmisji (bus request, hold)
• potwierdzenie udostępnienia magistral (bus grant, hold acknowledge)
• wykonanie transferu DMA i zwolnienie magistral.
Transfer pojedynczy (single-cycle DMA) – wykradanie cykli (cycle–stealing)
Transfer blokowy (burst-mode DMA).
• blokowanie dostępu do magistral –pamięci dwuportowe
• róŜny rozmiar bloków danych w urządzeniach uczestniczących
• przerwanie po kaŜdym transferze bloku
• powiązanie danych (data chaining) – autoprogramowanie kanału DMA
→rejestr powiązań (data chain register, DCR) – adres kolejnego bloku
© JANUSZ BIERNAT, AK-8- PAMIEC WIRTUALNA, 11 MARCA 2005,
8-23