Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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 80286 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. Własność tę wykorzystują systemy Windows, które umożliwiają wykonywanie (w wielu oknach) programów DOS-owych. Utrudnienie stanowi fakt, że niektóre programy DOS-owe nie zawsze korzystają z funkcji systemowych komunikując się z urządzeniami zewnętrznymi, ale, w imię przyspieszenia działania, bezpośrednio wykonują operacje na fizycznych portach i lokatach pamięci operacyjnej wykorzystywanych przez system. Takie programy nie mogą być uruchamiane pod systememami Windows, gdyż systemy te (jak wszystkie przeznaczone do pracy w trybie chronionym) zapewniają ochronę pamięci i sterowników urządzeń zewnętrznych.
5
Procesor 80286 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 = B = B MB = B (ponad 1 milion bajtów) 1 GB = B (ponad 1 miliard bajtów) 1 TB = B (ponad 1 bilion bajtów) 10 20 Procesor pracujący w trybie chronionym (stosujący deskryptorowy tryb obliczania adresu fizycznego, umożliwiający ochronę pamięci), ma możliwość zaadresowania 16 MB pamięci fizycznej (choć jego sposób obliczania adresu teoretycznie umożliwiałby zaadresowanie 1 GB pamięci). Procesory o numerach i wyższych mogą zaadresować 4 GB pamięci fizycznej (choć teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = B = B MB = B (ponad 1 milion bajtów) 1 GB = B (ponad 1 miliard bajtów) TB = B (ponad 1 bilion bajtów) 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ę (stronicowanie jest dużo dogodniejszym narzędziem). 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. 30 40
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 Odczyt komórki o adresie 7
12
Architektura i organizacja
Pamięć wirtualna Odczyt komórki o adresie 7
13
Architektura i organizacja
Pamięć wirtualna Odczyt komórki o adresie 9
14
Architektura i organizacja
Pamięć wirtualna 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 Ramka stronic ….4096 bajtów Tablica stronic PTE 10 bitów 12 bitów 10 bitów Tablica stronic PTE
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. Procesor pracujący w trybie chronionym (stosujący deskryptorowy tryb obliczania adresu fizycznego, umożliwiający ochronę pamięci), ma możliwość zaadresowania 16 MB pamięci fizycznej (choć jego sposób obliczania adresu teoretycznie umożliwiałby zaadresowanie 1 GB pamięci). Procesory o numerach i wyższych mogą zaadresować 4 GB pamięci fizycznej (choć teoretycznie mogłyby adresować nawet do 64 TB pamięci). 1 KB = B = B MB = B (ponad 1 milion bajtów) 1 GB = B (ponad 1 miliard bajtów) TB = B (ponad 1 bilion bajtów) 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ę (stronicowanie jest dużo dogodniejszym narzędziem). 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. Aby móc zaimplementować pamięć wirtualną, należy wydzielić na dysku odpowiednio dużą partycję przeznaczoną na przestrzeń wymiany (swap file). W przestrzeni wymiany przechowywane są fragmenty logicznego obrazu pamięci, które aktualnie nie mieszczą się w pamięci operacyjnej. Translacja adresów jest teraz realizowana dwustopniowo: 1) przy użyciu rejestrów procesora i tablic deskryptorów następuje przeliczenie adresu logicznego na adres liniowy, który może odpowiadać pewnemu adresowi w fizycznej pamięci operacyjnej, bądź być adresem zewnętrznym (pojęcie pamięci wirtualnej w gruncie rzeczy odpowiada zakresowi adresów liniowych, który może być dużo większy od zainstalowanej pamięci fizycznej). 2) w przypadku, gdy adres liniowy jest adresem zewnętrznym, następuje przerwanie nazywane brakiem jednostki (missing item), w wyniku którego wykonywany jest podprogram sprowadzenia z dysku do pamięci operacyjnej brakującej jednostki (strony lub segmentu), a następnie (po zaktualizowaniu wpisów w tablicy deskryptorów) ostateczne obliczenie adresu fizycznego. W sytuacji, gdy w pamięci fizycznej brakuje miejsca na wpisanie jednostki sprowadzonej z dysku, system musi podjąć decyzję, jaką jednostkę czasowo przepisać z pamięci operacyjnej na dysk.
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”). 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”). Problemy, jakie trzeba rozstrzygnąć, to: 1) ile ramek wstępnie przydzielać każdemu procesowi ? 2) jaką politykę wymiany stron prowadzić, gdy nie ma już wolnych ramek w pamięci ? Algorytmy, które rozwiązują te problemy, nazywane są odpowiednio algorytmami wstępnego przydziału i algorytmami zastępowania. Jeśli na początku działania procesy nie mają przydzielanych żadnych ramek, mówimy o czystym stronicowaniu na żądanie. Wstępny przydział ramek nie musi być taki sam dla wszystkich procesów - może zależeć od wielkości jego programu, od priorytetu, logicznej struktury lub danych na temat jego wcześniejszych wykonań.
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. 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. Ponieważ sprowadzenie strony do pamięci jest czasochłonne, należy zadbać o to, żeby choć przez pewien czas była ona wykorzystana. 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.
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. 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. Ponieważ sprowadzenie strony do pamięci jest czasochłonne, należy zadbać o to, żeby choć przez pewien czas była ona wykorzystana. 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 Tablica stron nr Tablica stron nr 1024 Strona Strona Strona Strona Strona 4 KB KB KB KB 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. 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 Daj możliwość zadania pytań dotyczących prezentacji.
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.