1 SYSTEMY OPERACYJNE WYKLAD 4

Transkrypt

1 SYSTEMY OPERACYJNE WYKLAD 4
Politechnika Wrocławska
Wrocław 2007
SYSTEMY OPERACYJNE
WYKLAD 4
- zarządzanie pamięcią
Paweł Skrobanek
C-3, pok. 323
e-mail: [email protected]
www.equus.wroc.pl/studia.html
1
Politechnika Wrocławska
PLAN:
1. Wprowadzenie
2. Pamięć rzeczywista
3. Pamięć wirtualna
stronicowanie
segmentacja
stronicowanie + segmentacja
2
Politechnika Wrocławska
1. Wprowadzenie
• zarządzanie pamięcią operacyjną – realizacja
software’owa wspomagana sprzętowo > system
operacyjny + platforma sprzętowa,
• model pamięci – typowo: wielka tablica oznaczona
adresami od 0, złoŜona z komórek o wielkości bajta,
• jeśli w pamięci moŜna umieścić kilka procesów na
raz, to konieczność zarządzania współdzieleniem
pamięci, ochroną dostępu, itp.
3
1
Politechnika Wrocławska
1. Wprowadzenie
PAMIĘĆ
•
WIRTUALNA
procesy mogą widzieć więcej
pamięci, niŜ posiadamy
„fizycznie”,
konieczne zastosowanie
odpowiednich mechanizmów
RZECZYWISTA
•
dostępne tyle pamięci,
ile jest „fizycznie”
•
SEGMENTACJA
STRONICOWANIE
STRONICOWANIE + SEGMENTACJA
4
Politechnika Wrocławska
1. Wprowadzenie
PRZYDZIAŁ PAMIĘCI
STATYCZNY (static
memory allocation)
• przydział (zaplanowanie)
obszarów pamięci
w procesie kompilacji
(przed wykonaniem
programu)
•
DYNAMICZNY (dynamic
memory allocation)
• moŜliwy przydział
/zwalnianie w trakcie
wykonywania programu
AUTOMATYCZNY (automatic memory allocation)
alokacja miejsca przy wprowadzaniu programu do
pamięci i zwalnianie przy usuwaniu
5
Politechnika Wrocławska
1. Wprowadzenie
PAMIĘĆ
operacyjna
L1 (Level 1)
podręczna
(cache)
BIOS (flashEPROM)
L2 (Level 2)
L3 (Level3)
6
2
Politechnika Wrocławska
1. Wprowadzenie
Zad.1. Do czego to słuŜy i jak ustawić:
• System BIOS Cacheable,
• Video BIOS Cacheable,
• AGP Aperture Size.
7
Politechnika Wrocławska
1. Wprowadzenie
Etapy
przetwarzania
programu
Program
źródłowy
Biblioteki
kompilacja
Moduł
wynikowy
Inne moduły
konsolidacja
Moduł
ładowalny
Biblioteka
systemowa
ładowanie
Obraz binarny
w PO
Biblioteki
ładowane
dynamicznie
8
Politechnika Wrocławska
1. Wprowadzenie
• kod bezwzględny (ang. absolute code) – z podanymi
adresami PO,
• kod przemieszczalny (ang. relocatable code) – kod
przemieszczalny – adresy ustalane względem bazy
podczas ładowania,
9
3
Politechnika Wrocławska
1. Wprowadzenie
Adresy:
• logical address – adres logiczny (widziany „w
obszarze” zadania),
• physical address – adres fizyczny („komórka” pamięci
operacyjnej
1000
20
1020
10
Politechnika Wrocławska
1. Wprowadzenie
Pytanie:
• w jakich sytuacjach adres logiczny moŜe być równy
adresowi fizycznemu?
11
Politechnika Wrocławska
2. Pamięć rzeczywista
Pamięć rzeczywista
•
•
systemy
systemy wieloprogramowe
jednoprogramowe a) podział zmienny
program musi zmieścić
• tyle, ile zarządał proces,
się w pamięci,
• skomplikowane
załadowanie przy
zarządzanie.
uruchomieniu lub
b) podział stały (statyczny),
poprzez zapis w
• podział na stałe części
pamięci
w momencie ładowania
programowalnej.
SO – kolejki do bszarów,
• ze stałymi lub zmiennymi
12
partycjami
4
Politechnika Wrocławska
2. Pamięć rzeczywista
Metody przydzielania bloków pamięci:
• First Fit – pierwszy pasujący (szybki, ale duŜa
fragmentacja pamięci), np.
• Best Fit – najlepszego dopasowania (wolniejszy, dobre
wykorzystanie pamięci),
• Quick Fit – najszybszego dopasowania (np. dodatkowa
tablica typowych rozmiarów bloków),
• Worst Fit – najgorszego dopasowania,
• Heap-based – przydział w postaci obszarów
o organizacji w postaci sterty
13
Politechnika Wrocławska
2. Pamięć rzeczywista
Metody przydzielania bloków pamięci:
•„Buddy” algorytm – zmodyfikowana wersja First Fit (opis
np.:
http://rainbow.mimuw.edu.pl/SO/LabLinux/PAMIEC/PODT
EMAT_6/opis.html
)
• więcej informacji o algorytmach:
http://www.osdcom.info/content/view/31/39/ lub
http://en.wikipedia.org/wiki/Dynamic_memory_allocation
14
Politechnika Wrocławska
3. Pamięć wirtualna
Maksymalna pamięć widziana przez pojedyncze
zadanie (dla niego „fizyczna”) jest
odzwierciedlana w obszary pamięci fizycznej
(której moŜe być znacznie mniej).
Metody:
• stronicowanie,
• segmentacja,
• segmentacja + stronicowanie
15
5
Politechnika Wrocławska
3. Pamięć wirtualna
Maksymalna pamięć widziana przez pojedyncze
zadanie (dla niego „fizyczna”) jest
odzwierciedlana w obszary pamięci fizycznej
(której moŜe być znacznie mniej).
Metody:
• stronicowanie,
• segmentacja,
• segmentacja + stronicowanie
16
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
• przestrzeń adresowa zadania podzielona jest na
równe części zwane stronami (ang. pages),
• pamięć fizyczna podzielona jest na części takiej
samej wielkości zwane ramami (ang. frames),
• strony są przyległe, ramy mogą być rozproszone
w pamięci,
• rozmiar strony jest zazwyczaj określony przez
sprzęt (typowo o wielkości od 512 B do 16 MB –
rozmiary o wielkości 2m)
17
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
Adres logiczny
procesor
Adres fizyczny
s o
r o
…
s – numer strony,
r
r – numer ramy,
…
o – przesynięcie,
odlegość (offset)
Tablica stron
Pamięć
operacyjna
18
6
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
Pamięć logiczna
Pamięć fizyczna
Str. 0
0
Str. 1
1
Str. 2
2
Str. 0
0
1
1
5
4
Str. 1
2
4
5
Str. 2
Tablica stron
…
3
...
19
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
• dobre wykorzystanie pamięci (fragmentacja tzw.
zewnętrzna – praktycznie brak),
• dłuŜszy czas dostępu oraz złoŜony mechanizm
adresowania (zazwyczaj SO przydziela tablicę
stron do kaŜdego zadania),
• niewykorzystanie całej przydzielonej pamięci do
zadania (tzw. fragmentacja wewnętrzna) zawsze
przydzielamy z dokładnością do strony;
jeśli strona 16 kB, a zadanie 18 kB, to zajmie 32 kB
20
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
• ochrona dostępu – np. poprzez bit poprawności
(ang. valid-invalid bit)
0 1 p
1
5 p
2
0 n
Tablica stron
PTLR (ang. page table length register) – rejestr
długości tablicy stron słuŜący do sprawdzania, czy
dany adres naleŜy do przedziału dozwolonego dla
procesu (czy nie „wykraczamy” poza naszą
przestrzeń adresową)
21
7
Politechnika Wrocławska
3. Pamięć wirtualna - stronicowanie
• stronicowanie hierarchiczne z dwupoziomową
tablicą stron - „podział tablicy stron na strony”,
• strony dzielone – wykorzystanie stron z kodem
wznawialnym (ang. reentrand code) przez kilka
procesów, np. jeśli pracujemy na kilku
dokumentach w jednym edytorze, to nie ma
potrzeby kilka razy ładować go w całości do
pamięci,
• inne aspekty – Silberschatz, „Podstawy systemów
operacyjnych” ☺
22
Politechnika Wrocławska
3. Pamięć wirtualna - segmentacja
• schemat zarządzania odzwierciedlający sposób
patrzenia na pamięć przez uŜytkownika,
Pytanie: Jakie „części programu widzi programista
w PASCAL’u?”
• kaŜdy segment ma nazwę i długość,
• adresy określają segment i przesunięcie
w segmencie,
• w systemie jest tablica segmentów (ang. segment
table) – rola podobna do tablicy stron
23
Politechnika Wrocławska
3. Pamięć wirtualna - segmentacja
Pułapka – błąd adresowania
N
procesor
s o
<
…
s – numer segmentu,
a – adres bazowy,
g – granica (długość)
T
+
…
d
a
…
…
Tablica segmentów
o – przesynięcie, odlegość (offset)
Pamięć
operacyjna
24
8
Politechnika Wrocławska
3. Pamięć wirtualna - segmentacja
Zadanie:
- proszę rozmieścić w pamięci operacyjnej
segmenty (zgodnie z tablicą segmentów)
0
1000 1300
1
400 6500
2
400 4000
3
1100 4400
Tablica segmentów
25
Politechnika Wrocławska
3. Pamięć wirtualna - segmentacja
• łatwiejsza implementacja programu,
• moŜliwość współdzielenia segmentów
(np. zawierających biblioteki, współdzielony
program),
• fragmentacja pamięci – zaleŜna od wielkości
segmentu,
Pytanie:
Jakie są zalety i wady rozwiązań: 1) cały proces to
jeden segment, 2) wielkość segmentu to 1B
26
Politechnika Wrocławska
3. Pamięć wirtualna – stron. + segm.
segm.
• segmenty z których składa się program dzielone
są na strony,
• adres bazowy w tablicy segmentu określa adres
bazowy tablicy stron dla danego segmentu
27
9
Politechnika Wrocławska
3. Pamięć wirtualna – stron. + segm.
segm.
• mechanizm – patrz materiały ksero
LDT (local descriptor table) – lokalna tablica
deskryptorów, zawiera informacje o prywatnych
segmentach procesu,
GDT (global descriptor table) – globalna tablica
deskryptorów, zawiera informację o segmentach
wspólnych dla wszystkich procesów
28
Politechnika Wrocławska
3. Pamięć wirtualna – stron. + segm.
segm.
• eliminacja fragmentacji – rozmieszczenie
segmentów w róŜnych obszarach PO oraz fakt,
iŜ segment nie musi być ciągły,
• wirtualność pamięci – całkowita długość programu
moŜe przekraczać długość pamięci fizycznej,
• moŜliwość współdzielenia obszarów pamięci
(wykorzystanie segmentów przez róŜnych
uŜytkowników),
• moŜliwość ochrony danych (np. zaznaczenie
segmentów jako R, W, E)
29
Politechnika Wrocławska
3. Pamięć wirtualna – stron. + segm.
segm.
• wzrost kosztów sprzętu (np. dodatkowe rejestry),
• zuŜycie czasu procesorana obsługę tablic oraz
odwzorowania adresów logicznych w fizyczne,
• trudniejsza kontrola poprawności kodu (czy SO
+ program) nie „zawieszą się” – istotne np. w
systemach czasu rzeczywistego (nawet rezygnacja
z trybów wirtualnych procesora ze względu na
bezpieczeństwo)
30
10

Podobne dokumenty