Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Zarządzanie pamięcią — przykłady realizacji we współczesnych systemach operacyjnych Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Systemy operacyjne.

Podobne prezentacje


Prezentacja na temat: "Zarządzanie pamięcią — przykłady realizacji we współczesnych systemach operacyjnych Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Systemy operacyjne."— Zapis prezentacji:

1 Zarządzanie pamięcią — przykłady realizacji we współczesnych systemach operacyjnych Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Systemy operacyjne

2 Zarządzanie pamięcią — przykłady realizacji (2) Plan wykładu Jednostka zarządzania pamięcią w architekturze IA-32 Zarządzanie pamięcią w systemie Windows 2000/XP Zarządzenie pamięcią w systemie Linux

3 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (3) Zarządzanie pamięcią w architekturze IA-32 Fizyczna przestrzeń adresowa — 4 GB (w nowszych procesorach 64 GB, dzięki 4-bitowemu rozszerzeniu) Segmentacja lub stronicowanie (2-poziomowe, od Pentium II również 1-poziomowe) przestrzeni logicznej Stronicowanie 2-poziomowe –poziom 1: katalog stron — 1024 wpisy 32-bitowe –poziom 2: tablica stron — 1024 wpisy 32-bitowe –rozmiar strony — 4 KB Stronicowanie 1-poziomowe –rozmiar strony — 4 MB

4 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (4) Schemat adresowania w architekturze Intel IA-32 — segmentacja tablica segmentów + adres logiczny adres liniowy selektor  NT błąd granica baza adres s d p o

5 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (5) Schemat adresowania w archit. Intel IA-32 — stronicowanie d p o katalog stron tablica stron ramka pamięci dpo

6 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (6) Selektor segmentu indeks TIRPL indeks w tablicy segmentów lokalizacja tablicy segmentów lokalna/globalna pierścień ochrony

7 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (7) Adres liniowy strona 1221 offset 011 katalog 2231 indeks w katalogu stron indeks w tablicy stron adres na stronie

8 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (8) Wpis w katalogu stron AVL adres ramki (bity 31  12) 318 PS A 5 PCD 4 PWT 3 US 2 RW 1 P adresami ramki z tablicą stron do wykorzystania przez system rozmiar strony/ramki bit odniesienia dostępność do zapisu i odczytu bit poprawności (obecności)

9 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (9) Wpis w tablicy stron AVL adres ramki (bity 31  12) 3187 D 6 A 5 PCD 4 PWT 3 US 2 RW 1 P adresami ramki z tablicą stron do wykorzystania przez system bit modyfikacji bit odniesienia dostępność do zapisu i odczytu bit poprawności (obecności)

10 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (10) Deskryptor segmentu rodzaj AVL baza (bity 15  0) baza (23  16) S 12 DPL P 15 granica (19  16) D/B G baza (31  24) 2422 granica (bity 15  0) bit poprawności (obecności) rodzaj zawartości bit granulacji

11 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (11) Zarządzanie pamięcią w systemie Windows 2000/XP

12 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (12) Układ przestrzeni adresowej 0 2 GB 4 GB prywatna część procesu tablica stron

13 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (13) Obraz pamięci procesu 64KB (0 – FFFF) — obszar niedostępny 2GB–192 KB (10000 – 7FFEFFFF) — przestrzeń adresowa procesu 4KB (7FFDE000 – 7FFDEFFF) — blok środowiska wątku dla pierwszego wątku 4KB (7FFDF000 – 7FFDFFFF) — blok środowiska procesu 4KB (7FFE0000 – 7FFE0FFF) — współużytkowana strona danych użytkownika 60KB (7FFE1000 – 7FFEFFFF) — obszar niedostępny 64KB (7FFF0000 – 7FFFFFFF) — obszar niedostępny

14 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (14) Adresowanie pamięci Zarządzanie pamięcią opiera się na stronicowaniu z wymianą stron pomiędzy pamięcią główną a dyskiem (plikami, w tym plikiem wymiany). Stronicowanie jest 2-poziomowe (architektura IA-32) 32-bitowy adres logiczny składa się z: –indeksu katalogu stron (PDE) — 10 bitów –indeksu tabeli stron (PTE) — 10 bitów –indeksu bajtów — 12 bitów  rozmiar strony 4KB. Każdy proces ma własny katalog stron oraz adresowane za jego pośrednictwem tablice stron.

15 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (15) Struktury danych na potrzeby stronicowania Katalog stron Tablica stron Tablica stron pliku stronicowania — opis strony w pliku stronicowania Baza ramek stron — informacje o wszystkich ramkach, na potrzeby zarządcy VM

16 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (16) Zarządzanie stronami procesu Stan strony (wirtualnej) procesu: –wolna (ang. free) — strona nie jest używana, –zatwierdzona (ang. committed) — dla strony jest zdefiniowane (potencjalne) odwzorowanie na zasoby pamięci systemu, –zarezerwowana (ang. reserved) — strona nie jest używana i nie może zostać użyta aż do momentu usunięcia rezerwacji. Po utworzeniu procesu żadnej jego strony nie ma w pamięci fizycznej. Sukcesywne ich sprowadzanie następuje w wyniku błędów strony przy próbie dostępu.

17 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (17) Przykład odwzorowania stron procesu na zasoby pamięci prog. proc. A proc. B plik wym. dane stos dane stos bibliot. bib.dll prA.exe prB.exe

18 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (18) Wymiana stron Algorytm wymiany oparty jest na zbiorze roboczym (stronicowanie dynamiczne, zastępowanie lokalne) Zbiór roboczy każdego procesu ma swoje dolne i górne ograniczenie określane odpowiednio jako: –minimum zbioru roboczego — 20 – 50 ramek –maksimum zbioru roboczego — 45 – 345 ramek. Początkowa liczba ramek wynosi 30, ale zmienia się w zależności od częstości generowania błędów strony i aktualna liczba ramek może wykraczać poza ograniczenie dla zbioru roboczego. Algorytm sprowadzania wykorzystuje wstępne stronicowanie statyczne (do 8 stron) oparte na lokalności przestrzennej (zbliżonych numerach stron).

19 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (19) Zarządzanie ramkami pamięci fizycznej zmodyfikowana (ang. modified) czuwająca (ang. standby) wolna (ang. free) wyzerowana (ang. zeroed) poprawna (w zbiorze roboczym) usunięcie strony ze zbioru rob. miękki błąd strony dealok. pamięci zapis strony potrzebna dodatkowa ramka potrzebna ramka dla sprowadz. strony zerowanie ramki zakończ. proc.

20 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (20) Błąd strony Zaadresowanie nie zatwierdzonej strony — błąd krytyczny. –Potrzeba powiększenia stosu — konieczne jest przydzielenie wyzerowanej ramki. Naruszenie ochrony — błąd krytyczny. –Próba zapisu strony współdzielonej dostępnej tylko do odczytu — jeśli strona ma być kopiowana przy zapisie konieczne jest utworzenie kopii. Zaadresowanie zatwierdzonej strony, nie odwzorowanej aktualnie w przestrzeni adresowej procesu (nieważnej) — typowy błąd strony.

21 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (21) Zarządzanie zbiorem roboczym W przypadku wystąpienia błędu strony: –jeśli liczba przydzielonych ramek jest mniejsza do minimum zbioru roboczego, na potrzeby sprowadzanej strony przydzielana jest dodatkowa ramka, –jeśli liczba przydzielonych ramek jest większa niż maksimum zbioru roboczego, proces nie otrzymuje następnej ramki (następuje wymiana ramek, traci ramkę zanim otrzyma nową ze sprowadzoną stroną), –jeśli liczba przydzielonych ramek mieści się w zakresie ograniczenia, decyzja (wymiana lub przydział dodatkowej ramki) zależy od dostępności wolnych ramek pamięci fizycznej.

22 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (22) Wybór ramki ofiary Wybór procesu — ustalenie kolejności procesów, którym będą odbierane ramki (duże i długo bezczynne w pierwszej kolejności, pierwszoplanowy na końcu) Ustalenie liczby odbieranych ramek — zależnie od rozmiary pamięci, zajętości pamięci, bieżącej wielkości zbioru roboczego w stosunku do minimum i maksimum Wybór ramek (stron) procesu do zwolnienia –w systemie jednoprocesorowym usuwany są strony najdłużej nieużywane (  algorytm postarzania), –w systemie wieloprocesorowym stosowany jest algorytm FIFO.

23 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (23) Postarzanie stron Za wybór ramki ofiary odpowiedzialny jest wątek systemowy working set manager uruchamiany przez balans set manager w przypadku małej liczby wolnych ramek. Wątek working set manager przegląda strony pamięci znajdujące się w zbiorach roboczych kolejnych procesów między innymi w celu ustalenia wieku strony wg. zasady: –Jeśli bit odniesienie jest ustawiony, jest on kasowany a wiek strony jest zerowany. –Jeśli bit odniesienie jest skasowany, wiek strony zwiększany jest o 1.

24 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (24) Zarządzanie pamięcią w systemie Linux

25 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (25) Informacje podstawowe Wykorzystywane jest stronicowanie 3-poziomowe: –PGD — główny katalog stron –PMD — pośredni katalog stron (nie używany w IA-32) –PT — tablica stron Jądro na stałe rezyduje w pamięci –dynamiczne ładowane są tylko pewne moduły (związane najczęściej z obsługą urządzeń wejścia- wyjścia) Wymiana pomiędzy pamięcią pierwszego i drugiego rzędu stron dotyczy tylko stron procesów użytkownika.

26 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (26) Układ przestrzeni adresowej 0 3 GB 4 GB prywatna część procesu tablica stron i inne dane jądra

27 Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji (27) Postarzanie stron Dla każdej strony utrzymywana jest 8-bitowa wartość modelująca intensywność odniesień do strony, zwana wiekiem strony. Strony są okresowo przeglądane i w zależności od wartości bitu odniesienia wiek jest –zwiększany o 3, gdy bit odniesienia jest ustawiony, –zmniejszany do połowy (dzielony przez 2), gdy bit odniesienia jest skasowany. Jako ofiara wybierana jest strona, dla której wiek ma wartość najmniejszą


Pobierz ppt "Zarządzanie pamięcią — przykłady realizacji we współczesnych systemach operacyjnych Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Systemy operacyjne."

Podobne prezentacje


Reklamy Google