Wykład nr 10: Pamięć wirtualna

Slides:



Advertisements
Podobne prezentacje
Wirtualizacja zasobów w systemach operacyjnych
Advertisements

Egzamin.
Sieci komputerowe Protokół TCP/IP.
Schemat blokowy M START KONIEC
Podstawy Informatyki (4)
SYSTEMY OPERACYJNE WSTĘP
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
Moduł 2. Struktury Systemów Komputerowych
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ
Elementarne struktury danych Piotr Prokopowicz
Systemy plików FAT12, FAT16, FAT32, NTFS.
Systemy plików UNIX Krzysztof Ratkowski Mateusz Wosiński.
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Wykład nr 3: Struktura systemu operacyjnego
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 9: Zarządzanie pamięcią
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Systemy plików Bibliografia:
Temat nr 10: System przerwań
Autorzy: Łukasz Sztandarski Bartłomiej Granat
Wstęp do interpretacji algorytmów
ZARZĄDZANIE PROCESAMI
Zapis informacji Dr Anna Kwiatkowska.
Fizyczna organizacja danych w bazie danych Wykład 7
SIEĆ P2P 1. Definicja sieci równouprawnionej. To taka sieć, która składa się z komputerów o takim samym priorytecie ważności, a każdy z nich może pełnić.
Systemy plików FAT12, FAT16, FAT32, NTFS.
Komputer a system komputerowy
Podstawy programowania II
Magazyny pamięci.
Zbiór do posortowania mieści się w pamięci
Opracowanie: Maria Wąsik
Architektura komputerów
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Zasada działania komputera
Budowa komputera.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Podstawowe usługi systemów operacyjnych
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Nośniki informacji i akcesoria komputerowe
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Spis treści Architektura systemu windows Pamięć wirtualna Plik wymiany
Zawansowane techniki programistyczne
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Etapy uruchamiania systemu Pliki konfiguracyjne
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
Algorytmy przydziału pamięci - ćwiczenia
Wykład 9 Zarządzanie pamięcią operacyjną
System plików.
System Zarządzania Bazą Danych
Procesor, pamięć, przerwania, WE/WY, …
Pamięć RAM Pamięć RAM.
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Struktura systemu operacyjnego
Wstęp do interpretacji algorytmów
Model warstwowy ISO-OSI
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
Tryby adresowania i formaty rozkazów mikroprocesora
Podział sieci IP na podsieci w ramach CISCO
Jednostki pamięci komputera
Fizyczna organizacja danych w bazie danych Wykład 7
PROGRAMY DO KONTROLI RODZICIELSKIEJ
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Wykład nr 10: Pamięć wirtualna 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 Wirtualna pamięć adresowa ułatwia pisanie programów i zarządzanie procesami

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

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

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

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

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

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

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

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

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

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

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)

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

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

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ą

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 7 7 7 1 2 1 2 3 1 2 3 4 3 4 2 4 2 3 2 3 1 3 1 2 7 1 2

Anomalia Belady’ego

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 7 7 7 1 2 1 2 3 2 4 3 2 3 2 1 7 1

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 7 7 7 1 2 1 2 3 4 3 4 2 4 3 2 3 2 1 3 2 1 2 1 7

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!

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

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

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

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

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

Przydział ramek