Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Podobne dokumenty
SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

Podstawy. Pamięć wirtualna. (demand paging)

Stronicowanie w systemie pamięci wirtualnej

dr inż. Jarosław Forenc

Systemy Operacyjne Pamięć wirtualna cz. 1

Zarządzanie pamięcią operacyjną

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Systemy operacyjne III

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Zarządzanie pamięcią w systemie operacyjnym

Systemy Operacyjne Pamięć wirtualna cz. 2

Zarz arz dzanie pam dzanie ięci ę ą

Od programu źródłowego do procesu

Programowanie współbieżne Wykład 2. Iwona Kochańska

Pamięć wirtualna. Pamięć wirtualna

Zarz arz dzanie pam dzanie ięci ę ą

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Zarządzanie pamięcią operacyjną i pamięć wirtualna

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Architektura komputerów

Działanie systemu operacyjnego

Od programu źródłowego do procesu

TEMAT 5 Zarządzanie pamięcią operacyjną

Działanie systemu operacyjnego

Architektura komputerów

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Zarządzanie zasobami pamięci

Stronicowanie na ¹danie

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

sprowadza się od razu kilka stron!

Pamięć wirtualna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Działanie systemu operacyjnego

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Budowa systemów komputerowych

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Technologie informacyjne (2) Zdzisław Szyjewski

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

1. Rola pamięci operacyjnej

Wykład 7. Zarządzanie pamięcią

Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku).

Architektura i administracja systemów operacyjnych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

ARCHITEKTURA PROCESORA,

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Schematy zarzadzania pamięcia

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Działanie systemu operacyjnego

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Architektura komputerów

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

Mikroprocesor Operacje wejścia / wyjścia

Systemy operacyjne system przerwań

projektowanie systemu

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

System pamięci. Pamięć wirtualna

Spis treści. 1 Moduł Modbus TCP 4

Pytania do treści wykładów:

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Struktura systemów komputerowych

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

Metody obsługi zdarzeń

System pamięci. Pamięć wirtualna

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

dr inż. Jarosław Forenc

1 Moduł Modbus ASCII/RTU

Tworzenie pliku Zapisywanie pliku Czytanie pliku Zmiana pozycji w pliku Usuwanie pliku Skracanie pliku

Prezentacja systemu RTLinux

Mikroinformatyka. Wielozadaniowość

Przerwania, polling, timery - wykład 9

KOMPONENTY SYSTEMÓW OPERACYJNYCH

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

Sortowanie zewnętrzne

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

System plików. Warstwowy model systemu plików

Systemy operacyjne III

Tadeusz Pankowski

Logiczny model komputera i działanie procesora. Część 1.

Organizacja typowego mikroprocesora

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Transkrypt:

Pamięć wirtualna Jan Tuziemski Źródło części materiałów: os-book.com

Pamięć wirtualna Na poprzednich wykładach omówiono sposoby zarządzania pamięcią Są one potrzebne ponieważ wykonywane rozkazy procesów muszą być umieszczone w pamięci fizycznej

Pamięć wirtualna Nakłada to ograniczenia na rozmiar wykonywanych procesów Rzeczywiste procesy nie wykorzystują w pełni przydzielonej im pamięci Moduły obsługi błędów Zmienne nie są wykorzystane w pełni Pewne części procesów są wykorzystywana rzadko

Pamięć wirtualna Wykonywanie procesu częściowo znajdującego się w pamięci jest korzystne: Brak ograniczeń ze względu na rozmiar pamięci fizycznej Więcej dostępnego miejsca w pamięci fizycznej dla innych użytkowników Mniejsza liczba operacji ładowanie/wymiany procesów z pamięci operacyjnej

Pamięć wirtualna Pamięć wirtualna: odseparowanie pamięci logicznej od pamięci fizycznej. Umożliwia utworzenie pamięci wirtualnej o większym rozmiarze niż pamięć fizyczna.

Przykładowy schemat Pamięć wirtualna

Pamięć wirtualna Główne sposoby realizacji Stronicowanie na żądanie Segmentacja na żądanie

Stronicowanie na żądanie Proces (zbiór stron) przebywa w pamięci pomocniczej (np. dysk) Do pamięci wprowadzane są jedynie potrzebne strony (a nie wszystkie strony procesu) Jest to procedura leniwej wymiany nazywana również procedurą stronicującą ang. pager (wymianie podlegają wyłącznie potrzebne strony procesu)

Stronicowanie na żądanie Przykładowy schemat

Pojęcia podstawowe Do pamięci ładowane są jedynie strony niezbędne Należy odróżnić strony procesu przebywające w pamięci i na dysku W tym celu stosuje się bit poprawności (poprawne - strona w pamięci operacyjnej niepoprawne strona na dysku lub poza logiczną przestrzenią procesu)

Pojęcia podstawowe Przykładowy schemat

Pojęcia podstawowe Jeżeli proces korzysta tylko ze stron umieszczonych w pamięci (poprawnych), wtedy jego wykonanie przebiega tak jakby cały znajdował się w pamięci Użycie strony nieznajdującej się w pamięci uaktywnia pułapkę braku strony

Pułapka braku strony Postępowanie związane z brakiem strony: 1. Określenie czy odwołanie do pamięci było dozwolone czy nie (np. blok kontrolny procesu) 2. Jeżeli nie to proces jest zakończany. 3. Jeżeli tak to strona jest sprowadzana do pamięci 4. Wyszukana zostaje wolna ramka (np. z listy wolnych ramek)

Pułapka braku strony 4. Następuje zamówienie przeczytania z dysku potrzebnej strony do nowo przydzielonej ramki 5. Modyfikacja tablicy stron (bitu poprawności) 6. Wznowienie wykonanie przerwanego rozkazu

Pułapka braku strony Przykładowy schemat

Pułapka braku strony Dzięki przechowaniu stanu procesu jego wznowienie jest możliwe dokładnie w tym samym miejscu i stanie, w którym nastąpiło jego przerwanie Za wczytywanie stron odpowiedzialny jest OS

Pułapka braku strony W skrajnym przypadku żadna ze stron procesu nie jest ładowana do pamięci Oznacza to konieczność sekwencyjnego ładowania stron Ten sposób określa się czystym stronicowaniem na żądanie

Pułapka braku strony Teoretycznie możliwe jest by do wykonania rozkazu potrzebne było kilka nowych stron Taka konieczność pociągałaby za sobą obniżenie sprawności systemu Empiryczna analiza pokazuje, że do takich sytuacji dochodzi rzadko (mówi się o lokalność odniesień)

Rozwiązanie sprzętowe W jego skład wchodzi: Tablica stron z wektorem bitów poprawności lub bitów ochrony Pamięć pomocnicza przechowująca strony nie będące w pamięci fizycznej, nazywana urządzeniem wymiany a fragment dysku obszarem wymiany

Sprawność stronicowania na żądanie Stronicowanie na żądanie może prowadzić do spowolnienia systemu Efektywny czas dostępu do pamięci Czas dostępu do pamięci 200ns Obsługa pułapki barku strony 24ms (czyli 120,000 razy dłużej niż normalny czas dostępu) Na ten czas składa się wiele elementów, dominuje czas przełączania strony (czytanie z dysku)

Sprawność stronicowania na żądanie p oznacza prawdopodobieństwo braku strony (1-p)* 200ns +p*24 ms Załóżmy p=0,001 Otrzymujemy ok 45000ns czyli 225 krotny wzrost czasu dostępu W wydajności kluczową rolę odgrywa p, musi być na bardzo niskim poziomie

Zastępowanie stron By wykorzystać pamięć w najefektywniejszy sposób ładuje się do niej wiele procesów, których część stron pozostaje w pamięci dodatkowej Pamięć fizyczna nie jest przeznaczona wyłącznie do obsługi procesów

Zastępowanie stron Jak należy postąpić jeżeli wystąpi pułapka braku strony, a w pamięci fizycznej nie będzie wolnego miejsca?

Zastępowanie stron 1. Zwolnić pamięć wykorzystywaną do obsługi operacji I/O (złożone zagadnienie) 2. Umieszczenie procesu żądającego więce pamięci w kolejce oczekujących procesów 3. Zupełna wymiana pewnego procesu z pamięci, pozwalająca odzyskać zasoby 4. Wyszukanie strony w pamięci, która nie jest aktualnie używana i przeniesienie jej na dysk. Nazywane zastępowaniem stron. Najczęściej stosowana metoda.

Zastępowanie stron Przykładowy schemat

Zastępowanie stron schemat podstawowy Procedura 1. Lokalizacja potrzebnej ramki na dysku 2. Znalezienie wolnej ramki w pamięci Użycie znalezionej ramki Jeżeli nie ma wolnej ramki, wykonuje się algorytm poszukiwania ramki ofiary Ramka ofiara zapisywana jest na dysk, tablica stron i ramek jest zmieniana 3. Wczytanie potrzebnej strony do świeżo zwolnionej ramki. 4. Wznowienie działania procesu

Zastępowanie strony schemat podstawowy Przykładowy schemat

Zastępowanie strony W przypadku dwukrotnego braku wolnych ramek potrzebne jest dwukrotne przesyłanie strony. By zmniejszyć całkowitą liczbę przesyłanych stron można zastosować bit modyfikacji (zabrudzenia) Informuje on o tym czy dana strona była modyfikowana od ostatniego przeczytania z dysku. Jeżeli strona nie była modyfikowana, można ponownie nie zapisywać jej na dysku.

Realizacja stronicowania na żądanie W celu realizacji stronicowania należy opracować: Algorytm przydziału ramek Algorytm zastępowania stron Optymalizacja obu algorytmów polega na minimalizowaniu częstości braku stron.

Realizacja stronicowania na żądanie Algorytm ocenia się na podstawie wykonania go na pewnym ciągu odniesień do pamięci i zsumowaniu liczby braków stron Powszechne sposoby generowania ciągu odniesień: Wygenerowany losowo (np. według pewnego rozkładu charakteryzującego system) Specjalnie dobranych ciągów, pokazujących cechy charakterystyczne algorytmów (artykuły naukowe) Zapisywanie odwołań do pamięci rzeczywistego systemu operacyjnego

Realizacja stronicowania na żądanie Zapisywanie odwołań do pamięci rzeczywistego systemu operacyjnego Powoduje powstanie olbrzymiej ilości danych (miliony adresów na sekundę) Ilość danych można ograniczyć w oparciu o obserwacje: Ważny jest tylko numer strony, a nie odległość na stronie Jeżeli po odwołaniu do strony s następuje ponowne odwołanie do tej samej strony to nie ma możliwości wystąpienia błędu braku strony

Realizacja stronicowania na żądanie Przykład Rozmiar strony 100b Sekwencja odwołań: 0100, 0432, 0101, 0612, 0634, 0688, 0132, 0038, 0420 Wywołanie stron 1, 4, 1, 6, 1, 0, 4

Realizacja stronicowania na żądanie Liczba braku stron dla ciągu zależy od liczby dostępnych ramek Jeżeli dostępne są 3 ramki to ciąg 1, 4, 1, 0, 1, 6, 4 spowoduje 4 braki stron

Realizacja stronicowania na żądanie W dalszym ciągu będziemy korzystać z ciągu odniesienia: 7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,1 z trzema ramkami

Realizacja stronicowania na żądanie Zastępowanie metodą FIFO: Najstarsza strona w pamięci zostaje zastąpiona Łączna liczba braków: 15

Zastępowanie metodą FIFO Łatwy do zaprogramowania Wydajność niekoniecznie zadowalająca: Najstarsza strona w pamięci może być często używana Może to prowadzić do spadku wydajności

Zastępowanie metodą FIFO Wydajność niekoniecznie zadowalająca: Dla ciągu 1,2,3,4,1,2,5,1,2,3,4,5 występuje anomalia Belady ego (wykres): wzrost liczby braku stron ze wzrostem dostępności ramek

Optymalne zastępowanie stron Najniższy współczynnik barku stron ze wszystkich algorytmów Nazywany algorytmem OPT lub MIN Zasada działania: zastępowanie tej strony, która najdłużej nie będzie używana 9 braków

Optymalne zastępowanie stron Wada: wymaga wiedzy o przyszłych elementach ciągu odniesień Używany jest w studiach porównawczych gdzie zapewnia wartość referencyjną

Metoda LRU Przybliżenie algorytmu OPT Poprzednie algorytmy: Algorytm FIFO sprawdza czas sprowadzenia do pamięci Algorytm sprawdza czas do chwili użycia Zasada działania: zastąpienie strony która nie była użyta od najdłuższego czasu

Metoda LRU Schemat działania (12 braków) Porównanie z algorytmem OPT

Metoda LRU Sposoby implementacji: Licznik: każde odwołanie do pamięci zwiększa licznik jego aktualna wartość jest zapisywana w tablicy stron, dla strony do której następuje odwołanie Poszukuje się strony, dla której wartość licznika jest minimalna Problemy: przekroczenie zakresu licznika

Metoda LRU Sposoby implementacji: Stos: Ostatnio użyta strona umieszczana jest na górze stosu Strona najmniej używana będzie znajdować się na spodzie Implementacja zazwyczaj przy pomocy list dwukierunkowych (przyspiesza przesuwanie elementów ze środa stosu)

Przybliżona metoda LRU Pełna implementacja LRU wymaga wsparcia sprzętowego, które często nie jest dostępne Wiele systemów zapewnia się ograniczające wsparcie Najczęściej jest to bit odniesienia Wynosi 0 gdy nie było odwołań do strony i 1 w w przeciwnym wypadku Pozwala na odróżnienie stron nieużywanych od używanych od ostatniego zerowania bitów referencji w tablicy stron

Algorytm dodatkowych bitów odniesienia Każda strona zawiera 8-bitowy ciąg informujący o historii W regularnych okresach czasu dochodzi do zapisanie bitu referencji na lewej pozycji Pozostały ciąg jest przesuwany o jedno miejsce w prawo, ostatni bit jest tracony

Algorytm dodatkowych bitów odniesienia W każdej chwili czasu najdawniej używanej stronie odpowiada bajt o najmniejszej wartości Strona z rejestrem 1100101 była używana mniejszą ilość czasu temu niż 0000101 Ilość przechowywanych bitów i długość okresu uaktualniania może być dopasowywana

Algorytm drugiej szansy Jest to algorytm FIFO z dodatkowym odwołaniem do bitu odniesienia Jeżeli najstarsza strona w pamięci nie była ostatnio używana (bit odniesieni=0) strona jest usuwana Jeżeli najstarsza strona w pamięci była ostatnio używana (bit odniesieni=1) strona dostaje drugą szansę

Algorytm drugiej szansy Realizacja: kolejka cykliczna Wskaźnik na następną ofiarę Jeżeli bit odniesienia ofiary = 1, zostaje wyzerowany i wskaźnik przesuwa się dalej

Algorytm drugiej szansy

Ulepszony algorytm ostatniej szansy Korzysta z bitu odniesienia i bitu modyfikacji: (0,0) strona nie używana i nie zmieniona najlepsza do zastąpienia (0,1) ostatnio nie używana ale zmieniona wymaga zapisu na dysk (1,0) ostatnio używana ale nie zmieniona prawdopodobnie będzie potrzebna (1,1) ostatnio używana i zmieniona prawdopodobnie będzie potrzebna Ostatecznie do sprawdzenia 4 klasy

Zastępowanie stron oparte o zliczanie Na podstawie licznika odniesień do każdej ze stron: Zastępowanie stron najrzadziej używanych Zastępowanie stron najczęściej używanych

Buforowanie stron Algorytmy uzupełniające algorytmy zastępowania stron: Pula wolnych ramek: przy błędzie braku strony strona z pamięci ładowana jest do wolnej ramki a osobny algorytm usuwa stronę-ofiarę

Buforowanie stron Algorytmy uzupełniające algorytmy zastępowania stron: W momentach bezczynności zapisywanie zmienionych stron na dysk gdy zajdzie potrzeba ich usunięcia jest większa szansa, że nie trzeba będzie powtarzać tej czynności

Buforowanie stron Algorytmy uzupełniające algorytmy zastępowania stron: Utrzymywanie puli wolnych ramek i historii stron, które były w nich zapisane. Przy wczytywaniu strony z pamięci sprawdza się czy ramka, w której poprzednio znajdowała się strona została nadpisana. Jeżeli nie, nie ma potrzeby ładowania strony z pamięci.

Przydział ramek Jak rozdzielać ramki między procesy? Przydział minimalny: istnieje minimalna liczba ramek, która musi zostać przydzielona procesowi by mógł być wykonywany (zależne od architektury systemu) Przydział równy: przydzielanie każdemu procesowi określonej liczby ramek Przydział proporcjonalny: przydzielanie liczby ramek w zależności od rozmiaru/zapotrzebowania procesu

Przydział ramek Zastępowanie lokalne i globalne: Globalne: proces może otrzymać ramkę ze zbioru wszystkich ramek Lokalne: proces może otrzymać ramkę z puli ramek dla niego przeznaczonych Pomimo problemów (proces może wciąż odbierać ramki innym procesom), korzystniejszy jest wybór przydzielania globalnego

Szamotanie Występuje wówczas gdy w danym procesie wciąż wykazuje brak strony. Może prowadzić do tego, że więcej czasu upłynie na stronicowanie niż wykonywanie procesu Może prowadzić do zmniejszonego wykorzystania procesora

Szamotanie Wraz ze wzrostem występowania szamotania, planista przydziału procesora zwiększa liczbę procesów do wykonania, co powoduje wzrost szamotania

Szamotanie Unikanie szamotania: należy przydzielić procesowi odpowiednią liczbę ramek W modelu strefowym zakłada się, że liczba ramek potrzebna procesowi zmienia się strefowo

Szamotanie

Szamotanie W celu uniknięcia szamotania, w każdej strefie należy przydzielić odpowiednią liczbę ramek Liczbę ramek w strefie określa się albo za pomocą modelu zbioru roboczego albo na podstawie częstości braków stron