background image

Architektura komputerów

Tydzień 12

Wspomaganie systemu operacyjnego:

pamięć wirtualna

background image

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.

background image

Partycjonowanie

System

operacyjny

Proces 1

Proces 2

Proces 3

System

operacyjny

Proces 1

Proces 3

System

operacyjny

Proces 1

Proces 4

Proces 3

System

operacyjny

Proces 3

System

operacyjny

Proces 5

Proces 3

Proces 4

Proces 4

W

yj

śc

ie

 pr

o

ce

su

 2

W

ej

śc

ie p

ro

ce

su

 4

W

yj

śc

ie 

pr

o

ce

su

 1

W

ej

śc

ie

 p

ro

ces

u

 5

background image

13

14

15

16

17

18

19

20

21

Stronicowanie

Używana

Używana

Używana

Lista wolnych
ramek:
13
14
15
18
20

Proces A

Strona 0
Strona 1
Strona 2
Strona 3

13

14

15

16

17

18

19

20

21

Strona 0

procesu A

Używana

Używana

Używana

Lista wolnych
ramek:
20

Strona 1

procesu A

Strona 2

procesu A

Strona 3

procesu A

Proces A

Strona 0
Strona 1
Strona 2
Strona 3

Tablica stron 
procesu A:

13
14
15
18

Po przydziale

Przed przydziałem ramek

background image

Stronicowanie

14

30

14

13

15
18

2

30

Strona 1

procesu A

Strona 2

procesu A

Strona 3

procesu A

Strona 4

procesu A

13

14

15

16

17

18

Adres

logiczny

Adres

fizyczny

Tablica

stron

procesu A

background image

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.

background image

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

background image

Czy zapis

tablicy stron

znajduje się

w TLB?

CPU sprawdza TLB

Programowe żądanie dostępu do strony

Dostęp do tablicy 

stron

Czy strona

znajduje się

w pamięci

?

Aktualizacja TLB

CPU generuje adres fizyczny

System operacyjny otrzymuje

rozkaz odczytania strony 

z dysku

Czy 

pamięć jest 

zapełniona

?

Wymiana

strony

Przeniesienie strony

z dysku do pamięci

Aktualizacja tablicy

stron

Program obsługi 
błędu strony

Powrót do rozkazu 
przy którym wystąpił 
błąd strony

Tak

Tak

Tak

Nie

Nie

Nie

background image

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

background image

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.

background image

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.

background image

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.

background image

Translacja adresu Pentium

Segment Wyrównanie

Tablica

segmentów

+

Katalog

Wyrównanie

Strona

+

Katalog

stron

Tablica

stron

Pamięć

główna

Adres

fizyczny

Adres logiczny

Adres liniowy