12 wspomaganie systemu operacyjnego pamiec wirtualna


Architektura komputerów
Tydzień 12
Wspomaganie systemu operacyjnego:
pamięć wirtualna
Partycjonowanie

Pamięć jest dzielona, aby mogło
korzystać z niej wiele procesów.

Dla jednego procesu przydzielana jest
jedna partycja.

Partycje mogą mieć stały, z góry
ustalony rozmiar lub dynamiczny,
przydzielany w miarę potrzeb.
Partycjonowanie
System System System System System
operacyjny operacyjny operacyjny operacyjny operacyjny
Proces 5
Proces 1 Proces 1 Proces 1
Proces 4 Proces 4 Proces 4
Proces 2
Proces 3 Proces 3 Proces 3 Proces 3 Proces 3
Wejście procesu 5
Wejście procesu 4
Wyjście procesu 1
Wyjście procesu 2
Stronicowanie
Lista wolnych Lista wolnych
ramek: ramek: Strona 0
13 13
procesu A
13 20
Strona 1
14
14 14
procesu A
Proces A
15
Strona 2
15 15
18
procesu A
Strona 0
20
Strona 1
16 16
Używana Używana
Strona 2
Proces A
17 17
Używana Strona 3 Używana
Strona 3
18 18
Strona 0
procesu A
Strona 1
Tablica stron
19 19
Używana Używana
Strona 2
procesu A:
Strona 3
20 20
13
14
21 21
15
18
Przed przydziałem ramek Po przydziale
Stronicowanie
Strona 1
13
procesu A
Strona 2
Adres Adres 14
procesu A
logiczny Tablica fizyczny
stron
2 30 14 30
Strona 3
15
procesu A
procesu A
13
14
16
15
18
17
Strona 4
18
procesu A
Pamięć wirtualna

Wykorzystujemy pamięć zewnętrzną
(dysk) do przechowywania
nieużywanych stron pamięci.

Możemy użyć większej ilości logiczej
pamięci niż dysponujemy fizycznej.

W pamięci fizycznej przechowujemy
aktualnie potrzebne strony.

Jeśli potrzebnej strony nie ma w
pamięci, ładujemy ją z dysku, zapisując
zastępowaną stronę na dysk.
Tablica stron

Tablica stron przechowuje informacje o
miejscu zapisu każdej strony wirtualnej
na dysku i w pamięci.

Ponieważ każdy dostęp do pamięci
wymaga co najmniej dwóch dostępów
(pobranie adresu z tablicy stron i
właściwy dostęp), stosuje się bufor dla
wpisu w tablicy stron w postaci rejestru
procesora (TLB  translation lookaside
buffer).
Programowe żądanie dostępu do strony
CPU sprawdza TLB
Program obsługi
błędu strony
System operacyjny otrzymuje
Czy zapis
Nie
rozkaz odczytania strony
tablicy stron
z dysku
znajduje się
w TLB?
Czy
Tak
Tak
pamięć jest
Wymiana
Dostęp do tablicy
zapełniona
strony
stron
?
Nie
Czy strona
Nie
znajduje się Przeniesienie strony
w pamięci z dysku do pamięci
?
Tak Aktualizacja tablicy
stron
Aktualizacja TLB
Powrót do rozkazu
przy którym wystąpił
CPU generuje adres fizyczny
błąd strony
Segmentacja

Pamięć wirtualną dzielimy na segmenty.

Segmenty mogą mieć zmienny rozmiar.

Każdy segment może mieć przypisane
prawa dostępu.

Zalety:

uproszczone operowanie dużymi strukturami
danych

możliwość dzielenia danych między procesami
przez odpowiednie ustawienie uprawnień

możliwa ochrona danych lub kodu
Przestrzenie adresowe
Pentium

Niesegmentowana pamięć
niestronicowana.

Adresy wirtualne są równe fizycznym.

Niesegmentowana pamięć stronicowana.

Liniowa przestrzeń adresowa.

Segmentowana pamięć niestronicowana.

Cały segment jest w pamięci lub na dysku.

Segmentowana pamięć stronicowana.

Segmentowanie definiuje kontrolę dostępu.

Stronicowanie zarządza przydzielaniem
pamięci.
Segmentacja
Gdy stosowana jest segmentacja każdy adres wirtualny
składa się z 16 bitowego odniesienia segmentu i 32
bitowego adresu względnego. 2 bity z odniesienia do
segmentu służą mechanizmowi ochrony.
Z każdym segmentem związane są dwie formy ochrony:
poziom uprzywilejowania i atrybut dostępu.
Występują cztery poziomy uprzywilejowania od 0 
najbardziej chronionego, do 3  najmniej chronionego.
Program ma dostęp tylko do segmentów o poziomie
uprzywilejowania równym lub wyższym poziomowi
programu.
Niektóre rozkazy maszynowe mogą być wykonywane
tylko przez najbardziej uprzywilejowane programy.
Atrybut dostępu określa, czy dane mogą być dostępne
do zapisu, czy tylko do odczytu. W przypadku programów
atrybut informuje, czy dozwolone jest wykonywanie.
Stronicowanie

Dwa poziomy:

katalog stron z maksymalnie 1024 wpisami

do 1024 tablic stron z 1024 odnośnikami do
stron każda.

Każda strona ma 4KB, co pozwala
zaadresować 4GB.

Procesor zawiera bufor translacji
adresów tablic stron z 32 wpisami.
Translacja adresu Pentium
Adres logiczny
Segment Wyrównanie
Adres liniowy
Adres
Katalog Strona Wyrównanie
+
fizyczny
+
Tablica Pamięć
Katalog Tablica
segmentów główna
stron stron


Wyszukiwarka

Podobne podstrony:
8 Systemy Operacyjne 21 12 2010 Zarządzanie Pamięcią Operacyjną
sołtys,systemy operacyjne, zarządzanie pamięcią
Systemy Operacyjne 07 12 2010 Kontekst i jego połączenie
2006 08 Zarządzanie pamięcią w systemach operacyjnych [Inzynieria Oprogramowania]
Systemy Operacyjne?za 12
9 Systemy Operacyjne 04 01 2011 Zarządzanie Pamięcią Operacyjną2

więcej podobnych podstron