Systemy operacyjne

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

description

Systemy operacyjne. Wykład nr 9: Zarządzanie pamięcią. Piotr Bilski. 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 - PowerPoint PPT Presentation

Transcript of Systemy operacyjne

Page 1: Systemy operacyjne

Systemy operacyjne

Wykład nr 9:

Zarządzanie pamięcią

Piotr Bilski

Page 2: Systemy operacyjne

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)

Page 3: Systemy operacyjne

Przetwarzanie programuProgram ź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

Page 4: Systemy operacyjne

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

Page 5: Systemy operacyjne

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

Page 6: Systemy operacyjne

Ilustracja działania MMU

Procesor Pamięć

Rejestr przemieszczenia

+

16500

Adres logiczny:

471

Adres fizyczny:

16971

MMU

Page 7: Systemy operacyjne

Ł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

Page 8: Systemy operacyjne

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

Page 9: Systemy operacyjne

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

Page 10: Systemy operacyjne

Ilustracja nakładek

Przebieg 1

20KBTablica symboli

Wspólne podprogramy

Moduł obsługi nakładek

Przebieg 2

30KB

10KB 80KB70KB

Dostępna pamięć: 150 KB

Page 11: Systemy operacyjne

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

Page 12: Systemy operacyjne

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

Page 13: Systemy operacyjne

Realizacja sprzętowego zabezpieczenia przestrzeni adresowej

PamięćProcesor

Pułapka: błąd adresowania

Rejestr graniczny

Rejestr przemieszczenia

< +

Adres logiczny

NIE

TAK

Adres fizyczny

Page 14: Systemy operacyjne

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

Page 15: Systemy operacyjne

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

Page 16: Systemy operacyjne

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

Page 17: Systemy operacyjne

Realizacja stronicowania

Pamięćfizyczna

Procesor

Tablica stron

Adres logiczny

Adres fizyczny

s o r o

r

s

Page 18: Systemy operacyjne

Model stronicowania

Strona 1

Strona 0

Strona 2

Strona 3

8

1

3

6

0

1

2

3

Strona 0

Strona 1

Strona 2

Strona 3

0

1

2

3

4

5

6

7

8

Pamięć logiczna

Tablica stron

Pamięć fizyczna

Page 19: Systemy operacyjne

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

s oNumer strony Odległość na stronie

• 2m – rozmiar logicznej przestrzeni adresowej• 2n – rozmiar strony

m-n n

Page 20: Systemy operacyjne

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ń

Page 21: Systemy operacyjne

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

Page 22: Systemy operacyjne

Realizacja stronicowania z TLB

Pamięćfizyczna

Procesor

Adres logiczny

Adres fizyczny

s o r o

r

s

chybienie

trafienie

Nr strony Nr ramki

Page 23: Systemy operacyjne

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:

)2()1()( MEMTLBMEMTLBeff tthrtthrt

Page 24: Systemy operacyjne

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

Page 25: Systemy operacyjne

Stronicowanie hierarchiczne• Konieczne dla dużych przestrzeni adresowych (np.

rzędu 232 słów)• Stronicowanie dwupoziomowe:

• Np. w fizycznej przestrzeni 32-bitowej strona może mieć 4KB (212), więc tablica musiałaby zajmować 220 wpisówZamiast tego tworzy się dwie tablice o długości po 10 bitów

s2 o

Numer strony Odległość na stronie

n1 n2 m

s1

Page 26: Systemy operacyjne

Wstępnie odwzorowana tablica stron

Pamięćfizyczna

Tablica stron

Zewnętrzna tablica stron

0

1

2

300

1

300

2

Page 27: Systemy operacyjne

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

Page 28: Systemy operacyjne

Działanie hashowanej tablicy stron

Pamięćfizyczna

Adres logiczny

Adres fizyczny

s o r o

Tablica z hashowaniem

Funkcja hashująca

s r

s r

Page 29: Systemy operacyjne

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

<identyfikator-procesu, numer-strony, odległość>

Page 30: Systemy operacyjne

Działanie odwróconej tablicy stron

Pamięćfizyczna

Adres logiczny

Adres fizyczny

i o

Tablica stron

Procesor

s oPID

PID s

Przeglądanie

Page 31: Systemy operacyjne

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

Page 32: Systemy operacyjne

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ć:

<numer-segmentu, odległość>

Page 33: Systemy operacyjne

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

Page 34: Systemy operacyjne

Ilustracja sprzętu do segmentacji

PamięćfizycznaTak

Nie

Tablica segmentów

Procesor

s o

Granica Baza

Przeglądanie

< +

s

Pułapka: błąd adresowania

Page 35: Systemy operacyjne

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

Page 36: Systemy operacyjne

Ilustracja współużytkowania

Edytor Dane 1

Segment 0Segment 1

Pamięć logiczna procesu P1

Edytor Dane 2

Segment 0Segment 1

Pamięć logiczna procesu P2 Pamięć fizyczna

Edytor

Dane 1

Dane 2

Granica Baza

0 25286 43062

1 4425 68348

Granica Baza

0 25286 43062

1 8850 90003

43062

68348

72773

90003

98553

Page 37: Systemy operacyjne

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)

Page 38: Systemy operacyjne

Adresowanie w segmentacji

• Adres logiczny jest parą <selektor,odległość>• 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 ps

Page 39: Systemy operacyjne

Schemat adresowania

Deskryptor segmentu

s o

+ kat odlstrona

Wpis katalogowy Pozycja tablicy stronAdres fizyczny

Rejestr bazowy katalogu stron