1a. Różnice między stronicowaniem a segmentacja:
strona ma ustaloną wartość, wielkość segmentu zależy od zapotrzebowań procesu; liczba stron jest ustalona i wynosi:
rozmiar_dostępnej_pamięci/wielkość_strony;
ilość segmentów zależy od ich wielkości i dostępnej pamięci, więc nie jest stała bo segmenty mogą mieć różne wielkości;
w segmentacji użytkownik określa numer segmentu i odległość w segmencie, natomiast w stronicowaniu użytkownik określa pojedynczy adres , dzielony następnie przez sprzęt na numer strony i odległość.
1b. Jaka jest liczba stron/segmentów oraz jaki jest rozmiar tablicy deskryptorów?
W 386 maksymalna ilość segmentów w jednym procesie 16k, każdy segment może mieć do 4GB, rozmiar strony 4kB; każdy deskryptor zawiera 8bajtów danych o segmencie, więc wielkość tablicy deskryptorów to:
ilość_segmentów*rozmiar_deskryptora
1c. W którym przypadku występuje fragmentacja wewnętrzna, a w którym zewnętrzna:
Fragmentacja wewnętrzna występuje w stronicowaniu (gdy przydzielana pamięć jest większa niż zamawiana).
Fragmentacja zewnętrzna występuje w segmentacji (gdy suma wolnych obszarów w pamięci wystarcza na spełnienie zamówienia, ale nie tworzą one spójnego obszaru, przez co nie mogą zostać przydzielone procesowi).
2.
P1 - 250 |
P2 - 280 |
P3 - 150 |
P4 - 168 |
P5 - 200 |
wolne - 632 |
FF
P1 - 250 |
wolne 280 |
P3 - 150 |
wolne 168 |
P5 - 200 |
wolne - 632 |
|||
P1 - 250 |
P6 140 |
P8 80 |
W 60 |
P3 - 150 |
P9 110 |
P5 - 200 |
P7 200 |
wolne 432 |
b)BF
P1 - 250 |
wolne 280 |
P3 - 150 |
wolne 168 |
P5 - 200 |
wolne - 632 |
|||
P1 - 250 |
P7 - 200 |
P8 80 |
P3 - 150 |
P6 140 |
W 28 |
P5 - 200 |
P9 110 |
wolne 522 |
c)WF
P1 - 250 |
wolne 280 |
P3 - 150 |
wolne 168 |
P5 - 200 |
wolne - 632 |
||||
P1 - 250 |
P9 110 |
wolne 170 |
P3 - 150 |
|
P5 - 200 |
P6 140 |
P5 200 |
P8 80 |
wolne 212 |
3.
100 |
500 |
200 |
300 |
600 |
a) FF
100 |
500 |
200 |
300 |
600 |
|||
|
209 |
120 |
|
|
|
420 |
|
brak miejsca dla 430!!!
b)BF
100 |
500 |
200 |
300 |
600 |
||||
|
420 |
|
120 |
|
209 |
|
430 |
|
c)WF
100 |
500 |
200 |
300 |
600 |
|||
|
420 |
|
|
|
209 |
120 |
|
brak miejsca dla 430!!!!
4.
Strona 1 |
Strona 2 |
……. |
Strona 10 |
|||||||||||||
1 |
2 |
3 |
4 |
……. |
21 |
22 |
23 |
24 |
…… |
……………… |
81 |
82 |
83 |
…… |
99 |
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
algorytm 1.
liczba błędów braku strony:
FIFO i OPT(zastąp tę stronę, która najdłużej nie będzie uzywanana), LRU (zastępowanie najdawniej używanych stron)
Odwołania do stron: 1,1,1……,1[x20],2,2,2…..,2[x20]………….
1 |
4 |
7 |
10 |
Błędów braku strony: 10 Współczynnik trafień: 90% |
2 |
5 |
8 |
|
|
3 |
6 |
9 |
|
|
algorytm 2.
liczba błędów braku strony:
FIFO i OPT(zastąp tę stronę, która najdłużej nie będzie uzywanana), LRU (zastępowanie najdawniej używanych stron)
Odwołania do stron: 1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10 (x10)
1 |
4 |
7 |
10 |
3 |
6 |
9 |
|
Błędów braku strony: 50 Współczynnik trafień: 50% |
2 |
5 |
8 |
1 |
4 |
7 |
10 |
|
|
3 |
6 |
9 |
2 |
5 |
8 |
.. |
|
|
5.
czas dostępu do pamięci = 100ns
przeglądnięcie rejestru asocjacyjnego = 20ns
Średni czas dostępu do pamięci dla współczynnika trafień:
80%
0.80*(20ns+100ns)+0.2*(20ns+100ns+100ns)=98ns+44ns=142ns
b) 90%
0.90*(20ns+100ns)+0.1*(20ns+100ns+100ns)=108ns+22ns=130ns
6.
Rozmiar pamięci fizycznej: 32*1024=215B (ramka ma taki sam rozmiar jak strona)
selektor strony: 3 bity (?)
adres logiczny składa się z: 3+10=13 bitow
7.
-deskryptorów
-maksymalna odległość na stronie
- maksymalna wielkość segmentu fizycznego
Segment zawiera więc
8.
Odczytanie danej z pamięci (bez rejestrów asocjacyjnych): 150ns+150ns=300ns
Z rej. asocjacyjnym:
0.85*(20ns+150ns)+0.15(150ns+20ns+150ns)=144.5ns+48ns=192.5