1 SYSTEMY OPERACYJNE WYKLAD 4
Transkrypt
1 SYSTEMY OPERACYJNE WYKLAD 4
Politechnika Wrocławska Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: [email protected] www.equus.wroc.pl/studia.html 1 Politechnika Wrocławska PLAN: 1. Wprowadzenie 2. Pamięć rzeczywista 3. Pamięć wirtualna stronicowanie segmentacja stronicowanie + segmentacja 2 Politechnika Wrocławska 1. Wprowadzenie • zarządzanie pamięcią operacyjną – realizacja software’owa wspomagana sprzętowo > system operacyjny + platforma sprzętowa, • model pamięci – typowo: wielka tablica oznaczona adresami od 0, złoŜona z komórek o wielkości bajta, • jeśli w pamięci moŜna umieścić kilka procesów na raz, to konieczność zarządzania współdzieleniem pamięci, ochroną dostępu, itp. 3 1 Politechnika Wrocławska 1. Wprowadzenie PAMIĘĆ • WIRTUALNA procesy mogą widzieć więcej pamięci, niŜ posiadamy „fizycznie”, konieczne zastosowanie odpowiednich mechanizmów RZECZYWISTA • dostępne tyle pamięci, ile jest „fizycznie” • SEGMENTACJA STRONICOWANIE STRONICOWANIE + SEGMENTACJA 4 Politechnika Wrocławska 1. Wprowadzenie PRZYDZIAŁ PAMIĘCI STATYCZNY (static memory allocation) • przydział (zaplanowanie) obszarów pamięci w procesie kompilacji (przed wykonaniem programu) • DYNAMICZNY (dynamic memory allocation) • moŜliwy przydział /zwalnianie w trakcie wykonywania programu AUTOMATYCZNY (automatic memory allocation) alokacja miejsca przy wprowadzaniu programu do pamięci i zwalnianie przy usuwaniu 5 Politechnika Wrocławska 1. Wprowadzenie PAMIĘĆ operacyjna L1 (Level 1) podręczna (cache) BIOS (flashEPROM) L2 (Level 2) L3 (Level3) 6 2 Politechnika Wrocławska 1. Wprowadzenie Zad.1. Do czego to słuŜy i jak ustawić: • System BIOS Cacheable, • Video BIOS Cacheable, • AGP Aperture Size. 7 Politechnika Wrocławska 1. Wprowadzenie Etapy przetwarzania programu Program źródłowy Biblioteki kompilacja Moduł wynikowy Inne moduły konsolidacja Moduł ładowalny Biblioteka systemowa ładowanie Obraz binarny w PO Biblioteki ładowane dynamicznie 8 Politechnika Wrocławska 1. Wprowadzenie • kod bezwzględny (ang. absolute code) – z podanymi adresami PO, • kod przemieszczalny (ang. relocatable code) – kod przemieszczalny – adresy ustalane względem bazy podczas ładowania, 9 3 Politechnika Wrocławska 1. Wprowadzenie Adresy: • logical address – adres logiczny (widziany „w obszarze” zadania), • physical address – adres fizyczny („komórka” pamięci operacyjnej 1000 20 1020 10 Politechnika Wrocławska 1. Wprowadzenie Pytanie: • w jakich sytuacjach adres logiczny moŜe być równy adresowi fizycznemu? 11 Politechnika Wrocławska 2. Pamięć rzeczywista Pamięć rzeczywista • • systemy systemy wieloprogramowe jednoprogramowe a) podział zmienny program musi zmieścić • tyle, ile zarządał proces, się w pamięci, • skomplikowane załadowanie przy zarządzanie. uruchomieniu lub b) podział stały (statyczny), poprzez zapis w • podział na stałe części pamięci w momencie ładowania programowalnej. SO – kolejki do bszarów, • ze stałymi lub zmiennymi 12 partycjami 4 Politechnika Wrocławska 2. Pamięć rzeczywista Metody przydzielania bloków pamięci: • First Fit – pierwszy pasujący (szybki, ale duŜa fragmentacja pamięci), np. • Best Fit – najlepszego dopasowania (wolniejszy, dobre wykorzystanie pamięci), • Quick Fit – najszybszego dopasowania (np. dodatkowa tablica typowych rozmiarów bloków), • Worst Fit – najgorszego dopasowania, • Heap-based – przydział w postaci obszarów o organizacji w postaci sterty 13 Politechnika Wrocławska 2. Pamięć rzeczywista Metody przydzielania bloków pamięci: •„Buddy” algorytm – zmodyfikowana wersja First Fit (opis np.: http://rainbow.mimuw.edu.pl/SO/LabLinux/PAMIEC/PODT EMAT_6/opis.html ) • więcej informacji o algorytmach: http://www.osdcom.info/content/view/31/39/ lub http://en.wikipedia.org/wiki/Dynamic_memory_allocation 14 Politechnika Wrocławska 3. Pamięć wirtualna Maksymalna pamięć widziana przez pojedyncze zadanie (dla niego „fizyczna”) jest odzwierciedlana w obszary pamięci fizycznej (której moŜe być znacznie mniej). Metody: • stronicowanie, • segmentacja, • segmentacja + stronicowanie 15 5 Politechnika Wrocławska 3. Pamięć wirtualna Maksymalna pamięć widziana przez pojedyncze zadanie (dla niego „fizyczna”) jest odzwierciedlana w obszary pamięci fizycznej (której moŜe być znacznie mniej). Metody: • stronicowanie, • segmentacja, • segmentacja + stronicowanie 16 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie • przestrzeń adresowa zadania podzielona jest na równe części zwane stronami (ang. pages), • pamięć fizyczna podzielona jest na części takiej samej wielkości zwane ramami (ang. frames), • strony są przyległe, ramy mogą być rozproszone w pamięci, • rozmiar strony jest zazwyczaj określony przez sprzęt (typowo o wielkości od 512 B do 16 MB – rozmiary o wielkości 2m) 17 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie Adres logiczny procesor Adres fizyczny s o r o … s – numer strony, r r – numer ramy, … o – przesynięcie, odlegość (offset) Tablica stron Pamięć operacyjna 18 6 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie Pamięć logiczna Pamięć fizyczna Str. 0 0 Str. 1 1 Str. 2 2 Str. 0 0 1 1 5 4 Str. 1 2 4 5 Str. 2 Tablica stron … 3 ... 19 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie • dobre wykorzystanie pamięci (fragmentacja tzw. zewnętrzna – praktycznie brak), • dłuŜszy czas dostępu oraz złoŜony mechanizm adresowania (zazwyczaj SO przydziela tablicę stron do kaŜdego zadania), • niewykorzystanie całej przydzielonej pamięci do zadania (tzw. fragmentacja wewnętrzna) zawsze przydzielamy z dokładnością do strony; jeśli strona 16 kB, a zadanie 18 kB, to zajmie 32 kB 20 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie • ochrona dostępu – np. poprzez bit poprawności (ang. valid-invalid bit) 0 1 p 1 5 p 2 0 n Tablica stron PTLR (ang. page table length register) – rejestr długości tablicy stron słuŜący do sprawdzania, czy dany adres naleŜy do przedziału dozwolonego dla procesu (czy nie „wykraczamy” poza naszą przestrzeń adresową) 21 7 Politechnika Wrocławska 3. Pamięć wirtualna - stronicowanie • stronicowanie hierarchiczne z dwupoziomową tablicą stron - „podział tablicy stron na strony”, • strony dzielone – wykorzystanie stron z kodem wznawialnym (ang. reentrand code) przez kilka procesów, np. jeśli pracujemy na kilku dokumentach w jednym edytorze, to nie ma potrzeby kilka razy ładować go w całości do pamięci, • inne aspekty – Silberschatz, „Podstawy systemów operacyjnych” ☺ 22 Politechnika Wrocławska 3. Pamięć wirtualna - segmentacja • schemat zarządzania odzwierciedlający sposób patrzenia na pamięć przez uŜytkownika, Pytanie: Jakie „części programu widzi programista w PASCAL’u?” • kaŜdy segment ma nazwę i długość, • adresy określają segment i przesunięcie w segmencie, • w systemie jest tablica segmentów (ang. segment table) – rola podobna do tablicy stron 23 Politechnika Wrocławska 3. Pamięć wirtualna - segmentacja Pułapka – błąd adresowania N procesor s o < … s – numer segmentu, a – adres bazowy, g – granica (długość) T + … d a … … Tablica segmentów o – przesynięcie, odlegość (offset) Pamięć operacyjna 24 8 Politechnika Wrocławska 3. Pamięć wirtualna - segmentacja Zadanie: - proszę rozmieścić w pamięci operacyjnej segmenty (zgodnie z tablicą segmentów) 0 1000 1300 1 400 6500 2 400 4000 3 1100 4400 Tablica segmentów 25 Politechnika Wrocławska 3. Pamięć wirtualna - segmentacja • łatwiejsza implementacja programu, • moŜliwość współdzielenia segmentów (np. zawierających biblioteki, współdzielony program), • fragmentacja pamięci – zaleŜna od wielkości segmentu, Pytanie: Jakie są zalety i wady rozwiązań: 1) cały proces to jeden segment, 2) wielkość segmentu to 1B 26 Politechnika Wrocławska 3. Pamięć wirtualna – stron. + segm. segm. • segmenty z których składa się program dzielone są na strony, • adres bazowy w tablicy segmentu określa adres bazowy tablicy stron dla danego segmentu 27 9 Politechnika Wrocławska 3. Pamięć wirtualna – stron. + segm. segm. • mechanizm – patrz materiały ksero LDT (local descriptor table) – lokalna tablica deskryptorów, zawiera informacje o prywatnych segmentach procesu, GDT (global descriptor table) – globalna tablica deskryptorów, zawiera informację o segmentach wspólnych dla wszystkich procesów 28 Politechnika Wrocławska 3. Pamięć wirtualna – stron. + segm. segm. • eliminacja fragmentacji – rozmieszczenie segmentów w róŜnych obszarach PO oraz fakt, iŜ segment nie musi być ciągły, • wirtualność pamięci – całkowita długość programu moŜe przekraczać długość pamięci fizycznej, • moŜliwość współdzielenia obszarów pamięci (wykorzystanie segmentów przez róŜnych uŜytkowników), • moŜliwość ochrony danych (np. zaznaczenie segmentów jako R, W, E) 29 Politechnika Wrocławska 3. Pamięć wirtualna – stron. + segm. segm. • wzrost kosztów sprzętu (np. dodatkowe rejestry), • zuŜycie czasu procesorana obsługę tablic oraz odwzorowania adresów logicznych w fizyczne, • trudniejsza kontrola poprawności kodu (czy SO + program) nie „zawieszą się” – istotne np. w systemach czasu rzeczywistego (nawet rezygnacja z trybów wirtualnych procesora ze względu na bezpieczeństwo) 30 10