Zaządzanie pamięcią peacyjną. Wiązanie u. Pblemy zaządzania pamięcią. Lgiczna i fizyczna pzetzeń wa. Pzydział ciągłej pzetzeni wej. Stnicwanie. Segmentacja. Pamięć witualna Pdtawwe pjęcia! Pamięć peacyjna jet ptzegana jak tablica bajtów lub łów indekwana ami.! Zbió wzytkich mżliwych ów nazywany jet pzetzenią wą! Cykl zkazwy w ytemie achitektuze vn Neumanna:! pbanie pzez jedntkę centalną zkazu z kmóki (lub kmóek) pamięci wanej pzez watść licznika zkazów! pbanie danych z pamięci i/lub zapi danych d pamięci pzez jedntkę centalną twnie d pbaneg i zdekdwaneg zkazu Zaządzanie pamięcią peacyjną Wiązanie u Lgiczna i fizyczna pzetzeń wa! W czaie kmpilacji y bezwzględne kmóek pamięci, d któych natępuje dwłanie, utalane ą czaie kmpilacji! W czaie ładwania y kmóek pamięci utalane ą w czaie ładwania pgamu! W czaie wyknania y kmóek pamięci ą utalane w czaie wyknywania intukcji Zaządzanie pamięcią peacyjną! Ade lgiczny wygenewany pzez pce i wytawiny na magitali wej! Ade pzekazany d jedntki pamięci i umiezczny w jej ejetze wym! Wiązanie u pdcza kmpilacji lub ładwania pwduje, że y lgiczne i fizyczne ą takie ame.! Wiązanie u w czaie wyknania pwduje zóżnienie ów lgicznych (witualnych) i ch.! Odwzwanie ów witualnych na fizyczne dknywane jet pzez jedntkę zaządzania pamięcią (ang. memy management unit MMU) Zaządzanie pamięcią peacyjną Pzykład dwzwania u lgiczneg na ejet pzemiezczenia Pzykład chny bzau pamięci ejet ganiczny ejet pzemiezczenia pce lgiczny pułapka N T lgiczny jedntka zaządzania pamięcią (MMU) pce Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną
Pzydział ciągłeg bzau pamięci Pzydział ciągłeg bzau pamięci piewze dpawanie! Piewze dpawanie pzydziela ię piewzy wlny bza (tzw. dziuę) wytaczającej wielkści. Pzukiwanie kńczy ię p znalezieniu takieg bzau.! Najlepze dpawanie pzydziela ię najmniejzy dtatecznie duży wlny bza pamięci. Knieczne jet pzezukanie wzytkich dziu.! Najgze dpawanie pzydziela ię najwiękzy wlny bza pamięci. Knieczne jet pzezukanie wzytkich dziu. blk kieunek pzezukiwania Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną 8 Pzydział ciągłeg bzau pamięci najlepze dpawanie Pzydział ciągłeg bzau pamięci najgze dpawanie blk blk kieunek pzezukiwania kieunek pzezukiwania Zaządzanie pamięcią peacyjną 9 Zaządzanie pamięcią peacyjną Fagmentacja zewnętzna Fagmentacja wewnętzna blk blk bza nie wykzytany zaptzebwanie pzydział Zaządzanie pamięcią peacyjną Pzydział dkładnie tylu bajtów, ile wyni zaptzebwanie, pwduje, że kzt utzymania badz małeg bzau wlneg jet niewpółmienie duży, np. dane bzaze zajmują więcej bajtów, niż zmia teg bzau. Dlateg wlny bza pzydzielany jet w całści, ale nie jet w pełni wykzytany. Zaządzanie pamięcią peacyjną
Stnicwanie (ang. paging) Schemat wania ze tnicwaniem! Pdział fizycznej pzetzeni wej na blki tałej długści, zwane amkami (ang. fame).! Pdział lgicznej pzetzeni wej na blki tałej (takiej amej jak amki) długści, zwany tnami (ang. page).! Odwzwanie pmiędzy numeem tny a numeem amki za pmcą tablicy tn (ang. page table).! Ade zawiea nume tny i pzeunięcia na tnie (ang. ffet). n tny ( bity) pzeunięcie ( bitów) pce nume tny nume amki pzeunięcie lgiczny tablica tn Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną a b c d e f g h 8 i 9 j k l tny Pzykład dwzwania tn w amki tablica tn i j k l 8 e 9 f g h a b c d amki Zaządzanie pamięcią peacyjną Bufy tanlacji ów tn (ang. tanlatin lk-aide buffe TLB) pce nume tny nume amki pzeunięcie lgiczny bufy TLB tablica tn Zaządzanie pamięcią peacyjną Budwa u Stnicwanie wielpzimwe zewnętzna tablica tn n tny zewnętznej wewnętzna tablica tn n tny wewnętznej amka pamięci pzeunięcie na tnie Zaządzanie pamięcią peacyjną Odwócna tablica tn (ang. inveted page table)! W dwócnej tablicy tn jet jedna pzycja dla każdej amki.! Tablica tn indekwana jet numeem amki, a zawiea witualny nume tny. pce nume tny nume amki pzeunięcie lgiczny dwócna tablica tn Zaządzanie pamięcią peacyjną 8
Segmentacja (ang. egmentatin) Schemat wania z egmentacją STBR! Pzetzeń ów lgicznych jet ptzegana jak zbió egmentów.! Segment ma nazwę i długść.! Ade lgiczny kłada ię z numeu egmentu i pzeunięcia wewnątz egmentu.! Odwzwanie ów lgicznych w fizyczne zapewnia tablica egmentów, któej element zawiea m.in. bazwy egmentu i ganicę (zmia egmentu). pułapka N tablica egmentów ganica baza T lgiczny Zaządzanie pamięcią peacyjną 9 Zaządzanie pamięcią peacyjną Schemat wania z egmentacją i tnicwaniem Pamięć witualna pułapka STBR N lgiczny tablica egmentów ganica T baza tablicy tn Zaządzanie pamięcią peacyjną! Stnicwanie na żądanie (ang. demand paging)! Błąd (baku) tny (ang. page-fault)! Zatępwanie tn (ang. page eplacement)! Algytmy zatępwanie (ang. page-eplacement alg.)! Algytm FIFO! Algytm ptymalny! Algytm LRU! Algytm LFU! Algytm MFU! Pblemy ze tnicwaniem (zamtanie tn, pblem wznawiania wyknania zkazów) Zaządzanie pamięcią peacyjną Uzaadnienie twania pamięci witualnej Zalety twania pamięci witualnej! Pewne fagmenty kdu pgamu wyknywane ą badz zadk lub nigdy nie ą wyknywane, np.:! pceduy bługi badz mał pawdpdbnych wyjątków lub błędów,! mduły pgamu, któe w typwych waunkach ekplatacji kazują ię zbędne.! Pewne fagmenty kdu pgamu nie muzą być dtępne jedncześnie.! Rzmiay pewnych tuktu danych (np. tablic) utalane ą z nadmiaem w tunku d typwych ptzeb. Zaządzanie pamięcią peacyjną! Mżliwść zwiękzenia zmiaów pgamów pnad zmia pamięci fizycznej! Mżliwść zwiękzenia liczby pceów (ppawa wykzytania pcea i pzeputwści ytemu bez zwiękzania czau dpwiedzi i czau cyklu pzetwazania) dzięki zedukwaniu zaptzebwania na fizyczną pzez pzczególne pcey! Zmniejzenie liczby peacji wejścia-wyjścia i tym amym zedukwanie czau ładwanie pgamów pzy ich uuchamianiu, gdyż nie jet knieczne ładwanie pgamów w całści Zaządzanie pamięcią peacyjną
Stnicwanie na żądanie Obługa błędu tny! Stnicwanie na żądanie (ang. demand paging) a tnicwanie w pzypadku wymiany (ang. wapping)! wymiana pmiędzy pamięcią fizyczną a pmcniczą pzeyłane ą całe pcey,! tnicwanie na żądanie pce taktwany jet jak ciąg tn, któe ą pwadzane d pamięci tylk wówcza, gdy jet t knieczne (leniwa wymiana, ang. lazy wapping).! Wymaganie pzętwe związane ze tnicwaniem na żądanie! tablica tn z bitem ppawnści (ang. valid-invalid bit) dla każdej pzycji,! uządzenie wymiany (ang. wap device) pmcnicza. lgiczny tablica tn n błąd tny pce ytem peacyjny pułapka nume tny tny nume amki amki pzeunięcie uządzenie wymiany Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną Zatępwanie tn (ang. page eplacement) Algytmy zatępwania tn (ang. page-eplacement algithm)! Pblem zatępwania tn pjawia ię wówcza, gdy w pamięci fizycznej bakuje wlnych amek i knieczne jet zwlnienie jakieś amki ppzez uunięcie z niej tny.! Jeśli tna była mdyfikwana w pamięci, knieczne jet zapianie jej na dyku kniecznść wpwadzenie bitu mdyfikacji (ang. mdify bit), zwaneg też bitem zabudzenia (ang. dity bit). uządzenie wymiany Zaządzanie pamięcią peacyjną! Algytm FIFO (ang. Fit In Fit Out) zatępwana jet tna najtaza (najwcześniej wpwadzna d pamięci)! Algytm OPT (MIN) zatępwana jet tna, któa najdłużej nie będzie używana! Algytm LRU (ang. Leat Recently Ued) zatępwana jet najdawniej używana tna (najdłużej nie używana)! LFU (ang. Leat Fequently Ued) zatępwana jet najzadziej używana tna! MFU (ang. Mt Fequently Ued) zatępwana jet najczęściej używana tna Zaządzanie pamięcią peacyjną 8 Pzykład działania algytmu zatępwania tn! W ytemie pamięci witualnej ą amki.! Wzytkie amki ą pczątkw pute! W ytemie pjawiają ię natępujące dnieień (dwłań) d tn:,,,,,,,,,,,,, Pzykład działania algytmu zatępwania tn () Dalzy ciąg dnieień:,,,, LRU FIFO LFU OPT MFU Zaządzanie pamięcią peacyjną 9 Zaządzanie pamięcią peacyjną
Implementacja algytmu FIFO! Utzymywanie lity numeów tn w klejnści ich pwadzania d pamięci! Umiezczanie numeu pwadzanej tny na kńcu lity! Uuwanie z pamięci (i z lity) tny, któej nume znajduje ię na pczątku lity! Mżliwść wytąpienia anmalii Belady eg (pzy zwiękzeniu liczby amek natępuje pzypadkwe zwiękzenie liczby błędów tny) Zaządzanie pamięcią peacyjną Pzykład anmalii Belady eg! Ciąg dnieień:,,,,,,,,,,,! Pzy zatwaniu algytmu FIFO dla amek mamy 9 błędów tny, a dla amek mamy błędów tny Zaządzanie pamięcią peacyjną Implementacja algytmu LRU Algytmy pzybliżające metdę LRU! Licznik pzed każdym dwłaniem d pamięci zwiękzana jet watść pewneg licznika i wpiywana d dpwiedniej pzycji piującej tnę w tablicy tn (lub w innej pecjalnej tuktuze ytemu peacyjneg). Z pamięci uuwana jet wówcza tna z najmniejzą watścią teg licznika, c wymaga pzejzenia całej tablicy tn.! St numey tn, d któych natępuje dwłanie, dkładane ą na zczycie tu. Pzed dłżeniem na zczycie nume tny mui być wydbyty ze śdka tu, czyli z miejca, gdzie był tatni dłżny. W tej implementacji pamięci uuwana jet tna z dna tu.! Niezbędne wpmaganie pzętwe:! bit dnieienia (ang. efeence bit) utawiany dla danej tny pzez pzęt zawze, gdy natępuje zapi lub dczyt na tej tnie,! bit mdyfikacji (ang. mdify bit) utawiany dla danej tny pzez pzęt zawze, gdy natępuje zapi na tej tnie.! Algytmy kzytające ze wpmagania pzętweg:! algytm ddatkwych bitów dwłań wykzytuje bit dnieienia,! algytm dugiej zany wykzytuje bit dnieienia,! alepzny algytm dugiej zany wykzytuje bit dnieienia i bit mdyfikacji. Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną Algytm ddatkwych bitów dwłań Algytm dugiej zany tablica tn bit dnie. tablica ddatkwych bitów dwłań M tatnia tny d uunięcia 8 tablica tn bit dnie. tna d uunięcia lita tn 8 Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną
Ulepzny algytm dugiej zany Implementacja algytmów LFU i MFU 8 tablica tn bit dnie. bit mdyf. tna d uunięcia lita tn 8! Utzymywanie liczników dnieień d każdej ze tn i ich inkementacja pzy każdym dwłaniu d dpwiedniej tny! Uuwanie tny z najmniejzą (LFU) lub najwiękzą (MFU) watścią licznika! Zewanie licznika p uunięciu tny z pamięci Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną 8 Pblemy wynikające ze tnicwania Pzydział amek! Pblem wznawiania zkazów w amach wyknania jedneg zkazu mże natąpić kilka óżnych dwłań d pamięci (pbanie kdu zkazu, pbanie peandów, zapamiętanie wyniku), a każde dwłanie mże pwdwać błąd tny i kniecznść wznwienia wyknania. zkazu. Załadwanie tny z dugim peandem mże pwdwać uunięcie tny z piewzym peandem itd.! Szamtanie (ang. tahing) algytm zatępwania tn mże wyzucić z pamięci tnę, któa będzie ptzebna d wyknania natępneg zkazu. Pdbna ytuacja mże zajść pzy wyknywaniu natępneg zkazu. W ezultacie więkza część aktywnści pceu pzeznaczna jet na tnicwanie Zaządzanie pamięcią peacyjną 9! Pczątkwa liczba amek dla pceu! pdział ównmieny (ang. equal allcatin)! pdział ppcjnalny (ang. pptinal allcatin)! pzydział zależny d piytetu pceu! Minimalna liczba amek zdefiniwana pzez achitektuę kmputea (zależna d minimalnej liczby kmóek wanych pzez jeden zkaz)! Pzydział amek:! lkalny algytm wymiany zwalnia tylk amki pzydzielne pcewi, któy pwdwał błąd tny,! glbalny algytm wymiany uuwa tny z dtępnej puli amek w całym ytemie (w zczególnści uuwa tny innych pceów). Zaządzanie pamięcią peacyjną Szamtanie (migtanie) tn (ang. tahing) Zapbieganie zamtaniu! Pzyczyna: zamia zwiękzenia wykzytania pcea pzez zwiękzenie liczby pceów w ytemie z glbalnym mechanizmem zatępwania tn Skutek: wzt liczby pceów czekujących na bługę pzez uządzenie tnicujące i padek liczby pceów gtwych Otateczny efekt: zmniejzenie wykzytania pcea! Szamtanie mżna ganiczyć pzez zatwanie algytmu zatępwania lkalneg lub piytetweg (nie likwiduje t jednak pblemu!!!).! Szamtanie mżna zlikwidwać, dtaczając pcewi tylu wlnych amek ilu ptzebuje d wyknania keślneg fagmentu pgamu (np. pceduy, pętli). Jak ię dwiedzieć ile wlnych amek jet ptzebnych pcewi Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną
Mdel zbiu bczeg (ang. wking-et mdel)! Załżenie: pgam wykazuje lkalnść dwłań d pamięci, czyli ma chaakteytykę tefwą.! Mdel tefwy (ang. lcality mdel)! tefa zbió tn pztających we wpólnym użyciu (używanych łącznie w czaie wyknywania keślneg fagmentu pgamu),! wyknanie pgamu pwadza ię d pzechdzenia z jednej tefy d dugiej,! pgam kłada ię z wielu tef, najczęściej zachdzących na iebie. Zaządzanie pamięcią peacyjną Definicja zbiu bczeg! Zbió bczy pceu (ang. wking-et) zbió tn, d któych natąpił dwłanie w ciągu tatnich dwłań (tzw. knie zbiu bczeg) w czaie działania pceu! Okn zbiu bczeg (ang. wking-et windw) liczba dwłań d pamięci, pzez któe dana tna pztaje w zbize bczym d tatnieg dwłania d niej,,,,,,,,,,,, = ZR = {,,, } ZR = {,,, } = ZR = {,,,, } ZR = {,,, } Zaządzanie pamięcią peacyjną Utalanie liczby ptzebnych amek Kntla czętści błędów tny! Zaptzebwanie na amki w całym ytemie jet umą zmiaów zbiów bczych, czyli Z = Σ ZR i, gdzie ZR i jet mcą (liczbą elementów) zbiu ZR i, czyli zaptzebwaniem i-teg pceu na amki.! Jeśli Z > m, gdzie m jet całkwitą liczbą amek w ytemie dtępną dla pceów użytkwnika, t zaptzebwanie jet zbyt duże i mże pwtać zamtanie. Sytem peacyjny mui wówcza wtzymać wyknywanie jakiegś pceu i zwlnić zajmwane pzez nieg amki! Jeśli w ytemie ą wlne amki (Z < m), t mżna zpcząć nwy pce.! Pzy każdym błędzie tny genewanym pzez pce zwiękzany jet licznik błędów tny daneg pceu.! W keślnych keach czau (genewanych pzez time) pawdzane ą (a natępnie zewane) watści liczników pzczególnych pceów.! Jeśli watść licznika jet więkza d utalnej gónej ganicy, t pcewi pzydzielana jet ddatkwa amka.! Jeśli watść licznika jet mniejza d utalnej dlnej ganicy, t pcewi zabieana jet jedna amka.! W pzypadku zaptzebwania więkzeg niż liczba wlnych amek knieczne jet wtzymanie jakiegś pceu. Zaządzanie pamięcią peacyjną Zaządzanie pamięcią peacyjną