Pamięć wirtualna. Pamięć wirtualna

Wielkość: px
Rozpocząć pokaz od strony:

Download "Pamięć wirtualna. Pamięć wirtualna"

Transkrypt

1 Pamięć wirtualna Pamięć wirtualna Podstawy. Stronicowanie na żądanie. Kopiowanie przy zapisie. Zastępowanie stron. Algorytmy zastępowania stron. Przydział ramek. Szamotanie (migotanie). Pliki odwzorowywane w pamięci. Inne kwestie stronicowania. Przykłady systemy: Windows XP i Solaris. Wiesław Płaczek Systemy Operacyjne: Wykład 7 1

2 Podstawy Pamięć wirtualna jest techniką, która umożliwia wykonywanie procesów, pomimo że nie są one w całości przechowywane w pamięci operacyjnej. Pozwala stworzyć abstrakcyjną pamięć główną w postaci olbrzymiej, jednolitej tablicy i odseparować pamięć logiczną od pamięci fizycznej. Logiczna przestrzeń adresowa może być większa niż przestrzeń fizyczna. Umożliwia wykonywanie programu, który tylko w części znajduje się w pamięci fizycznej program nie jest ograniczony wielkością dostępnej pamięci fizycznej (może być od niej większy). Zwiększa wieloprogramowość (więcej procesów może być wykonywanych w tym samym czasie) lepsze wykorzystanie procesora i przepustowość. Pozwala na wydajniejsze tworzenie i wymianę procesów mniej potrzebnych operacji wejścia-wyjścia. Uwalnia użytkownika od potrzeby znajomości organizacji i ograniczeń pamięci fizycznej ułatwia programowanie. Pamięć wirtualna jest najczęściej implementowana w formie: Stronicowania na żądanie (demand paging); Segmentacji na żądanie (demand segmentation) rzadziej, np. IBM OS/2. Wiesław Płaczek Systemy Operacyjne: Wykład 7 2

3 Schemat pamięci wirtualnej Strona 0 Strona 1 Strona 2... Strona n Pamięć wirtualna Odwzorowanie pamięci Pamięć fizyczna Dysk Wiesław Płaczek Systemy Operacyjne: Wykład 7 3

4 Wiesław Płaczek Systemy Operacyjne: Wykład 7 4 Stronicowanie na żądanie Procesy podzielone na strony przebywają w pamięci pomocniczej (zwykle dysk). Strona jest sprowadzana z pamięci pomocniczej do operacyjnej tylko wtedy, kiedy jest potrzebna. Mniej operacji WE/WY. Mniejsze zapotrzebowanie na pamięć. Krótszy czas odpowiedzi. Może pracować równocześnie więcej użytkowników. Strona jest potrzebna kiedy następuje do niej odwołanie. Z każdą pozycją w tablicy stron związany jest bit poprawności (valid-invalid bit): Wartość = 1: strona dozwolona i znajduje się w pamięci operacyjnej. Wartość = 0: strona niedozwolona albo jest poza pamięcią operacyjną. Odwołanie do strony z bitem poprawności równym 0 powoduje pułapkę braku strony (page-fault trap), po czym następuje awaryjne przejście do systemu operacyjnego.

5 Wiesław Płaczek Systemy Operacyjne: Wykład 7 5 Tablica stron z brakami stron w pamięci Bit 0 poprawności 1 0 A Ramka 2 1 B C D E F G Tablica stron 12 7 H 13 Pamięć logiczna A C F Pamięć fizyczna A B C D E F Dysk

6 Obsługa braku strony Obsługa braku strony 1. Sprawdzamy wewnętrzną tablicę (w bloku kontrolnym procesu), aby określić czy odwołanie do pamięci było dozwolone. 2. Jeżeli odwołanie było niedozwolone, kończymy proces. Jeśli było dozwolone, lecz zabrakło właściwej strony w pamięci, to sprowadzamy tę stronę. 3. Znajdujemy wolną ramkę. 4. Zamawiamy wczytanie z dysku potrzebnej strony do wolnej ramki. 5. Po zakończeniu czytania modyfikujemy wewnętrzną tablicę procesu oraz tablicę stron, zaznaczając, że strona jest w pamięci. 6. Wznawiamy wykonanie rozkazu przerwanego brakiem strony i kontynuujemy wykonywanie procesu (czasami do wykonania rozkazu potrzeba sprowadzić więcej niż jedną stronę). Skrajny przypadek: czyste stronicowanie na żądanie (pure demand paging) rozpoczynanie wykonywania procesu bez żadnej strony w pamięci (nigdy nie sprowadza się strony do pamięci, zanim nie będzie potrzebna). Wiesław Płaczek Systemy Operacyjne: Wykład 7 6

7 Wiesław Płaczek Systemy Operacyjne: Wykład 7 7 Etapy obsługi braku strony 3 Strona jest w pamięci pomocniczej System operacyjny Odniesienie 1 2 Pułapka Umieść M 6 Wznowienie wykonania 0 Tablica stron 5 Odnowienie tablicy stron Pamięć fizyczna 4 Sprowadzenie brakującej strony

8 Wydajność stronicowania na żądanie Wydajność stronicowania na żądanie Czas dostępu do pamięci: τ (obecnie nanosekundy). Prawdopodobieństwo braku strony: p (0 p 1). Czas obsługi braku strony: Τ. Efektywny czas dostępu: t_ef = (1 p) τ + p Τ. Główne składowe czasu obsługi braku strony: 1. Obsługa przerwania wywołanego brakiem strony. 2. Wczytanie strony z dysku do pamięci (zwykle najbardziej czasochłonne). 3. Wznowienie procesu. Przykład: τ = 100 ns, T = 25 ms = ns, t_ef [ns] = (1 p) p = p. Aby pogorszenie szybkości dostępu do pamięci spowodowane brakiem stron było mniejsze niż 10%, potrzeba: p < , czyli mniej niż 1 brak strony na odniesień do pamięci! Wiesław Płaczek Systemy Operacyjne: Wykład 7 8

9 Kopiowanie przy zapisie Tworząc proces przy pomocy wywołania systemowego fork() można początkowo obejść konieczność stronicowania na żądanie używając techniki podobnej do dzielenia stron. Po wywołaniu fork() proces potomny i macierzysty mogą dzielić początkowo te same strony oznaczone jako kopiowane przy zapisie (copy-on-write). Jeżeli któryś z procesów próbuje zapisać coś na takiej stronie, to tworzona jest kopia tej strony i odwzorowywana w przestrzeni adresowej tego procesu. Wszystkie nie zmienione strony mogą być dzielone przez procesy. Umożliwia błyskawiczne utworzenie procesu i minimalizuje liczbę nowych stron. Jest to popularna technika stosowana w wielu systemach operacyjnych, m.in. Windows XP, Linux i Solaris. W kilku wersjach systemu UNIX (np. Solaris i Linux) występuje funkcja vfork() (virtual memory fork): Nie wykonuje ona kopiowania przy zapisie. Proces macierzysty jest zawieszany, a jego przestrzeni adresowej używa potomek. Jest stosowana wówczas gdy proces potomny natychmiast po utworzeniu wywołuje funkcję exec(). Bardzo wydajna metoda tworzenia procesu używana czasem dla poleceń powłoki. Musi być stosowana ostrożnie trzeba uważać aby proces potomny nie zmieniał przestrzeni adresowej procesu macierzystego. Wiesław Płaczek Systemy Operacyjne: Wykład 7 9

10 Zastępowanie stron Co zrobić kiedy nie ma wolnej ramki dla potrzebnej strony? Zastępowanie stron (page replacement): 1. Zlokalizowanie potrzebnej strony na dysku. 2. Wykonanie algorytmu zastępowania stron w celu wytypowania ramkiofiary (victim frame). 3. Zapisanie strony-ofiary na dysku oraz stosowna zmiana tablic stron i ramek. 4. Wczytanie potrzebnej strony do zwolnionej ramki oraz zmiana tablicy stron i tablicy ramek. 5. Wznowienie działania procesu. Może powodować dwukrotne wydłużenie czasu obsługi braku strony (przesyłanie z pamięci na dysk i z dysku do pamięci)! Aby zmniejszyć narzut związany z zastępowaniem stron, każdą stronę lub ramkę wyposaża się w sprzętowy bit modyfikacji (zabrudzenia) (modify (dirty) bit) tylko strony zmodyfikowane są wysyłane na dysk podczas zastępowania. Zastępowanie stron dopełnia rozdzielenia pamięci logicznej od pamięci fizycznej! Wiesław Płaczek Systemy Operacyjne: Wykład 7 10

11 Wiesław Płaczek Systemy Operacyjne: Wykład 7 11 Schemat zastępowania stron Ramka Bit poprawności 0 r n p Tablica stron Zamiana na niepoprawne 2 r Ofiara Wysłanie strony-ofiary 4 3 Uaktualnienie Sprowadzenie tablicy stron potrzebnej dla nowej strony strony 1 Pamięć fizyczna

12 Wiesław Płaczek Systemy Operacyjne: Wykład 7 12 Algorytmy zastępowania stron Algorytm zastępowania stron powinien minimalizować częstość braków stron (page-fault rate). Algorytm ocenia się na podstawie wykonania go na pewnym ciągu odniesień (reference string) do pamięci i zsumowania braków stron. Ciąg odniesień można tworzyć sztucznie lub na podstawie śledzenia danego systemu. W poniższych przykładach ciąg odniesień ma postać: Liczba braków stron Wykres zależności braków stron od liczby ramek , 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Liczba ramek

13 Algorytm FIFO Ciąg odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. 3 ramki (3 strony mogą być w pamięci w tym samym czasie): braków stron 4 ramki: braków stron Anomalia Belady ego (Belady s anomaly) współczynnik braków stron wzrasta ze wzrostem liczby wolnych ramek! Wiesław Płaczek Systemy Operacyjne: Wykład 7 13

14 Wiesław Płaczek Systemy Operacyjne: Wykład 7 14 Anomalia Belady ego Wykres braków stron dla algorytmu FIFO Liczba braków stron Liczba ramek

15 Algorytm optymalny (OPT) Zastąp tę stronę, która najdłużej nie będzie używana. Przykład: 4 ramki, ciąg odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5; Algorytm OPT ma najniższy współczynnik braków stron ze wszystkich algorytmów. Jest wolny od anomalii Belady ego. 4 6 braków stron Jest trudny w realizacji, ponieważ wymaga wiedzy o przyszłej postaci ciągu odniesień (skąd ją wziąć?). Algorytm OPT jest używany głównie w studiach porównawczych jako odnośnik dla innych algorytmów. Wiesław Płaczek Systemy Operacyjne: Wykład 7 15

16 Algorytm LRU Algorytm zastępowania najdawniej używanych stron (least recently used LRU): używa niedawnej historii do oszacowania najbliższej przyszłości. Przykład: 4 ramki, ciąg odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5; braków stron Lepszy od algorytmu FIFO (mniej braków stron) i wolny od anomalii Belady ego często stosowany. Trudność z zapamiętywaniem historii użycia stron może wymagać sporego zaplecza sprzętowego. Algorytm LRU, podobnie jak OPT, należy do klasy algorytmów stosowych: zbiór stron w pamięci przy n ramkach jest zawsze podzbiorem zbioru stron w pamięci przy n + 1 ramkach. Algorytmy takie nie posiadają anomalii Belady ego. Wiesław Płaczek Systemy Operacyjne: Wykład 7 16

17 Implementacja algorytmu LRU Implementacja algorytmu LRU Implementacja z licznikiem: Do każdej pozycji w tablicy stron dołącza się rejestr czasu użycia, a do procesora dodaje się zegar logiczny lub licznik. Wskazania zegara są zwiększane przy każdym odniesieniu do pamięci, a jego zawartość jest kopiowana do rejestru czasu użycia danej strony. Kiedy pojawi się potrzeba zastąpienia jakiejś strony w pamięci, to sprawdza się wartości rejestrów czasu użycia stron i jako stronę-ofiarę wybiera się tę z najmniejszą wartością czasu. Wymaga sporego nakładu: przeglądanie wszystkich stron, uaktualnianie rejestrów czasu użycia (również przy wymianach tablic stron) itd. Implementacja ze stosem: Utrzymywanie stosu numerów stron. Przy każdym odwołaniu do strony jej numer wyjmuje się ze stosu i umieszcza na jego szczycie (na szczycie jest zawsze strona ostatnio użyta). Najlepsza implementacja w postaci listy dwukierunkowej ze wskaźnikami do czoła i końca listy wyjęcie strony i umieszczenie jej na szczycie wymaga zmiany co najwyżej 6 wskaźników. Zastąpienie strony nie wymaga przeszukiwania listy (najdawniej używana strona jest na dnie stosu). Wiesław Płaczek Systemy Operacyjne: Wykład 7 17

18 Algorytmy przybliżające metodę LRU Niewiele systemów posiada odpowiedni sprzęt do realizacji prawdziwego algorytmu LRU często stosowane są algorytmy przybliżające zastępowanie stron metodą LRU. Algorytm bitów odniesienia: Z każdą pozycją w tablicy stron związany jest bit odniesienia (reference bit), początkowo ustawiony na 0. Kiedy następuje odniesienie do strony jej bit odniesienia jest ustawiany na 1. Zastępowana jest ta strona, w porządku FIFO, której bit odniesienia = 0. Algorytm dodatkowych bitów odniesienia: Z każdą stroną związany jest 8-bitowy rejestr; na początku: W regularnych odstępach czasu (np. co 100 ms) system operacyjny wprowadza bit odniesienia na najbardziej znaczącą pozycję rejestru. Jako strona-ofiara przy zastępowaniu wybierana jest strona zawierająca najmniejszą liczbę w rejestrze, np < Algorytm drugiej szansy (zegarowy): Strony przeglądane są w porządku FIFO. Jeżeli bit odniesienia = 0, to strona zostaje wybrana do zastąpienia. Jeżeli bit odniesienia = 1, to bit ten jest zerowany, a strona dostaje drugą szansę, tzn. do zastąpienia bierze się pod uwagę następną stronę itd. Przeglądanie stron wykonuje się cyklicznie. Ulepszenie branie pod uwagę pary: (bit odniesienia, bit modyfikacji). Wiesław Płaczek Systemy Operacyjne: Wykład 7 18

19 Wiesław Płaczek Systemy Operacyjne: Wykład 7 19 Algorytm drugiej szansy (zegarowy) Bit odniesienia Strony Bit odniesienia Strony 0 0 Następna ofiara (a) Cykliczna kolejka stron (b)

20 Algorytmy zliczające Wprowadzenie liczników odwołań do każdej strony. Algorytm LFU najrzadziej używanej strony (least fequently used): do zastąpienia wybiera się stronę o najmniejszej wartości licznika. Może być obarczony błędami wynikającymi z tego, że strona była na początku intensywnie używana, a potem nie jest wcale potrzebna. Rozwiązanie: przesuwanie liczników w prawo o 1 bit w regularnych odstępach czasu. Algorytm MFU najczęściej używanej strony (most fequently used): do zastąpienia wybiera się stronę o największej wartości licznika. Uzasadnienie: Strona o najmniejszej wartości licznika prawdopodobnie została niedawno wprowadzona do pamięci i będzie jeszcze używana. Implementacja tych algorytmów jest kosztowna, a nie przybliżają one dobrze algorytmu OPT. Algorytm buforowania stron Systemy często przechowują pulę wolnych ramek. Potrzebną stronę wczytuje się do wolnej ramki, a dopiero później usuwa się stronę-ofiarę zwalniając ramkę. Wiesław Płaczek Systemy Operacyjne: Wykład 7 20

21 Przydział ramek Minimalna liczba ramek: Istnieje minimalna liczba ramek, które muszą być przydzielone procesowi zdefiniowana jest przez architekturę logiczną komputera. Liczba ramek musi być wystarczająca do pomieszczenia wszystkich stron, do których może odnosić się pojedynczy rozkaz (niektóre rozkazy mogą zawierać wiele poziomów adresowania pośredniego). Algorytmy przydziału ramek: Przydział równy (equal allocation): Każdy proces dostaje tyle samo ramek, np. Jeżeli mamy 100 ramek i 5 procesów, to dajemy każdemu po 20 ramek. Przydział proporcjonalny (proportional allocation): Każdemu procesowi przydziela się liczbę ramek proporcjonalnie do jego rozmiaru. Przydział priorytetowy (priority allocation): Liczba przydzielanych ramek jest proporcjonalna do priorytetu procesu albo do kombinacji rozmiaru i priorytetu (proces o wyższym priorytecie dostaje więcej ramek). Globalny lub lokalny przydział ramek: Zastępowanie globalne: Proces może wybierać ramki do zastąpienia ze zbioru wszystkich ramek jeden proces może odebrać ramkę drugiemu. Zastępowanie lokalne: Proces może wybierać ramki tylko z własnego zbioru przydzielonych ramek gorsza przepustowość, rzadziej stosowane. Wiesław Płaczek Systemy Operacyjne: Wykład 7 21

22 Wiesław Płaczek Systemy Operacyjne: Wykład 7 22 Szamotanie Jeżeli proces nie ma wystarczającej liczby stron w pamięci operacyjnej, to częstotliwość braków stron będzie wysoka. Prowadzi to do: Zmniejszenia wykorzystania procesora. Mniejsze wykorzystanie procesora może być sygnałem dla planisty przydziału procesora do zwiększenia wieloprogramowości. Kolejny proces jest dodawany do systemu, co jeszcze zwiększa częstość braków stron. Wykorzystanie procesora jeszcze się zmniejsza, co jest sygnałem dla planisty do dalszego zwiększania wieloprogramowości itd. Powstaje szamotanina przepustowość systemu gwałtownie spada! Szamotanie (migotanie) (thrashing) sytuacja, w której proces jest zajęty głównie wymianą stron (przesyłaniem między dyskiem a pamięcią operacyjną). Szamotanie powoduje wyraźne zaburzenia wydajności systemu!

23 Unikanie szamotania Szamotanie Wykorzystanie procesora Szamotanie Stopień wieloprogramowości Efekt szamotania można ograniczać za pomocą lokalnego algorytmu zastępowania jeżeli jakiś proces się szamoce, to nie powinien zabierać ramek innemu procesowi i doprowadzać go też do szamotania. Aby zapobiec szamotaniu należy dostarczyć procesowi tyle ramek ile potrzebuje ale jak się o tym dowiedzieć? Model strefowy (locality model): Strefa programu zbiór stron pozostających we wspólnym użyciu. Program składa się z wielu różnych stref, które mogą na siebie zachodzić. W trakcie wykonania proces przechodzi z jednej strefy programu do innej. Aby uniknąć szamotania należy przydzielić procesowi tyle ramek, by mógł w nich pomieścić daną strefę. Wiesław Płaczek Systemy Operacyjne: Wykład 7 23

24 Strefy lokalne w odwołaniach do pamięci Wiesław Płaczek Systemy Operacyjne: Wykład 7 24

25 Model zbioru roboczego Model zbioru roboczego (working-set model) opiera się na założeniu, że program ma charakterystykę strefową (lokalność odwołań). okno zbioru roboczego: ustalona liczba odwołań do stron. Zbiór roboczy zbiór stron, do których nastąpiło ostatnich odwołań: Ślad odwołań do stron t1 t2 ZR(t1) = {1,2,5,6,7} ZR(t2) = {3,4} RZR_i rozmiar zbioru roboczego całkowite zapotrzebowanie na ramki: Z = Σ RZR_i. Szamotanie powstanie, gdy Z > m = całkowita liczba ramek. System przydziela ramki procesom wg. ich zbiorów roboczych. Wiesław Płaczek Systemy Operacyjne: Wykład 7 25

26 Model zbioru roboczego w praktyce Model zbioru roboczego w praktyce Gdy suma rozmiarów zbiorów roboczych wzrasta i zaczyna przekraczać liczbę dostępnych ramek, system operacyjny wstrzymuje jeden proces. Strategia zbioru roboczego zapobiega szamotaniu i utrzymuje stopień wieloprogramowości na wysokim poziomie optymalizuje wykorzystanie procesora. Trudności: Jak dobrać rozmiar zbioru roboczego? za małe nie obejmuje całej strefy programu, za duże może zachodzić na kilka stref ( = : cały program). Jak utrzymywać ślad zbioru roboczego? Wykorzystanie przerwań w stałych odstępach czasu oraz bitu odniesienia. Przykład: = ; o Zegar generuje przerwania co 5000 odniesień. o Dla każdej strony przechowuje się w pamięci 2 bity. o Kiedy pojawia się przerwanie kopiuje się do pamięci oraz zeruje bit odniesienia. o Jeżeli jeden z bitów w pamięci = 1, to strona należy do zbioru roboczego. Ulepszenie: 10 bitów w pamięci i przerwania co 1000 odniesień. Wiesław Płaczek Systemy Operacyjne: Wykład 7 26

27 Wiesław Płaczek Systemy Operacyjne: Wykład 7 27 Częstość braków stron Model zbioru roboczego daje dobre rezultaty, jednak nie jest wygodną metodą nadzorowania szamotania. Prostszym sposobem jest mierzenie częstości braków stron (page-fault frequency PFF): Ustala się dolną i górną granicę częstości braków stron. Jeżeli proces przekracza górną granicę, przydziela się mu dodatkową ramkę (w przypadku niedoboru ramek można wstrzymać jakiś proces). Jeżeli częstość braków stron procesu spada poniżej dolnej granicy, odbiera się mu ramkę. Częstość braków stron Liczba braków stron Liczba ramek Zwiększ liczbę ramek Granica górna Granica dolna Zmniejsz liczbę ramek

28 Pliki odwzorowywane w pamięci Podczas sekwencyjnego przetwarzania pliku na dysku za pomocą standardowych funkcji systemowych open(), read() i write() każdy kontakt z plikiem wymaga odwołania do systemu i dostępu do dysku. Zamiast tego można skorzystać z metod pamięci wirtualnej i potraktować WE/WY plikowe jak rutynowy dostęp do pamięci. Tego typu podejście zwane odwzorowaniem pliku w pamięci (operacyjnej) (memory mapping) polega na logicznym skojarzeniu z plikiem fragmentu pamięci wirtualnej. Odbywa się przez odwzorowanie bloku dyskowego na stronę(y) pamięci. Pierwszy dostęp do pliku odbywa się za pośrednictwem stronicowania na żądanie i skutkuje brakiem strony, co powoduje wczytanie do pamięci porcji pliku o rozmiarze strony (czasem jednorazowo wczytuje się więcej stron). Następne operacje czytania i pisania pliku obsługiwane są jak zwyczajne dostępy do pamięci operacyjnej. Zapisy do pamięci niekoniecznie muszą oznaczać zapisy do pliku na dysku! Prostszy i szybszy kontakt z plikami, łatwe dzielenie części plików przez procesy! W niektóre systemach odwzorowania w pamięci dokonywane są tylko poprzez specjalne wywołania systemowe, a inne plikowe operacje WE/WY realizowanie są za pomocą standardowych funkcji systemowych. Np. system Solaris zawsze wykonuje odwzorowanie jeśli użyto funkcji mmap(), to plik odwzorowywany jest w przestrzeni procesu, jeśli nie, to w przestrzeni jądra. Wiesław Płaczek Systemy Operacyjne: Wykład 7 28

29 Pliki odwzorowane w pamięci Pamięć wirtualna procesu A Pamięć fizyczna Pamięć wirtualna procesu B Pamięć dyskowa Wiesław Płaczek Systemy Operacyjne: Wykład 7 29

30 Inne kwestie stronicowania Inne kwestie stronicowania Stronicowanie wstępne (prepaging): Jednorazowe wprowadzenie do pamięci wszystkich stron, które wiadomo, iż będą potrzebne, np. całego zbioru roboczego. Trzeba rozstrzygnąć czy koszt stronicowania wstępnego jest mniejszy niż koszt obsługi odpowiednich braków stron. Rozmiar strony: Jaki wybrać rozmiar strony? Zmniejszanie rozmiaru strony zmniejsza fragmentacje wewnętrzną, ale zwiększa zużycie pamięci na przechowywanie tablic stron. Zwiększanie rozmiaru strony zmniejsza zużycie pamięci na tablice stron, ale powoduje większą fragmentację wewnętrzną pamięci. Czas operacji WE/WY potrzebnych do odczytania i zapisania strony składa się z czasu: wyszukiwania, wykrywania i przesyłania. We współczesnych systemach komputerowych szybkość przesyłania jest na ogół znacznie większa od pozostałych dwóch, co przemawia za dużym rozmiarem stron. Mniejsze strony łatwiej dopasować do stref programu (większa rozdzielczość). Przy większych stronach zmniejsza się liczba braków stron. Obecnie jest tendencja do zwiększania rozmiarów stron (wzrost szybkości procesorów i pojemności pamięci jest szybszy niż szybkości dysków). Wiesław Płaczek Systemy Operacyjne: Wykład 7 30

31 Inne kwestie stronicowania c.d. Zasięg TLB: Współczynnik trafień w buforze TLB podczas tłumaczenia adresów wirtualnych może wpływać znacząco na szybkość dostępu do pamięci. Zasięg TLB ilość pamięci dostępnej w buforze, czyli liczba jego pozycji pomnożona przez rozmiar strony. Zwiększanie zasięgu TLB zwiększanie liczby pozycji w buforze lub zwiększanie rozmiaru strony. Niektóre architektury udostępniają strony o różnych rozmiarach, np. system Solaris korzysta ze stron 8 KB i 4 MB zależnie od potrzeb. Odwrócona tablica stron: Odwrócona tablica stron ma po jednej pozycji na każdą ramkę, a indeksowana jest za pomocą pary <PID,numer_strony> pozwala to zaoszczędzić miejsca w pamięci. Odwrócona tablica stron nie zawiera jednak pełnych informacji o logicznej przestrzeni adresowej procesu, potrzebnych do obsługi braków stron. Aby umożliwić stronicowanie na żądanie, dla każdego procesu utrzymuje się zewnętrzną tablicę stron zawierającą informację o położeniu każdej strony wirtualnej procesu. Odwołania do takich tablic występują tylko wskutek braków stron, zatem dostęp do nich nie musi być szybki. Wiesław Płaczek Systemy Operacyjne: Wykład 7 31

32 Inne kwestie stronicowania c.d. Struktura programu: Struktura programu może mieć również spory wpływ na stronicowanie! Przykład: const n = 1024; float t[][] = new float[n][n]; Każdy wiersz tablicy umieszczony w pamięci na jednej stronie. Program 1: for (j = 0; j < n; j++) for (i = 0; i < n; i++) t[i][j] = 0.0; maksymalnie 1024 x 1024 braków stron! Program 2: for (i = 0; i < n; i++) for (j = 0; j < n; j++) t[i][j] = 0.0; maksymalnie 1024 braki stron! Dobra lokalność kodu i struktur danych zwiększa efektywność stronicowania. Używanie wskaźników (również OOP) na ogół psuje lokalność kodu! Wiesław Płaczek Systemy Operacyjne: Wykład 7 32

33 Inne kwestie stronicowania c.d. Powiązanie stron z operacjami wejścia-wyjścia: Jak pogodzić zastępowanie stron z operacjami WE/WY? Np. proces wysyła zamówienie na operacje WE/WY i zanim te operacje zostaną zrealizowane, system zastępuje jego stronę z buforem inną stroną. Stosuje się dwa rozwiązania: 1. Wykonywanie operacji WE/WY za pośrednictwem pamięci systemu. 2. Blokowanie (locking) stron w pamięci do czasu zakończenia operacji WE/WY (każdej ramce przyporządkowuje się bit blokowania) ryzykowne! Przetwarzanie w czasie rzeczywistym: Proces lub wątek działający w czasie rzeczywistym powinien niezwłocznie otrzymać procesor i działać z minimalnymi opóźnieniami. Ponieważ pamięć wirtualna może powodować przestoje w wykonywaniu procesu, dlatego większość systemów czasu rzeczywistego (i systemów wbudowanych) nie posiada pamięci wirtualnej. System Solaris umożliwia zarówno podział czasu, jak i obliczenia w czasie rzeczywistym proces czasu rzeczywistego ma możliwość powiadamiania systemu o ważnych stronach, a uprzywilejowani użytkownicy mogą blokować strony w pamięci (niebezpieczeństwo nadużycia!). Wiesław Płaczek Systemy Operacyjne: Wykład 7 33

34 Pamięć wirtualna w MS Windows XP Pamięć wirtualna jest realizowana przy użyciu stronicowania na żądanie z grupowaniem (clustering) do pamięci sprowadzana jest nie tylko brakująca strona, ale także pewna liczba stron z jej otoczenia. Zaraz po utworzeniu procesowi przypisuje się minimum i maksimum zbioru roboczego w tym zakresie przydziela się procesowi strony w zależności od ilości wolnej pamięci (czasem pozwala się procesowi przekroczyć maksimum). Zarządca pamięci wirtualnej utrzymuje wykaz wolnych ramek, z którym skojarzona jest pewna wartość progowa (threshold value). Gdy ilość wolnej pamięci spada poniżej wartości progowej, zarządca pamięci wirtulanej stosuje taktykę zwaną automatycznym przycinaniem zbioru roboczego (authomatic working-set trimming) w celu przywrócenia wartości ponadprogowej procesom, które mają więcej stron niż wynosi ich minimum zbioru roboczego odbierane są strony. Algorytm wyznaczania strony do usunięcia zależy od typu procesora: W jednoprocesorowych systemach x86 Windows XP używa odmiany algorytmu zegarowego. Dla procesorów Alpha i wieloprocesorowych systemów x86 Windows XP stosuje odmianę algorytmu FIFO. Wiesław Płaczek Systemy Operacyjne: Wykład 7 34

35 Pamięć wirtualna w systemie Solaris Z wykazem wolnych stron związany jest parametr lotsfree (tzn. miejsca pod dostatkiem) będący progiem rozpoczynania stronicowania na ogół wynosi 1/64 rozmiaru pamięci fizycznej. W ustalonych odstępach czasu jądro sprawdza, czy ilość wolnej pamięci nie jest mniejsza od lotsfree jeżeli tak, to uruchamiany jest proces wymiatania stron (pageout). Proces wymiatania stron realizuje odmianę algorytmy drugiej szansy zwaną algorytmem zegara dwuwskazówkowego (two-handed-clock algorithm): Pierwsza wskazówka obiega wszystkie strony pamięci i ustawia ich bity odniesień na 0. Po pewnym czasie druga wskazówka sprawdza bity odniesień do stron w pamięci i zwalnia te strony, których bity są dalej równe 0. Szybkość analizowania stron (scanrate) w powyższym algorytmie jest określona za pomocą kilku parametrów sterujących: od slowscan (wolna analiza) do fastscan (szybka analiza). Odległość w stronach między wskazówkami zegara jest określona przez parametr handspread. Jeżeli ilość wolnej pamięci spada poniżej poziomu desfree, to jądro zaczyna wymianę procesów (swapping). Jeżeli system nie jest w stanie utrzymać ilości wolnej pamięci na poziomie minfree, to wymiatanie jest wołane przy każdym zamówieniu nowej strony. Wiesław Płaczek Systemy Operacyjne: Wykład 7 35

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

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów

Bardziej szczegółowo

Podstawy. Pamięć wirtualna. (demand paging)

Podstawy. Pamięć wirtualna. (demand paging) Pamięć wirtualna Podstawy Podstawy Stronicowanie na żądanie Wymiana strony Przydział ramek Szamotanie (thrashing) Pamięć wirtualna (virtual memory) oddzielenie pamięci logicznej użytkownika od fizycznej.

Bardziej szczegółowo

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

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana? Pamięć wirtualna Pytanie: Czy proces rezerwuje pamięć i gospodaruje nią w sposób oszczędny? Procesy często zawierają ogromne fragmenty kodu obsługujące sytuacje wyjątkowe Zadeklarowane tablice lub rozmiary

Bardziej szczegółowo

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

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com Pamięć wirtualna Jan Tuziemski Źródło części materiałów: os-book.com Pamięć wirtualna Na poprzednich wykładach omówiono sposoby zarządzania pamięcią Są one potrzebne ponieważ wykonywane rozkazy procesów

Bardziej szczegółowo

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

Nakładki. Kod przebiegu 2: 80 kb Tablica symboli: 20 kb wspólne podprogramy: 30 kb Razem: 200 kb Pamięć wirtualna Nakładki Nakładki są potrzebne jeśli proces jest większy niż ilość dostępnej pamięci. Przykład - dwuprzebiegowy asembler mamy do dyspozycji 150 kb pamięci, a poszczególne elementy zadania

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III 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

Bardziej szczegółowo

Stronicowanie w systemie pamięci wirtualnej

Stronicowanie w systemie pamięci wirtualnej Pamięć wirtualna Stronicowanie w systemie pamięci wirtualnej Stronicowanie z wymianą stron pomiędzy pamięcią pierwszego i drugiego rzędu. Zalety w porównaniu z prostym stronicowaniem: rozszerzenie przestrzeni

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010 Wykład nr 8 (29.01.2009) dr inż. Jarosław Forenc Rok akademicki

Bardziej szczegółowo

dr inŝ. Jarosław Forenc

dr inŝ. Jarosław Forenc Rok akademicki 2009/2010, Wykład nr 8 2/19 Plan wykładu nr 8 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2009/2010

Bardziej szczegółowo

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

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 8 Pamięć wirtualna Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wprowadzenie Podstawowa idea: System operacyjny pozwala na wykorzystanie pamięci o pojemności większej,

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Systemy Operacyjne Pamięć wirtualna cz. 2

Systemy Operacyjne Pamięć wirtualna cz. 2 Systemy Operacyjne Pamięć wirtualna cz. 2 Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 20 stycznia 2007 1 1 Wstęp 2 Minimalna liczba ramek 3 Algorytmy przydziału

Bardziej szczegółowo

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ Wiązanie adresów adr.symbol -> adr. względne ->adresy pamięci kompilacja; kod bezwzględny (*.com) ładowanie; kod przemieszczalny wykonanie adr.względne -> adr. bezwzględne

Bardziej szczegółowo

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 10 Pamięć wirtualna. Toruń, 2004 Odrabianie wykładów czwartek, 1.04.2004, S7, g. 12.00 za 19.05 czwartek, 15.04.2004, S7, g. 12.00 za 12.05 Pamięć

Bardziej szczegółowo

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

Zarządzanie pamięcią operacyjną i pamięć wirtualna Zarządzanie pamięcią operacyjną i pamięć wirtualna Pamięć jako zasób systemu komputerowego. Wsparcie dla zarządzania pamięcią na poziomie architektury komputera. Podział i przydział pamięci. Obraz procesu

Bardziej szczegółowo

Zarządzanie pamięcią w systemie operacyjnym

Zarządzanie pamięcią w systemie operacyjnym Zarządzanie pamięcią w systemie operacyjnym Cele: przydział zasobów pamięciowych wykonywanym programom, zapewnienie bezpieczeństwa wykonywanych procesów (ochrona pamięci), efektywne wykorzystanie dostępnej

Bardziej szczegółowo

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 10 Pamięć wirtualna. Toruń, 2003 Pamięć wirtualna Podstawy Stronicowanie na żądanie Sprawność stronicowania na żądanie Zastępowanie stron Algorytmy

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

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

Pamięć. Jan Tuziemski Źródło części materiałów: os-book.com Pamięć Jan Tuziemski Źródło części materiałów: os-book.com Cele wykładu Przedstawienie sposobów organizacji pamięci komputera Przedstawienie technik zarządzania pamięcią Podstawy Przed uruchomieniem program

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

Budowa systemów komputerowych

Budowa systemów komputerowych Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej

Bardziej szczegółowo

Systemy Operacyjne Pamięć wirtualna cz. 1

Systemy Operacyjne Pamięć wirtualna cz. 1 Systemy Operacyjne Pamięć wirtualna cz. 1 Arkadiusz Chrobot Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 4 stycznia 2007 1 1 Zasady lokalności czasowej i przestrzennej 2 Pamięć wirtualna

Bardziej szczegółowo

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

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

Bardziej szczegółowo

TEMAT 5 Zarządzanie pamięcią operacyjną

TEMAT 5 Zarządzanie pamięcią operacyjną TEMAT 5 Zarządzanie pamięcią operacyjną Struktura pamięci pamięć -- wielka tablica oznaczona adresami słów lub bajtów procesor pobiera rozkazy z pamięci stosownie do wartości licznika rozkazów rozkazy

Bardziej szczegółowo

Pamięć wirtualna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Pamięć wirtualna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku). Pamięć operacyjna (fizyczna)

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

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

Wykład 7. Zarządzanie pamięcią Wykład 7 Zarządzanie pamięcią -1- Świat idealny a świat rzeczywisty W idealnym świecie pamięć powinna Mieć bardzo dużą pojemność Mieć bardzo krótki czas dostępu Być nieulotna (zawartość nie jest tracona

Bardziej szczegółowo

Stronicowanie na ¹danie

Stronicowanie na ¹danie Pamiêæ wirtualna Umo liwia wykonywanie procesów, pomimo e nie s¹ one w ca³oœci przechowywane w pamiêci operacyjnej Logiczna przestrzeñ adresowa mo e byæ du o wiêksza od fizycznej przestrzeni adresowej

Bardziej szczegółowo

Od programu źródłowego do procesu

Od programu źródłowego do procesu Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Proces y i y w i ąt ą ki

Proces y i y w i ąt ą ki Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Motywacja - memory wall Krzysztof Banaś, Obliczenia wysokiej wydajności. 2 Organizacja pamięci Organizacja pamięci:

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ Wiązanie adresów adr.symbol -> adr. względne ->adresy pamięci kompilacja; kod bezwzględny (*.com) ładowanie; kod przemieszczalny wykonanie adr.względne -> adr. bezwzględne

Bardziej szczegółowo

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

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku System plików 1. Pojęcie pliku 2. Typy i struktury plików 3. etody dostępu do plików 4. Katalogi 5. Budowa systemu plików Pojęcie pliku (ang( ang. file)! Plik jest abstrakcyjnym obrazem informacji gromadzonej

Bardziej szczegółowo

Schematy zarzadzania pamięcia

Schematy zarzadzania pamięcia Schematy zarzadzania pamięcia Segmentacja podział obszaru pamięci procesu na logiczne jednostki segmenty o dowolnej długości. Postać adresu logicznego: [nr segmentu, przesunięcie]. Zwykle przechowywana

Bardziej szczegółowo

Zarz arz dzanie pam dzanie ięci ę ą

Zarz arz dzanie pam dzanie ięci ę ą Zarządzanie pamięcią Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci.

Bardziej szczegółowo

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ

PRZYDZIAŁ PAMIĘCI OPERACYJNEJ PRZYDZIAŁ PAMIĘCI OPERACYJNEJ dr inż. Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Wstęp Pamięć komputera wielka tablica słów (bajtów)

Bardziej szczegółowo

Zarz arz dzanie pam dzanie ięci ę ą

Zarz arz dzanie pam dzanie ięci ę ą Zarządzanie pamięcią Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci.

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci

Bardziej szczegółowo

Zarządzanie zasobami pamięci

Zarządzanie zasobami pamięci Zarządzanie zasobami pamięci System operacyjny wykonuje programy umieszczone w pamięci operacyjnej. W pamięci operacyjnej przechowywany jest obecnie wykonywany program (proces) oraz niezbędne dane. Jeżeli

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną zagadnienia podstawowe

Zarządzanie pamięcią operacyjną zagadnienia podstawowe Zarządzanie pamięcią operacyjną zagadnienia podstawowe Pamięć jako zasób systemu komputerowego Pamięć jest zasobem służący do przechowywania danych. Z punktu widzenia systemu pamięć jest zasobem o strukturze

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 9 Pamięć operacyjna Właściwości pamięci Położenie Pojemność Jednostka transferu Sposób dostępu Wydajność Rodzaj fizyczny Własności fizyczne Organizacja Położenie pamięci

Bardziej szczegółowo

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

Pamięć wirtualna jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku). jest organizacją zasobów pamięci, zrealizowaną w oparciu o tzw. przestrzeń wymiany w pamięci drugiego rzędu (na dysku). Pamięć operacyjna (fizyczna) jest dla tych zasobów tylko pewnym oknem, przechowującym

Bardziej szczegółowo

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

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.

Bardziej szczegółowo

Struktura systemów komputerowych

Struktura systemów komputerowych Struktura systemów komputerowych Działanie systemu komputerowego Struktury WE/WY Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Ogólna architektura systemu Wykład 6, Systemy operacyjne (studia

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych Systemy operacyjne Systemy operacyjne Inżynieria obliczeniowa, II rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@agh.edu.pl Wykłady: 7 tygodni po 2 h, s. 209, B-4 Projekty: 2 godziny

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 12 Wspomaganie systemu operacyjnego: pamięć wirtualna Partycjonowanie Pamięć jest dzielona, aby mogło korzystać z niej wiele procesów. Dla jednego procesu przydzielana jest

Bardziej szczegółowo

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

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

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

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

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

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność systemów a organizacja pamięci Krzysztof Banaś, Obliczenia wysokiej wydajności. 1 Wydajność obliczeń Dla wielu programów wydajność obliczeń można traktować jako wydajność pobierania z pamięci

Bardziej szczegółowo

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora)

obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) Pamięć operacyjna (main memory) obszar bezpośrednio dostępny dla procesora rozkazy: load, store (PAO rejestr procesora) cykl rozkazowy: pobranie rozkazu z PAO do rejestru rozkazów dekodowanie realizacja

Bardziej szczegółowo

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015 1 SYSTEMY OPERACYJNE LABORATORIUM 2014/2015 ZASADY OCENIANIA ZADAŃ PROGRAMISTYCZNYCH: Zadania laboratoryjne polegają na symulacji i badaniu własności algorytmów/mechanizmów stosowanych w systemach operacyjnych.

Bardziej szczegółowo

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

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4 Pamięć wirtualna Przygotował: Ryszard Kijaka Wykład 4 Wstęp główny podział to: PM- do pamięci masowych należą wszelkiego rodzaju pamięci na nośnikach magnetycznych, takie jak dyski twarde i elastyczne,

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

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

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling) Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie

Bardziej szczegółowo

Wprowadzenie do systemów operacyjnych

Wprowadzenie do systemów operacyjnych SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny

Bardziej szczegółowo

Technologie informacyjne (2) Zdzisław Szyjewski

Technologie informacyjne (2) Zdzisław Szyjewski Technologie informacyjne (2) Zdzisław Szyjewski Technologie informacyjne Technologie pracy z komputerem Funkcje systemu operacyjnego Przykłady systemów operacyjnych Zarządzanie pamięcią Zarządzanie danymi

Bardziej szczegółowo

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

Zarządzanie pamięcią. Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem. Zarządzanie pamięcią Podstawy Wymiana (swapping). Przydział ciągły pamięci. Stronicowanie. Segmentacja. Segmentacja ze stronicowaniem. Zarządzanie pamięcią podstawy pamięć operacyjna (główna) (main memory,

Bardziej szczegółowo

Architektura systemu komputerowego

Architektura systemu komputerowego Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie

Bardziej szczegółowo

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

Zarządzanie pamięcią. Od programu źródłowego do procesu. Dołączanie dynamiczne. Powiązanie programu z adresami w pamięci Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Od programu źródłowego do procesu

Od programu źródłowego do procesu Zarządzanie pamięcią Przed wykonaniem program musi być pobrany z dysku i załadowany do pamięci. Tam działa jako proces. Podczas wykonywania, proces pobiera rozkazy i dane z pamięci. Większość systemów

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie. Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz

Bardziej szczegółowo

ARCHITEKTURA PROCESORA,

ARCHITEKTURA PROCESORA, ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Organizacja typowego mikroprocesora

Organizacja typowego mikroprocesora Organizacja typowego mikroprocesora 1 Architektura procesora 8086 2 Architektura współczesnego procesora 3 Schemat blokowy procesora AVR Mega o architekturze harwardzkiej Wszystkie mikroprocesory zawierają

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

System operacyjny MACH

System operacyjny MACH Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

projektowanie systemu

projektowanie systemu projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy

Bardziej szczegółowo

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

architektura komputerów w. 8 Zarządzanie pamięcią architektura komputerów w. 8 Zarządzanie pamięcią Zarządzanie pamięcią Jednostka centralna dysponuje zwykle duża mocą obliczeniową. Sprawne wykorzystanie możliwości jednostki przetwarzającej wymaga obecności

Bardziej szczegółowo

Pytania do treści wykładów:

Pytania do treści wykładów: Pytania do treści wykładów: Wprowadzenie: 1. Jakie zadania zarządzania realizowane są dla następujących zasobów: a) procesor, b) pamięć, c) plik? 2. W jaki sposób przekazywane jest sterowanie do jądra

Bardziej szczegółowo

ZASADY PROGRAMOWANIA KOMPUTERÓW

ZASADY PROGRAMOWANIA KOMPUTERÓW POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.

Bardziej szczegółowo

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]

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] Procesor ma architekturę akumulatorową. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset or Rx, Ry, A add Rx load A, [Rz] push Rx sub Rx, #3, A load Rx, [A] Procesor ma architekturę rejestrową

Bardziej szczegółowo

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

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesorów

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 006 Wydajność systemu 2 SO i SK/WIN Najprostszym sposobem na poprawienie wydajności systemu, jeżeli dysponujemy zbyt małą ilością pamięci RAM

Bardziej szczegółowo

Ograniczenia efektywności systemu pamięci

Ograniczenia efektywności systemu pamięci Ograniczenia efektywności systemu pamięci Parametry pamięci : opóźnienie (ang. latency) - czas odpowiedzi pamięci na żądanie danych przez procesor przepustowość systemu pamięci (ang. bandwidth) - ilość

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 3 Jan Kazimirski 1 Podstawowe elementy komputera. Procesor (CPU) 2 Plan wykładu Podstawowe komponenty komputera Procesor CPU Cykl rozkazowy Typy instrukcji Stos Tryby adresowania

Bardziej szczegółowo

System plików. Warstwowy model systemu plików

System plików. Warstwowy model systemu plików System plików System plików struktura danych organizująca i porządkująca zasoby pamięci masowych w SO. Struktura ta ma charakter hierarchiczny: urządzenia fizyczne strefy (partycje) woluminy (w UNIXie:

Bardziej szczegółowo

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko

Wprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko Wprowadzenie do systemów operacyjnych mgr inż. Krzysztof Szałajko Co to jest system operacyjny? Co to jest system komputerowy? 2 / 37 Definicja: system operacyjny System operacyjny jest programem pośredniczącym

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

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

SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 4 - zarządzanie pamięcią Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 2. Pamięć rzeczywista 3. Pamięć wirtualna

Bardziej szczegółowo

Systemy operacyjne. Struktura i zasady budowy. Rozdział 1 Wprowadzenie do systemów komputerowych

Systemy operacyjne. Struktura i zasady budowy. Rozdział 1 Wprowadzenie do systemów komputerowych Systemy operacyjne Struktura i zasady budowy Rozdział 1 Wprowadzenie do systemów komputerowych Zadaniem systemu operacyjnego jest pośredniczenie pomiędzy aplikacjami, programami narzędziowymi i użytkownikami

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura komputerów. Układy wejścia-wyjścia komputera Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs

Bardziej szczegółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo