Można wykonać upakowanie pamięci w celu pozbycia się zewnętrz-
9.9 • Segmcntacja na żądanie
nej fragmentacji. Jeśli nawet po upakowaniu nie ma wystarczającej ilości
wolnej pamięci, to trzeba któryś segment zastąpić. W tym celu wybiera się
Chociaż stronicowanie na żądanie uważa się na ogół za najwydąjniejszy spo-
segment z końca kolejki i przesyła go do obszaru wymiany. Jeśli nowo
sób organizacji pamięci wirtualnej, do jego zastosowania są potrzebne spore otrzymany, wolny obszar pamięci wystarcza na pomieszczenie żądanego
ilości sprzętu. Wobec niedostatku sprzętu do realizacji pamięci wirtualnej
segmentu, to potrzebny segment zostaje przeczytany na miejsce usuniętego
stosuje się czasami mniej wydajne środki. Należy do nich segmentacja na segmentu. Następnie uaktualnia się deskryptor segmentu i umieszcza go na
żądanie (ang. demandsegmentation). Procesor Intel 80286 nie ma możliwości czele kolejki. W przeciwnym razie, jeśli jeszcze brakuje pamięci, dokonuje
stronicowania, ale operuje segmentami. PracujÄ…cy na tym procesorze system
się jej upakowania i powtarza się całe postępowanie.
operacyjny OS/2 wykorzystuje zawarte w sprzęcie możliwości segmentaeji do
Segmentacja na żądanie pociąga za sobą - co jest widoczne - pewne
implementowania segmentaeji na żądanie jako jedynego możliwego przybli-
koszty, toteż nie jest ona najlepszym sposobem wykorzystania zasobów sys-
żenia stronicowania na żądanie.
temu komputerowego. Jednak w przypadku uboższego sprzętu pozostaje do
System OS/2, zamiast stronami, przydziela pamięć segmentami. Seg-
wyboru tylko całkowity brak pamięci wirtualnej. Trudności związane z sys-
menty są opisane za pomocą deskryptorów segmentów (ang. segment de-temami pozbawionymi pamięci wirtualnej, jak te opisane w rozdz. 8, dowo-
scriptorś), które zawierają informacje o długości segmentów, trybie ich dzą, że takie rozwiązanie ma również braki. Dlatego też segmentacja na żąda-ochrony i umiejscowieniu. Wykonywany proces nie musi mieć w pamięci
nie jest rozsądnym kompromisem na rzecz funkcjonalności w warunkach
wszystkich swoich segmentów. W zamian za to deskryptor segmentu zawiera
ograniczeń sprzętowych uniemożliwiających stronicowanie na żądanie.
bit poprawności wskazujący dla każdego segmentu, czy znajduje się on w danej chwili w pamięci. Gdy proces odniesie się do segmentu zawierające-go kod lub dane, wówczas sprzęt sprawdzi bit poprawności. Jeśli segment
9.10
Podsumowanie
znajduje się w pamięci głównej, to dostęp odbywa się bez przestojów. Gdy
segmentu nie ma w pamięci, wtedy następuje przejście do systemu operacyj-
Jest wskazane, aby istniała możliwość wykonywania procesów, których lo-
nego (brak segmentu) - zupełnie tak, jak przy implementacji stronicowania na giczna przestrzeń adresowa jest większa od dostępnej przestrzeni adresów
żądanie. System OS/2 wysyła wtedy jakiś segment do pamięci pomocniczej
fizycznych. Można uczynić taki proces wykonywalnym przez jego restruktu-
3 8 4 Rozdział 9 Pamięć wirtualna
Ćwi
wiczema
385
ryzację za pomocą nakładek, jednak jest to na ogół trudne zadanie do zapro-
Proces, który nie ma wystarczającej liczby ramek na swój zbiór roboczy,
gramowania. Pamięć wirtualna jest techniką pozwalającą na odwzorowywanie
zaczyna się szamotać. Dostarczenie każdemu procesowi liczby ramek wystar-
wielkiej logicznej przestrzeni adresowej w mniejszej pamięci fizycznej. Pa-
czającej do uniknięcia szamotania może wymagać wymiany i planowania
mięć wirtualna umożliwia wykonywanie niezwykle dużych procesów, a także
procesów.
pozwala na podniesienie stopnia wieloprogramowości, co polepsza wykorzy-
Oprócz rozwiązania głównych problemów zastępowania stron i przy-
stanie procesora, Co więcej, zwalnia ona programistę aplikacji od kłopotów
działu ramek, właściwie zaprojektowany systemu stronicowania wymaga
związanych z dostępnością pamięci.
jeszcze rozważenia rozmiaru strony, blokowania stron w pamięci na czas
W czystym stronicowaniu na żądanie strony nie sprowadza się dopóty,
operacji wejścia-wyjścia, stronicowania wstępnego, odpowiedniej struktury
dopóki nie ma do niej odniesienia. Pierwsze odniesienie powoduje wystąpie-
programu i innych zagadnień. Pamięć wirtualną można rozumieć jako jeden
nie braku strony, o którym jest powiadamiana rezydująca na stałe w pamięci
poziom w hierarchii poziomów pamięci w systemie komputerowym. Każdy
część systemu operacyjnego. System za pomocą informacji zapisanych
poziom ma własny czas dostępu, rozmiar i parametry kosztów. Pełny przy-
w wewnętrznej tablicy określa miejsce pobytu strony w pamięci pomocniczej.
kład systemu hybrydowej, funkcjonalnej pamięci wirtualnej zaprezentowano
Następnie znajduje wolną ramkę i czyta do niej stronę z pamięci pomocniczej.
w rozdziale dotyczącym systemu Mach, dostępnym na stronach WWW
Tablica stron zostaje uaktualniona dla odzwierciedlenia tej zmiany, a rozkaz w sieci Internet.
przerwany z powodu braku strony zostaje wznowiony. Podejście takie po-
zwala na pracę nawet takich procesów, których całkowity obraz pamięci nie
znajduje się od razu w pamięci głównej. Póki częstość braków stron jest
• Ćwiczenia
względnie niska, poty działanie systemu jest do zaakceptowania.
Stronicowania na żądanie można użyć w celu zmniejszenia liczby ramek



 

 

 

 

 

 

 

 

 

 

 

 

   
 
  dzania pamiÄ™ciÄ… okreÅ›lajÄ… najpierw, czy dostÄ™pna wolna pamięć pomieÅ›ci segment...
Pomodliłem się do każdego boga jaki istniał bym był w wstanie wkurzyć tę kobietę do granic możliwości.