lastscan10 (12)

lastscan10 (12)




Mechanizmy translacji adresu wirtualnego

W przypadku gdy chcemy odwzorować mniejszą przestrzeń wirtualną w większą przestrzeń adresów rzeczywistych to najprostszym sposobem rclokacja, która polega na zsumowaniu adresu wirtualnego z wektorem relokacji Mechanizm len wyklucza dzielenie zasobów, ponieważ dla jednego procesu jest określony jeden wektor alokacji.

Mechanizmami, które nie posiadają tego ograniczenia są segmentacja i stronicowanie Cechą wspólną segmentacji i stronicowania jest adresowanie deskryptorowe    ^

a) stronicowanie

Stronicowanie pamięci polega na podzieleniu całej pamięci na bloki o jednakowym rozmiarze zwane stronami. Obecnie przy stosowaniu 32-bitowych adiesów rzeczywistych typowym rozmiarem strony jest 4 kB. Translacja adresu polega na przekodowaniu bardziej znaczącej części adresu wirtualnego stanowiącego numer strony wirtualnej VI’ na numer strony rzeczywistej za pomocą tablicy stron Mniej znacząca część adresu stanowi przesunięcie względem adresu strony i nie podlega translacji (rys 6.12. folia) Ponieważ każda stoma rozpoczyna się na granicy adresów podzielnych przez rozmiar strony, więc numer strony rzeczywistej jest bardziej znaczącą częścią adresu obiektu umieszczonego na tej stronie Adres rzeczywisty jest złożeniem numeru strony RP i adresu na stronie I)P. Tablica stron stanowi część kontekstu pamięci procesu i powinna być stale dostępna w pamięci Ze względu na duży rozmiar tablicy stron zazwyczaj stosuje stę tablice wielopoziomowe. Wskaźnik położenia tablicy najwyższego poziomu jest umieszczony w rejestrze procesora. Aktualnie używany fragment tablicy jest zwykle kopiowany w podręcznym buforze translacji.

jednego procesu. W architekturze PowerPC 601 jesl 16 rejestrów segmentów a w architckturz.e Intel 80386/Pentium 6 rejestrów segmentów

Strategie zarządzanie pamięcią

Przez strategie zarządzania pamięcią rozumiemy z.asadv kopiowania bloków informacji z pamięci wiórnęj dopnmięci głównej i aktualizacji pamięci wtórnej, a w szczególności

•    strategie polirania - decyzje kiedy powinno nastąpić załadowanie informacji od pamięci głównej

•    strategie przydziału - reguły i algorytmy wpasowania bloków informacji w wolne obszary pamięci głównej

•    strategie wymiany - reguły i algorytmy usuwania informacji z pamięci głównej

b) segmentacja

Segmentacja pamięci polega na podzieleniu całej pamięci na bloki danych zwane segmentami, o rozmiarach odpowiadających logicznym strukturom danych programu, definiowanych w przestrzeni adresów wirtualnych Translacja adresu polega na przekodowaniu części adresu wirtualnego VS (zwykle bardziej znaczącej części) na adres bazowy segmentu rzeczywistego RS Przekodowanie to odbywa się za pomocą tablicy opisów segmentów. Druga część adresu jest przemieszczeniem w obszarze segmentu ?.c względu na dowolny rozmiar segmentu adres rzeczywisty obiektu w pamięci powstaje inaczej niż w stronicowaniu poprzez zsumowanie adresu bazowego i przemieszczenia

Zarówno przy stosowaniu mechanizmu segmentacji jak i stronicowania podczas translacji adresu sprawdzana jesl obecność adresowanego bloku wirtualnego w pamięci rzeczywistej. Testuje się także prawa doslępu do tego bloku W przypadku braku segmentu lub strony w pamięci generowany jest wyjątek braku segmentu lub strony, którego obsługa wymaga skopiowanie tego bloku z pamięci masowej do pamięci głównej. Jeśli nie ma miejsca w pamięci głównej potrzebnego do skopiowania potrzebnego obszaru obsługa wyjątku powinna usunąć inny blok mniej potrzebny w tej chwili.

W przypadku niezgodności dostępu do strony (np próbujemy zapisywać na stronic lub segmencie udostępnionym w trybie tylko do odczytu) następuje blokada dostępu, która jest obsługiwana także w trybie wyjątku.

Stnmicowanie jest metodą dopasowania logicznej struktury programu do fizycznej struktury pamięci głównej, wskutek czego ochrona i dzielenie zasobów realizowane jest na poziomie pamięci. Segmentacja jest metodą dopasowania fizycznej struktury pamięci głównej do logicznej struktury programu, co umożliwia ochronę i dzielenie zasobów na poziomie ohiekiów programowych (segmentów).

Głównymi wadami stronicowania jesl ustalony rozmiar strony co powoduje fragmentację wewnętrzną pamięci (średnio pół strony na jeden proces jest nie wykorzystane) oraz konieczność zapamiętania osobnego opisu w tablicy stron dla każdej strony wirtualnej. Zmniejszenie rozmiaru strony powoduje lepsze wykorzystanie pamięci ale powoduje proporcjonalny wzrost rozmiaru tablicy stron. Rozwiązaniem jesl zastosowanie hierarchicznej organizacji tabel Przy tn-bilowym wirtualnym numerze strony oraz n-poziomowej strukturze tablic wystarczy zapamiętać n tablic o wielkości 2słów. gdzie p = m/n. Na przykład przy 32-bilowych adresach wirtualnych i stronic o rozmiarze 4kB trzeba zapamiętać I 048 576 deskryptorów z których każdy musi zawierać minimum 4 bajty (32-bitowy adres strony w pamięci głównej) Dwupoziomowa hierarchia tablic stron wymaga zapamiętania katalogu tablic o rozmiarze 1024 słów i tablicy stron bieżących tej samej wielkości. Alternatywnym rozwiązaniem jest pamiętanie tylko tych opisów fcióre identyfikują zbiór roboczy bieżącego procesu.

Główną wadą segmentacji jest zewnętrzna fragmentacja, pojawiająca się w wyniku wymiany segmentów w pamięci głównej Segment musi zajmować spójny obszar w pamięci i dlatego może być umieszczony tylko w wolnym obszarze pamięci o rozmiarze równym lub większym od jego rozmiaru. Przy częstej wymianie stron w pamięci pojawiają się nie wykorzystane dziury których usunięcie wymaga czasochłonnej relokacji segmentów w pamięci głównej

c) segmentacja stronicowana

Stronicowanie w obrębie segmentów zmniejsza zewnętrzną fragmentację pamięci i wymaga użycia mniejszej liczby tablic stron, bo do translacji adresu potrzebne są tylko opisy siron odpowiadających segmentem tworzącym zbiór roboczy procesu (rys 6.14, folia) Odmianą tej metody jest stosowana w systemach wieloprocesowych segmentacja logiczna, która polega na użyciu identyfikatora procesu jako wskaźnika listy segmentów wirtualnych VS Na poziomie Struktur procesu jest wówczas stosowane Stronicowanie

S. Mechanizmy przyśpieszające translację adresu

Przy stosowaniu stronicowania lub segmentacji każdy zwrot do pamięci wymaga poprzedzającego go odczytu tablic)' stron lub segmentów. Jeżeli tablice stron lub segmentów umieszczone są w pamięci głównej to czas dostępu do pamięci wydłuży się dwukrotnie Z zasady totalności wynika że jeśli w danej chwili z dużym prawdopodobieństwem możliwy jest szybki dostęp do zbioru roboczego procesu to rozmiar pamięci nie ma znaczenia Wystarczy więc udostępnić proc«owi m część tablicy translacji, która odpowiada adresom ze zbioru roboczego W(t,h).

Jedną z metod przyśpieszania translacji adresu jesi zastosowanie asocjacyjnych buforów antycypacji translacji (TLB tronslation lookaside buffers) Translacja adresu jest wynikiem skojarzenia wzorca adresu wirtualnego, umieszczonego w buforze TLB, z adresem wirtualnym użytym w programie Porównanie jest dokonywane jednocześnie z każdym wzorcem umieszczonym w buforze. Jeżeli skojarzenie nastąpi to z bufora pobierany jest rzeczywisty adres strony lub segmentu jeśli nie to następuje aktualizacja bufora w trybie obsługi wyjątku Istotny jest dobór rozmiaru bufora który powinien być na tyle duży aby mógł pomieścić wzorce należące do zbioru roboczego procesu ale też na tyle mały aby przeładowanie bufora było szybkie, jest on bowiem częścią kontekstu procesu. W celu przyśpieszenie translacji środkowa część adresu, zwykle po przekształceniu przez funkcję mieszającą (hashing function), jest używana do identyfikacji co pozwala ograniczyć porównanie do kilku lokacji. Do selekcji skojarzeń można wprawdzie użyć najniższych bitów adresów-wirtualnego ale rozwiązanie takie może prowadzić do wieloznaczności selekcji Bufor jest zwykle dwudrożny, co umożliwia jednoczesną identyfikację pary wzorców.Bufor TLB. umieszczony w układzie adresowym procesora, jest rodzajem pamięci skojarzeniowej adresów anej zawartością.

Sposobem zmniejszenia rozmiaru tablicy stron jest użycie odwróconej tablicy stron Tablica taka zawiera jeden opis każdej strony rzeczywistej Opis zawiera znacznik strony, adres strony wirtualnej i adres strony rzeczywistej. Znacznik (hash vafue) jest wyliczany na podstawie pól wirtualnego adresu strony za pomocą funkcji mieszającej (haihing function) Ponieważ funkcja mieszająca nic gwarantuje wytworzenia unikatowego znacznika, zatem możliwe jest wytworzenie identycznych znaczników dla różnych adresów wirtualnych Konieczne jest zatem porównanie adresu wirtualnego z wzorcem w polu VP (rys. 6.16, folia). W polu L podany jest wskaźnik wskazujący na lokację kolejnej potencjalnej konwer^i. której znacznik jest taki sam. W praktyce średnia długość testowanego łańcucha nie przekracza 2, choć możliwe są też przypadki odbiegające od lej średniej

Czas przeszukiwania odwróconej tablicy storn jest praktycznie nie zależny od liczby stron rzeczywistych, bo liczba koniecznych do sprawdzenia skojarzeń nie jest większa niż liczba jednakowych wyników przetworzenia adresów przez funkcję mieszającą i w praktyce nie przekracza dwóch powiązań. Wynika z tego że bardzo ważnym problemem jest dobór funkcji mieszającej Odwrócone tablice stron nie są stosowanie przy translacji adresów segmentów bo rozmiary segmentów są różne Nie zachodzi tu jednak potrzeba przechowywania rozbudowanych tablic ponieważ wystarczy umieścić w układzie adresowym procesora kopie opisów segmentów, skojarzone z aktualnie używanymi wskaźnikami segmentów. Takich wskaźników jest zazwyczaj kilkanaście dla

Michał Jur


Wyszukiwarka

Podobne podstrony:
Pamięć wirtualna Ponieważ translacja adresu wirtualnego następuje przy każdym kontakcie z pamięcią
W przypadku gdy chcemy wyznaczyć szerokość SWC dla temperatur przekraczających A3 w równaniach (1.16
skanuj0122 (12) 224 B. Cieślar W przypadku gdy kontur przekroju ma kształt wieloboku, wygodniej jest
Instrukcja do systemu tremolo2 Zakładanie strun w mostku typu Floyd Rosc rys. 6 ryu.7 rys. Ił rys 12
MechanikaB8 Drgania wymuszone. W przypadku, gdy oprócz sił sprężystości, na ciało wykonujące drgania
MECHANICZNE WŁAŚCIWOŚCI STAŁYCH POLIMERÓW Zachowanie sprężyste W przypadku, gdy w ciele sprężystym
81167 Mechanika68 Przyspieszenie w ruchu złożonym. Uwzględniamy dwa przypadki: •    g

więcej podobnych podstron