Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy operacyjne Algorytmy przydziału pamięci - ćwiczenia 1 dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki

Podobne prezentacje


Prezentacja na temat: "Systemy operacyjne Algorytmy przydziału pamięci - ćwiczenia 1 dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki"— Zapis prezentacji:

1 Systemy operacyjne Algorytmy przydziału pamięci - ćwiczenia 1 dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki

2 Wstęp 2 W systemie wieloprogramowym procesy, które działają powinny mieć wydzielone – rozłączne obszary pamięci. W najprostszym przypadku zakładamy, że każdy proces posiada stały rozmiar potrzebnej pamięci. Proces może być w stanie aktywnym tylko wtedy, gdy program jest załadowany do pamięci. W przeciwnym wypadu musi poczekać. System operacyjny musi zdecydować, czy dla ładowanego procesu jest wystarczająca ilość pamięci, a jeśli tak, to który jej obszar przydzielić. W najprostszym przypadku przydzielany obszar musi być ciągły

3 Przydział dynamiczny 3 Załóżmy że w kolejce procesów gotowych systemu, który stosuje szeregowanie FCFS jest 5 procesów, które potrzebują odpowiednio: P 1 – 600KB, P 2 – 1000KB, P 3 – 300KB, P 4 – 700KB i P 5 – 500KB pamięci. Jako pierwszy zakończył się proces drugi. W pamięci powstają zatem dwa ciągłe obszary wolne. Dostępnych jest tylko 2560KB pamięci operacyjnej. Można ją przydzielić od razu pierwszemu, drugiemu i trzeciemu procesowi. W pamięci zostanie dziura (D), miejsce wolne, które będzie nie wystarczające, dla żadnego z pozostałych procesów. Będą musiały poczekać, aż zakończy sie jeden z trzech procesów, które są już w pamięci. Okazuje sie, ze dziurę po P2 można przydzielić tylko jednemu z procesów, z kolejki. Tym procesem będzie proces P4.

4 Przydział dynamiczny - przykład 4 Po tym przydziale w pamięci operacyjnej nadal istnieją dwie dziury, o sumarycznej wielkości 560KB. Ta wielkość spełnia wymagania programu piątego (500KB), ale ponieważ te dziury nie tworzą obszaru spójnego, to nie można ich przydzielić temu procesowi. Następnym procesem, który zakończy swa prace będzie proces P1. Po jego zakończeniu w pamięci operacyjnej pojawia się ciągły obszar wolny o wielkości 600KB, co pozwala na spełnienie zapotrzebowania na pamięć ze strony procesu piątego. Z tej dziury procesowi P5 zostanie przydzielone dokładnie 500KB. Po wykonaniu ostatniego z przydziałów w pamięci operacyjnej powstają trzy niespójne wolne obszary o łącznej pojemności 660KB. Powstaje fragmentacja zewnętrzna.

5 Fragmentacja pamięci 5 Zjawisko występuje powszechnie w systemach, które stosują dynamiczny przydział pamięci. Rozróżniamy dwa rodzaje tego zjawiska: Fragmentacja zewnętrzna Występuje, gdy w pamięci operacyjnej istnieje wiele obszarów wolnych, których sumaryczna wielkość pozwalałaby na spełnienie zadania przydziału pamięci przez proces, ale każdy z osobna z tych obszarów ma zbyt mała pojemność, żeby to było możliwe. Fragmentacja wewnętrzna Występuje, gdy procesowi przydzielane jest więcej pamięci, niż on potrzebuje. Ta dodatkowa pamięć nie będzie nigdy przez niego wykorzystana. Przydział taki może być podyktowany względami ekonomicznymi: nie jest opłacalne utrzymywanie 2 bajtowej dziury w pamięci, jeśli należy zapamiętać o wiele więcej informacji o niej. Obliczanie fragmentacji zewnętrznej

6 Strategie wyboru dziury 6 SO utrzymuje ewidencję wolnych oraz zajętych obszarów pamięci i na bieżąco podejmuje decyzję, który z wolnych obszarów przydzielić czekającym procesom. To planowanie wymaga określenia strategii wyboru dziury, jeśli jest ich wiele. Pierwsza pasująca (ang. first-fit) Przydzielana jest pierwsza dziura, która spełnia wymagania procesu co do rozmiaru. Jej poszukiwanie może rozpoczynać się zawsze od początku wykazu miejsc wolnych lub od miejsca ostatniego przydziału (ang. next-fit). Najlepiej pasująca (ang. best fit) Przydziela sie dziurę, która dokładnie spełnia wymagania co do rozmiaru, lub dla której różnica miedzy jej rozmiarem, a rozmiarem wymaganym jest najmniejsza spośród pozostałych dziur. Najgorzej pasująca (ang. worst fit) przydziela sie największą dziurę w systemie. Zakłada się, że proces zażąda w czasie wykonania dodatkowej pamięci. Przy zastosowaniu tej strategii istnieje duże prawdopodobieństwo, ze zadanie to zostanie od razu zrealizowane. Symulacje wykazały, że najlepsze rezultaty uzyskuje się przy zastosowaniu strategii Pierwsza pasująca i Najlepiej pasująca. Z praktycznego punktu widzenia ta pierwsza jest lepsza ponieważ działa szybciej.

7 7 Zadanie ProcesP1P2P3P4 Czas nadejścia Czas wykonania76612 Zajętość pamięci kB Załóżmy, że w systemie jest 2048kB pamięci. Przydziel pamięć dynamicznie stosując strategie: a)first-fit, b)best-ft, c)worst-fit. Narysuj wykresy czasowe pamięci i oblicz fragmentację zewnętrzną przy każdym przełączniu

8 Stronicowanie 8 Stronicowanie (ang. paging) jest systemem zarządzania pamięcią, który rozwiązuje problem zewnętrznej fragmentacji pamięci pozwalając, aby pamięć przydzielana była nieciągła. Pamięć fizyczna jest podzielona na ramki (ang. frame) o stałym rozmiarze, będącym potęgą dwójki (512B – 4KB). Przestrzeń adresowa procesu jest podzielona na strony (ang. page), rozmiar strony jest równy rozmiarowi ramki. I–tej stronie w przestrzeni adresowej procesu odpowiada K-ta ramka. Dla dowolnego I, K może być dowolne.

9 Przykład stronicowania 9 Aby proces mógł być załadowany do pamięci musi jedynie istnieć odpowiednia liczba wolnych ramek dla niego. Strony w ramkach nie musza być umieszczane po kolei, fizycznie pamięć procesu nie musi być ciągła. Po lewej stronie znajduje się pamięć logiczna, w środku tablica stron, a po prawej pamięć fizyczna. Stronicowanie eliminuje całkowicie fragmentację zewnętrzną, ale nie jest odporne na fragmentacje wewnętrzną. Ta fragmentacja dotyczy ostatniej ramki przydzielonej procesowi i w skrajnych przypadkach może wynosić rozmiar strony minus jeden bajt.

10 Przykład stronicowania 10 W pamięci procesy A, B. Załaduj C. W pamięci procesy A, B, C. Zakończ B. W pamięci procesy A, C. Załaduj D. Struktury systemu po załadowaniu D.

11 Zadanie 11 Pamięć składa się z 16 stron po 4kB (razem 64kB). Jak będą umieszczane strony procesów w tej pamięci (first Fit) ? Wykonaj rysunki stron w ramkach dla odpowiednich chwil czasowych oraz oblicz fragmentację wewnętrzną ProcesCzas nadejściaCzas wykonaniaZajętość pamięci (kB) P10518 P24421 P36514 P47310

12 Idea pamięci wirtualnej 12 System operacyjny pozwala na wykorzystanie pamięci o pojemności większej od zainstalowanej pamięci RAM, dzięki wykorzystaniu przestrzeni dysku twardego. Mechanizm ukryty przed procesami użytkownika. Proces “widzi” logiczną przestrzeń adresową od 0 do max_address Obszary logicznej przestrzeni adresowej, do których proces często się odwołuje przechowywane są w pamięci RAM. Obszary, do których proces odwołuje się rzadko, są na dysku. System operacyjny bez współpracy procesu przesyła dane do oraz z dysku. Metody implementacji pamięci wirtualnej (ang. virtual memory) Stronicowanie na żądanie (ang. demand paging) Segmentacja (na żądanie) Segmentacja stronicowana (na żądanie)

13 Przechowywanie stron na dysku 13 Ciągły obszar w przestrzeni wymiany odpowiada logicznej przestrzeni adresowej. Numer ramki w tablicy stron identyfikuje przy pomocy tablicy pomocniczej numer bloku dyskowego.

14 Zastępowanie stron 14 Problem podczas obsługi błędu strony – zabrakło wolnych ramek w pamięci. Rozwiązania: – Zawiesić proces, który żąda strony lub: – Wymiana stron Wymiana stron polega na odnalezieniu strony-ofiary, co do której istnieje podejrzenie, że nie będzie używana (już wcale lub w najbliższym czasie), wysłaniu jej do przestrzeni wymiany i sprowadzeniu w jej miejsce żądanej strony. Należy więc uzupełnić scenariusz obsługi błędu strony o następujące czynności: Jeśli nie istnieje wolna ramka, należy wytypować ramkę-ofiarę. Jeżeli ta strona w rej ramce została zmodyfikowana (D==1), jest zapisywana na dysku i aktualizowana jest tablic stron. Do zwolnionej ramki wczytywana jest żądana strona. Wybór strony-ofiary jest wykonywany przez algorytm zastępowania stron (ang. page replacement).

15 Algorytmy zastępowania stron 15 Kryterium: Minimalizacja liczby błędów stron. Test algorytmu: za pomocą wygenerowanego losowo ciągu odwołań (ang. reference string), czyli ciągu numerów stron, do których hipotetyczny program mógłby się odwoływać. W przykładach wykorzystamy ciąg odwołań : 1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5 Należy również założyć pewną liczbę wolnych ramek, którymi będzie dysponował ten program. Badanie przeprowadza się dla kilku różnych wartości tego czynnika, co pozwala sprawdzić, czy algorytm zachowuje sie poprawnie, tzn. czy wraz ze wzrostem liczby ramek maleje liczba błędów stron.

16 Algorytm FIFO 16 Zastąp stronę, która została sprowadzona jako pierwsza do pamięci. Sprowadzone strony tworzą kolejkę. Kolejność odwołań: 1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5. Jeżeli procesowi przydzielono trzy ramki: Jeżeli procesowi przydzielono cztery ramki:

17 Algorytm FIFO drugiej szansy 17 Algorytm drugiej szansy jest to modyfikacja algorytmu FIFO W standardowym algorytmie FIFO wybierana jest pierwsza strona z kolejki W algorytmie drugiej szansy sprawdzany jest bit odniesienia R. – Jeżeli R==0 (brak odniesienia) to strona jest wybierana na ofiarę. – Jeżeli R==1 (odniesienie) to: ● R = 0 ● Strona przesunięta jest na koniec kolejki (“otrzymała drugą szansę”). ● Przechodzimy do kolejnej strony w kolejce.

18 Algorytm drugiej szansy 18 Jeżeli procesowi przydzielono trzy ramki: 1 1●1● 2 1●1● 2●2● 3 1●1● 2●2● 3●3● 4 4●4● ●4● 1●1● 3 2 4●4● 1●1● 2●2● 5 5●5● ●5● 1●1● 2 2 5●5● 1●1● 2●2● 5 5●5● 1●1● 2●2● 1 5●5● 1●1● 2●2● 2 5●5● 1●1● 2●2● 3 5 3●3● ●4● 5 5●5● 3 4 FIFO

19 Algorytm drugiej szansy 19 Jeżeli procesowi przydzielono cztery ramki: 1 1●1● 2 1●1● 2●2● 3 1●1● 2●2● 3●3● 4 1●1● 2●2● 3●3● 4●4● 1 1●1● 2●2● 3●3● 4●4● 2 1●1● 2●2● 3●3● 4●4● 5 5●5● ●5● 1●1● ●5● 1●1● 2●2● 4 5 5●5● 1●1● 2●2● 4 1 5●5● 1●1● 2●2● 4 2 5●5● 1●1● 2●2● 4 3 5●5● 1●1● 2●2● 3●3● 4 4●4● FIFO

20 Algorytm optymalny 20 Zastąp stronę, do której nie będziemy się odwoływać przez najdłuższy czas. Algorytm teoretyczny – powoduje najmniejszą liczbę wymian stron, a zarazem najmniejszą liczbę błędów stron. W praktyce – nie możliwe jest przewidzenie, która ze stron będzie najdłużej potrzebna Algorytm ten zwany OPT lub MIN jest stosowany do porównywania innych algorytmów i badania i stopnia, w jakim go przybliżają.

21 Algorytm optymalny 21 Kolejność odwołań: 1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5. Jeżeli procesowi przydzielono cztery ramki: Jeżeli procesowi przydzielono trzy ramki:

22 22 Algorytm LRU Algorytm LRU (ang. Least Recently Used) wymienia tę stronę, która najdawniej była używana. Stanowi on w pewnym sensie odwrotność działania algorytmu OPT. Algorytm OPT „patrzy w przyszłość”, żeby znaleźć stronę do wymiany, a algorytm LRU „patrzy w przeszłość”. LRU: Jeżeli procesowi przydzielono trzy ramki: Kolejka Przybliżenie – algorytm MFU (ang. Most Frequently Used) - wymienia on tę stronę, do której najczęściej się odwoływano, wychodząc z założenia, że nie będzie już potrzebna.

23 Algorytm LRU 23 Jeżeli procesowi przydzielono cztery ramki: Kolejka

24 Zadanie 24 Zakładamy, że proces odwołuje się kolejno do stron 2, 1, 3, 4, 1, 2, 5, 3, 2, 3, 4, 5 i mamy cztery dostępne ramki dla tego procesu. Zaprezentuj algorytm FIFO, LRU, OPT wymiany stron. Oblicz, ile jest błędów strony w każdym przepadku


Pobierz ppt "Systemy operacyjne Algorytmy przydziału pamięci - ćwiczenia 1 dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki"

Podobne prezentacje


Reklamy Google