Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany.

Podobne prezentacje


Prezentacja na temat: "SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany."— Zapis prezentacji:

1 SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany.

2 KONCEPCJA PAMIĘCI WIRTUALNEJ Systemy operacyjne i wykonywane pod ich nadzorem programy są zazwyczaj w stanie wykorzystać dużo większą przestrzeń adresową, niż umożliwia to fizyczna pamięć operacyjna wbudowana w komputer. Ponadto może występować duża różnica pomiędzy możliwościami adresowania wynikającymi z formatu rozkazów procesora (i wielkości jego rejestrów), a możliwościami wynikającymi z szerokości szyny adresowej.

3 W przypadku procesorów Intel, tryb rzeczywisty adresowania (wykorzystywany przez system operacyjny DOS) umożliwia zaadresowanie jedynie około 1MB pamięci: Jeden segment: 64 KB (ustalona wielkość). 1 MB + Przesunięcie pomiędzy początkami kolejnych segmentów: 16 B. 64 KB - Adresowanie: segment : offset, gdzie zarówno numer segmentu, 16 B jak i wielkość offsetu (przesunięcie względem początku segmentu) są liczbami 16-bitowymi, a cały adres - 20-bitowy (w procesorach i późniejszych można obsługiwać nadmiar na 21-szym bicie).

4 Procesory Intel o numerach i wyższych w ramach zapewniania kompatybilności udostępniają tryb rzeczywisty jako jeden ze swoich trybów pracy. Oznacza to, że programy użytkowe przeznaczone do wykonywania na procesorze 8086 mogą być wykonywane również na procesorach o wyższych numerach. Procesory te udostępniają również tak zwany tryb wirtualny 8086, w którym wiele programów przeznaczonych dla trybu rzeczywistego może być współbieżnie (z podziałem czasu) wykonywanych w oddzielnych przestrzeniach adresowych o pojemnościach 1 MB. Własność tę wykorzystują systemy Windows, które umożliwiają wykonywanie (w wielu oknach) programów.

5 Procesor pracujący w trybie chronionym, ma możliwość zaadresowania 16 MB pamięci fizycznej. Procesory o numerach i wyższych mogą zaadresować 4 GB pamięci fizycznej (teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = 2 B = 1024 B 1 MB = 2 B (ponad 1 milion bajtów) 1 GB = 2 B (ponad 1 miliard bajtów) 1 TB = 2 B (ponad 1 bilion bajtów)

6 Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć dyskowa. Jak zbudować z nich pamięć, która byłaby duża i szybka ?

7 Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć dyskowa. Jak zbudować z nich pamięć, która byłaby duża i szybka ?

8 Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

9 Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

10 Architektura i organizacja Pamięć wirtualna Odczyt komórki o adresie 1

11 Architektura i organizacja Pamięć wirtualna 7 Odczyt komórki o adresie 7

12 Architektura i organizacja Pamięć wirtualna 7 Odczyt komórki o adresie 7

13 Architektura i organizacja Pamięć wirtualna 9 Odczyt komórki o adresie 9

14 Architektura i organizacja Pamięć wirtualna 9 Odczyt komórki o adresie 9

15 Adresowanie pamięci wirtualnej Katalog stronic Oddzielny dla każdego procesu do 1024 PDE PDE (4bajty) PDE Tablica stronic Do 1024 PTE PTE Tablica stronic PTE Tablica stronic PTE Ramka stronic ….4096 bajtów 10 bitów 12 bitów

16 Koncepcja pamięci wirtualnej sprowadza się do symulowania większej ilości pamięci operacyjnej przy użyciu szybkiej pamięci dyskowej. Może być zrealizowana zarówno w oparciu o stronicowanie, jak i o segmentację. Korzystanie przez system z pamięci wirtualnej nie powinno być dostrzegane przez programy wykorzystujące logiczną przestrzeń adresową. Realizacja pamięci wirtualnej musi być wspierana przez odpowiedni sprzęt.

17 Menedżer pamięci wirtualnej. obsługuje mechanizm pamięci wirtualnej w systemie –odwzorowuje wirtualną przestrzeń adresową na strony pamięci fizycznej komputera każdemu procesowi jest przydzielana wirtualna przestrzeń adresowa

18 Aby móc zaimplementować pamięć wirtualną, należy wydzielić na dysku odpowiednio dużą partycję lub plik przeznaczony na przestrzeń wymiany (swap file). Aby system operacyjny wiedział, czy zachodzi konieczność aktualizacji zapisu w przestrzeni wymiany na dysku w przypadku usuwania jednostki z pamięci operacyjnej, czy też nie, w opisach jednostek umieszczane są bity modyfikacji, nazywane też bitami zabrudzenia (dirty bit). W przypadku, gdy zawartość jednostki nie podlega modyfikacji, wartość tego bitu wynosi 0. Jeśli w jednostce został zmieniony choćby jeden bajt, bit modyfikacji jest ustawiany na 1.

19 Uwaga Dostęp systemu operacyjnego do przestrzeni wymiany na dysku jest na ogół dużo szybszy, niż dostęp do systemu plików, gdyż korzysta z dużo prostszych mechanizmów (może nie stosować buforowania ani skomplikowanych algorytmów wyszukiwania miejsca zapisu / odczytu).

20 Najczęściej stosowanym sposobem implementacji pamięci wirtualnej jest stronicowanie na żądanie (demand paging). W tym przypadku niektóre strony procesu (jego kodu i danych) mogą przebywać w pamięci operacyjnej, a niektóre na dysku. System operacyjny prowadzi leniwą politykę sprowadzania stron do pamięci - sprowadza je dopiero wtedy, gdy okażą się potrzebne (na żądanie procesu).

21 Fizyczna realizacja stronicowania na żądanie opiera się na istnieniu w każdej pozycji tablicy stron (w każdym opisie strony) bitu poprawności odniesienia, który informuje, czy dana strona przebywa aktualnie w pamięci operacyjnej (adres jest adresem wewnętrznym), czy też przebywa na dysku (adres jest adresem zewnętrznym). W tym drugim przypadku żądanie dostępu do strony generuje przerwanie (page fault). Po sprowadzeniu strony do pamięci (co ewentualnie może być związane z wymianą) system aktualizuje tablicę stron i kontynuuje wykonywanie przerwanego procesu.

22 Realizacja segmentacji na żądanie wygląda podobnie - również oparta jest na istnieniu bitów poprawności odniesienia w deskryptorach segmentów. Jest jednak algorytmicznie dużo trudniejsza (a zatem powolniejsza) ze względu na zmienną wielkość dziur w pamięci i ewentualną potrzebę ich okresowej komasacji. Segmentację na żądanie wykorzystywały systemy dedykowane procesorowi Intel – na przykład OS / 2.

23 Mechanizmem umożliwiającym zabezpieczenie strony przed przedwczesnym usunięciem jej z pamięci operacyjnej może być bit blokowania umieszczony w opisie strony. Ustawienie wartości tego bitu na 1 stanowi informację dla systemu operacyjnego, że strona czasowo nie powinna podlegać usuwaniu w ramach algorytmu wymiany. Stosowanie bitu blokowania może być przydatne zarówno w sytuacji oczekiwania na zakończenie transmisji danych czy współdzielenia strony, jak też w sytuacji, kiedy strona została dopiero co sprowadzona do pamięci przez jakiś proces i jeszcze nie była ani razu użyta. Jeżeli proces ma niski priorytet, mogłoby się zdarzyć, że inny, wysokopriorytetowy proces będzie usiłował pozbawić go od razu miejsca w pamięci.

24 Procesy użytkowników mogą z egoistycznych pobudek starać się nadużywać mechanizmu blokowania stron w pamięci. Z tego powodu systemy operacyjne często traktują ustawienie bitu blokowania jako blokowanie zalecane, nie blokowanie obowiązkowe i w sytuacji dużego spiętrzenia wysokopriorytetowych procesów mogą same podejmować ostateczną decyzję co do trzymania strony w pamięci lub też jej usunięcia.

25 Zarządzanie pamięcią stronicowaną bazuje na dwupoziomowej strukturze: Katalog tablic stron procesu Tablica stron nr 0 Tablica stron nr 1 Tablica stron nr 1024 Strona Strona Strona Strona Strona 4 KB 4 KB 4 KB 4 KB 4 KB Zarówno katalog, jak i pojedyncza tablica stron mogą zawierać do 1024 wpisów. Strona może przebywać w pamięci operacyjnej lub w pliku na dysku. Procesy uprzywilejowane mają prawo zabronić usuwania wybranych stron z pamięci do pliku. Strony posiadają atrybuty, które informują o stopniu ich ochrony (na przykład read-only). Procesy mogą współdzielić obiekty pamięci, w których mogą mieć odwzorowane fragmenty swoich przestrzeni adresowych.

26 Korzyści z implementacji pamięci wirtualnej: 1) podobnie, jak w przypadku nakładkowania, w pamięci mogą być przechowywane jedynie fragmenty kodów programów, a nie całe kody; 2) programiści tworzący bardzo duże programy nie muszą wnikać w organizację wymiany ich fragmentów pomiędzy pamięcią operacyjną a pamięcią zewnętrzną; 3) można równolegle wykonywać więcej procesów, niż wynika to z ograniczeń narzucanych przez rozmiar pamięci operacyjnej, co polepsza wykorzystanie sprzętu i zwiększa wydajność systemu. Procesor Intel umożliwiał realizację pamięci wirtualnej tylko w oparciu o mechanizm segmentacji. Procesory o numerach i wyższych umożliwiają implementację pamięci wirtualnej zarówno w oparciu o segmentację, jak i stronicowanie, przy czym zdecydowanie zalecany jest ten drugi sposób.

27 Stronicowanie pamięci

28 Pytania


Pobierz ppt "SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany."

Podobne prezentacje


Reklamy Google