Rok akademicki 2009/2010, Wykład nr 8 2/19 Plan wykładu nr 8 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010 Stronicowanie i segmentacja pamięci operacyjnej : strategia pobierania strategia rozmieszczenia strategia wymiany algorytm optymalny algorytm LRU algorytm FIFO algorytm zegarowy Wykład nr 8 (29.01.2009) dr inż. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 8 3/19 Rok akademicki 2009/2010, Wykład nr 8 4/19 Proste stronicowanie Prosta segmentacja pamięć podzielona jest na bloki o stałym rozmiarze zwane ramkami lub ramkami stron (page frames) Pamięć operacyjna program oraz dane podzielone są na odpowiednią liczbę segmentów o różnej długości do ramek wstawiane są fragmenty procesu zwane stronami (pages) proces jest ładowany do pamięci poprzez wczytanie wszystkich jego segmentów do partycji dynamicznych przesunięcie 645(10)
Rok akademicki 2009/2010, Wykład nr 8 5/19 Rok akademicki 2009/2010, Wykład nr 8 6/19 Stronicowanie pamięci wirtualnej Segmentacja pamięci wirtualnej Rok akademicki 2009/2010, Wykład nr 8 7/19 Rok akademicki 2009/2010, Wykład nr 8 8/19 Stronicowanie i segmentacja pamięci wirtualnej większość obecnie stosowanych systemów operacyjnych wykorzystuje mechanizmy pamięci wirtualnej w powiązaniu ze stronicowaniem i segmentacją najwięcej problemów projektantom systemów operacyjnych sprawia stronicowanie w kontekście pamięci wirtualnej system operacyjny musi wdrożyć kilka zasad (uwaga: nie ma jednego, najlepszego rozwiązania tych problemów): strategia pobierania strategia rozmieszczenia strategia wymiany
Rok akademicki 2009/2010, Wykład nr 8 9/19 Rok akademicki 2009/2010, Wykład nr 8 10/19 Strategia pobierania: Strategia rozmieszczenia: określa, kiedy strona powinna być wstawiona do pamięci operacyjnej określa miejsce w pamięci fizycznej, gdzie proces ma przebywać stosowane są dwie metody: 1. Stronicowanie na żądanie (ang. demand paging) strona jest wstawiana do pamięci operacyjnej, gdy pojawia się odniesienie do lokalizacji na tej stronie w przypadku samego stronicowania lub stronicowania z segmentacją rozmieszczenie nie ma znaczenia ze względu na jednakowy czas dostępu do każdej komórki pamięci (nie dotyczy to systemów typu NUMA) gdy proces startuje, to będzie bardzo dużo błędów stron, ale po pewnym czasie większość stron zostanie wstawiona do pamięci operacyjnej i liczba błędów będzie bardzo mała 2. Wstępne stronicowanie (ang. prepaging) do pamięci operacyjnej wstawiane są także inne strony niż strona zażądana w błędzie strony (najczęściej dotyczy to kilku kolejnych stron z pamięci pomocniczej) Rok akademicki 2009/2010, Wykład nr 8 11/19 Rok akademicki 2009/2010, Wykład nr 8 12/19 Strategia wymiany: określa, która strona z zestawu stron powinna być wybrana do wymiany wszystkie strategie zakładają, że strona, która ma zostać wymieniona powinna być stroną, co do której istnieje najmniejsze prawdopodobieństwo wystąpienia odwołania w najbliższej przyszłości w większości strategii usiłuje się odgadnąć kolejne odwołania na podstawie poprzednich strategie powinny być proste, po to aby nie obciążały systemu w literaturze opisywane są cztery podstawowe algorytmy: Optymalny LRU - najdłużej ostatnio nieużywanej strony FIFO - pierwszy na wejściu, pierwszy na wyjściu Zegarowy Strategia optymalna: strategia optymalna (ang. optimal policy) wybiera stronę, do której najdłużej nie wystąpi żadne odwołanie strategii takiej nie da się wdrożyć praktycznie, gdyż wymagałaby ona wiedzy na temat przyszłych zdarzeń - strategia ta służy do porównywania innych algorytmów załóżmy, że podczas wykonywania procesu, dla którego przydzielono trzy ramki w pamięci operacyjnej, występują następujące odwołania do stron: 2 3 2 1 5 2 4 5 3 2 5 2
Rok akademicki 2009/2010, Wykład nr 8 13/19 Rok akademicki 2009/2010, Wykład nr 8 14/19 Strategia najdłużej ostatnio nieużywanej strony (LRU): strategia LRU (ang. least recently used) powoduje wymianę tej strony w pamięci, do której najdłużej nie ma żadnego odwołania strategia ta jest równie skuteczna jak strategia optymalna główny problem to praktyczne wdrożenie tej strategii, możliwe rozwiązania: dodawanie do każdej strony informacji na temat ostatniego odwołania (duże obciążenie systemu) przechowywanie stosu odwołań do pamięci (rozwiązanie kosztowne) Strategia pierwszy na wejściu, pierwszy na wyjściu (FIFO): strategia FIFO (ang. first-in-first-out) traktuje ramki stron przypisane do procesu jako bufor cykliczny - strony są usuwane cyklicznie strategia bardzo prosta do wdrożenia - potrzebny jest jedynie wskaźnik, który będzie cyklicznie przechodził przez ramki stron danego procesu w strategii tej z pamięci są usuwane strony, które były tam najdłużej Rok akademicki 2009/2010, Wykład nr 8 15/19 Rok akademicki 2009/2010, Wykład nr 8 16/19 nazwa strategia zegara (ang. clock policy), algorytm zegara - wzięła się stąd, że ramki mogą być w niej ułożone w kształt okręgu strategia ta może występować w wielu wariantach w najprostszej postaci z każdą ramką skojarzony jest dodatkowy bit (tzw. bit wykorzystania) kiedy nowa strona wczytywana jest do ramki w pamięci lub występują kolejne odwołania do strony, to bit wykorzystania dla tej ramki jest ustawiany na 1 w algorytmie zegara zestaw ramek traktowany jest jako bufor cykliczny, z którym skojarzony jest wskaźnik podczas wymiany strony wskaźnik jest ustawiany na kolejną ramkę w buforze po ramce, która została właśnie zaktualizowana jeśli zachodzi konieczność wymiany strony, system operacyjny przeszukuje bufor w poszukiwaniu ramki, której bit wykorzystania jest równy 0 za każdym razem, gdy wskaźnik natrafia na bit równy 1 to zmienia go na 0 i szuka dalej gdy znajdzie pierwszą ramkę z bitem wykorzystania równym 0, to ramka ta jest wymieniana jeśli wszystkie ramki mają bit równy 1, to wskaźnik zamieni wszystkie bity na 0, po czym zatrzyma się na adresie początkowym, wymieniając stronę w tej ramce
Rok akademicki 2009/2010, Wykład nr 8 17/19 Rok akademicki 2009/2010, Wykład nr 8 18/19 szukamy miejsca na wstawienie strony 77 szukamy miejsca na wstawienie strony 77 Rok akademicki 2009/2010, Wykład nr 8 19/19