Systemy operacyjne

24
Systemy operacyjne Algorytmy przydziału pamięci - ćwiczenia 1 dr inż. Wojciech Bien Instytut Nauk Ekonomicznych i Inform http://wbieniec.kis.p.lodz.pl

description

Systemy operacyjne. Algorytmy przydziału pamięci - ćwiczenia. dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz. Wstęp. W systemie wieloprogramowym procesy, które działają powinny mieć wydzielone – rozłączne obszary pamięci. - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Algorytmy przydziału pamięci - ćwiczenia

1

dr inż. Wojciech BienieckiInstytut Nauk Ekonomicznych i Informatyki

http://wbieniec.kis.p.lodz.pl/pwsz

Page 2: Systemy operacyjne

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

Page 3: Systemy operacyjne

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: P1 – 600KB, P2 – 1000KB, P3 – 300KB, P4 – 700KB i P5 – 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 niewystarczają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.

Page 4: Systemy operacyjne

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łnieniezapotrzebowania 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.

Page 5: Systemy operacyjne

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ętrznaWystę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ętrznaWystę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

%100max

freefreefreefrag

Page 6: Systemy operacyjne

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 strategiiPierwsza pasująca i Najlepiej pasująca. Z praktycznego punktu widzenia ta pierwszajest lepsza ponieważ działa szybciej.

Page 7: Systemy operacyjne

7

Zadanie

Proces P1 P2 P3 P4Czas nadejścia 0 4 12 14Czas wykonania 7 6 6 12Zajętość pamięci kB 480 1350 540 960

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

Page 8: Systemy operacyjne

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.

Page 9: Systemy operacyjne

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.

Page 10: Systemy operacyjne

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.

Page 11: Systemy operacyjne

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ą

Proces Czas nadejścia Czas wykonania Zajętość pamięci (kB)P1 0 5 18P2 4 4 21P3 6 5 14P4 7 3 10

Page 12: Systemy operacyjne

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łujeprzechowywane 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)

Page 13: Systemy operacyjne

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.

Page 14: Systemy operacyjne

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

Page 15: Systemy operacyjne

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.

Page 16: Systemy operacyjne

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:

1

1

2

1

2

3

1

2

3

4

4

2

3

1

4

1

3

2

4

1

2

5

5

1

2

1

5

1

2

2

5

1

2

5

5

1

2

1

5

1

2

2

5

1

2

3

5

3

2

4

5

3

4

5

5

3

4

1

1

2

1

2

3

1

2

3

4

1

2

3

4

1

1

2

3

4

2

1

2

3

4

5

5

2

3

4

1

5

1

3

4

2

5

1

2

4

5

5

1

2

4

1

5

1

2

4

2

5

1

2

4

3

5

1

2

3

4

4

1

2

3

5

4

5

2

3

Page 17: Systemy operacyjne

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.

Page 18: Systemy operacyjne

Algorytm drugiej szansy

18

Jeżeli procesowi przydzielono trzy ramki:1

1●

2

1●

2●

3

1●

2●

3●

4

4●

2

3

1

4●

1●

3

2

4●

1●

2●

5

5●

1

2

1

5●

1●

2

2

5●

1●

2●

5

5●

1●

2●

1

5●

1●

2●

2

5●

1●

2●

3

5

3●

2

4

5

3

4●

5

5●

3

4

FIFO

1 12

123

234

341

412

125

125

125

125

125

125

253

534

534

Page 19: Systemy operacyjne

Algorytm drugiej szansy

19

Jeżeli procesowi przydzielono cztery ramki:1

1●

2

1●

2●

3

1●

2●

3●

4

1●

2●

3●

4●

1

1●

2●

3●

4●

2

1●

2●

3●

4●

5

5●

2

3

4

1

5●

1●

3

4

2

5●

1●

2●

4

5

5●

1●

2●

4

1

5●

1●

2●

4

2

5●

1●

2●

4

3

5●

1●

2●

3●

4

4●

1

2

3

5

4

5

2

3

FIFO

1 12

123

1234

1234

1234

2345

3451

4512

4512

4512

4512

5123

1234

2345

Page 20: Systemy operacyjne

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ą.

Page 21: Systemy operacyjne

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:1

1

2

1

2

3

1

2

3

4

1

2

3

4

1

1

2

3

4

2

1

2

3

4

5

1

2

3

5

1

1

2

3

5

2

1

2

3

5

5

1

2

3

5

1

1

2

3

5

2

1

2

3

5

3

1

2

3

5

4

4

2

3

5

5

4

2

3

5

Jeżeli procesowi przydzielono trzy ramki:1

1

2

1

2

3

1

2

3

4

1

2

4

1

1

2

4

2

1

2

4

5

1

2

5

1

1

2

5

2

1

2

5

5

1

2

5

1

1

2

5

2

1

2

5

3

3

2

5

4

3

4

5

5

3

4

5

Page 22: Systemy operacyjne

22

Algorytm LRUAlgorytm 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:2

1

2

3

1

2

3

4

4

2

3

1

4

1

3

2

4

1

2

5

5

1

2

1

5

1

2

2

5

1

2

5

5

1

2

1

5

1

2

2

5

1

2

3

3

1

2

4

3

4

2

5

3

4

5

Kolejka

1 12

123

234

341

412

125

251

152

125

251

512

123

234

345

1

1

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.

Page 23: Systemy operacyjne

Algorytm LRU

23

Jeżeli procesowi przydzielono cztery ramki:

1

1

2

1

2

3

1

2

3

4

1

2

3

4

1

1

2

3

4

2

1

2

3

4

5

1

2

5

4

1

1

2

5

4

2

1

2

5

4

5

1

2

5

4

1

1

2

5

4

2

1

2

5

4

3

1

2

5

3

4

1

2

4

3

5

5

2

4

3

Kolejka

1 12

123

1234

2341

3412

4125

4251

4512

4125

4251

4512

5123

1234

2345

Page 24: Systemy operacyjne

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