SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pami wirtualna i

  • Slides: 28
Download presentation
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE Pamięć wirtualna i plik wymiany.

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

KONCEPCJA PAMIĘCI WIRTUALNEJ Systemy operacyjne i wykonywane pod ich nadzorem programy są zazwyczaj w

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.

W przypadku procesorów Intel, tryb rzeczywisty adresowania (wykorzystywany przez system operacyjny DOS) umożliwia zaadresowanie

W przypadku procesorów Intel, tryb rzeczywisty adresowania (wykorzystywany przez system operacyjny DOS) umożliwia zaadresowanie jedynie około 1 MB 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 80286 i późniejszych można obsługiwać nadmiar na 21 -szym bicie).

Procesory Intel o numerach 80286 i wyższych w ramach zapewniania kompatybilności udostępniają tryb rzeczywisty

Procesory Intel o numerach 80286 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.

Procesor 80286 pracujący w trybie chronionym, ma możliwość zaadresowania 16 MB pamięci fizycznej. Procesory

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

Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć

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?

Architektura i organizacja Jest mała i szybka pamięć operacyjna i duża lecz wolna pamięć

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?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Adresowanie pamięci wirtualnej Katalog stronic Oddzielny dla każdego procesu do 1024 PDE Tablica stronic

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

Koncepcja pamięci wirtualnej sprowadza się do symulowania większej ilości pamięci operacyjnej przy użyciu szybkiej

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.

Menedżer pamięci wirtualnej. • obsługuje mechanizm pamięci wirtualnej w systemie – odwzorowuje wirtualną przestrzeń

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

Aby móc zaimplementować pamięć wirtualną, należy wydzielić na dysku odpowiednio dużą partycję lub plik

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.

Uwaga Dostęp systemu operacyjnego do przestrzeni wymiany na dysku jest na ogół dużo szybszy,

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).

Najczęściej stosowanym sposobem implementacji pamięci wirtualnej jest stronicowanie na żądanie (demand paging). W tym

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”).

Fizyczna realizacja stronicowania na żądanie opiera się na istnieniu w każdej pozycji tablicy stron

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.

Realizacja segmentacji na żądanie wygląda podobnie - również oparta jest na istnieniu bitów poprawności

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 80286 – na przykład OS / 2.

Mechanizmem umożliwiającym zabezpieczenie strony przedwczesnym usunięciem jej z pamięci operacyjnej może być bit blokowania

Mechanizmem umożliwiającym zabezpieczenie strony 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.

Procesy użytkowników mogą z „egoistycznych pobudek” starać się nadużywać mechanizmu blokowania stron w pamięci.

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.

Zarządzanie pamięcią stronicowaną bazuje na dwupoziomowej strukturze: Katalog tablic stron procesu Tablica stron nr

Zarządzanie pamięcią stronicowaną bazuje na dwupoziomowej strukturze: Katalog tablic stron procesu Tablica stron nr 0 Tablica stron nr 1024 Strona Strona 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.

Korzyści z implementacji pamięci wirtualnej: 1) podobnie, jak w przypadku nakładkowania, w pamięci mogą

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 80286 umożliwiał realizację pamięci wirtualnej tylko w oparciu o mechanizm segmentacji. Procesory o numerach 80386 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.

Stronicowanie pamięci

Stronicowanie pamięci

Pytania

Pytania