Zarządzanie pamięcią peracyjną zagadnienia pdstawwe Pamięć jak zasób systemu kmputerweg Pamięć jest zasbem służący d przechwywania danych. Z punktu widzenia systemu jest zasbem strukturze hierarchicznej (pcząwszy d rejestrów prcesra, przez pdręczną, główną, skńczywszy na pamięci maswej), w której na wyższym pzimie przechwywane są dane, stanwiące fragment zawartści pzimu niższeg. Z punktu widzenia prcesu jest zbirem bajtów tablicą bajtów identyfikwanych przez y, czyli tablicą bajtów, w której y są indeksami. Systemy peracyjne Zarządzanie pamięcią peracyjną 2 Hierarchia pamięci taśma rejestry pdręczna główna dysk magnetyczny dysk ptyczny I rzędu (ang. primary) II rzędu (ang. secndary) Systemy peracyjne Zarządzanie pamięcią peracyjną 3
Przestrzeń wa Przestrzeń wa jest zbiór wszystkich dpuszczalnych ów w pamięci. W zależnści d charakteru u dróżnia się: przestrzeń fizyczną zbiór ów przekazywanych d układów pamięci głównej (fizycznej). przestrzeń lgiczną zbiór ów generwanych przez prcesr w kntekście aktualnie wyknywaneg prcesu. Systemy peracyjne Zarządzanie pamięcią peracyjną 4 Obraz prcesu w pamięci Twrzenie brazu Kmpilacja Knslidacja Ładwanie kdu Relkacja Ochrna Współdzielenie Systemy peracyjne Zarządzanie pamięcią peracyjną 5 Twrzenie brazu prcesu prgram prgram prgram źródłwy źródłwy źródłwy translatr knslidacja statyczna mduł wynikwy mduł wynikwy mduł wynikwy knslidatr knslidacja dynamiczna w czasie ładwania mduł bibliteczny mduł bibliteczny mduł bibliteczny prgram ładwalny mechanizm ładwania mechanizm ładwania dynamicz. braz w pamięci perac. prgram wyknywany Systemy peracyjne Zarządzanie pamięcią peracyjną 6
Wiązanie i przekształcanie ów W mdelu vn Neumana y dtyczą rzkazów (instrukcji) raz zmiennych (danych). Jeśli w prgramie źródłwym występują y, t mają ne pstać symbliczną (etykiety w asemblerze) lub abstrakcyjną (wskaźniki w C lub Pascalu). Adresy związane z lkalizacją pjawiają się na etapie translacji i są dpwiedni przekształcane aż d uzyskania ów fizycznych. Systemy peracyjne Zarządzanie pamięcią peracyjną 7 Translacja W wyniku translacji (kmpilacja, asemblacja) pwstaje przemieszczalny mduł wynikwy (relcatable bject mdule), w którym wszystkie y liczne są względem u pczątku mdułu. Gdyby prgram składał się z jedneg mdułu, a jeg dcelwa lkalizacja w pamięci była z góry znana, na etapie translacji mgłyby zstać wygenerwane y fizyczne. Systemy peracyjne Zarządzanie pamięcią peracyjną 8 Knslidacja Knslidacja statyczna dniesienia d innych mdułów zamieniane są na y w czasie twrzenia prgramu wyknywalneg. Knslidacja dynamiczna w czasie ładwania w czasie ładwania prgramu następuje załadwanie mdułów biblitecznych i związanie dpwiednich ów, w czasie wyknania załadwanie mdułów biblitecznych i związanie ów następuje dpier przy dwłaniu się d nich w czasie wyknywania prgramu. Systemy peracyjne Zarządzanie pamięcią peracyjną 9
Knslidacja statyczna W czasie łączenia mdułów przemieszczalnych w jeden prgram ładwalny zwany też mdułem abslutnym (ang. abslute mdule), d ów przemieszczalnych ddawane są wartści, wynikające z przesunięcia daneg mdułu przemieszczalneg względem pczątku mdułu abslutneg. Gdyby dcelwa lkalizacja prgramu w pamięci była z góry znana, na etapie tym mgłyby zstać wygenerwane y fizyczne. Systemy peracyjne Zarządzanie pamięcią peracyjną 10 Ładwanie kdu (1) kd dane blk kntrl. kd dane sts plik z prgramem ładwalnym peracyjna Systemy peracyjne Zarządzanie pamięcią peracyjną 11 Ładwanie kdu (2) Ładwanie abslutne prgram ładwany jest w ustalne miejsce w pamięci, znane w mmencie twrzenia prgramu ładwalneg. Ładwanie relkwalne fizyczna lkalizacja prcesu ustalana przy ładwaniu d pamięci. Ładwanie dynamiczne w czasie wyknania fizyczna lkalizacja prcesu w pamięci mże ulec zmianie w czasie wyknywania. Systemy peracyjne Zarządzanie pamięcią peracyjną 12
Prblem realizacji relkacji Jeśli y fizyczne ustalane są dpier na etapie twrzenia brazu prcesu w pamięci, wszystkie y muszą zstać dpwiedni przeliczne przy ładwaniu prgramu d pamięci. Wymiana prcesów pmiędzy pamięcią główną a pamięcią pmcniczą wymaga przeliczenia ów przed każdym pnwnym ładwaniem brazu prcesu d pamięci, gdyż trudn wymagać, żeby prces ładwany był dkładnie w ten sam bszar, który zajmwał wcześniej. Systemy peracyjne Zarządzanie pamięcią peracyjną 13 Wiązanie u w czasie ładwania Ustalanie ów fizycznych w czasie ładwania wymaga wskazania tych miejsc w prgramie ładwalnym, które zawierają y abslutne i ddania d nich przemieszczenia względem pczątku bszaru pamięci fizycznej. Frmat pliku z prgramem ładwalnym musi zatem ddatkw uwzględniać identyfikację ów, przez c staje się skmplikwany i pwduje wzrst rzmiaru sameg pliku. Przeliczanie ów jest peracją czaschłnną. Systemy peracyjne Zarządzanie pamięcią peracyjną 14 Wiązanie u w czasie wyknania Ustalanie ów fizycznych w czasie wyknania znacza, że wygenerwany przez prcesra pddawany jest dpwiedniej transfrmacji, zanim zstanie wystawiny na szynie wej magistrali systemwej systemu. Efektywne generwanie ów fizycznych w czasie wyknania wymaga dpwiednieg wspmagania sprzętweg i wprwadza pdział na y lgiczne i fizyczne. Systemy peracyjne Zarządzanie pamięcią peracyjną 15
Adres lgiczny i fizyczny lgiczny PROCESOR jednstka zarządzania pamięcią (MMU) jednstka wa magistrala wa fizyczny jednstka arytmetycznlgiczna (ALU) rejestry jednstka sterująca Systemy peracyjne Zarządzanie pamięcią peracyjną 16 Przykład dwzrwania u lgiczneg na fizyczny rejestr przemieszczenia 1000 prcesr lgiczny 25 + fizyczny 1025 jednstka zarządzania pamięcią (MMU) Systemy peracyjne Zarządzanie pamięcią peracyjną 17 Ochrna pamięci W systemie wielzadaniwym występuje kniecznść chrny przed zamierzną lub przypadkwą ingerencją prcesu w bszar inneg prcesu lub jądra systemu peracyjneg. Ochrna jądra systemu peracyjneg wskazana jest również w przypadku systemów jednzadan., nie jest jednak elementem krytycznym, gdyż całść zasbów systemu przeznaczna jest na ptrzeby jedneg przetwarzania. Brak chrny spwdwać mże jednak utratę kntrli nad systemem przez użytkwnika. Systemy peracyjne Zarządzanie pamięcią peracyjną 18
Prblemy realizacji chrny pamięci Ochrna pamięci wymaga weryfikacji ów generwanych przez prces przy każdrazwym dniesieniu d pamięci. W celu weryfikacji ów w kntekście daneg prcesu muszą być przechwywane infrmacje na temat dstępnści bszarów pamięci (zakres ów, tryb dstępu). Efektywna realizacja chrny wymaga dpwiednieg wspmagania sprzętweg. Systemy peracyjne Zarządzanie pamięcią peracyjną 19 Przykład chrny bszaru pamięci rejestr graniczny rejestr przemieszczenia 1000 pułapka N < T lgiczny + fizyczny MMU prcesr Systemy peracyjne Zarządzanie pamięcią peracyjną 20 Współdzielenie pamięci Efektywnść wykrzystania pamięci współdzielenie kdu prgramu współdzielenie kdu funkcji biblitecznych Kperacja prcesów synchrnizacja działań prcesów kmunikacja pmiędzy prcesami (współdzielenie danych) Systemy peracyjne Zarządzanie pamięcią peracyjną 21
Prblemy realizacji współdzielenia Realizacja współdzielenia przy braku rzdziału pmiędzy fizyczną i lgiczną przestrzenią wą wymaga rzwiązania pdbnych prblemów z wiązaniem ów jakie pjawiają się przy relkacji, a pnadt uniemżliwia chrnę pamięci lub wprwadza graniczenia w dstępie. Współdzielenie pamięci przy zachwaniu elastycznści dstępu wymaga rzdzielenia lgicznej i fizycznej przestrzeni wej. Systemy peracyjne Zarządzanie pamięcią peracyjną 22 Lkalizacja prcesu w pamięci pdział stały pamięci, pdział dynamiczny pamięci, prste strnicwanie, prsta segmentacja, strnicwanie w systemie pamięci wirtualnej, segmentacja w systemie pamięci wirtualnej. Systemy peracyjne Zarządzanie pamięcią peracyjną 23 Ogólny braz pamięci fizycznej 0 jądr systemu perac. tab. wekt. przerwań 0xFFF... przestrzeń prcesów użytkw. przestrzeń prcesów użytkw. jądr systemu perac. przestrzeń prcesów użytkw. jądr systemu Systemy peracyjne Zarządzanie pamięcią peracyjną 24
Pdział stały Pdział pamięci na stałe bszary (strefy, partycje), których rzmiar i płżenie ustalane są na etapie knfiguracji systemu. Prceswi przydzielany jest cały bszar rzmiarze większym lub równym rzmiarwi prcesu. Zalety: łatwść implementacji i zarządzania Wady: słaba efektywnść wykrzystania pamięci (fragmentacja wewnętrzna, graniczna liczba aktywnych prcesów. Systemy peracyjne Zarządzanie pamięcią peracyjną 25 Pdział stały partycje równym rzmiarze jądr systemu Systemy peracyjne Zarządzanie pamięcią peracyjną 26 Pdział stały prblem zbyt małych partycji jądr systemu nakładki Systemy peracyjne Zarządzanie pamięcią peracyjną 27
Nakładkwanie jądr systemu część stała bszar nakładkwania Systemy peracyjne Zarządzanie pamięcią peracyjną 28 Pdział stały partycje różnych rzmiarach jądr systemu? Systemy peracyjne Zarządzanie pamięcią peracyjną 29 Pdział dynamiczny Pdział pamięci twrzny jest w czasie pracy systemu stswnie d żądań prcesów. Prces ładwany jest w bszar rzmiarze dkładnie dpwiadającym jeg wymaganim. Zalety: lepsze wykrzystanie pamięci (brak fragmentacji wewnętrznej) Wady: skmplikwane zarządzanie, wynikające z kniecznści utrzymywania dpwiednich struktur danych w celu identyfikacji bszarów zajętych raz wlnych. Systemy peracyjne Zarządzanie pamięcią peracyjną 30
Obraz pamięci przy pdziale dynamicznym Systemy peracyjne Zarządzanie pamięcią peracyjną 31 Pdział dynamiczny prblem wybru blku Pierwsze dpaswanie przydziela się pierwszy wlny bszar (tzw. dziurę) wystarczającej wielkści. Pszukiwanie kńczy się p znalezieniu takieg bszaru. Najlepsze dpaswanie przydziela się najmniejszy dstatecznie duży wlny bszar pamięci. Knieczne jest przeszukanie wszystkich dziur. Następne dpaswanie pdbnie jak pierwsze dpaswanie, ale pszukiwania rzpczyna się d miejsca statnieg przydziału. Najgrsze dpaswanie przydziela się największy wlny bszar pamięci. Knieczne jest przeszukanie wszystkich dziur. Systemy peracyjne Zarządzanie pamięcią peracyjną 32 Pierwsze dpaswanie (ang. first fit) blk kierunek przeszukiwania Systemy peracyjne Zarządzanie pamięcią peracyjną 33
Najlepsze dpaswanie (ang. best fit) blk kierunek przeszukiwania Systemy peracyjne Zarządzanie pamięcią peracyjną 34 Najgrsze dpaswanie (ang. wrst fit) blk kierunek przeszukiwania Systemy peracyjne Zarządzanie pamięcią peracyjną 35 System blków bliźniaczych (buddy) Pamięć dstępna dla prcesów użytkwnika ma rzmiar 2 U. Przydzielany blk ma rzmiar 2 K, gdzie L K U. Pczątkw dstępny jest jeden blk rzmiarze 2 U. Realizacja przydziału bszaru rzmiarze s plega na znalezieniu lub utwrzeniu (przez płwienie) blku rzmiarze 2 i takim, że 2 i 1 < s 2 i. Systemy peracyjne Zarządzanie pamięcią peracyjną 36
System buddy przykład 1MB żądanie przydziału 100KB 128K 128K żądanie przydziału 240KB 128K 128K żądanie przydziału 64KB 128K żądanie przydziału 250KB 128K 256KB 256KB 256KB 256KB 512KB 512KB 512KB 256KB 256KB Systemy peracyjne Zarządzanie pamięcią peracyjną 37 Fragmentacja Fragmentacja zewnętrzna pdział bszaru pamięci na rzłączne fragmenty, które nie stanwią ciągłści w przestrzeni wej (mże t dtyczyć zarówn bszaru wlneg, jak i zajęteg) Fragmentacja wewnętrzna pzstawienie niewykrzystywaneg fragmentu przestrzeni wej wewnątrz przydzielneg bszaru (frmalnie fragment jest zajęty, w rzeczywistści nie jest wykrzystany) Systemy peracyjne Zarządzanie pamięcią peracyjną 38 Fragmentacja zewnętrzna blk Systemy peracyjne Zarządzanie pamięcią peracyjną 39
Fragmentacja wewnętrzna blk bszar nie wykrzystany zaptrzebwanie przydział Przydział dkładnie tylu bajtów, ile wynsi zaptrzebwanie, pwduje, że kszt utrzymania bardz małeg bszaru wlneg jest niewspółmiernie duży, np. dane bszarze zajmują więcej bajtów, niż rzmiar teg bszaru. Dlateg wlny bszar przydzielany jest w całści, ale nie jest w pełni wykrzystany. Systemy peracyjne Zarządzanie pamięcią peracyjną 40 Prste strnicwanie (ang. paging) Arbitralny pdział jest na ramki (ang. frames) w które ładwane są dpwiednie strny wynikające z pdziału brazu prcesu. Pdział lgicznej przestrzeni wej na strny (ang. pages) takim samym rzmiarze, jak ramki w pamięci fizycznej. Zalety: brak fragmentacji zewnętrznej, wspmaganie dla współdzielenia i chrny pamięci. Wady: fragmentacja wewnętrzna (niewielka). Systemy peracyjne Zarządzanie pamięcią peracyjną 41 Strnicwanie transfrmacja u Adres lgiczny zawiera numer strny i przesunięcia na strnie (ang. ffset). nr strny (22 bity) przesunięcie (10 bitów) Transfrmacja u plega na zastąpieniu numeru strny numerem ramki. Odwzrwanie numeru strny na numer ramki wyknywane jest za pmcą tablicy strn (ang. page table). Systemy peracyjne Zarządzanie pamięcią peracyjną 42
Schemat transfrmacji u w systemie pamięci strnicwanej prcesr lgiczny s s r fizyczny s numer strny r numer ramki przesunięcie r tablica strn Systemy peracyjne Zarządzanie pamięcią peracyjną 43 Przykład dwzrwania strn w ramki g: lgiczny = 06 (0110 0 i 2 ) 1 j 0 a fizyczny = 10 (1010 2 ) 0 2 k 1 b 0 3 l 2 c 4 3 d 5 4 e 6 1 5 f 1 0 3 7 6 g 1 2 8 e 7 h 2 0 9 f 8 i 2 3 1 10 g 9 j 2 11 h 10 k tablica 12 a 11 l strn 13 b strny 14 c 3 15 d Systemy peracyjne Zarządzanie pamięcią peracyjną 44 ramki Bufry translacji ów strn (TLB) prcesr lgiczny s bufry TLB r fizyczny s numer strny r numer ramki przesunięcie s tablica strn Systemy peracyjne Zarządzanie pamięcią peracyjną 45 r
Strnicwanie wielpzimwe Budwa u nr strny zewnętrznej nr strny wewnętrznej przesunięcie na strnie zewnętrzna tablica strn s1 wewnętrzna tablica strn s2 ramka pamięci s1 s2 Systemy peracyjne Zarządzanie pamięcią peracyjną 46 Odwrócna tablica strn (ang. inverted page table) W dwrócnej tablicy strn jest jedna pzycja dla każdej ramki. PID prcesu nr strny przesunięcie Tablica strn indekswana jest numerem ramki, a zawiera identyfikatr prcesu raz wirtualny numer strny. Systemy peracyjne Zarządzanie pamięcią peracyjną 47 Odwrócna tablica strn transfrmacja u prcesr lgiczny s PID s numer strny r numer ramki przesunięcie PID id prcesu PID s dwrócna tablica strn r r fizyczny Systemy peracyjne Zarządzanie pamięcią peracyjną 48
Segmentacja (ang. segmentatin) Przestrzeń ów lgicznych jest pstrzegana jak zbiór segmentów. Pdstawwe atrybuty segmentu: nazwa (identyfikatr, numer), która jest indeksem w tablicy segmentów bazwy wskazanie na pczątek segmentu rzmiar długść segmentu w ustalnych jednstkach (np. w bajtach, paragrafach). Adres lgiczny składa się z numeru segmentu i przesunięcia wewnątrz segmentu. Odwzrwanie ów lgicznych w fizyczne zapewnia tablica segmentów. Systemy peracyjne Zarządzanie pamięcią peracyjną 49 Schemat wania z segmentacją tablica segmentów s granica baza N < T + fizyczny pułapka s lgiczny Systemy peracyjne Zarządzanie pamięcią peracyjną 50 Schemat wania z segmentacją i strnicwaniem tablica segmentów s pułapka granica baza tablicy strn N < s T + r fizyczny r s lgiczny Systemy peracyjne Zarządzanie pamięcią peracyjną 51
Prsta segmentacja Pdział prcesu na segmenty, które ładwane są d dynamicznych partycji w pamięci. Rzmieszczenie segmentów w pamięci mże być dwlne (nie musi t być ciągły bszar) Zalety w prównaniu z pdziałem dynamicznym: elastycznść w przydziale pamięci. Wady w prównaniu z pdziałem dynamicznym: bardziej skmplikwane zarządzanie. Systemy peracyjne Zarządzanie pamięcią peracyjną 52 Odwzrwanie u lgicz. na fizyczny pdsumwanie Przemieszczenie fizyczny pwstaje z lgiczneg przez ddanie przemieszczenia. Strnicwanie jest pdzielna na lgiczne strny ustalnym rzmiarze dpwiadające fizycznym ramkm. Bardziej znacząca część bitów u interpretwana jest jak numer strny, a pzstała, mniej znacząca część bitów jest przesunięciem na strnie. Segmentacja jest pdzielna na segmenty, czyli bszary zdefiniwane przez wskazanie pczątku w pamięci fizycznej i rzmiar. Adres lgiczny bejmuje identyfikatr (numer) segmentu raz przesunięcie wewnątrz segmentu. Systemy peracyjne Zarządzanie pamięcią peracyjną 53 Współdzielenie pamięci przy rzdzieleniu fizycznej i lgicznej przestrzeni wej 0a 0 i 0 3 1b 1 j 0 1 2 0 2c 2 2 k 3d 3 3 l 4e tablica 4 5 f 1 dwzrwania 1 6g 7 7h 0e 8 e 1 f 0 9 f 2g 0 2 2 10 g 3h 1 0 11 h 4 i 2 5 j 3 12 a 1 6k tablica 13 b 14 c 3 7 l dwzrwania 15 d przestrzeń lgiczna Systemy peracyjne Zarządzanie pamięcią peracyjną 54 przestrzeń fizyczna
Ciągłść lgicznej przestrzeni wej Czy w gólnym przypadku lgiczna przestrzeń wa w systemie strnicwania pamięci jest ciągła? Czy w gólnym przypadku lgiczna przestrzeń wa w systemie segmentacji pamięci jest ciągła? Systemy peracyjne Zarządzanie pamięcią peracyjną 55