Organizacja zarządzania pamięcią. Systemy operacyjne / Zarządzanie pamięcią str.4/59. Zarządzanie pamięcią. Funkcje systemu operacyjnego

Podobne dokumenty
Systemy operacyjne Zarządzanie pamięcią

Wykład 7. Zarządzanie pamięcią

Zarządzanie zasobami pamięci

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

architektura komputerów w. 8 Zarządzanie pamięcią

dr inż. Jarosław Forenc

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Systemy operacyjne III

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

dr inŝ. Jarosław Forenc

Schematy zarzadzania pamięcia

dr inż. Jarosław Forenc

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Podstawy. Podsystem zarządzania pamięcią - zadania: Wiązanie (binding) rozkazów i danych z adresami pamięci. W systemie wielozadaniowym:

Podstawy. Pamięć wirtualna. (demand paging)

Architektura komputerów

Mikroinformatyka. Tryb wirtualny

Współpraca procesora ColdFire z pamięcią

Architektura komputerów

Stronicowanie w systemie pamięci wirtualnej

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

ARCHITEKTURA PROCESORA,

Sprzętowe wspomaganie pamięci wirtualnej

Co to jest sterta? Sterta (ang. heap) to obszar pamięci udostępniany przez system operacyjny wszystkim działającym programom (procesom).

4. Procesy pojęcia podstawowe

Mikroinformatyka. Wielozadaniowość

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Systemy Operacyjne Pamięć wirtualna cz. 2

Podstawowe zagadnienia informatyki

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

dr inż. Jarosław Forenc

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

System pamięci. Pamięć wirtualna

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Zarządzanie pamięcią operacyjną i pamięć wirtualna

WOJSKOWA AKADEMIA TECHNICZNA

Systemy Operacyjne Pamięć wirtualna cz. 1

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

4. Procesy pojęcia podstawowe

Pamięć wirtualna w AS/400

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Informatyka 2. Wykład nr 10 ( ) Plan wykładu nr 10. Politechnika Białostocka. - Wydział Elektryczny. ext2. ext2. dr inŝ.

Hierarchia pamięci w systemie komputerowym

Architektura komputerów

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

DYNAMICZNE PRZYDZIELANIE PAMIECI

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Zarz arz dzanie pam dzanie ięci ę ą

Pytania do treści wykładów:

Procesory rodziny x86. Dariusz Chaberski

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Programowanie współbieżne Wykład 2. Iwona Kochańska

Prezentacja systemu RTLinux

Mikroprocesory rodziny INTEL 80x86

J. Ułasiewicz Komputerowe systemy sterowania 1. 1 Architektura PC Ogólna struktura systemu jednoprocesorowego

Systemy Operacyjne Zarządzanie pamięcią operacyjną

Systemy operacyjne system przerwań

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

System pamięci. Pamięć wirtualna

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Wskaźniki. Informatyka

System pamięci. Pamięć wirtualna

MS Visual Studio 2005 Team Suite - Performance Tool

1.1 Definicja procesu

Wykład 10 Zarządzanie pamięcią

Architektura komputerów

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Stronicowanie na ¹danie

Mikroinformatyka. Mechanizmy ochrony pamięci

Zarz¹dzanie pamiêci¹

Architektura systemów informatycznych

Wybrane zagadnienia elektroniki współczesnej

Opracowanie zadań testowych i otwartych z kolokwiów i egzaminów z przedmiotu SOI, prowadzący WBD

4. Procesy pojęcia podstawowe

WINDOWS NT. Diagram warstw systemu Windows NT

Podstawy programowania w języku C++

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

WYKŁAD. Zarządzanie pamięcią operacyjną

Technologie informacyjne (2) Zdzisław Szyjewski

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Zarz arz dzanie pam dzanie ięci ę ą

Systemy operacyjne III

Podstawy programowania w języku C++

Transkrypt:

Organizacja zarządzania pamięcią Systemy Operacyjne Zarządzanie pamięcią dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut utomatyki i Informatyki Stosowanej Politechnika Warszawska Na organizację zarządzania mają wpływ: pole adresowe argumentów rozkazu, miejsce pola adresacji w słowie, sprzętowe możliwości przekształcania pola adresacji. W zależności od długości pola adresacji przestrzeń adresowa może pokrywać się z zakresem adresów pamięci operacyjnej, może być większa lub mniejsza. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59 Zarządzanie pamięcią Funkcje u operacyjnego zego programiści oczekują od pamięci u: by była duża, by była szybka, by była nieulotna. Hierarchia pamięci: mała szybka droga pamięć (np. cache), średnia, średnio szybka, umiarkowanie droga, pamięć (np. pamięć operacyjna), ogromna, wolna i tania pamięć (np. pamięć dyskowa/ taśmowa). Funkcje u operacyjnego w kontekście zarządzania pamięcią: zagospodarowanie przestrzeni adresowej poprzez wykorzystanie mechanizmów translacji adresów, ochrona zawartości pamięci, organizacja dostępu do obszarów dzielonych, efektywna organizacja pamięci operacyjnej. Wielkość pamięci operacyjnej przeznaczonej na kod u operacyjnego jest zazwyczaj stała, natomiast bardziej złożony jest przydział pamięci procesom użytkowym. Zarządzanie pamięcią (ang. Memory Management, MM) na poziomie u operacyjnego uwarunkowane architekturą u. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

Metody przydziału pamięci Podział pamięci Metody przydziału pamięci operacyjnej procesom użytkowym:. brak podziału, wolna przestrzeń adresowa w danje chwili przydzielana jednemu procesowi użytkowemu. Wieloprogramowanie można realizować przez wymiatanie (ang. swapping),. podział pamięci, wolna przestrzeń adresowa podzielona na części przydzielane pojedynczym procesom użytkowym,. wykorzystanie pamięci wirtualnej, istnieje jedna lub wiele wirtualnych przestrzeni adresowych przydzielanych procesom użytkowym, a mających w niewielkim stopniu pokrycie w pamięci operacyjnej. ele podziału pamięci między procesy: lepsze wykorzystanie elementów sprzętowych u, głównie procesora i pamięci, umożliwienie szybkiego przełączania procesora z pracy z jednym procesem na pracę z innym procesem. Można wyróżnić następujące typy ów z podziałem pamięci: y z podziałem statycznym. Podział statyczny dzieli pamięć na stałe partycje o różnej długości lub na bloki o stałej długości zwane ramami (ang. frame). y z podziałem dynamicznym. Realizacja z wykorzystaniem struktur opisujących wolne bloki pamięci o różnych długościach oraz mechanizm wymiatania. Systemy operacyjne / Zarządzanie pamięcią str.5/59 Systemy operacyjne / Zarządzanie pamięcią str.7/59 rak podziału Podział statyczny na stałe partycje Trzy metody prostej organizacji pamięci dla u operacyjnego i jednego procesu uzytkownika. Multiple input queues Partition 8K 7K Partition User program in RM xfff in ROM Device drivers in ROM User program User program in RM (c) Partition Partition Partition K K K Single input queue Partition Partition Partition a. partycje o stałym rozmiarze z osobnymi kolejkami wejściowymi, b. partycje o stałym rozmiarze z jedną kolejką wejściową. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str.8/59

Podział dynamiczny Modelowanie wieloprogramowania Do realizacji dynamicznego podziału pamięci można stosować następujące hipotetyczne funkcje: przydziel( rozmiar, adres ) wybranie spośród bloków wolnych bloku pokrywającego zapotrzebowanie, efektem jest zwrócenie adresu wybranego bloku i usunięcie przydzielonego bloku ze zbioru bloków wolnych, malloc( size ), calloc( n, size ), realloc( ptr, size ). zwolnij( adres ) - dołączenie bloku zajętego do zbioru wolnych bloków, np. free( ptr ), informuj() - zwróc rozmiar aktualnie największego wolnego bloku, np. msize(). PU utilization (in percent) % I/O wait 8 5% I/O wait 8% I/O wait 5 7 8 9 Degree of multiprogramming Wykorzystanie procesora w funkcji liczby procesów w pamięci. Systemy operacyjne / Zarządzanie pamięcią str.9/59 Systemy operacyjne / Zarządzanie pamięcią str./59 Zarządzanie w kontekście wieloprogramowania naliza wydajności wieloprogramowania Dwa zasadnicze aspekty: obsługa relokacji, nie ma pewności gdzie dokładnie program zostanie załadowany do pamięci, wykorzystanie rejestrów bazowych i rejestrów ograniczających. wzajemna ochrona pamięci. Job rrival time : : :5 : PU minutes needed..9 Job starts.9 PU idle PU busy PU/process.8.8.8.... # Processes.8.....8.5.9...59.5 Job finishes.9..9.9..7 5 7. 8..7 Time (relative to job 's arrival) (c) Systemy operacyjne / Zarządzanie pamięcią str./59 a. czas nadejścia i wymagania poszczególnych prac, b. wykorzystanie procesora dla procesów z 8% I/O, c. sekwencja zdarzeń z pokazanym w minutach czasem, jaki dany proces otrzymuje w podanym interwale. Systemy operacyjne / Zarządzanie pamięcią str./59

Wymiatanie (ang. swapping) lgorytmy alokacji (c) Time (d) D (e) D (f) D Zmiany przydziału pamięci wraz z pojawianiem się i znikaniem procesów z pamięci. Obszary zakreskowane są niewykorzystane. (g) Zadaniem algorytmu alokacji jest wybranie wolnego bloku w celu przydzielenia procesowi pamięci. Wybrane algorytmy alokacji: algorytm pierwszej zgodności (ang. First Fit), wybór pierwszego pasującego ze zbioru/ listy, algorytm najlepszej zgodności (ang. est Fit), wybór najmniejszego wystarczającego bloku ze zbioru/ listy, algorytm najgorszej zgodności (ang. Worst Fit), wybór największego ze zbioru/ listy, algorytm bliźniaków (ang. uddies), podział pamięci (o długości k ) na dwa równe bliźniacze bloki; połowienie jednego aż do uzyskania bloku o minimalnej długości spełniającego zapotrzebowanie. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str.5/59 Fragmentacja Przeciwdziałanie fragmentacji Przy wyborze algorytmu alokacji należy uwzględnić następujące czynniki: prędkość, prostotę, efekt fragmentacji. Fragmentacja wewnętrzna - zjawisko tworzenia niewykorzystywalnych, choć przydzielonych w ramach pewnej struktury (partycja, ramka), obszarów pamięci. Fragmentacja zewnętrzna - zjawisko tworzenia niewykorzystywalnych, nieprzydzielonych obszarów pamięci, zazwyczaj spowodowane niedoskonałością działania organizacji alokacji pamięci procesom uzytkowym. W ie może być zdefiniowana wartość n będąca minimalna dopuszczalną wartością niejawnie przydzielanego bloku, co ułatwia zarządzanie i zwiększa efektywność, ale może prowadzić do zjawiska fragmentacji. Efektom fragmentacji można przeciwdziałać poprzez: zwalnianie i scalanie, zagęszczanie i relokacje, mechanizm stronicowania. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

Zarządzanie pamięcią - mapy bitowe i listy Pamięć wirtualna D E Hole 8 Starts at 8 Length P 5 H 5 P 8 P H 8 P P H 9 (c) Process a. fragment pamięci z pięcioma procesami i trzema dziurami, b. odpowiadająca mapa bitowa, c. ta sama informacja w postaci listy. Pamięć wirtualna pamięci złożony z co najmniej dwóch rodzajów pamięci: małej i szybkiej (np. pamięci operacyjnej) oraz dużej, lecz wolnej (np. pamięci pomocniczej), a także z dodatkowego sprzętu i oprogramowania umożliwiającego automatyczne przenoszenie fragmentów pamięci z jednego rodzaju pamięci do drugiego. Pamięć wirtualna ma być prawie tak szybka jak szybsza z pamięci i prawie tak duża jak większa z pamięci. Metody realizacji pamięci wirtualnej: stronicowanie, segmentacja, stronicowanie z segmentacją. Systemy operacyjne / Zarządzanie pamięcią str.7/59 Systemy operacyjne / Zarządzanie pamięcią str.9/59 Problem dynamicznej alokacji Rola jednostki zarządzającej pamięcią Room for growth ctually in use Room for growth -Stack -Data -Program -Stack Room for growth Room for growth PU PU package The PU sends virtual addresses to the MMU Memory management unit Memory Disk controller ctually in use -Data -Program The MMU sends physical addresses to the memory us a. alokacja pamięci dla rosnącego segmentu danych, b. alokacja pamięci dla rosnącego stosu i rosnącego segmentu danych. MMU (ang. Memory Management Unit) może być zintegrowane z procesorem (tak zazwyczaj teraz), ale może być też niezależne (tak zazwyczaj było dawniej). Systemy operacyjne / Zarządzanie pamięcią str.8/59 Systemy operacyjne / Zarządzanie pamięcią str./59

Stronicowanie Realizacja stronicowania Stronicowanie bazuje na stałym podziale pamięci. Jednostki podziału: ramy, ramki (ang. frames) dla pamięci fizycznej, strony (ang. pages) dla wirtualnej przestrzeni adresowej procesu. Zadania mechanizmu stronicowania: odwzorowywanie adresów wirtualnych w adresy rzeczywiste:. określenie, do której strony odnosi się adres w programie,. znalezienie ramy, którą aktualnie zajmuje dana strona. przesyłanie - w zależności od potrzeby - stron z pamięci pomocniczej do pamięci operacyjnej oraz odsyłanie już nie używanych stron z powrotem. Korzystanie z pamięci wirtualnej nie stawia żadnych dodatkowych wymagań użytkownikowi. Przydział pamięci realizowany jest owo z wykorzystaniem tablic stron i/ lub tablic ram. Zapewnienie własności przezroczystości wymaga: obsługi przez przerwania określanego jako chybienie strony (ang. page fault), sygnalizującego brak w pamięci strony, do której usiłowano się odwołać. obsługa chybienia ma zgodnie z przyjętym algorytmem wymiany stron przydzielić ramę i ściągnąć stronę z pamięci pomocniczej, w celu minimalizacji strat wydajności odwołań do pamięci wykorzystanie pamięci asocjacyjnych do translacji adresów. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59 Przykład translacji Przykładowa tablica stron Virtual address space K-K 5K-K 5K-5K 8K-5K K-8K K-K K-K K-K 8K-K K-8K K-K K-K K-K 8K-K K-8K K-K 7 5 Virtual page Physical memory address 8K-K K-8K K-K K-K K-K 8K-K K-8K K-K frame Wewnętrzne operacje MM z szesnastoma stronami po k. table 5 9 8 7 5 Present/ absent bit Virtual page = is used as an index into the page table Należy uwzględniąć następujące fakty: tablica stron może być bardzo duża, -bit offset copied directly from input to output odwzorowywanie musi być bardzo szybkie. Outgoing physical address (58) Incoming virtual address (89) Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

TL (ang. Translation Lookaside uffer ) Valid Virtual page Modified Protection frame RW R 8 RW 9 9 RW 9 R 5 R 5 8 RW 8 RW 75 Główny cel: minimalizacja liczby odwołań do pamięci w trakcie stronicowania. spekty dotyczące TL: koszt przełączania kontekstu, koszt wielopoziomowści tablic stron, realizacja: sprzętowa/ programowa. Systemy operacyjne / Zarządzanie pamięcią str.7/59 Odwrócone tablice stron Typowy element tablicy stron aching disabled Modified Present/absent frame number Referenced Protection Systemy operacyjne / Zarządzanie pamięcią str.5/59 Wielopoziomowe tablice stron Second-level page tables table for the top M of memory Top-level page table its 5 PT PT Offset 5 To pages Systemy operacyjne / Zarządzanie pamięcią str./59 Traditional page table with an entry for each of the 5 pages 5-5-M physical memory has -K page frames Hash table - - frame Virtual page Indexed by hash on virtual page Indexed by virtual page Systemy operacyjne / Zarządzanie pamięcią str.8/59

Optymalny rozmiar strony lgorytmy wymiany stron Dobór rozmiaru strony ma wpływ na fragmentację wewnętrzną oraz rozmiar tablicy stron. Niech: s przeciętny rozmiar procesu w bajtach, p rozmiar strony, e rozmiar pozycji w tablicy stron. wtedy nadmiar = s e/p + p/ Wyszukiwanie ekstremum, pochodna względem p przyrównana do : se/p + / = Zestawienie wybranych algorytmów wymiany stron: algorytm optymalny, algorytm NRU (ang. not recently used) (bity R i M), algorytm FIFO, algorytm drugiej szansy, algorytm zegarowy, algorytm LRU (ang. least recently used). Zatem optymalny rozmiar strony wynosi p = se Systemy operacyjne / Zarządzanie pamięcią str.9/59 Systemy operacyjne / Zarządzanie pamięcią str./59 Obsługa chybienia lgorytm drugiej szansy Obsługa chybienia przebiega następująco:. wskazanie ramy dla żądanej strony, loaded first 7 8 D E F 5 G 8 H Most recently loaded page. zwolnienie wskazanej ramy,. ściągnięcie żądanej strony w obszar wskazanej ramy,. aktualizacja tablicy ram. 7 8 D E F 5 G 8 H is treated like a newly loaded page Wskazaniem ramy, w przypadku braku ram wolnych, zajmuje się algorytm wymiany stron (ang. page replacement algorithm). Główne zadanie: usunięcie z pamięci operacyjnej strony najmniej potrzebnej w przyszłości, tzn, strony, do której odwołanie nastąpi najpóźniej bądź w ogóle nie nastąpi. a. strony sortowane w porządku FIFO, b. nowa postć listy, gdy bład strony wystąpił w momencie i miał ustawiony bit R. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

lgorytm zegarowy wymiany stron Programowa symulacja algorytmu LRU (II) L R bits for pages -5, clock tick R bits for pages -5, clock tick R bits for pages -5, clock tick R bits for pages -5, clock tick R bits for pages -5, clock tick J K I E D When a page fault occurs, the page the hand is pointing to is inspected. The action taken depends on the R bit: R = : Evict the page R = : lear R and advance hand H G F 5 (c) (d) (e) lgorytm postarzania, pokazano sześć stron w okresie pięciu tyknięć zegara. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str.5/59 Sprzętowy algorytm LRU Zbiór roboczy stron Zbiorem roboczym nazywamy zbiór stron wykorzystywanych w trakcie k ostatnich odwołań do pamięci. Funkcja w(k, t) odpowiada mocy zbioru w chwili t. (c) (d) (e) w(k,t) (f) (g) (h) (i) (j) Do stron odwoływano się w następującej kolejności:,,,,,,,,,. k Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

lgorytm zbioru roboczego Porównanie algorytmów wymiany stron Information about one page 8 Time of last use referenced during this tick not referenced during this tick 98 urrent virtual time R (Referenced) bit Scan all pages examining R bit: if (R == ) set time of last use to current virtual time if (R == and age > τ) remove this page if (R == and age τ) remember the smallest time lgorytm Optymalny NRU FIFO Drugiej szansy Zegarowy LRU NFU Postarzanie Zbiór roboczy WSlock Komentarz nieimplementowalny, punkt odniesienia surowy może wymiatać istotne strony duże ulepszenie FIFO realistyczny dobry, ale trudny do implementacji dość ogólna aproksymacja LRU efektywny z dobrą aproksymacją LRU dość kosztowny w implementacji dobry efektywny algorytm table Systemy operacyjne / Zarządzanie pamięcią str.7/59 Systemy operacyjne / Zarządzanie pamięcią str.9/59 Zegarowy algorytm zbioru roboczego nomalia elady ego urrent virtual time 8 8 Youngest page Oldest page ll pages frames initially empty P P P P P P P P P 9 faults 98 98 Time of last use 8 R bit 8 Youngest page Oldest page P P P P P P P P P P faults 98 (c) 98 New page (d) a. algorytm FIFO wymiany stron na maszynie z trzema ramkami, b. algorytm FIFO wymiany stron na maszynie z czteroma ramkami. więcej błedów strony przy większej liczbie ramek. Systemy operacyjne / Zarządzanie pamięcią str.8/59 Systemy operacyjne / Zarządzanie pamięcią str./59

Strony współdzielone Organizacja przestrzeni wymiany Main memory Disk Main memory Disk s s Swap area 7 5 Swap area Process table table table 7 5 Disk map Program Data Data tables a. stronicowanie do statycznego obszaru wymiany, b. dynamiczny zrzut stron. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59 Obsługa błędu strony Rozdzielenie strategii i mechanizmu realizacji MOVE.L #(), () its MOVE instrukcja wywołująca błąd strony, odkąd zacząć powtarzanie instrukcji? } } } Opcode First operand Second operand User space Kernel space. fault User process Main memory. Needed page Fault handler External pager 5. Here is page. Map page in. Request page. arrives MMU handler Disk obsługa błędu strony przez zewnętrzny program typu pager. Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str./59

Pojedyncza przestrzeń adresowa Rozmiary segmentów Virtual address space K ddress space allocated to the parse tree all stack Parse tree onstant table Source text Symbol table Free Space currently being used by the parse tree Symbol table has bumped into the source text table Niewygody pojedynczej przestrzeni adresowej na przykładzie mapy pamięci translatora/ kompilatora. K K 8K K K Symbol table Segment K 8K K K Source text Segment K onstants Segment Parse tree Segment all stack Segment Segmentacja pamięci umożliwia każdej tablicy niezależną zmianę rozmiaru. K K 8K K K K 8K K K Systemy operacyjne / Zarządzanie pamięcią str.5/59 Systemy operacyjne / Zarządzanie pamięcią str.7/59 echy segmentacji Stronicowanie a segmentacja (I) celem segmentacji organizacji przestrzeni adresowej w sposób odzwierciedlający logiczny podział informacji, przy organizacji przestrzeni wirtualnej możliwość korzystania z dużej liczby segmentów z nadawanymi przez programistę nazwami, przestrzeń adresowa dwuwymiarowa z racji identyfikacji adresu poprzez parę nazwa segmentu + adres wewnątrz segmentu, odzworowanie adresu organizowane zazwyczaj poprzez osobną dla każdego procesu tablicę segmentów, elementy tablicy segmentów określane mianem deskryptorów segmentu, każdy deskryptor zawiera adres bazy oraz rozmiar segmentu. celem segmentacji logiczny podział pamięci operacyjnej, celem stronicowania fizyczny podział pamięci, stronicowanie mechanizmem niskiego poziomu, niewidocznym dla programisty; segmentacja mechanizmem wyższego poziomu, widocznym dla programisty, rozmiar strony stały, ustalona, wynikający z architektury, rozmiar segmentu dowolny określany przez programistę, zarówno w przypadku zastosowania stronicowania jak i segmentacji całkowita przestrzeń adresowa może być większa od dostępnje pamięci fizycznej, segmentacja umożliwia lepszą ochronę poszczególnych elementów procesu poprzez możliwość rozróżniania segmentów logicznie grupujących elementy procesów, Systemy operacyjne / Zarządzanie pamięcią str./59 Systemy operacyjne / Zarządzanie pamięcią str.8/59

Stronicowanie a segmentacja (II) MULTIS: Segmentacja ze stronicowaniem segmentacja umożliwia łatwiejsze zarządzanie elementami procesu o zmiennym rozmiarze (np. stos, sterta), segmentacja udostępnia współdzielenie procedur między procesami (np. segmenty dzielone, a przez to biblioteki dzielone). główny cel wprowadzenia stronicowania: uzyskanie większej pamięci adresowej bez konieczności zakupu dodatkowej pamięci fizycznej, główny cel wprowadzenia segmentacji: umożliwienie rozdzielenia programów i danych na logicznie niezależne przestrzenie adresowe z ułatwieniem współdzielenia wybranych obszarów i lepszej ochrony. segmentacja - może zachodzić fagmentacja zewnętrzna, stronicowanie - może zachodzić fragmentacja wewnętrzna. komputery Honeywell i następne, maksymalnie możliwych 8 segmentów, z których każdy mógł mieć maksymalnie 55 -bitowych słów, stronicowane segmenty, dla każdego procesu tablica segmentów, sama tablica segmentów również stronicowanym segmentem, fizyczne adresy -bitowe, strony rozmieszczane z dopasowaniem do ( ) bajtów, zatem 8 bitów na adres tablicy stron, standardowy rozmiar stron słów, część wewnętrznych małych segmentów u niestronicowana bądź ze stronami po słowa, ewentualny adres segmentu w pamięci pomocniczej w osobnej tablicy wykorzystywanej przez program obsługi chybienia strony. Systemy operacyjne / Zarządzanie pamięcią str.9/59 Systemy operacyjne / Zarządzanie pamięcią str.5/59 Implementacja czystej segmentacji MULTIS: Pamięć wirtualna Segment (7K) Segment (8K) Segment Segment (8K) Segment (K) Segment (7K) Segment (8K) Segment (K) Segment 7 Segment (K) (K) Segment 5 (K) Segment (8K) Segment (K) Segment 7 Segment (K) (K) Segment 5 (K) Segment (K) Segment (K) Segment 7 Segment (K) (c) (d) (e) (K) (K) Segment 5 (K) Segment (K) Segment Segment 7 Segment (K) zjawisko fragmentacji zewnętrznej (ang. external fragmentation, checkerboarding), zbijanie/ gromadzenie segmentów metodą przeciwdziałania fragmentacji (rys. e), wykorzystanie stronicowania metodą przeciwdziałania fragmentacji. bits Segment descriptor Segment 5 descriptor Segment descriptor Segment descriptor Segment descriptor Segment descriptor Segment descriptor Descriptor segment Main memory address of the page table 8 9 entry entry entry table for segment entry entry entry table for segment Segment length (in pages) size: = words = words = segment is paged = segment is not paged Miscellaneous bits Protection bits Pamięć wirtualna u Multics a. segment deskryptorów ze wskazaniami do tablic stron, b. deskryptor segmentu. Systemy operacyjne / Zarządzanie pamięcią str.5/59 Systemy operacyjne / Zarządzanie pamięcią str.5/59

MULTIS: Wyznaczanie adresu fizycznego Intel Pentium: Segmentacja ze stronicowaniem Segment number number ddress within the segment Offset within the page 8 -bitowy adres wirtualny w ie Multics. Multics: 5K niezależnych segmentów, każdy do K -bitowych słów, Pentium: K niezależnych segmentów, każdy do G -bitowych słów, pojedyncza GDT (ang. Global Descriptor Table) w ie, LDT (ang. Local Descriptor Table) dla każdego procesu. Word Descriptor frame Segment number Descriptor segment number table Offset Translacja dwuczęściowego adresu wirtualnego na adres w pamięci głównej. Dla przejrzystości pominięto fakt, że segment deskryptorów jest również stronicowany. Systemy operacyjne / Zarządzanie pamięcią str.5/59 Systemy operacyjne / Zarządzanie pamięcią str.55/59 MULTIS: bufory TL Intel Pentium: Selektor i deskryptor segmentu omparison field Segment number Virtual page frame Protection ge Is this entry used? Selektor w Pentium its Index 7 Read/write = GDT/ = LDT Privilege level (-) Read only Read/write Execute only Execute only 7 9 : -it segment : -it segment : Li is in bytes : Li is in pages Privilege level (-) : System : pplication Segment type and protection ase - G D Limit P DPL S Type ase - -9 : Segment is absent from memory : Segment is present in memory Uproszczona wersja buforów TL. pozycji, dla których numer segmentu i strony są porównywane równolegle. W rzeczywistości ze względu na zróżnicowanie rozmiaru stron struktura jest bardziej złożona. ase -5 Limit -5 its Deskryptor segmentu kodu w Pentium Relative address Systemy operacyjne / Zarządzanie pamięcią str.5/59 Systemy operacyjne / Zarządzanie pamięcią str.5/59

Intel Pentium: Wyznaczanie adresu fizycznego (I) Intel Pentium: Ochrona Selector Descriptor ase address Offset + User programs Shared libraries System calls Typical uses of the levels Limit Kernel Other fields -it linear address jeżeli stronicowanie wyłączone (czysta segmentacja), uzyskany adres to adres fizyczny, przy włączonym stronicowaniu interpretacja uzyskanego adresu jako wirtualnego, wykorzystanie buforów TL, Level cztery poziomy ochrony, można odwoływać się do danych segmentów swojego i wyższych poziomów, aby odwołać się do procedury innego niż własny poziomu LL ma jako argument nie adres ale selektor do tzw. call gate. Systemy operacyjne / Zarządzanie pamięcią str.57/59 Systemy operacyjne / Zarządzanie pamięcią str.59/59 Intel Pentium: Wyznaczanie adresu fizycznego (II) its Linear address Dir Offset directory table frame Word selected Entries Dir Offset Directory entry points to page table table entry points to word -bitowa logiczna przestrzeń adresowa, strony o rozmiarze K, każdy proces posiada katalog stron z pozycjami, z których każda wskazuje na tablicę stron również z pozycjami. możliwa pojedyncza, stronicowana, -bitowa przestrzeń adresowa na potrzeby aplikacji. Systemy operacyjne / Zarządzanie pamięcią str.58/59