Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy operacyjne Wykład nr 9: Zarządzanie pamięcią Piotr Bilski.

Podobne prezentacje


Prezentacja na temat: "Systemy operacyjne Wykład nr 9: Zarządzanie pamięcią Piotr Bilski."— Zapis prezentacji:

1 Systemy operacyjne Wykład nr 9: Zarządzanie pamięcią Piotr Bilski

2 Pojęcia podstawowe W momencie tworzenia procesu, obraz binarny pliku jest kopiowany do pamięci Kolejka wejściowa – kolejka procesów na dysku czekających na przeniesienie do pamięci Ogólnie proces może znajdować się w dowolnym miejscu w pamięci System wiąże adresy bezwzględne (fizyczne) z względnymi (logicznymi)

3 Przetwarzanie programu Program źródłowy Kompilator lub asembler Moduł wynikowy Inne moduły Konsolidator Moduł ładowalny Biblioteka systemowa Ładowacz Obraz binarny Biblioteka DLL Faza kompilacji Faza ładowania Faza wykonania

4 Miejsca wiązania adresów Faza kompilacji – kod bezwzględny (pliki COM) Faza ładowania – kod przemieszczany (zmiana względem adresu początkowego) Faza wykonania – przemieszczanie programu w czasie wykonywania, najbardziej uniwersalna

5 Pamięć logiczna a fizyczna Adres logiczny (wirtualny) – adres na poziomie programu, generowany przez procesor Adres fizyczny – adres sprzętowy lokacji w pamięci Odwzorowywanie przestrzeni adresowych wykonuje MMU (z użyciem rejestrów przemieszczenia) MS-DOS działa z czterema rejestrami przemieszczenia

6 Ilustracja działania MMU Procesor Pamięć Rejestr przemieszczenia Adres logiczny: 471 Adres fizyczny: MMU

7 Ładowanie dynamiczne Program składa się z niezależnych modułów (podprogramów) Moduły są ładowane do pamięci dopiero, gdy są potrzebne Odpowiada za to program łączący i ładujący Korzyść – zmniejszenie efektywnej wielkości programu Ładowanie dynamiczne nie wymaga wsparcia systemu operacyjnego

8 Biblioteki dołączane dynamicznie Działanie oparte na opóźnieniu konsolidacji System operacyjny udostępnia własny zestaw bibliotek Program użytkownika ma tylko odwołanie do funkcji z biblioteki, tzw. namiastkę Możliwa jest przezroczysta aktualizacja bibliotek Konsolidacja wymaga wsparcia systemu operacyjnego

9 Nakładki Umożliwiają uruchamianie niezależnych fragmentów kodu, których łączny rozmiar przekracza dostępną wielkość pamięci Nakładki przechowywane są na dysku w postaci obrazów gotowych do ładowania Wsparcie systemu operacyjnego nie jest wymagane Potrzebny moduł obsługi nakładek

10 Ilustracja nakładek Przebieg 1 20KB Tablica symboli Wspólne podprogramy Moduł obsługi nakładek Przebieg 2 30KB 10KB 80KB 70KB Dostępna pamięć: 150 KB

11 Wymiana Proces przenoszenia programu z pamięci głównej do pomocniczej (wytaczanie) i odwrotnie (wtaczanie) W systemie z podziałem czasu wytaczanie i wtaczanie powinno trwać znacznie krócej, niż praca procesu Kolejka procesów gotowych musi obejmować gotowe procesy w pamięci pomocniczej Wymiana a operacje wejścia-wyjścia

12 Przydział ciągły pamięci Pamięć jest podzielona na dwie części – dla systemu operacyjnego (dolną) i programów użytkownika Procesy muszą zajmować zwarte fragmenty pamięci Problem zabezpieczania obszarów pamięci przydzielonych do różnych procesów

13 Realizacja sprzętowego zabezpieczenia przestrzeni adresowej Pamięć Procesor Pułapka: błąd adresowania Rejestr graniczny Rejestr przemieszczenia < + Adres logiczny NIE TAK Adres fizyczny

14 Metody przydziału pamięci Metoda wielu obszarów (IBM OS/360) –Obszary (partycje) o ustalonym rozmiarze –Każdy proces dysponuje jednym obszarem Metoda zmiennej liczby zadań –Obszary o dowolnym rozmiarze, przydzielane w zależności od zapotrzebowania procesu –Problem zajmowania dziur dla procesów Algorytmy zajmowania wolnej przestrzeni –Pierwsze dopasowanie –Najlepsze dopasowanie –Najgorsze dopasowanie

15 Problem fragmentacji Fragmentacja zewnętrzna – pozostałe wolne obszary są niespójne i za małe, aby zmieścić nowy proces Fragmentacja wewnętrzna – część przydzielonego procesowi obszaru jest niewykorzystana Unikanie fragmentacji zewnętrznej – upakowanie

16 Stronicowanie Schemat zarządzania pamięcią dopuszczający nieciągłość pamięci przydzielonej procesowi Pamięć fizyczna podzielona jest na małe fragmenty o stałej długości – ramki Pamięć programu podzielona jest na małe fragmenty o stałej długości - strony

17 Realizacja stronicowania Pamięć fizyczna Procesor Tablica stron Adres logiczny Adres fizyczny so r o r s

18 Model stronicowania Strona 1 Strona 0 Strona 2 Strona Strona 0 Strona 1 Strona 2 Strona Pamięć logiczna Tablica stron Pamięć fizyczna

19 Cechy stronicowania Rozmiar strony (512B-16MB) zależy od sprzętu Eliminacja zewnętrznej fragmentacji – zostaje wewnętrzna! Duże strony – duża fragmentacja wewnętrzna Małe strony – duża tablica stron so Numer strony Odległość na stronie 2 m – rozmiar logicznej przestrzeni adresowej 2 n – rozmiar strony m-n n

20 Problemy stronicowania System musi wiedzieć, które ramki są wolne – tablica ramek Rozmiar pozycji w tablicy stron zależy od wielkości pamięci i liczby stron Strony procesów mają być widoczne tylko dla nich samych Problemy zabezpieczeń

21 Wsparcie sprzętowe stronicowania PCB przechowuje wskaźnik do tablicy stron Tablica stron może być: –zestawem rejestrów (tylko dla małych programów) –Częścią pamięci operacyjnej (wskazywanej przez rejestr bazowy tablicy stron PTBR) Bufor translacji adresów stron (TLB) – pamięć podręczna dla stronicowania

22 Realizacja stronicowania z TLB Pamięć fizyczna Procesor Adres logiczny Adres fizyczny so r o r s chybienie trafienie Nr strony Nr ramki

23 Aspekty działania TLB Niewielki rozmiar (do 1024 pozycji) Zastępowanie wpisów, gdy TLB pełny (z wyłączeniem pozycji przypiętych) Przechowywanie identyfikatorów przestrzeni adresowej (AISD) Współczynnik trafień TLB powinien dążyć do 100 procent Efektywny czas dostępu do pamięci:

24 Ochrona stronicowania Bity ochrony przypisane do każdej ramki określają tryb dostępu (zapis/odczyt lub odczyt) Bit poprawności określa, czy strona należy do przestrzeni adresowej procesu Rejestr długości tablicy stron (PTLR) zapobiega tworzeniu tablicy stron na całej przestrzeni dostępnej dla procesu, gdy zajmuje on mniejszy rozmiar

25 Stronicowanie hierarchiczne Konieczne dla dużych przestrzeni adresowych (np. rzędu 2 32 słów) Stronicowanie dwupoziomowe: Np. w fizycznej przestrzeni 32-bitowej strona może mieć 4KB (2 12 ), więc tablica musiałaby zajmować 2 20 wpisów Zamiast tego tworzy się dwie tablice o długości po 10 bitów s2s2 o Numer stronyOdległość na stronie n 1 n 2 m s1s1

26 Wstępnie odwzorowana tablica stron Pamięć fizyczna Tablica stron Zewnętrzna tablica stron

27 Hashowana tablica stron Stronicowanie hierarchiczne w przestrzeniach adresowych większych niż 32-bitowe jest nieefektywne Hashowana tablica stron zawiera wpisy – powiązane listy elementów składających się z trzech elementów: –Numer strony wirtualnej –Wartość odwzorowanej ramki strony –Wskaźnik do następnego elementu na liście

28 Działanie hashowanej tablicy stron Pamięć fizyczna Adres logiczny Adres fizyczny so r o Tablica z hashowaniem Funkcja hashująca s r …

29 Odwrócona tablica stron Alternatywne rozwiązanie do tablicy stron, gdy procesów jest bardzo dużo lub są one bardzo duże Każda pozycja to odwzorowanie ramki na stronę (odwrotnie!) Istnieje jedna tablica dla wszystkich procesów Adres logiczny ma wówczas postać: Problem: długi czas przeszukiwania

30 Działanie odwróconej tablicy stron Pamięć fizyczna Adres logiczny Adres fizyczny i o Tablica stron Procesor so PID PID s Przeglądanie

31 Strony dzielone Realizacja współdzielenia kodu przez procesy Kod wznawialny (reentrant code) może być używany przez różnych użytkowników i programy (systemy z podziałem czasu) Kod wznawialny nie może zmieniać się w czasie wykonania (jest tylko do czytania) Każdy użytkownik korzysta z tej samej kopii programu i własnej kopii danych

32 Segmentacja Logiczna przestrzeń adresowa dzielona jest na obszary o różnej wielkości przypisywane poszczególnym programom i ich fragmentom Każdy segment ma nazwę i długość Segmenty są numerowane Adres logiczny ma postać:

33 Sprzęt do segmentacji Odwzorowanie adresu logicznego na fizyczny zapewnia tablica segmentów Każdy wpis zawiera bazę segmentu i jego granicę Segmentacja jest widoczna dla programisty Występuje tu problem zewnętrznej segmentacji

34 Ilustracja sprzętu do segmentacji Pamięć fizyczna Tak Nie Tablica segmentów Procesor so Granica Baza Przeglądanie < + s Pułapka: błąd adresowania

35 Ochrona i współużytkowanie Segmentacja zapewnia ochronę danych i rozkazów tylko do odczytu (bity ochrony) Umieszczenie tego samego identyfikatora w dwóch różnych tablicach umożliwia dzielenie danych lub kodu

36 Ilustracja współużytkowania Edytor Dane 1 Segment 0 Segment 1 Pamięć logiczna procesu P 1 Edytor Dane 2 Segment 0 Segment 1 Pamięć logiczna procesu P 2 Pamięć fizyczna Edytor Dane 1 Dane 2 Granica Baza Granica Baza

37 Segmentacja ze stronicowaniem Rozwiązanie stosowane w procesorach Intela Wsparcie większości systemów operacyjnych (OS/2, Windows, Linux) Przestrzeń adresów logicznych podzielona jest na dwie strefy, opisywane przez tablicę lokalnych deskryptorów (LDT) oraz tablicę globalnych deskryptorów (GDT)

38 Adresowanie w segmentacji Adres logiczny jest parą Selektor ma format: s – numer segmentu g – lokalizacja segmentu w LDT lub GDT p – tryb ochrony Każdy segment jest stronicowany (w przestrzeni 32- bitowej stronicowanie dwupoziomowe) g p s

39 Schemat adresowania Deskryptor segmentu so + kat odl strona Wpis katalogowy Pozycja tablicy stron Adres fizyczny Rejestr bazowy katalogu stron


Pobierz ppt "Systemy operacyjne Wykład nr 9: Zarządzanie pamięcią Piotr Bilski."

Podobne prezentacje


Reklamy Google