1 / 25

Wirtualizacja zasobów w systemach operacyjnych

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.

asha
Download Presentation

Wirtualizacja zasobów w systemach operacyjnych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wirtualizacja zasobów w systemach operacyjnych Wioleta Borysewicz

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

  3. Co to jest wirtualizacja? • 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.

  4. Które zasoby SO można wirtualizować? • Tak naprawdę wszystkie… • W szczególności: • pamięć operacyjną, • procesor, • system plików, • urządzenia wejścia-wyjścia.

  5. Pamięć wirtualna • 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.

  6. Techniki realizacji pamięci wirtualnej • Stronicowanie na żądanie • Segmentacja na żądanie • Segmentacja ze stronicowaniem

  7. Stronicowanie • Pamięć fizyczna jest podzielona na bloki jednakowego rozmiaru – ramki. • Logiczna przestrzeń jest podzielona na bloki o rozmiarze takim jak ramki – strony. • Tablica ramek – informacje o wolnych ramkach. • Tablica stron procesu – odwzorowuje adresy logiczne w adresy fizyczne. • Adres logiczny • numer strony (p) – indeks w tablicy stron, • przesunięcie w stronie (d) – numer bajtu w stronie.

  8. Sprzęt stronicujący Adres logiczny Adres fizyczny Procesor s o r o Pamięć fizyczna s r Tablica stron

  9. Stronicowanie • Tablica stron jest przechowywana w pamięci głównej. • Rejestr bazowy tablicy stron – wskazuje na początek tablicy stron. • Rejestry asocjacyjne (bufory translacji bliskiego otoczenia - TLB) – przyśpieszają translację. • Odwrotna tablica stron • Pozycja zawiera adres wirtualny strony umieszczonej w ramce i identyfikator procesu będącego właścicielem strony.

  10. Stronicowanie na żądanie • Strona jest sprowadzana do pamięci w momencie, gdy pojawia się do niej odwołanie. • Bit poprawności odwołania: • 1 – strona w pamięci • 0 – strona poza pamięcią • Błąd braku strony (pagefault) • 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 (pagereplacement)

  11. Wymiana stron • SO znajduje w pamięci stronę i usuwa ją na dysk. • Algorytmy wymiany stron: • FIFO • Optymalny • Usuń stronę, do której najdłużej nie będzie odwołania • LRU (LastRecentlyUsed) • 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.

  12. Segmentacja na żądanie • Program jest zbiorem segmentów. • Segment – jednostka logiczna, np.: program główny, procedura, stos, zmienne. • Adres logiczny: (nr_segmentu, przesunięcie) • Tablica segmentów • Każda pozycja zawiera fizyczny adres początku segmentu i rozmiar tego segmentu. • Rejestr bazowy tablicy segmentów – zawiera adres początku tablicy segmentów. • Dzielenie na poziomie segmentów jest bardziej naturalne.

  13. Segmentacja Ze stronicowaniem • 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)

  14. Algorytm tłumaczenia adresu na procesorze Intel 80386 • Adres wirtualny postaci: • selektor segmentu (16 bitów) • przesunięcie (32 bity) Adres liniowy (32 bity) Adres fizyczny (32 bity)

  15. Wirtualizacja procesora • 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ś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.

  16. Scheduler • Proces szeregujący zajmuje się przydzielaniem czasu procesora zgodnie z polityką przy użyciu mechanizmów. • Polityka: • 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. • Mechanizmy: • przerwania zegarowe, • kolejki i inne struktury opisujące stan procesu, • procedury przełączające kontekst.

  17. Klasy procesów • 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 idle

  18. Wirtualny system plików • 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.

  19. Struktura systemu plików w Linuxie System plików Wirtualny system plików Proces Proces ext2 minix fat nfs proc Pamięć buforowa Sterowniki urządzeń

  20. Operacje na plikach • Gdy program chce wykonać operację na pliku, odwołują się do funkcji VFS (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.

  21. Superblok oraz i-węzły • Każdy zamontowany system plików jest reprezentowany przez superblok. • Plik reprezentowany jest przez 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.

  22. Alokacja pliku na dysku w systemie ext2 • Wyróżniono cztery typy adresów przechowywanych w tablicy numerów bloków: • bezpośredni –adres bloku z danymi, • pojedynczy pośredni – adres bloku, który zawiera listę adresów bezpośrednich, • podwójny pośredni – adres bloku, który zawiera listę adresów bloków pojedynczych pośrednich, • 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 15. • 12 pozycji z adresami bloków bezpośrednich, • po 1 pozycji dla bloku pojedynczego, podwójnego i potrójnego pośredniego.

  23. Dostęp do pliku w ext2 I-węzeł Dane Dane o pliku Dane Wskaźniki do bloków adresowanych bezpośrednio Dane Dane Dane Dane Dane Dane Dane Wskaźnik pośredni Dane Wskaźnik dwupośredni Wskaźnik trójpośredni Dane Dane

  24. Urządzenia wejścia-wyjścia • Urządzenia fizyczne są reprezentowane przez tzw. pliki specjalne. • Do obsługi urządzeń służą sterowniki urządzeń (zbiór funkcji jądra systemu). • Dostęp do sterowników jest poprzez tablice rozdzielcze urządzeń. • Plik specjalny tworzy się poleceniem mknod(). • Tworzy ono odpowiedni i-węzeł i dopisuje go do katalogu.

  25. Dziękuję …

More Related