Systemy operacyjne III



Podobne dokumenty
dr inż. Jarosław Forenc

dr inż. Jarosław Forenc

dr inŝ. Jarosław Forenc

Architektura komputerów

Stronicowanie w systemie pamięci wirtualnej

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

architektura komputerów w. 8 Zarządzanie pamięcią

Podstawy. Pamięć wirtualna. (demand paging)

Schematy zarzadzania pamięcia

Zarządzanie pamięcią w systemie operacyjnym

Architektura komputerów

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Zarządzanie pamięcią operacyjną

Systemy Operacyjne Pamięć wirtualna cz. 2

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Systemy Operacyjne Pamięć wirtualna cz. 1

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Zarządzanie zasobami pamięci

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Wykład 7. Zarządzanie pamięcią

Zarządzanie pamięcią operacyjną

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

Zarządzanie pamięcią operacyjną i pamięć wirtualna

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci

Od programu źródłowego do procesu

System plików. Warstwowy model systemu plików

Bazy danych. Plan wykładu. Model logiczny i fizyczny. Operacje na pliku. Dyski. Mechanizmy składowania

Technologie informacyjne (2) Zdzisław Szyjewski

Organizacja typowego mikroprocesora

System pamięci. Pamięć wirtualna

Pamięć wirtualna. Pamięć wirtualna

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

dr inż. Jarosław Forenc

Systemy operacyjne III

Mikroinformatyka. Tryb wirtualny

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Sprzętowe wspomaganie pamięci wirtualnej

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna

Systemy Operacyjne Zarządzanie pamięcią operacyjną

sprowadza się od razu kilka stron!

Ograniczenia efektywności systemu pamięci

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

4. Procesy pojęcia podstawowe

Stronicowanie na ¹danie

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem.

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1

Działanie systemu operacyjnego

Mikroprocesory rodziny INTEL 80x86

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Pamięć Wirtualna w Linuksie 2.4

Architektura systemów informatycznych

Architektura komputerów

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Architektura komputerów

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Działanie systemu operacyjnego

Prezentacja systemu RTLinux

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Hierarchia pamięci w systemie komputerowym

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Współpraca procesora ColdFire z pamięcią

Działanie systemu operacyjnego

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

ARCHITEKTURA PROCESORA,

Wykład 10 Zarządzanie pamięcią

Zarz arz dzanie pam dzanie ięci ę ą

Działanie systemu operacyjnego

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Budowa systemów komputerowych

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektura komputerów

Podstawowe zagadnienia informatyki

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Architektura komputerów

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Programowanie współbieżne Wykład 2. Iwona Kochańska

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek

Jądro systemu operacyjnego

Pamięć wirtualna w AS/400

Logiczny model komputera i działanie procesora. Część 1.

Architektura komputerów

Zarz arz dzanie pam dzanie ięci ę ą

Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku).

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

Zarządzanie pamięcią. Zarządzanie pamięcią. Podstawy. Podsystem zarządzania pamięcią. Zadania podsystemu: W systemie wielozadaniowym:

Architektura i administracja systemów operacyjnych

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Transkrypt:

Systemy operacyjne III WYKŁAD Jan Kazimirski

Pamięć wirtualna

Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego procesu osobną tablicę stron Tablica stron odwzorowuje logiczne strony na fizyczne ramki

Stronicowanie c.d. Adresy fizyczne i logiczne nie są związane Ciągłe bloki logiczne mogą być mapowane na rozłączne obszary fizyczne. Część stron może nie być wcale mapowana na pamięć fizyczną. Adresy logiczne procesów mogą się dublować (inne adresy fizyczne). Różne strony logiczne mogą być mapowane na tą samą ramkę

Stronicowanie c.d. Logiczna przestrzeń adresowa procesu (strony) Tablica stron Przestrzeń fizyczna - ramki

Stronicowanie c.d. Proces A Proces B Pamięć fizyczna

Uruchamianie Procesu Utworzenie logicznej przestrzeni adresowej dla procesu. Utworzenie tablicy stron Pomimo posiadania swojej przestrzeni adresowej proces nie zajmuje jeszcze ani jednego bajta pamięci fizycznej poza obszarem tablicy stron Strony logiczne Ramki fizyczne Bloki dyskowe 7

Uruchamianie procesu () System przydziela fizyczne ramki do kilku pierwszych stron programu i ładuje fragment programu z dysku. Rozpoczyna się wykonywanie programu Strony logiczne Ramki fizyczne Bloki dyskowe 8

Wykonywanie procesu W trakcie wykonania proces może sięgnąć do strony, która nie została załadowana do pamięci. Następuje Błąd braku strony - PAGE FAULT Strony logiczne Ramki fizyczne Bloki dyskowe 9

Wykonywanie procesu () Po wystąpieniu błędu braku strony proces zostaje wstrzymany. System operacyjny ładuje z dysku odpowiedni fragment i mapuje go na odpowiednią stronę Po zakończeniu operacji dyskowej proces jest budzony i kontynuowany Strony logiczne Ramki fizyczne Bloki dyskowe 0

Wykonywanie procesu () Mechanizm stronicowania pozwala zapewnić ochronę przestrzeni adresowej procesów Jeżeli proces próbuje uzyskać dostęp do pamięci poza swoją przestrzenią adresową, to następuje błąd ochrony pamięci. 7? Ramki fizyczne Strony logiczne

Nowy proces - fork Tworzenie nowego procesu w systemach Unix/Linux to tzw. fork-and-exec. W pierwszym etapie Wywoływana jest funkcja systemowa fork. Tworzona jest kopia przestrzeni adresowej procesu rodzica. Przestrzenie adresowe obu procesów mapowane są na te same ramki pamięci fizycznej Nowy proces poza tablicą stron nie zajmuje w ogóle pamięci fizycznej

Nowy proces fork () W trakcie wykonania oba procesy mogą korzystać z tej samej ramki pamięci jeżeli realizują na niej tylko operacje odczytu Każdy proces widzi tę ramkę jako stronę swojej własnej przestrzeni adresowej, ale fizycznie zajmują one tylko jedną ramkę w pamięci

Nowy proces fork () Specjalnej uwagi wymagają jedynie operacje zapisu na danej stronie pamięci. Próba modyfikacji danych ze wspólnej strony przez jeden z procesów powoduje wstrzymanie procesu. System operacyjny przydziela zatrzymanemu procesowi dodatkową ramkę i kopiuje zawartość z ramki wspólnej aktualizując tablicę stron. Proces zostaje obudzony i kontynuuje zapis w swoim prywatnym obszarze pamięci.

Wymiatanie Stronicowanie pozwala na bardzo wydajne zarządzanie pamięcią Wielkość pamięci wszystkich procesów razem może znacznie przekroczyć rozmiar pamięci fizycznej. Co zrobić gdy jednak zabraknie pamięci fizycznej?

Wymiatanie c.d. Brak wolnej pamięci operacyjnej. System może usunąć jedną z niezmodyfikowanych ( czystych ) stron jednego z procesów. Zwolnione miejsce może być wykorzystane do załadowania strony innego procesu Usunięcie czystej strony niczym nie grozi bo dane znajdują się na dysku i mogą być ponownie wczytane. X

Wymiatanie c.d. W przypadku braku czystych stron do wymiany sprawa się komplikuje. Należy usunąć stronę zmodyfikowaną ( brudną ). Trzeba ją jednak zachować w przypadku ponownego odwołania. Stronę brudną system przenosi na urządzenie wymiany (swap). Jeżeli proces będzie się chciał do niej odwołać to trzeba będzie ponownie umieścić ją w pamięci operacyjnej 7

Pamięć wirtualna Pamięć fizyczna faktyczna pamięć zainstalowana w systemie Pamięć wirtualna pamięć widziana z punktu widzenia programisty Może znacznie przekraczać rozmiar pamięci fizycznej Ukrywa przed programistą fizyczne ułożenie danych w pamięci fizycznej. 8

Migotanie stron Zastosowanie mechanizmu wymiany zwiększa efektywność zarządzania pamięcią i szybkość wykonywania programów W pewnych sytuacja może jednak dojść do migotania stron system usuwa strony, do których aplikacja wkrótce się odwoła. Efektem migotania stron jest dramatyczne zmniejszenie wydajności system zajmuje się głównie wymianą stron. 9

Zasada lokalności Efektywne wykorzystanie pamięci wirtualnej zakłada Lokalność czasową i przestrzenną wykonywanych programów: W pewnym okresie wykonania program będzie wykonywał instrukcje leżące blisko siebie. Uzasadnienie: paradygmaty strukturalny (funkcje) i obiektowy (klasy, metody). 0

Wsparcie dla pamięci wirtualnej Efektywne wykorzystanie pamięci wirtualnej: Wsparcie sprzętu Wsparcie dla stronicowania Efektywne metody wyliczania adresu efektywnego Wsparcie systemu operacyjnego Zarządzanie ładowaniem stron do pamięci Zarządzanie wymianą stron między pamięcią a urządzeniem wymiany

Tablice stron Każdy proces ma swoją własną tablicę stron Wpis w tablicy stron określa m.in. czy strona znajduje się w pamięci operacyjnej i którą ramkę zajmuje Dodatkowo dla każdej strony przechowywany jest bit informujący czy strona była modyfikowana po załadowaniu do pamięci (strona jest brudna )

Translacja adresów Adres logiczny nr strony przes. ramka przes. Pamięć główna Tablica stron

Struktura tablicy stron Tablica stron procesu może być bardzo duża Niektóre systemy pozwalają na przechowywanie tablicy stron w pamięci wirtualnej Dwupoziomowa tablica stron Główna tablica stron zawsze w pamięci operacyjnej wskazuje na odpowiednią tablicę stron użytkownika Tablice stron są w pamięci wirtualnej mogą podlegać mechanizmowi wymiatania

Struktura tablicy stron c.d. Odwrócona tablica stron Zastosowanie funkcji mieszającej do określenia pozycji strony w tablicy stron Tablica stron przechowuje zapisy dla poszczególnych ramek pamięci fizycznej Bufor translacji adresów (TLB) Przechowuje ostatnio używane elementy tablicy stron Zwiększenie efektywności translacji adresów

Rozmiar strony Mały rozmiar strony Mniejsza fragmentacja wewnętrzna Więcej stron większe tablice stron Lepsze wykorzystanie pamięci (zasada lokalności) mniej błędów braku strony Duży rozmiar strony Wydajniejsze transfery (przesłania blokowe) Rozmiar porównywalny z rozmiarem procesu mniej błędów braku strony

Rozmiar strony c.d. Zmienny rozmiar strony większa elastyczność. W praktyce strony o takim samym rozmiarze VAX bajtów DEC Alpha 8 KB MIPS KB do MB Pentium KB lub MB 7

Strategia pobierania stron Stronicowanie na żądanie (demand paging) strona umieszczana jest w pamięci operacyjnej tylko jeżeli pojawia się do niej odwołanie. Zwykle powoduje dużo błędów braku stron na początku wykonania procesu. Wstępne stronicowanie (prepaging) pobierane jest kilka stron na raz wykorzystywanie przesłań blokowych pamięci masowych. 8

Strategie rozmieszczania stron W przypadku systemów ze stronicowaniem lub stronicowaniem i segmentacją rozmieszczanie ramek w pamięci nie ma dużego znaczenia Wyjątkiem może być architektura NUMA (niejednolity system dostępu do pamięci w systemach wieloprocesorowych). 9

Blokowanie ramek Niektóre ramki mogą być zablokowane w pamięci tzn. nie są one wymieniane. Przykłady: Część jądra systemu Struktury danych jądra systemu Bufory urządzeń Obszary krytyczne pod względem czasu dostępu 0

Strategie wymiany Określa które strony są dobrymi kandydatami do wymiany. LRU (Least Recently Used) strategia najdłużej ostatnio nieużywanej strony. Cykliczny bufor FIFO pierwsza na wejściu, pierwsza na wyjściu Różne warianty algorytmu zegara

Strategia LRU Wymieniona zostaje strona, która najdłużej nie była używana. Zakłada regułę lokalności czasowej i przestrzennej programu. Wszystkie strony muszą zawierać informację o czasie ostatniego (dostępu) duży narzut.

Strategia FIFO Strategia wymiany na zasadzie FIFO (First-In, First-Out). Prosta obsługa bufor kołowy stron procesu. Usuwana jest strona, która była w pamięci najdłużej. Sprzeczne z zasadą lokalności może powodować migotanie stron.

Algorytm zegarowy Bufor kołowy stron do usunięcia. Dodatkowy bit (bit wykorzystania) Załadowanie strony bit ustawiany na Odwołanie do strony bit ustawiany na Poszukiwanie kandydata do wymiany Przestawienie bitu wykorzystania z na 0 lub Usunięcie strony

Zestaw rezydentny stron i strategie przydziału Zestaw rezydentny zestaw stron danego procesu przechowywany w pamięci. Strategie przydziału: Stały przydział stała liczba ramek, ustalana przy starcie procesu Zmienny przydział zmiana liczby ramek przypisanych procesowi w trakcie jego działania.

Zakres wymiany Strategie zakresu wymiany: Lokalna wymianie podlegają tylko rezydentne strony procesu który wywołał błąd strony Globalna kandydatami do wymiany mogą być wszystkie niezablokowane strony w systemie

Segmentacja W odróżnieniu od stron segmenty mogą być różnej wielkości Ułatwia tworzenie programów (moduły) Wsparcie dla mechanizmów ochrony segmenty o określonych funkcjach (kod, dane...) SO może modyfikować rozmiar segmentu w czasie wykonania programu. 7

Segmentacja Adres efektywny numer segmentu, przesunięcie Tablica segmentów przechowuje adres początku segmentu i jego rozmiar. Translacja adresów jest analogiczna jak w przypadku stronicowania Dodatkowe informacje w tablicy segmentów: segment w pamięci, segment modyfikowany, flagi (wykonywalny, tylko do odczytu itd.) 8

Stronicowanie i segmentacja Współczesne systemy operacyjne często realizują pamięć wirtualną jako połączenie stronicowania i segmentacji Stronicowanie niewidoczne dla programisty, lepsze zarządzanie pamięcią Segmentacja kontrolowana przez programistę, elastyczne struktury danych, modularność programu, ochrona. 9