Algorytmy przydziału pamięci - ćwiczenia

Slides:



Advertisements
Podobne prezentacje
Leszek Smolarek Akademia Morska w Gdyni 2005/2006
Advertisements

Wirtualizacja zasobów w systemach operacyjnych
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
KSZTAŁTOWANIE STRUKTURY KAPITAŁU A DŹWIGNIA FINANSOWA
Wykład nr 8: Zakleszczenia
Podstawy Informatyki (4)
Wprowadzenie do optymalizacji wielokryterialnej.
Zarządzanie operacjami
SYSTEMY OPERACYJNE ·       SO : zestaw programów zarządzających zasobami komputera i wspomagających jego użytkowanie zarządzanie zasobami.
SYSTEMY OPERACYJNE ZARZĄDZANIE PAMIĘCIĄ
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Badania operacyjne. Wykład 1
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.
Zagadnienie transportowe
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Algorytm Rochio’a.
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 10: Pamięć wirtualna
Wykład nr 9: Zarządzanie pamięcią
Magistrala & mostki PN/PD
Autorzy: Łukasz Sztandarski Bartłomiej Granat
Dr Anna Kwiatkowska Instytut Informatyki
ZARZĄDZANIE PROCESAMI
Zapis informacji Dr Anna Kwiatkowska.
Ochrona danych wykład 3.
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń  Dr inż. Halina Tarasiuk p. 337, tnt.tele.pw.edu.pl.
Układy równań 23x - 31 y = 1 x – y = - 8 x = -1 y - x = 1 x + y = 11
Systemy plików FAT12, FAT16, FAT32, NTFS.
Twoje narzędzie do pracy grupowej
Podstawy programowania
MOODLE Platforma do zdalnej komunikacji dla Kierunku Ekonomia informacje dla Studentów Studentów I Roku Ciechanów, 2013 rok.
Podstawy programowania II
opracowanie: Agata Idczak
Zbiór do posortowania mieści się w pamięci
Przegląd podstawowych algorytmów
TABLICE C++.
Stabilność Stabilność to jedno z najważniejszych pojęć teorii sterowania W większości przypadków, stabilność jest warunkiem koniecznym praktycznego zastosowania.
Systemy operacyjne.
Zasada działania komputera
Zakładamy a priori istnienie rozwiązania α układu równań.
Systemy plików FAT, FAT32, NTFS
Teoria sterowania 2011/2012Stabilno ść Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Stabilność Stabilność to jedno.
Buforowanie D e f i n i c j a.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Defragmentacja dysku Jednym z kluczowych czynników wydajności operacji wejścia/wyjścia jest poziom fragmentacji plików. Fragmentacja oznacza zapisywanie.
Etapy uruchamiania systemu Pliki konfiguracyjne
Matematyka i system dwójkowy
Wykład 7 Synchronizacja procesów i wątków
Systemy operacyjne Zarządzanie pamięcią — przykłady realizacji
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Wykład 9 Zarządzanie pamięcią operacyjną
Systemy operacyjne (wiosna 2014)
ALGORYTMY Co to jest algorytm ? Cechy algorytmu Budowa algorytmów
Procesor, pamięć, przerwania, WE/WY, …
Algorytmy- Wprowadzenie do programowania
Wspomaganie Decyzji IV
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.
JAKOŚĆ TECHNICZNA WĘGLA
Pętle – instrukcje powtórzeń
Systemy operacyjne - Budowa systemu komputerowego i jego zadania
Rozkłady statystyk z próby dr Marta Marszałek Zakład Statystyki Stosowanej Instytut Statystyki i Demografii Kolegium.
Zagadnienia transportowe Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Zbiory rozłączne.
Platforma LearningApps
Zapis prezentacji:

Algorytmy przydziału pamięci - ćwiczenia 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. 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

Przydział dynamiczny 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. 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. Jako pierwszy zakończył się proces drugi. W pamięci powstają zatem dwa ciągłe obszary wolne. Okazuje sie, ze dziurę po P2 można przydzielić tylko jednemu z procesów, z kolejki. Tym procesem będzie proces P4.

Przydział dynamiczny - przykład 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.

Fragmentacja pamięci Zjawisko występuje powszechnie w systemach, które stosują dynamiczny przydział pamięci. Rozróżniamy dwa rodzaje tego zjawiska: 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. 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. Obliczanie fragmentacji zewnętrznej

Strategie wyboru dziury 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.

Zadanie Załóżmy, że w systemie jest 2048kB pamięci. Przydziel pamięć dynamicznie stosując strategie: first-fit, best-ft, worst-fit. Narysuj wykresy czasowe pamięci i oblicz fragmentację zewnętrzną przy każdym przełączniu Proces P1 P2 P3 P4 Czas nadejścia 4 12 14 Czas wykonania 7 6 Zajętość pamięci kB 480 1350 540 960

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

Przykład stronicowania 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.

Przykład stronicowania 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.

Zadanie 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 5 18 P2 4 21 P3 6 14 P4 7 3 10

Idea pamięci wirtualnej 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)

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

Zastępowanie stron 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).

Algorytmy zastępowania stron 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ć. 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. W przykładach wykorzystamy ciąg odwołań : 1, 2, 3, 4, 1, 2, 5, 1, 2, 5, 1, 2, 3, 4, 5

Algorytm FIFO 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: 1 2 1 3 1 2 4 2 3 1 4 3 2 4 1 5 1 2 1 5 2 2 5 1 5 1 2 1 5 2 2 5 1 3 5 2 4 5 3 5 3 4 Jeżeli procesowi przydzielono cztery ramki: 1 2 1 3 1 2 4 1 2 3 1 2 3 4 2 1 3 4 5 2 3 4 1 5 3 4 2 5 1 4 5 1 2 4 1 5 2 4 2 5 1 4 3 5 1 2 4 1 2 3 5 4 2 3

Algorytm FIFO drugiej szansy 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.

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

Algorytm drugiej szansy Jeżeli procesowi przydzielono cztery ramki: 1 ● 2 1 ● 2● 3 1 ● 2 4 1 ● 2 3 1 ● 2 3 4 2 1 ● 3 4 5 ● 2 3 4 1 5 ● 3 4 2 5 ● 1 4 5 ● 1● 2● 4 1 5 ● 2 4 2 5 ● 1● 2● 4 3 5 ● 1 2 4 4● 1 2 3 5 4 2 3 FIFO 1 1 2 1 2 3 1 2 3 4 1234 1234 234 5 345 1 451 2 4512 4512 4512 512 3 123 4 234 5

Algorytm optymalny Algorytm teoretyczny – powoduje najmniejszą liczbę wymian stron, a zarazem najmniejszą liczbę błędów stron. Zastąp stronę, do której nie będziemy się odwoływać przez najdłuższy czas. 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ą.

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

Algorytm LRU LRU: Jeżeli procesowi przydzielono trzy ramki: Kolejka 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ść”. 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. LRU: Jeżeli procesowi przydzielono trzy ramki: 1 2 1 3 1 2 4 2 3 1 4 3 2 4 1 5 1 2 1 5 2 2 5 1 5 1 2 1 5 2 2 5 1 3 1 2 4 3 2 5 3 4 Kolejka 1 1 2 1 2 3 2 3 4 3 4 1 4 1 2 1 2 5 2 5 1 1 5 2 1 2 5 2 5 1 512 123 234 345

Algorytm LRU Jeżeli procesowi przydzielono cztery ramki: Kolejka 1 2 1 3 1 2 4 1 2 3 1 2 3 4 2 1 3 4 5 1 2 4 1 2 5 4 2 1 5 4 5 1 2 4 1 2 5 4 2 1 5 4 3 1 2 5 4 1 2 3 5 2 4 3 Kolejka 1 1 2 1 2 3 1 2 3 4 234 1 34 1 2 412 5 425 1 451 2 412 5 425 1 451 2 512 3 123 4 2345

Zadanie 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