Historia wymaga pasterzy, nie rzeźników.

7.2 System OS/2 w wersji 32-bitowej
Jak powiedzieliśmy wcześniej, każdy segment jest stronicowany, a każda
strona ma 4 KB. Tablica stron mogłaby zatem zawierać do 1 miliona pozycji.
System operacyjny IBM OS/2 w wersji 32-bitowej działa na procesorze typu
Ponieważ każda pozycja zajmuje 4 B, więc każdy proces mógłby potrzebo-
Intel 386 (i późniejszych). W architekturze 386 zastosowano do zarządzania
wać 4 MB fizycznej przestrzeni adresowej na samą tylko tablicę stron. Jest
pamięcią segmentację ze stronicowaniem. Maksymalna liczba segmentów
jasne, że nie chcemy umieszczać takiej tablicy stron w postaci ciągłego obszaw jednym procesie wynosi 16 K, a każdy segment może mieć do 4 GB. Rozru w pamięci operacyjnej. W maszynie 386 jako rozwiązanie przyjęto stroni-
miar strony wynosi 4 KB. Nie podamy tu pełnego opisu struktury zarządzania
cowanie dwupoziomowe. Adres liniowy podzielono się na 20-bitowy numer
pamięcią przez procesor 386, natomiast przedstawimy jej podstawowe zasady.
strony i 12-bitową odległość na stronie. Ponieważ tablica stron podlega stro-Przestrzeń adresów logicznych procesu jest podzielona na dwie strefy.
nicowaniu, numer strony podzielono z kolei na 10-bitowy wskaźnik do kata-
Pierwsza strefa składa się z co najwyżej 8 KB prywatnych segmentów proce-
logu stron i 10-bitowy wskaźnik do tablicy stron. Adres logiczny wygląda
su. Druga strefa zawiera do 8 KB segmentów wspólnych dla wszystkich pro-
następująco:
cesów. Informacje dotyczące pierwszej strefy są przechowywane w tablicy lokalnych deskryptorów (ang. local descriptor table - LDT), a informacje dotyczące drugiej strefy są przechowywane w tablicy globalnych deskryptorów (ang. global descriptor table - GDT). Każda pozycja w tablicy LDT lub GDT ma 8 bajtów i zawiera szczegółowe dane o konkretnym segmencie,
m.in. adres jego początku i długość.
Schemat tłumaczenia adresów w omawianej architekturze jest podobny do przed-Adres logiczny jest parą (selektor, odległość), przy czym selektor jest
stawionego na rys. 8.19. Tłumaczenie adresów w procesorze Intel jest pokazane liczbą 16-bitowąo postaci
bardziej szczegółowo na rys. 8.28. W celu polepszenia wydajności użytkowania
328 Rozdział 8 Zarządzanie pamięcią
8.8 Podsumowanie
329 pamięci. Zasadniczym kryterium wyboru metody dla konkretnego systemu
jest rodzaj sprzętu. Każdy adres pamięci utworzony przez procesor musi być
sprawdzony pod kątem dopuszczalności i ewentualnie odwzorowany na adres
fizyczny. Sprawdzania nie daje się (efektywnie) realizować za pomocą opro-
gramowania. Wynikają z tego powodu ograniczenia narzucane przez dostępny
rodzaj sprzętu.
Omówione algorytmy zarządzania pamięcią (przydział ciągły, stronico-
wanie, segmentacja oraz łączenie stronicowania i segmentacji) różnią się pod wieloma względami. Poniższy wykaz zawiera niektóre z aspektów, które na-leży brać pod uwagę przy porównywaniu różnych strategii zarządzania pa-
mięcią.
• Wspomaganie sprzętowe: Prosty rejestr bazowy lub para - rejestr bazowy i rejestr graniczny - wystarcza w schematach z pojedynczymi lub
zwielokrotnionymi obszarami, podczas gdy stronicowanie i segmentacja
wymagają tablic do definiowania odwzorowań adresów.
• Wydajność: W miarę komplikowania się algorytmu wzrasta czas wyma-
gany do odwzorowania adresu logicznego na adres fizyczny. W prostych
systemach wystarczy porównanie lub dodanie do adresu logicznego - ope-
racje te są szybkie. Stronicowanie i segmentacja mogą być równie szybkie,
jeśli tablica jest zaimplementowana w szybkich rejestrach. Jeśli jednak ta-
blica znajduje się w pamięci, to czas dostępu użytkownika do pamięci mo-
że się wyraźnie pogorszyć. Spadek wydajności można zmniejszać do ak-
ceptowalnego poziomu za pomocą zbioru rejestrów asocjacyjnych.
• Fragmentacja: System wieloprogramowy na ogół działa wydajniej przy zwiększonym poziomie wieloprogramowości. Dla danego zbioru proce-Rys. 8.28 Tłumaczenie adresu w procesorze Intel 80386
sów zwiększenie poziomu wieloprogramowości jest osiągalne tylko przez
upakowanie większej liczby procesów w pamięci. Aby temu podołać,
pamięci fizycznej tablice stron procesora Intel 386 można wysyłać na dysk.
należy zmniejszać ilość pamięci marnowanej wskutek fragmentacji.
Wówczas w pozycjach katalogu stron stosuje się bit poprawności, aby zaznaczać,
, W systemach, w których zastosowano stałowy miaro we jednostki przy-
czy tablica, na której pozycję wskazano, znajduje się w pamięci operacyjnej czy działu, takie jak schemat z jednym obszarem lub stronicowanie, dają się
na dysku. Jeśli tablica jest na dysku, to system operacyjny może skorzystać z 31
odczuć uciążliwości wynikające z fragmentacji wewnętrznej. Systemy,
innych bitów w celu określenia położenia tablicy na dysku. Tablicę taką można w których jednostki przydziału pamięci są zmiennej długości (jak
potem na żądanie sprowadzić do pamięci operacyjnej.
w przypadku schematu zwielokrotnionych obszarów bądź segmentacji),
są zagrożone fragmentacja zewnętrzną.
8.8 • Podsumowanie
• Przemieszczanie: Jednym ze sposobów unikania zewnętrznej fragmenta-Zakres metod zarządzania pamięcią w wielo programowych systemach opera-
cji jest upakowanie. Upakowanie powoduje przesunięcie programu w pa-
cyjnych rozciąga się od prostych algorytmów zarządzania systemem z jednym
mięci w sposób dla niego niezauważalny. Takie postępowanie wymaga,