Dariusz Wawrzyniak Pamięć jak zasób kmputerweg hierarchia pamięci przestrzeń wa Wsparcie dla zarządzania pamięcią na pzimie architektury kmputera Pdział i przydział pamięci Obraz prcesu w pamięci Strnicwania Segmentacja Plan wykładu () Pamięć jak zasób kmputerweg Hierarchia pamięci Pamięć jest zasbem służący d przechwywania danych i prgramów. Z punktu widzenia 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 (również prcesra) jest zbirem bajtów identyfikwanych przez y, czyli tablicą bajtów, w której y są indeksami. taśma rejestry pdręczna główna dysk magnetyczny dysk ptyczny I rzędu (ang. primary) II rzędu (ang. secndary) () (4) Przestrzeń wa Adres i 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. jednstka arytmetycznlgiczna (ALU) jednstka zarządzania pamięcią (MMU) jednstka wa rejestry szyna wa PROCESOR jednstka sterująca (5) (6)
Przykład dwzrwania u lgiczneg na Przykład weryfikacji pprawnści u rejestr przemieszczenia rejestr graniczny rejestr przemieszczenia 4 56 4 prcesr 5 + jednstka zarządzania pamięcią (MMU) 49 błąd prgramwy N < T prcesr + MMU (7) (8) Pdział pamięci Ogólny braz pamięci fizycznej Pdział stały partycje równym rzmiarze partycje różnych rzmiarach Pdział dynamiczny Pdział na blki bliźniacze (zwany też metdą sąsiedzkich stert) xfff... peracyjneg przestrzeń dla prcesów użytkwników przestrzeń dla prcesów użytkwników peracyjneg tab. wektrów przerwań przestrzeń dla prcesów użytkwników (9) () Fragmentacja Fragmentacja zewnętrzna Fragmentacja wewnętrzna pzstawienie niewykrzystywaneg fragmentu przestrzeni wej wewnątrz przydzielneg bszaru (frmalnie fragment jest zajęty, w rzeczywistści nie jest wykrzystany) 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 Pdział stały zaptrzebwanie przydział Pdział pamięci na stałe bszary (strefy, partycje), których rzmiar i płżenie ustalane są na etapie knfiguracji. Przydział całeg bszaru rzmiarze większym lub równym zaptrzebwaniu, kreślnym w żądaniu. Zalety: łatwść implementacji i zarządzania Wady: słaba efektywnść wykrzystania pamięci (fragmentacja wewnętrzna, graniczna dgórnie liczba jedncześnie przydzielnych partycji). bszar nie wykrzystany () (4) Pdział stały partycje równym rzmiarze Pdział stały prblem zbyt małych partycji nakładki braz przed przydziałem braz p przydziale (5) (6) Nakładkwanie Pdział stały partycje różnych rzmiarach część stała sekcja nakładkwania? (7) (8)
Pdział dynamiczny Obraz pamięci przy pdziale dynamicznym Pdział pamięci twrzny jest w czasie pracy stswnie d żądań prcesów. Prces ładwany jest w bszar rzmiarze dsyć 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. braz przed przydziałem braz p przydziale (9) () Pdział dynamiczny prblem wybru blku Pierwsze dpaswanie Pierwsze dpaswanie (ang. first fit) przydziela się pierwszy wlny bszar (tzw. dziurę) wystarczającej wielkści. Pszukiwanie kńczy się p znalezieniu takieg bszaru. Najlepsze dpaswanie (ang. best fit) 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 (ang. wrst fit) przydziela się największy wlny bszar pamięci. Knieczne jest przeszukanie wszystkich dziur. kierunek przeszukiwania () () Najlepsze dpaswanie Najgrsze dpaswanie () (4) 4
System blków bliźniaczych System blków bliźniaczych przykład Pamięć dstępna dla prcesów użytkwnika ma rzmiar U. Przydzielany blk ma rzmiar K, gdzie L K U. Pczątkw dstępny jest jeden blk rzmiarze U. Realizacja przydziału bszaru rzmiarze s plega na znalezieniu lub utwrzeniu (przez płwienie) blku rzmiarze i takim, że i < s i. (5) klejne żądania przydziału MB KB 5 KB 56 KB 8K 8 KB 5KB 56 KB 8 KB 8 KB 4 KB 64 KB 5KB 56 KB 8 KB 5 KB 56 KB 56 KB 56 KB 8 KB (6) Obraz prcesu w pamięci Twrzenie brazu prcesu Twrzenie brazu Kmpilacja Knslidacja Ładwanie kdu Relkacja Ochrna Współdzielenie 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 łączenia dynamicz. braz w pamięci perac. prgram wyknywany (7) (8) Wiązanie i przekształcanie ów Translacja 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 najczęściej 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 ch. 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. (9) () 5
Knslidacja Knslidacja statyczna 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. 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. () () Ładwanie kdu () Ładwanie kdu () kd dane blk kntrlny kd dane sts Ł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. plik z prgramem ładwalnym peracyjna () (4) Współdzielenie pamięci Ochrna 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) Weryfikacja pprawnści u pd kątem zakresu dpuszczalnści Weryfikacja praw dstępu: prawa zapisu prawa dczytu prawa wyknania (5) (6) 6
Strnicwanie Strnicwanie transfrmacja u Arbitralny pdział pamięci fizycznej na ramki, w które ładwane są dpwiednie strny brazu prcesu. Pdział lgicznej przestrzeni wej na strny takim samym rzmiarze, jak ramki w pamięci fizycznej. Zalety: brak prblemu fragmentacji zewnętrznej, wspmaganie dla współdzielenia i chrny pamięci. Wady: narzut czaswy przy transfrmacji u, narzut pamięciwy (na ptrzeby tablicy strn), fragmentacja wewnętrzna (niewielka). Adres zawiera numer strny i przesunięcia na strnie (ang. ffset), np.: nr strny ( bity) przesunięcie ( 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). (7) (8) Schemat transfrmacji u w systemie pamięci strnicwanej Przykład dwzrwania strn w ramki prcesr p numer strny f numer ramki przesunięcie p p f strn f a b c d 4 e 5 f 6 g 7 h 8 i 9 j k l strny g: = 6 ( ) = ( ) strn i j k l 4 5 6 7 8 e 9 f g h a b 4 c 5 d ramki (9) (4) Bufry translacji ów strn (TLB) Strnicwanie wielpzimwe prcesr p nr strny zewnętrznej nr strny wewnętrznej przesunięcie na strnie p numer strny f numer ramki przesunięcie bufry TLB p f strn f zewnętrzna strn p p p wewnętrzna strn p ramka pamięci (4) (4) 7
Segmentacja Schemat wania z segmentacją Przestrzeń ów ch jest pstrzegana jak zbiór segmentów. Pdstawwe atrybuty segmentu: identyfikatr, bazwy, rzmiar, infrmacja rdzaju zawartści i frmach dstępu. Adres składa się z numeru segmentu i przesunięcia wewnątrz segmentu. Odwzrwanie ów ch w fizyczne zapewnia segmentów. (4) błąd prgram. s N segmentów s granica baza < T + (44) Schemat wania z segmentacją i strnicwaniem Współdzielenie pamięci przy rzdzieleniu fizycznej i lgicznej przestrzeni wej błąd prgram. N s s < a segmentów granica p T baza tablicy strn + f f a b c d 4e 5 f 6g 7h e f g h 4 i 5 j 6k 7 l przestrzeń lgiczna dwzrwania dwzrwania i j k l 4 M 7 8 e 9 f g h a b 4 c 5 d przestrzeń fizyczna (45) (46) 8