Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

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

Download "Zbigniew S. Szewczak Podstawy Systemów Operacyjnych"

Transkrypt

1 Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 10 Pamięć wirtualna. Toruń, 2004

2 Odrabianie wykładów czwartek, , S7, g za czwartek, , S7, g za 12.05

3 Pamięć wirtualna Podstawy Stronicowanie na żądanie Sprawność stronicowania na żądanie Zastępowanie stron Algorytmy zastępowania stron Przydział ramek Szamotanie Inne rozważania Segmentacja na żądanie

4 Podstawy Wykonywane rozkazy muszą rezydować w pamięci, jednak cały program nie musi programy często zawierają fragmenty obsługi sytuacji wyjątkowych tablice, listy mają zwykle nadmiar przydzielonej pamieci pewne możliwości programu są rzadko stosowane Zalety programu częściowo rezydującego brak ograniczeń na pamięć więcej programów: lepsze wykorzystanie procesora mniejsza liczba operacji we/wy dla załadowania programu więc program wykonuje się szybciej

5 Podstawy (c.d.) Pamięć wirtualna (ang. virtual memory ) pozwala na odseparowanie pamięci logicznej użytkownika od pamięci fizycznej Można jedynie część programu załadować do pamięci w celu wykonania Logiczna przestrzeń adresowa procesu może dlatego być znacznie większa niż fizyczna przestrzeń adresowa Potrzeba wymiany stron między dyskiem a pamięcią Pamięć wirtualną można zaimplementować jako: Stronicowanie na żądanie (ang. demand paging) Segmentacja na żądanie (ang. demand segmentation) np.os/2

6 Pamięć wirtualna i fizyczna strona 0 strona 1 strona 2... strona n pamięć wirtualna odwzorowanie pamięci pamięć fizyczna

7 Stronicowanie na żądanie Nigdy nie dokonuje się wymiany strony w pamięci jeśli nie jest to konieczne - procedura leniwej wymiany (ang. lazy swapper) Mniej operacji we/wy Mniej pamięci Szybsza reakcja Więcej użytkowników Jeśli strona jest potrzebna odwołaj się niepoprawne odwołanie abort brak strony w pamięci sprowadź z stronę do pamięci Zgodność z Zasadą lokalności odniesień

8 Stronicowanie na żądanie (c.d.) Proces jest traktowany jako ciąg stron Procedura wymiany dotyczy całego procesu Procedura stronicująca (ang. pager) dotyczy poszczególnych stron procesu Gdy proces ma zostać wprowadzony do pamięci, wówczas procedura stronicująca zgaduje jakie strony będą w użyciu przed ponownym załadowaniem na dysk (ang. swap space) Nigdy nie dokonuje się wymiana całego procesu dlatego używamy określenia stronicowanie (ang. page) zamiast wymiana (ang. swap)

9 Przesyłanie do obszaru ciąłego program A swap out program B swap in pamięć operacyjna

10 Bit poprawności Z każdą pozycją w tablicy stron stowarzyszony jest bit poprawności (ang. valid-invalid bit): 1 w pamięci, 0 poza pamięcią (dozwolona lub nie) Początkowo bit poprawności ustawiany jest na 0 (lub i) dla wszystkich pozycji Nr ramki bit poprawności Przykład 1 Μ tablica stron

11 Tablica stron z brakami stron 0 0 A numer ramki 0 4 bit poprawności v B 1 i 4 A C D E F v i i v i C F C F A B D E 6 G 7 H pamięć logiczna 7 i tablica stron pamięć fizyczna

12 Brak strony Implementacja bitu poprawności wymaga wsparcia ze strony sprzętu Jeśli wystąpi odwołanie do strony z bitem 0, sprzęt stronicujący spowoduje przejście do systemu operacyjnego: błąd zwany brakiem strony (ang. page-fault) Czyste stronicowanie na żądanie (ang. pure demand paging): Nigdy nie sprowadzaj strony do pamięci wcześniej niż jest to niezbędne

13 Procedura obsługi braku strony 1. System operacyjny sprawdza wewnętrzną tablicę oraz decyduje, że: 2. jeśli odwołanie niedozwolone - kończy proces 2. jeśli odwołanie dozwolone tylko zabrakło strony w pamięci to sprowadza tę stronę 3. System znajduje wolną ramkę na liście wolnych ramek 4. System wczytuje stronę z dysku do wolnej ramki 5. System wstawia bit 1 (lub v) w tablicy stron 6. System wykonuje przerwany rozkaz

14 Etapy obsługi braku strony system operacyjny 3 strona w pamięci pomocniczej odniesienie 1 2 pułapka umieść M 6 wznowienie wykonywania tablica stron i pamięć fizyczna 5 4 odnowienie tablicy stron sprowadzenie brakujacej strony

15 Co się stanie gdy zabraknie wolnej ramki? Zastąpienie strony - szukamy strony w pamięci która nie jest używana i zapisujemy na dyska wydajność potrzebny jest taki algorytm, który zminimalizuje liczbę braków strony Pewne strony mogą być sprowadzane do pamięci po kilka razy Może się okazać, że kilka stron w pamięci jest potrzebnych do wykonania jednego rozkazu MVC (przenieś znaki), EX (wykonaj) sposób adresowania - np. pośrednie, autoincrement (PDP-11) Wn. Sposób zastąpienia strony zależy od architektury komputera

16 Sprawność stronicowania na żądanie Prawdopodobieństwo braku strony p jeśli p=0 to brak braku stron jeśli p=1 to każde odwołanie generuje brak strony Efektywny czas dostępu (EAT) EAT = (1-p) * cd + p* czas obsługi strony cd - czas dostępu do pamięci (10 do 200 ns) czas obsługi strony obsługa przerwania wywołanego brakiem strony (1 do 100 µs) czytanie strony wznowienie procesu(1 do 100 µs)

17 Prefiksy metryczne 10^-3 - mili (m); 10^3 - kilo (k) 10^-6 - micro (µ); 10^6 - Mega (M) 10^-9 - nano (n); 10^9 - Giga (G) 10^-12 - pico (p); 10^12 - Tera (T) 10^-15 - femto (f); 10^15 - Peta (P) 10^-18 - atto (a); 10^18 - Exa (E) 10^-21 - zepto (z); 10^21 - Zetta (Z) 10^-24 - yocto (y); 10^24 - Yotta (Y)

18 Przykłady wykorzystania 1.7 yg - masa protonu 1 as - czas przejścia światła przez atom 1 pg - masa bakterii 1 µl - kropelka wody 1 Ms - 11,6 dni 0,3 Gm - sekunda świetlna 9,5 Pm - rok świetlny 1 ZL - objętość Pacyfiku 1 YL - pojemność Ziemii

19 Czas obsługi braku strony Przejście do systemu operacyjnego Przechowanie kontekstu Określenie, że przerwanie to brak strony Określenie dopuszczalności i położenia strony Czytanie z dysku do wolnej ramki Przydzielenie procesora w trakcie transferu Przerwanie we/wy po transferze strony Odebranie sterowania i przełączenie kontekstu Skorygowanie tablicy stron Czekanie na przydział procesora i wznowienie

20 Stronicowanie na żądanie - przykład cd = 100 ns czytanie strony z dysku twardego opóźnienie (ang. latency) - 8ms przeszukiwanie (ang. seek) - 15ms przesyłanie (ang. transfer) - 1ms Czytanie strony = 25 ms = ns EAT = (1 p) *(100) + p *( ) = *p ns Wn. EAT jest proporcjonalny do p (page-fault rate) dlatego rozsądnym jest utrzymywanie małego prawdopodobieństwa p braku strony

21 Tworzenie procesu Podczas tworzenia procesu pamięć wirtualna pozwala na realizację technik poprawiajacych wydajność systemu kopiowanie przy zapisie (ang. copy-on-write) odwzorowanie plików do pamięci (ang. memory-mapped files)

22 Kopiowanie przy zapisie Kopiowanie przy zapisie umożliwia procesowi potomnemu jak i rodzicowi dzielenie tych samych stron w pamięci Jeśli któryś z nich modyfikuje stronę to jest ona kopiowana Kopiowanie przy zapisie poprawia wydajność tworzenia procesów np. Linux, W2K, Solaris 2 Wolne strony są alokowane z puli wyzerowanych stron (ang. zero-fill-on-demand) vfork - rodzic jest zawieszony i potomek używa jego przestrzeni adresowej, np. funkcja systemowa exec

23 Odwzorowanie plików do pamięci We/wy na pliki odwzorowane w pamięci to dostęp do bloków danych dyskowych wymapowanych na strony Plik jest początkowo czytany jako żądanie strony Blok danych o wielkości strony zostaje wczytany Operacje we/wy na pliku to we/wy na pamięci Uproszczenie dostępu do pliku, bez wywołań systemowych read(), write() Wiele procesów może korzystać z pliku dzieląc strony w pamięci Solaris 2

24 Zastępownie stron - dzielenie stron pliku pamięć wirtualna procesu A pamięć fizyczna pamięć wirtualna procesu B plik na dysku

25 Zapotrzebowanie na zastąpienie strony - brak wolnej ramki PC H umieść M J M pamięć logiczna użytkownika 1 ramka bit poprawności v v v tablica stron użytkownika 1 i monitor D H B A B D E pamięć logiczna użytkownika 2 ramka bit poprawności 6 v i 2 v 7 v tablica stron użytkownika 2 4 umieść M 5 J 6 A 7 E pamięć fizyczna M

26 Zastępowanie stron Ochrona przed nadprzydziałem (ang. overallocation) pamięci przez dodanie do obsługi braku strony możliwości zastąpienia strony (ang. page replacement). 1. Zlokalizowanie potrzebnej strony na dysku 2. Odnalezienie wolnej ramki jeśli ramka istnieje - zostaje użyta w przeciwnym razie typowanie ramki ofiary (ang. victim) ramka ofiara zapisana na dysk; zmiana w tablicy stron 3. Wczytanie potrzebnej strony 4. Wznowienie procesu

27 Zastępowanie strony ramka o f bit poprawności i v tablica stron 2 4 zmiana na invavlid f reset tablicy stron dla nowej strony ofiara strona ofiara swap out 1 strona potrzebna swap in 3 pamięć fizyczna

28 Zastępowanie stron (c.d.) Gdy nie ma wolnych ramek - potrzebne jest dwukrotne przesyłanie stron a w konsekwencji wydłużenie efektywnego czasu dostępu Zastosowanie bitu modyfikacji (zabrudzenia) (ang. modify (dirty) bit ) do zredukowania czasu dostępu - tylko strony zmodyfikowane są zapisywane na dysk

29 Zastępowanie stron (c.d.) Zastępowanie stron jest podstawą stronicowania na żądanie i dopełnia rozdzielenie pamięci logicznej od fizycznej Z pomocą tego mechanizmu otrzymujemy wielką pamięć wirtualną używając mniejszej pamięci fizycznej Dwa główne problemy algorytm przydziału ramek (ang. frame-allocation algorithm) algorytm zastępowania stron (ang. page-replacement algorithm)

30 Algorytmy zastępowania stron Minimalizacja częstości braków stron (ang. pagefault rate) Algorytm ocenia się na podstawie wykonania go na pewnym ciągu odniesień (ang. reference string) do pamięci i zsumowaniu liczby braków stron w tym ciągu Dla zilustrowania algorytmów zastępowania stron będziemy używać pamięci z trzema wolymi ramkami oraz następujacego ciągu odniesień 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1.

31 Algorytm zastępowania FIFO Algorytm FIFO (ang. First-In-First-Out) stowarzysza z każdą ze stron czas kiedy została ona sprowadzona do pamięci Jeśli trzeba zastąpić stronę to zastępowana jest najstarsza ze stron Implementuje się za pomocą kolejek FIFO (IPC System V, POSIX) Dla ciągu odniesień z trzema ramkami mamy 15 braków stron (w tym trzy początkowe braki stron)

32 Algorytm FIFO - przykład 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 w tym samym czasie) braków stron ramki braków stron 4 4 3

33 Anomalia Belady ego Anomalia Belady ego (ang. Belady s anomaly) odzwierciedla fakt, że w niektórych algorytmach zastępowania stron współczynnik braków stron może wzrastać ze wzrostem wolnych ramek (mimo, że intuicja zdaje się sugerować, że zwiekszenie pamięci procesu powinno polepszyć jego działanie) Poszukiwanie optymalnego algorytmu zastępowania stron, który cechuje najniższy współczynnik braków stron

34 Krzywa braków stron (FIFO) 16 liczba braków stron liczba ramek

35 Algorytm optymalny Zastąp tę stronę, która najdłużej nie będzie używana; nazywany OPT lub MIN Przykład 3 ramek 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, braków stron Nie ma anomalii Belady ego

36 Algorytm optymalny (c.d.) Bardzo trudny do realizacji bo wymaga wiedzy o przyszłej postaci ciągu odniesień (podobnie jak przy planowaniu procesora metodą SJF) Używany głównie w studiach porównawczych wiedza o tym, że jakiś algorytm odbiega od optymalnego o 12,3% a średnio jest od niego gorszy o 4,7% może okazać się cenną inna sprawa to wartość wartości średniej

37 Algorytm LRU Zastąp tę stronę, która najdawniej była użyta (ang. Least Recently Used) Przykład 3 ramek 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Nie jest dotknięty anomalią Belady ego Odwracalność braków stron

38 Algorytm LRU a FIFO - przykład Ciąg odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 Zastępujemy najdawniej używaną stronę

39 Algorytm LRU (c.d.) Dwie implementacje Liczniki - do każdej pozycji w tablicy stron dołączamy rejestr czasu użycia, do procesora zaś dodajemy zegar logiczny lub licznik. Wskazania zegara są zwiększane wraz z każdym odniesieniem do pamięci. Ilekroć występuje odniesienie do pamięci, tylekroć zawartość rejestru zegara jest kopiowana do rejestru czasu użycia należącego do danej strony w tablicy stron Stos - przy każdym odwołaniu do strony jej numer wyjmuje się ze stosu i umieszcza na szczycie - najlepsza implementacja to dwukierunkowa lista ze wskaźnikami do czoła i do końca najwyżej 6 zmian wskaźników nie jest potrzebne przeszukiwanie listy

40 Przykład - LRU i użycie stosu

41 Algorytmy stosowe Algorytm stosowy (ang. stack algorithm) to taki algorytm dla którego zbiór stron w pamięci w przypadku n ramek jest podzbiorem zbioru stron w pamięci w przypadku n+1 ramek Przykład: LRU Własności: klasa algorytmów stosowych nie jest dotknięta anomalią Belady ego

42 Algorytmy przybliżające LRU Bit odniesienia (ang. reference bit) Z każdą stroną stowarzyszamy na początku bit 0 Czytanie lub pisanie na stronie ustawia bit na 1 Zastąp stronę stronę jeśli ma bit 0 nie można poznać porządku użycia stron Algorytm drugiej szansy (ang. second chance) Algorytm FIFO (wymaga zegara) Gdy strona (FIFO) ma bit odniesienia = 1 to strona dostaje drugą szansę na pobyt w pamięci: bit odniesienia = 0 i czas przybycia = bieżący zostawia się stronę w pamięci zastępuje się następną w porządku FIFO stronę według powyższych zasad

43 Zegarowy algorytm drugiej szansy następna ofiara bity odniesienia strona

44 Ulepszony algorytm drugiej szansy (x,y) - x - bit odniesienia, y- bit modyfikacji 4 klasy (od najniższej) (0,0) - nie używana ostatnio i nie zmieniana: najlepsza ofiara (0,1) - nie używana ostatnio ale zmieniona: gorsza ofiara bo wymaga zapisu na dysk (1,0) - używana ostatnio i czysta: może być wkrótce użyta (1,1) - używana ostatnio i zmieniana - najgorsza ofiara, prawdopodobnie będzie zaraz użyta Algorytm drugiej szansy ale zastępujemy pierwszą napotkaną stronę z najniższej niepustej klasy (x,y)

45 Algorytmy zliczające Wprowadzamy liczniki odwołań do każdej ze stron Algorytm LFU (ang. least frequently used) - zastąp stronę najrzadziej używaną Algorytm MFU (ang. most frequently used) - uzasadnia się tym, że strona z najmniejszą wartością licznika została prawdopodobnie dopiero co sprowadzona i będzie jeszcze używana Implementacja kosztowana i nie przybliżają dobrze algorytmu OPT

46 Algorytmy buforowania stron Zanim usunie się z pamięci ramkę ofiarę wczytuje się nową stronę do którejś z wolnych ramek Nie trzeba czekać na zakończenie zapisywania strony ofiary aby wznowić proces Z chwilą zapisania do swapu ramki ofiary dołączana jest ona do listy wolnych ramek Rozwinięcie tej idei: lista zmodyfikowanych stron gdy urządzenie stronicujące jest wolne (ang. idle) zmodyfikowna strona jest zapisywana na dysk Lista wolnych stron wraz listą odwiedzających stron VAX/VMS - ramka ofiara (FIFO) może być użyta

47 Przydział ramek Każdy proces wymaga minimalnej liczby ramek Przykład: IBM ramek potrzebnych do wykonania rozkazu typu SS MVC: rozkaz długośći 6 bajtów może zajmować 2 strony dane wejściowe (256 znaków) mogą zajmować 2 strony obszar na który przesyłamy może zajmować 2 strony gdy MVC jest argumentem rozkazu EXECUTE jeszcze 2! Dwa główne schematy przydziału przydział stały (ang. fixed allocation) przydział priorytetowy (ang. priority allocation)

48 MVC - Move Characters MVC D1(L,B1), D2(B2) prześlij pole danych o długości L z pod adresu wyznaczonego przez zawartość rejestru B2 powiększonego o przesunięcie D2 pod adres (B1)+D1 Przykład L=08, B1=x B, D1=001,B2=x B,D2=000 MVC 1(8,11), 0(11) - format Assemblera D207B001B000 - format maszynowy rejestr 11 zawiera x 358 ; pod adresem 358 mamy: 00F1F2F3F4F5F6F7F8F9 po wykonaniu MVC mamy pod adresem 358 :

49 EX - Execute EX R1, D2(X2,B2) do bitów 8-15 rozkazu z pod adresu (X2)+(B2)+D2 są dodawane logicznie bity rejestru R1 i tak zmodyfikowany rozkaz jest wykonywany Przykład pod adresem 3820 mamy D2FFB001B000; R11=x 358, pod adresem 358 mamy 00F1F2F3F4F5F6F7F8F9 R1=3, X2=0, B2=x A, D2=000, R10 = x EX 1,0(0,10) - format Assemblera 4410A000 - format maszynowy po wykonaniu EX mamy pod adresem 358: F5F6F7F8

50 Przydział stały Przydział równy (ang. equal allocation) - np. jeśli mamy 100 ramek i 5 procesów, to każdy proces może dostać 20 ramek Przydział proporcjonalny (ang. proportional allocation) - każdemu procesowi przydziela się dostępną pamięć proporcjonalnie do jego rozmiaru

51 Przydział proporcjonalny Przykład s(i) rozmiar pamięci wirtualnej procesu P(i) S = s(1)+s(2)+...+s(n) m - całkowita liczba ramek procesowi P(i) przydzielamy a(i)~ m*(s(i)/s) ramek m=64, n=2, s(1)=10, s(2)=127 a(1)= 64*(10/137) ~ 5 ramek a(2)= 64*(127/137) ~ 59 ramek

52 Przydział priorytetowy Zastosowanie metody przydziału proporcjonalnego, w którym liczba ramek zależy nie od względnych rozmiarów procesu, lecz od priorytetów procesów albo od kombinacji rozmiaru i priorytetu Jeśli proces P i generuje błąd braku strony wybierz do zastąpienia jedną z jego ramek wybierz do zastąpienia ramkę procesu o niższym priorytecie

53 Porównanie przydziału globalnego i lokalnego Zastępowanie globalne (ang. global replacement) umożliwia procesom wybór ramki ze zbioru wszystkich ramek, nawet gdy ramka jest w danej chwili przydzielona do innego procesu: jeden proces może zabrać ramkę drugiemu procesowi Zastępowanie lokalne (ang. local replacement) wybór ograniczony do zbioru ramek przydzielonych do danego procesu Lepszą przepustowość systemu daje globalne - zastępowanie lokalne ma mniejszy zakres

54 Szamotanie Jeśli proces nie ma wystarczająco dość ramek to współczynnik braków stron jest znaczny. Powoduje to: słabe wykorzystanie CPU system operacyjny reaguje: trzeba zwiększyć wieloprogramowość i podnieść wykorzystanie CPU nowy procesy z kolejki procesów gotowych staje się aktywnym Szamotanie (ang. trashing) - proces się szamocze jeśli spędza więcej czasu na stronicowaniu niż na wykonaniu

55 Przyczyna szamotania System operacyjny nadzoruje wykorzystanie jednostki centralnej Jeśli jest ono za małe planista przydziału procesora zwiększa stopień wieloprogramowości Strony zastępowane są według globalnego algorytmu bez brania po uwagę do jakich procesów należą Procesom zaczyna brakować stron Procesy ustawiają się w kolejce do urządzenia stronicującego Planista opróżnia kolejkę procesów gotowych

56 Powstrzymanie szamotania Zmniejszenie stopnia wieloprogramowości Lokalny (lub priorytetowy) algorytm zastępowania jeśli proces zaczyna się szamotać nie może on kraść ramek innemu procesowi bo może on też zacząć się szamotać Trzeba dostarczyć procesowi potrzebne ramki Należy zabezpieczyć się przed możliwością wystapienia braku ramek

57 Szamotanie - diagram wykorzystanie procesora szamotanie stopień wieloprogramowości

58 Model strefowy a chaos Model strefowy (ang. locality model) zakłada, że w trakcie wykonania przechodzi się z jednej strefy programu do innej, gdzie przez strefę programu rozumie się zbiór stron pozostajacych we wspólnym użyciu Ogólnie ujmując, program składa się z wielu różnych stref, które mogą na siebie zachodzić Strefy programu są określne przez jego strukturę oraz strukturę jego danych Model strefowy neguje losowość programów System operacyjny nie radzi sobie z chaosem

59 Zasada lokalności odniesień

60 Model zbioru roboczego Założenie: procesy mają charakter strefowy - parametr do definiowania okna roboczego (ang. working-set window) oznaczający ustaloną liczbę ostatnich odniesień do stron WS(i) - zbiór roboczy (ang. working-set) procesu P(i) - całkowita liczba odniesień do stron w ostatnich jednostkach czasu za małe nie obejmie całego zbioru roboczego za duże to będzie zachodzić na kilka stref programu nieskończone - wszystkie strony użyte przez proces Szamotanie jeśli WS(1)+..+WS(n) > #(pamięć) - należy zawiesić w takiej sytuacji jakiś proces

61 Utrzymanie śladu zbioru roboczego Trudno jest utrzymać ślad zbioru roboczego Model zbioru roboczego można przybliżać z pomocą zegara generującego przerwania w stałych odstępach czasu oraz bitu odniesienia Przykład = przerwania zegarowe co 5000 odniesień dwa bity przechowywane w pamięci dla każdej strony po wystąpieniu przerwania zegara kopiuje się i zeruje wartości bitów odniesień wszystkich stron jeśli wystąpi brak strony to badamy bit odniesienia i dwa bity w pamięci: conajmiej jeden ustawiony bit określa zbiór roboczy

62 Utrzymanie śladu zbioru roboczego - przykład (c.d.) Wada: nie można powiedzieć, w którym miejscu przydziału 5000 odniesień wystąpiło dane odniesienie Można zwiekszyć historię odniesień (t.j. ilość bitów z 2 do 10) i liczbę przerwań ( np. co 1000 odniesień) Wada: zwiększony koszt obsługi

63 Model zbioru roboczego - przykład ślad odwołań do stron t 1 WS(t 1 )= { 1,2,5,6,7 } 2 WS(t )= { 3,4 } t 2

64 Częstość braków stron Metodą mierzenia szamotania jest mierzenie częstości braków stron (ang. page-fault frequency - PFF) ustala się górną i dolną granicę pożądanego poziomu braków stron jeśli proces przekracza górną granicę do dostaje dodatkową ramkę jeśli częstość występowania braków stron spada poniżej dolnej granicy to usuwa się ramkę z procesu, którego ten objaw dotyczy

65 Częstość braków stron - wykres liczba braków stron ograniczenie górne zwiększ ilość ramek ograniczenie dolne zmniejsz ilość ramek liczba ramek

66 Przykłady implementacji pamięci wirtualnej - WNT stronicowanie na żądanie clustering - każdy proces ma przypisany minimalny i maksymalny zbiór roboczy: jeśli proces ma zbiór roboczy bliski maksymalnemu i złapie błąd strony musi zgodnie z lokalną polityką zastępowania wyznaczyć ramkę ofiarę; jeśli proces ma zbiór roboczy bliski minimalnemu może dostać ramkę z globalnej listy wolnych ramek Konkretny sposób wyboru strony do usunięcia ze zbioru roboczego jest zależny od typu procesora

67 Przykłady implementacji pamięci wirtualnej - W2K 4GB pamięci dla procesu w tym 2GB - W2K, 2*64KB - pointers stany stron dostępne - nieużywane przez dany proces powierzone (ang. commited) - np. strony w chwili zapisywania do pliku na dysku zarezerwowane - ciągły zbiór stron nie wliczany do quoty zanim użyty (np. przy zapisie do pamięci)

68 Przykłady implementacji pamięci wirtualnej - Solaris 2 wartość progowa (ang. threshold) wolnej pamięci zwana lotsfree (zwykle 1/64 pamięci fizycznej) poniżej której proces pageout zaczyna podkradanie stron i wymianę pageout weryfikuje pamięć 4 razy na sekundę jeśli liczba wolnych ramek < lostfree to pageout wykonuje algorytm (podobny do zegarowego algorytmu drugiej szansy) zerowanie bitu odniesienia wszystkich ramek sprawdzenie (po pewnym czasie) bitów odniesienia i zwrot wolnych ramek jeśli liczba wolnych ramek < desfree to pageout startuje 100 razy na sekundę aby utrzymać desfree jeśli pageout nie jest w stanie utrzymać desfree przez 30 sekund to zaczyna się swapowanie stron jeśli system nie jest w stanie utrzymać ilości wolnej pamięci na poziomie minfree to pageout jest wołany przy każdym żądaniu nowej strony rozpoznawanie stron bibliotek dzielonych

69 Stronicowanie wstępne Stronicowanie wstępne (ang. prepaging) - jednorazowe wprowadzenie do pamięci wszystkich potrzebnych stron procesu zapobiega wysokiej aktywności stronicowania we wstępnej fazie procesu W systemach implementujących model zbioru roboczego dla każdego procesu przechowuje się listę stron jego zbioru roboczego Przełączenie kontekstu: zapamiętanie listy stron (np. w przypadku I/O) oraz wczytanie stron z tej listy przed restartem

70 Rozmiar strony Rozmiary stron są potęgami 2: od 4096 (2^12) do (2^22) bajtów Wybór rozmiaru strony minimalizacja fragmentacji wewnętrznej - małe strony małe strony - wzrasta wielkość tablicy stron duże strony - minimalizacja czasu operacji we/wy małe strony - lepsza lokalizacja

71 Rozmiar strony (c.d.) Obserwuje się tendencję do wybierania większych stron Intel KB; Motorola od 256B do 32KB Wzrost szybkości procesorów i pojemności pamięci jest szybszy niż wzrost szybkości dysków Z punktu widzenia wydajności systemu braki stron są kosztowne Większy rozmiar strony = większa fragmentacja wewnętrzna

72 Przykładowe rozmiary stron Altlas b słów Honeywell-Multics b słów IBM 370/XA i 370/ESA 4kB VAX 512B IBM AS/ B DEC Alpha 8kB MIPS 4kB - 16MB UltraSPARC 8kB - 4MB Pentium 4kB - 4MB PowerPC 4kB

73 Współczynnik trafień dla TLB Współczynnik trafień dla TLB (ang. TLB reach) odnosi się do ilości pamięci dostępnej za pomocą TLB (tzn. liczby pozycji w TLB razy rozmiar strony) Najlepiej mieć zbiór roboczy w TLB Jak zwiększyć współczynnik trafień TLB? powiększyć rozmiar strony wiele rozmiarów stron (UltraSPARC - 8KB, 64KB, 512KB, 4MB) Konieczność obsługi TLB (musi zawierać rozmiar strony) przez system operacyjny w przypadku wielu rozmiarów stron

74 Odwrócona tablica stron Odwrócona tablica stron nie zawiera pełnych informacji o logicznej przestrzeni adresowej procesu potrzebnych przy stronicowaniu W stronicowaniu na żądanie wprowadza się zewnętrzną tablicę stron procesu (położenia stron wirtualnych) do której odwołanie następuje w przypadku braku strony Zewnętrzne tablice stron podlegają również stronicowaniu Zarządca pamięci wirtualnej może spowodować kolejny brak strony wprowadzając potrzebną zewnętrzną tablicę stron aby zlokalizować stronę wirtualną na dysku

75 Struktura programu Struktura programu zerowania tablicy int A[][] = new int[128][128]; Strona długości 128 słów System operacyjny alokuje mniej niż 128 ramek Program 1: for (int j = 0; j < A.length; j++ ) for (int i = 0; i < A.length; i++ ) A[i][ j] = 0; 128 x 128 braków stron (A w pamięci jest wierszami)

76 Struktura programu (c.d.) Struktura programu zerowania tablicy int A[][] = new int[128][128]; Strona długości 128 słów System operacyjny alokuje mniej niż 128 ramek Program 2: for (int i = 0; i < A.length; i++ ) for (int j = 0; j < A.length; j++ ) A[i][ j] = 0; 128 braków stron (A w pamięci jest wierszami)

77 We/wy a ramki Proces wysyła zamówienie na we/wy i ustawia się w kolejce do urządzenia we/wy Procesor zostaje przydzielony innym procesom Zaczynają występować braki stron W wyniku działania algorytmu globalnego zastępowania stron jeden z procesów zastępuje stronę zawierającą bufor we/wy procesu czekającego w kolejce we/wy Zamówienie na we/wy zaczyna być realizowane do ramki innego procesu

78 We/wy a ramki - diagram bufor przewijak taśmy

79 We/wy a ramki (c.d.) Zakaz wykonywania operacji we/wy wprost do pamięci użytkownika duże nakłady przy kopiowaniu Blokowanie stron w pamięci każda ramka ma bit blokowania stron zablokowanych nie wolno zastępować strona jest odblokowywana po zakończeniu operacji we/wy pula wolnych stron jest zbyt mała? proces próbuje zablokować zbyt wiele stron?

80 Segmentacja na żądanie Jeśli występuje niedostatek sprzętu do realizacji pamięci wirtualnej stosuje się segmentację na żądanie (ang. demand segmentation) OS/2 zamiast stronami przydziela pamięć segmentami opisanymi za pomocą deskryptorów segmentów (ang. segment descriptors) Deskryptor segmentu zawiera bit poprawności wskazujący dla każdego segmentu czy znajduje się on w danej chwili w pamięci Jeśli segment jest w pamięci głównej, kontynuacja W przeciwnym razie przerwanie brak segmentu

81 Konfigurowanie pamięci wirtualnej AIX - schedtune, vmtune FreeBSD - sysctl, /etc/sysctl.conf HP-UX - lotsfree, desfree, minfree wolna pamięć > lotsfree - wstrzymanie podkradania stron desfree < wolna pamięć < lotsfree - podkradanie stron minfree < wolna pamięć < desfree - likwidacja szamotania Linux - /proc/sys/vm Solaris - kstat kstat -m unix -n system_pages grep free True64 - sysconfig

82 Podsumowanie (1) Potrzeba wykonania procesów których logiczna przestrzeń adresowa jest większa niż dostępna fizyczna przestrzeń adresowa Można użyć nakładek ale jest to bardzo trudne Pamięć wirtualna umożliwia wykonywanie bardzo dużych procesów zwalniając jednocześnie programistę od kłopotów związanych z brakiem pamięci

83 Podsumowanie (2) Czyste stronicowanie na żądanie (ang. pure demand paging) polega na nie sprowadzaniu strony do pamięci dopóty, dopóki nie ma do niej odniesienia Potrzebne są algorytmy zastępownia stron w pamięci FIFO - anomalia Belady ego optymalne zastępowanie OPT - wymaga wiedzy o przyszłości Algorytm LRU przybliża OPT ale jest trudny w realizacji Większość algorytmów oparta o algorytm drugiej szansy

84 Podsumowanie (3) Polityka przydziału ramek uzupełnia algorytm zastępowania stron przydział stały lub dynamiczny Proces powinien mieć przydzieloną liczbę ramek wystarczającą dla bieżącego zbioru roboczego, w przeciwnym razie nastąpi szamotanie Rozważenia wymaga również: rozmiar strony blokowanie stron w pamięci (np. dla operacji we/wy)

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

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

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

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

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

Pamięć wirtualna. Pamięć wirtualna

Pamięć wirtualna. Pamięć wirtualna Pamięć wirtualna Pamięć wirtualna Podstawy. Stronicowanie na żądanie. Kopiowanie przy zapisie. Zastępowanie stron. Algorytmy zastępowania stron. Przydział ramek. Szamotanie (migotanie). Pliki odwzorowywane

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

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

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

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

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

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Programowanie na poziomie sprzętu. Tryb chroniony cz. 1 Tryb chroniony cz. 1 Moduł zarządzania pamięcią w trybie chronionym (z ang. PM - Protected Mode) procesorów IA-32 udostępnia: - segmentację, - stronicowanie. Segmentacja mechanizm umożliwiający odizolowanie

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

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ą 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

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

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

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

sprowadza się od razu kilka stron!

sprowadza się od razu kilka stron! Bazy danych Strona 1 Struktura fizyczna 29 stycznia 2010 10:29 Model fizyczny bazy danych jest oparty na pojęciu pliku i rekordu. Plikskłada się z rekordów w tym samym formacie. Format rekordujest listą

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

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

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

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/2012 2 / 22 ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH struktury procesorów ASK SP.06 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 Maszyny wirtualne 2 3 Literatura c Dr inż. Ignacy

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

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

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

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

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

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

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

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

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

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

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

System pamięci. Pamięć wirtualna

System pamięci. Pamięć wirtualna System pamięci Pamięć wirtualna Pamięć wirtualna Model pamięci cache+ram nie jest jeszcze realistyczny W rzeczywistych systemach działa wiele programów jednocześnie Każdy może używać tej samej przestrzeni

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 005 Plik wymiany Pamięć wirtualna 2 SO i SK/WIN Plik wymiany - rodzaj pamięci wirtualnej komputerów. Plik ten służy do tymczasowego przechowywania

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

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 2016/2017 Wykład nr 7 (11.01.2017) Rok akademicki 2016/2017, Wykład

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

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

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

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

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

Plan wykładu. Architektura systemów komputerowych. Strategie zapisu. Cezary Bolek Architektura systemów komputerowych Pamięć, c.d. Cezary Bolek Katedra Informatyki Plan wykładu Strategie zapisu Bufor zapisu Strategie wymiany bloków w pamięci Współczynniki trafień i chybień Wstrzymania

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

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

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

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

KOMPONENTY SYSTEMÓW OPERACYJNYCH

KOMPONENTY SYSTEMÓW OPERACYJNYCH KOMPONENTY SYSTEMÓW OPERACYJNYCH dr hab. inż. Krzysztof Patan, prof. PWSZ Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa w Głogowie k.patan@issi.uz.zgora.pl PRZYDZIAŁ CZASU PROCESORA Cel: Stałe

Bardziej szczegółowo

Architektura systemów informatycznych

Architektura systemów informatycznych Architektura systemów informatycznych Architektura i organizacja pamięci Literatura: Hyde R. 2005, Zrozumieć komputer, Profesjonalne programowanie Część 1, Helion, Gliwice Podstawowe elementy systemu komputerowego

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

Komunikacja za pomocą potoków. Tomasz Borzyszkowski Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania

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

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

Sprzętowe wspomaganie pamięci wirtualnej

Sprzętowe wspomaganie pamięci wirtualnej Sprzętowe wspomaganie pamięci wirtualnej Stanisław Skonieczny 6 grudnia 2002 Spis treści 1 Intel 2 1.1 Tryby pracy procesora............................... 2 1.2 Adresowanie liniowe................................

Bardziej szczegółowo

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i

Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i VI Seminarium PLOUG Warszawa Styczeñ 2003 Strojenie systemu Linux pod k¹tem serwera bazy danych Oracle 9i Marcin Przepiórowski Strojenie systemu Linux pod kątem serwera bazy danych Oracle 9i 7 1. Wstęp

Bardziej szczegółowo

Pamięć Wirtualna w Linuksie 2.4

Pamięć Wirtualna w Linuksie 2.4 Pamięć Wirtualna w Linuksie 2.4 Jarosław Bąbel 10 grudnia 2002 1 Spis treści 1 Segmentacja 3 2 Odwzorowanie wirtualnej przestrzeni adresowej procesu 3 3 Stronicowanie 4 3.1 Najważniejsze informacje związane

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

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

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

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski Układ sterowania, magistrale i organizacja pamięci Dariusz Chaberski Jednostka centralna szyna sygnałow sterowania sygnały sterujące układ sterowania sygnały stanu wewnętrzna szyna danych układ wykonawczy

Bardziej szczegółowo

Hierarchia pamięci w systemie komputerowym

Hierarchia pamięci w systemie komputerowym Hierarchia pamięci w systemie komputerowym Aby procesor mógł do końca wykorzystać swą wysoką częstotliwość taktowania musi mieć możliwość odpowiednio szybkiego pobierania danych do przetworzenia. Pamięć

Bardziej szczegółowo