wirtualizacja zasobów w systemach operacyjnych
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 PresentationTRANSCRIPT
Definicja wirtualizacji Pamięć wirtualna Wirtualny system plików (VFS) Podsystem wejścia-wyjścia
2
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
Tak naprawdę wszystkie… W szczególności:
pamięć operacyjną, procesor, system plików, urządzenia wejścia-wyjścia.
4
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
Stronicowanie na żądanie Segmentacja na żądanie Segmentacja ze stronicowaniem
6
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
8
Procesor
Pamięć fizyczna
s o r o
r
Tablica stron
Adres logiczny
Adres fizyczny
s
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
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
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
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
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
14
Adres wirtualny postaci:•selektor segmentu (16 bitów)•przesunięcie (32 bity)
Adres liniowy (32 bity)
Adres fizyczny (32 bity)
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
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
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
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
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
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
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
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
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ł
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
25