Wirtualizacja zasobów w systemach operacyjnych

25

description

Wirtualizacja zasobów w systemach operacyjnych. Wioleta Borysewicz. agenda. Definicja wirtualizacji Pamięć wirtualna Wirtualny system plików (VFS) Podsystem wejścia-wyjścia. Co to jest wirtualizacja?. Użycie oprogramowania w celu stworzenia abstrakcji (iluzji) posiadanych zasobów. - PowerPoint PPT Presentation

Transcript of Wirtualizacja zasobów w systemach operacyjnych

Page 1: Wirtualizacja zasobów w systemach operacyjnych
Page 2: Wirtualizacja zasobów w systemach operacyjnych

Definicja wirtualizacji Pamięć wirtualna Wirtualny system plików (VFS) Podsystem wejścia-wyjścia

2

Page 3: Wirtualizacja zasobów w systemach operacyjnych

Użycie oprogramowania w celu stworzenia abstrakcji (iluzji) posiadanych zasobów.

Umożliwia efektywniejsze wykorzystanie istniejących zasobów sprzętowych poprzez dowolne modyfikowanie ich cech, dostosowując je do wymagań użytkownika.

3

Page 4: Wirtualizacja zasobów w systemach operacyjnych

Tak naprawdę wszystkie… W szczególności:

pamięć operacyjną, procesor, system plików, urządzenia wejścia-wyjścia.

4

Page 5: Wirtualizacja zasobów w systemach operacyjnych

Umożliwia wykonywanie procesów, które nie są w całości przechowywane w pamięci operacyjnej.

Logiczna przestrzeń może być większa od fizycznej przestrzeni adresowej.

Tworzy iluzję dużej, jednorodnej i szybkiej pamięci.

Części przestrzeni adresowej są relokowalne.

5

Page 6: Wirtualizacja zasobów w systemach operacyjnych

Stronicowanie na żądanie Segmentacja na żądanie Segmentacja ze stronicowaniem

6

Page 7: Wirtualizacja zasobów w systemach operacyjnych

Pamięć fizyczna jest podzielona na bloki jednakowego rozmiaru – ramkiramki.

Logiczna przestrzeń jest podzielona na bloki o rozmiarze takim jak ramki – stronystrony.

Tablica ramek Tablica ramek – informacje o wolnych ramkach.

Tablica stron procesu Tablica stron procesu – odwzorowuje adresy logiczne w adresy fizyczne.

Adres logicznyAdres logiczny numer strony (p) numer strony (p) – indeks w tablicy stron, przesunięcie w stronie (d)przesunięcie w stronie (d) – numer bajtu w

stronie.7

Page 8: Wirtualizacja zasobów w systemach operacyjnych

8

Procesor

Pamięć fizyczna

s o r o

r

Tablica stron

Adres logiczny

Adres fizyczny

s

Page 9: Wirtualizacja zasobów w systemach operacyjnych

Tablica stron jest przechowywana w pamięci głównej.

Rejestr bazowy tablicy stron – wskazuje na początek tablicy stron.

Rejestry asocjacyjne Rejestry asocjacyjne (bufory translacji bufory translacji bliskiego otoczenia - TLBbliskiego otoczenia - TLB) – przyśpieszają translację.

Odwrotna tablica stronOdwrotna tablica stron Pozycja zawiera adres wirtualny strony

umieszczonej w ramce i identyfikator procesu będącego właścicielem strony. 9

Page 10: Wirtualizacja zasobów w systemach operacyjnych

Strona jest sprowadzana do pamięci w momencie, gdy pojawia się do niej odwołanie.

Bit poprawności odwołaniaBit poprawności odwołania: 1 – strona w pamięci 0 – strona poza pamięcią

Błąd braku strony Błąd braku strony (page fault) SO znajduje wolną ramkę, sprowadza stronę z dysku do pamięci, Bit poprawności odwołania := 1 Restartuje instrukcję, która spowodowała błąd

Gdy nie ma wolnej ramki – wymiana stron wymiana stron (page replacement)

10

Page 11: Wirtualizacja zasobów w systemach operacyjnych

SO znajduje w pamięci stronę i usuwa ją na dysk.

Algorytmy wymiany stronAlgorytmy wymiany stron: FIFO Optymalny

Usuń stronę, do której najdłużej nie będzie odwołania LRU (Last Recently Used) Algorytmy przybliżające LRU

Bit odwołania Algorytm drugiej szansy Algorytm zegarowy

Migotanie – proces jest zajęty głównie przesyłaniem stron z dysku do pamięci i z pamięci na dysk.

11

Page 12: Wirtualizacja zasobów w systemach operacyjnych

Program jest zbiorem segmentówsegmentów. SegmentSegment – jednostka logiczna, np.: program

główny, procedura, stos, zmienne. Adres logiczny: (nr_segmentu, przesunięcie)Adres logiczny: (nr_segmentu, przesunięcie) Tablica segmentówTablica segmentów

Każda pozycja zawiera fizyczny adres początku segmentu i rozmiar tego segmentu.

Rejestr bazowy tablicy segmentów Rejestr bazowy tablicy segmentów – zawiera adres początku tablicy segmentów.

Dzielenie na poziomie segmentów jest bardziej naturalne. 12

Page 13: Wirtualizacja zasobów w systemach operacyjnych

Każdy segment ma swoją tablicę stron. (Multics) Deskryptor segmentu zawiera adres tablicy stron

segmentu, długość segmentu i pomocnicze bity. Tablica segmentów jest stronicowana.

Translacja adresu (Intel 80386)

13

Page 14: Wirtualizacja zasobów w systemach operacyjnych

14

Adres wirtualny postaci:•selektor segmentu (16 bitów)•przesunięcie (32 bity)

Adres liniowy (32 bity)

Adres fizyczny (32 bity)

Page 15: Wirtualizacja zasobów w systemach operacyjnych

W systemie istnieje wiele procesów ubiegających się o czas procesora.

Zarządzaniem czasem dostępu do procesora zajmują się funkcje jądra systemu tzw. planiściplaniści. Dzięki temu użytkownik nie odczuwa „wyścigu o

procesor”. Ma poczucie, że wszystkie jego programy

użytkowe działają równocześnie. Stwarza wrażenie, że każdy proces posiada swój

własny procesor, na którym działa. 15

Page 16: Wirtualizacja zasobów w systemach operacyjnych

Proces szeregujący Proces szeregujący zajmuje się przydzielaniem czasu procesora zgodnie z polityką przy użyciu mechanizmów.

PolitykaPolityka: podział procesów na klasy, określenie sposobu szeregowania dla każdej

klasy, określenie zasad przydziału procesora między

klasami, zarządzanie priorytetami.

MechanizmyMechanizmy: przerwania zegarowe, kolejki i inne struktury opisujące stan procesu, procedury przełączające kontekst.

16

Page 17: Wirtualizacja zasobów w systemach operacyjnych

Procesy czasu rzeczywistego (RT) Mają pierwszeństwo przed zwykłymi procesami, Szeregowane w ramach klasy przy użyciu:

Strategii karuzelowej (Round Robin) Kolejki prostej (FIFO)

Procesy zwykłe Do wykonania zostaje wybrany proces o

największym priorytecie dynamicznym.

Proces idle17

Page 18: Wirtualizacja zasobów w systemach operacyjnych

Abstrakcyjna powłoka leżąca ponad rzeczywistym systemem plików.

Umożliwia programom użytkownika korzystanie w jednakowy sposób, niezależnie od tego jaki system plików jest rzeczywiście wykorzystywany.

Dostarcza jednolity interfejs wspólny dla wszystkich systemów plików obsługiwanych przez jądro systemu operacyjnego.

18

Page 19: Wirtualizacja zasobów w systemach operacyjnych

19

System plików

Wirtualny system plikówWirtualny system plików

ext2

ext2 minixminix fatfat nfsnfs pro

cproc

Pamięć buforowaPamięć buforowa

Sterowniki urządzeń

Proces

Proces

Page 20: Wirtualizacja zasobów w systemach operacyjnych

Gdy program chce wykonać operację na pliku, odwołują się do funkcji VFSVFS (np.: open, read).

VFS przechwytuje wywołania systemowe i do realizacji operacji na pliku wywołuje funkcję konkretnego systemu plików.

Programy mogą korzystać z plików niezależnie od tego, jaki system plików został użyty do ich przechowywania.

20

Page 21: Wirtualizacja zasobów w systemach operacyjnych

Każdy zamontowany system plików jest reprezentowany przez superbloksuperblok.

Plik reprezentowany jest przez i-węzełi-węzeł. Jest to metryczka zawierająca informacje o pliku. Z każdym i-węzłem związany jest jego numer –

jednoznaczna identyfikacja pliku w systemie plików.

W i-węźle przechowuje się niewielką tablicę numerów bloków składających się na plik.

21

Page 22: Wirtualizacja zasobów w systemach operacyjnych

Wyróżniono cztery typy adresów przechowywanych w tablicy numerów bloków: bezpośrednibezpośredni –adres bloku z danymi, pojedynczy pośredni pojedynczy pośredni – adres bloku, który zawiera

listę adresów bezpośrednich, podwójny pośredni podwójny pośredni – adres bloku, który zawiera

listę adresów bloków pojedynczych pośrednich, potrójny pośredni potrójny pośredni – adres bloku, który zawiera listę

adresów bloków podwójnych pośrednich. Tablica z adresami w i-węźle ma rozmiar równy

1515. 12 pozycji z adresami bloków bezpośrednich, po 1 pozycji dla bloku pojedynczego, podwójnego i

potrójnego pośredniego.

22

Page 23: Wirtualizacja zasobów w systemach operacyjnych

23

Dane o pliku

Wskaźniki do bloków

adresowanych bezpośrednio

Wskaźnik pośredni

Wskaźnik trójpośredni

Wskaźnik dwupośredni

Dane

Dane

Dane

Dane

Dane

Dane

Dane

Dane

Dane

Dane

Dane

Dane

I-węzeł

Page 24: Wirtualizacja zasobów w systemach operacyjnych

Urządzenia fizyczne są reprezentowane przez tzw. pliki specjalnepliki specjalne.

Do obsługi urządzeń służą sterowniki sterowniki urządzeń urządzeń (zbiór funkcji jądra systemu).

Dostęp do sterowników jest poprzez tablice tablice rozdzielcze urządzeńrozdzielcze urządzeń.

Plik specjalny tworzy się poleceniem mknod()mknod(). Tworzy ono odpowiedni i-węzeł i dopisuje go do

katalogu.

24

Page 25: Wirtualizacja zasobów w systemach operacyjnych

25