1 / 31

Systemy operacyjne

Systemy operacyjne. Wykład nr 10: Pamięć wirtualna. Piotr Bilski. Problem. Pamięć fizyczna jest niewystarczająca do pomieszczenia wszystkich procesów Procesy nie muszą być ładowane w całości do pamięci Część może być przechowywana na nośniku trwałym

brasen
Download Presentation

Systemy operacyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Systemy operacyjne Wykład nr 10: Pamięć wirtualna Piotr Bilski

  2. Problem • Pamięć fizyczna jest niewystarczająca do pomieszczenia wszystkich procesów • Procesy nie muszą być ładowane w całości do pamięci • Część może być przechowywana na nośniku trwałym • Wirtualna pamięć adresowa ułatwia pisanie programów i zarządzanie procesami

  3. Pamięć wirtualna • Umożliwia odseparowanie pamięci logicznej użytkownika od pamięci fizycznej • Umożliwia procesom dzielenie plików i pamięci • Jest implementowana poprzez stronicowanie na żądanie lub segmentację na żądanie

  4. Strona 0 Strona 1 Strona 2 Pamięć trwała Mechanizmy odwzorowania pamięci (tablice) Strona n Pamięć fizyczna ulotna Pamięć wirtualna Ilustracja działania pamięci wirtualnej

  5. Stronicowanie na żądanie • Proces jest przechowywany w pamięci głównej lub pomocniczej • Leniwa wymiana – mechanizm sprowadzania tylko tych fragmentów procesu, które są aktualnie potrzebne • Procedura stronicująca odpowiada za sprowadzanie poszczególnych stron

  6. Aspekty stronicowania na żądanie • Przy wymianie procesu system „zgaduje”, które strony załadować do pamięci • Wykorzystana jest zasada lokalności odniesień • Brak strony przy pobraniu argumentu rozkazu wymaga powtórnego pobrania rozkazu, zdekodowania i wykonania • Dążenie do ograniczenia rozmiary obszaru wymiany

  7. Wsparcie sprzętowe stronicowania • Tablica stron + bit poprawności („poprawny” – strona jest w pamięci, „niepoprawny” – strona jest na dysku, lub nie należy do procesu) • Gdy strona jest poza pamięcią operacyjną, dostęp do niej uaktywnia pułapkę braku strony • Pamięć pomocnicza przechowuje strony nie mieszczące się w pamięci operacyjnej • Możliwość wznowienia rozkazu po wystąpieniu braku strony

  8. Ilustracja stronicowania na żądanie 0 1 2 3 4 A B pnpnnpnn 4 0 1 2 3 4 5 6 7 C D E 6 A B A 5678 D F C E C 9 F G H 9 F Pamięć trwała Mechanizmy odwzorowania pamięci (tablice) Pamięć logiczna

  9. Obsługa braku strony START Sprawdź wewnętrzną tablicę Odwołanie dozwolone? NIE Zakończ proces TAK Sprowadź stronę Zaktualizuj tablicę

  10. Obsługa braku strony (c.d.) System operacyjny Odniesienie do pamięci pomocniczej pułapka odniesienie Umieść M i wznowienie Wolna ramka Sprowadzenie brakującej strony Tablica stron Aktualizacja tablicy stron Pamięć logiczna

  11. Parametry stronicowania na żądanie • Efektywny czas dostępu tea: p – prawdopodobieństwo braku strony tma – czas dostępu do pamięci (np. 100 ns) tpf – czas obsługi braku strony (np. 25 ms) • Jest proporcjonalny do częstości braków stron

  12. Tworzenie procesu a pamięć wirtualna • Wymagane jest sprowadzenie strony z pierwszym rozkazem • Dwie techniki wspomagające: • Kopiowanie przy zapisie • Pliki odwzorowywane w pamięci operacyjnej

  13. Kopiowanie przy zapisie • Technika umożliwiająca ominięcie stronicowania na żądanie podczas użycia funkcji fork • Po rozwidleniu nie tworzy się kopii przestrzeni adresowej – oba procesy współdzielą te same strony • Przydzielanie nowych stron odbywa się dopiero podczas próby zapisu zawartości strony • Wolne strony są przydzielane z puli • Strony przed przydzieleniem są zerowane (zerowanie na żądanie)

  14. Pliki odwzorowane w pamięci operacyjnej • Dostęp do pliku może być realizowany jako dostęp do pamięci wirtualnej (odwzorowanie bloku dyskowego na strony) • Pierwszy dostęp do pliku skutkuje brakiem strony • Następne dostępy odbywają się poprzez sprowadzanie stron z blokami pliku • Metoda szybsza niż korzystanie z funkcji systemowych read() i write()

  15. Zastępowanie stron • W systemie wieloprogramowym sprowadzane są strony dla wielu procesów przy ograniczonej liczbie dostępnych ramek • Nadprzydział pamięci to przydział procesowi większej liczby stron, niż są jednocześnie wykorzystywane • Konieczne są algorytmy zastępowania stron

  16. Schemat podstawowy • Gdy wszystkie ramki są zajęte, jedna jest wybierana do nadpisania • Poprzednia zawartość wędruje z ramki na dysk, nowa z dysku do ramki (dwa dostępy do pamięci!) • Aby zmniejszyć liczbę dostępów wprowadza się bit zabrudzenia • Możliwe jest odwzorowanie dużej logicznej przestrzeni adresowej na małą przestrzeń fizyczną

  17. Zastępowanie metodą FIFO • Najprostszy algorytm, opcjonalnie korzystający ze wskazań czasu wprowadzenia strony do pamięci • Przykład działania: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 0 1 3 0 1 2 7 1 2 2 3 1 4 2 0 4 2 3 0 2 3 7 0 1 2 0 1 7 4 3 0 2 3 0 7 0

  18. Anomalia Belady’ego

  19. Zastępowanie optymalne • Najniższy możliwy współczynnik braków stron • Unika anomalii Belady’ego • Zastępowana jest ta strona, która najdłużej nie będzie używana 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 2 0 3 2 0 1 7 0 1 7 0 1 2 0 1 7 2 0 3 2 4 3 7 0

  20. Zastępowanie metodą LRU • Aproksymacja metody optymalnej • Zastępowana jest strona nieużywana od najdłuższego czasu 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 2 0 3 0 3 2 1 3 2 1 0 2 7 0 1 2 0 1 7 4 3 2 1 0 7 4 0 3 4 0 2 7 0

  21. Metoda LRU - problemy • Porządek ramek ustala się poprzez zastosowanie: • liczników – każda strona ma stowarzyszony licznik czasu, aktualizowany zawsze, gdy strona jest użyta. Usuwa się strony z najmniejszym wskazaniem licznika • stosu – ostatnio użyta strona jest umieszczana na szczycie. Usuwa się strony na spodzie (implementacja – dwukierunkowa lista) • Sprzęt na ogół zbyt kosztowny!

  22. Zastępowanie stron przybliżające metodę LRU • W większości systemów nie ma liczników ani stosu, ale można wprowadzić bit odniesienia, ustawiany, gdy nastąpiło użycie strony • Na początku pracy wszystkie bity są zerowane • Po pewnym czasie wiadomo, które strony były użyte, a które nie

  23. Algorytm dodatkowych bitów odniesienia • Z każdą stroną kojarzona jest pewna liczba bitów odniesienia (np. 8) • Przy każdym użyciu, skrajny lewy bit jest ustawiany, a pozostałe są przesuwane w prawo • Bity są używane do ilustracji historii użycia jako liczby całkowite bez znaku • Usuwana jest strona, której odpowiada najmniejsza liczba

  24. Algorytm drugiej szansy • Wybór strony do usunięcia odbywa się na zasadzie FIFO • Po wybraniu strony sprawdza się jej bit odniesienia • 0 – strona zostaje zastąpiona • 1 – strona jest pominięta (dostaje „drugą szansę”), jej bit się zeruje

  25. Ulepszony algorytm drugiej szansy • Wykorzystuje dwa bity: odniesienia i modyfikacji. Interpretuje się je następująco: • (0,0) – strona nieużywana i nie zmieniona • (0,1) – nieużywana, ale zmieniona (trzeba zapisać na dysku przed usunięciem) • (1,0) – używana i nie zmieniona (za chwilę znowu zostanie użyta) • (1,1) – używana i zmieniona

  26. Zastępowanie stron oparte na zliczaniu • Wykorzystują liczniki odniesień do strony • Główne metody: • Zastępowanie strony najrzadziej używanej (LFU) • Zastępowanie strony najczęściej używanej (MFU) • Metody są kosztowne i nie przybliżają algorytmu optymalnego zbyt dobrze

  27. Przydział ramek • System jednoużytkownikowy: • Prosty algorytm zastępowania stron • Proces użytkownika dostaje dowolną dostępną ramkę • System wieloużytkownikowy: • Minimalna liczba ramek przydzielonych dla procesu (wyznaczona przez strukturę rozkazu), np. rozkaz jednoadresowy potrzebuje dwóch ramek, adresowanie pośrednie wymaga dodatkowej ramki itd. • Liczba poziomów adresowania pośredniego!

  28. Algorytmy przydziału ramek w systemie wieloprogramowym • Przydział równy - rozdzielenie ramek równo między n procesów (nadwyżka zostaje buforem wolnych ramek) • Przydział proporcjonalny – dla procesów różnej wielkości: ai=si / S*m=si / Σsi*m • Uwzględnienie priorytetów!

  29. Przydział lokalny i globalny • Przydział globalny – wszystkie ramki dostępne dla procesu (nawet przydzielone innemu procesowi!) – lepszy! • Przydział lokalny – wybór tylko ze zbioru ramek przydzielonych do tego procesu

  30. Szamotanie • Zjawisko ciągłego występowania braków stron ze względu na przydział zbyt małej liczby ramek • Zależy od stopnia wieloprogramowości • Istotne ograniczenie wydajności • Wykorzystanie procesora maleje (bo procesy głównie czekają na przydział stron), więc planista zwiększa stopień wieloprogramowości • Wzrasta czas dostępu do pamięci

  31. Ilustracja szamotania szamotanie Wykorzystanie procesora Stopień wieloprogramowości

More Related