Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010 Wykład nr 8 (29.01.2009) dr inż. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/19 Plan wykładu nr 8 Stronicowanie i segmentacja pamięci operacyjnej : strategia pobierania strategia rozmieszczenia strategia wymiany algorytm optymalny algorytm LRU algorytm FIFO algorytm zegarowy
Rok akademicki 2009/2010, Wykład nr 8 3/19 Proste stronicowanie pamięć podzielona jest na bloki o stałym rozmiarze zwane ramkami lub ramkami stron (page frames) do ramek wstawiane są fragmenty procesu zwane stronami (pages) Pamięć operacyjna przesunięcie 645 (10)
Rok akademicki 2009/2010, Wykład nr 8 4/19 Prosta segmentacja program oraz dane podzielone są na odpowiednią liczbę segmentów o różnej długości proces jest ładowany do pamięci poprzez wczytanie wszystkich jego segmentów do partycji dynamicznych
Rok akademicki 2009/2010, Wykład nr 8 5/19 Stronicowanie pamięci wirtualnej
Rok akademicki 2009/2010, Wykład nr 8 6/19 Segmentacja pamięci wirtualnej
Rok akademicki 2009/2010, Wykład nr 8 7/19 Stronicowanie i segmentacja pamięci wirtualnej
Rok akademicki 2009/2010, Wykład nr 8 8/19 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 Strategia pobierania: określa, kiedy strona powinna być wstawiona do pamięci operacyjnej 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 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 10/19 Strategia rozmieszczenia: określa miejsce w pamięci fizycznej, gdzie proces ma przebywać 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)
Rok akademicki 2009/2010, Wykład nr 8 11/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
Rok akademicki 2009/2010, Wykład nr 8 12/19 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 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)
Rok akademicki 2009/2010, Wykład nr 8 14/19 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 Strategia zegara: 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
Rok akademicki 2009/2010, Wykład nr 8 16/19 Strategia zegara: 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 Strategia zegara: szukamy miejsca na wstawienie strony 77
Rok akademicki 2009/2010, Wykład nr 8 18/19 Strategia zegara: szukamy miejsca na wstawienie strony 77
Rok akademicki 2009/2010, Wykład nr 8 19/19