SO wyklad cz3


Pamięć główna (operacyjna) (1)
Pamięć główna (operacyjna) (1)
Ze względu na centralną
rolę procesora w pracy
komputera, pamięć
główna, bezpośrednio
Rozkazy
Urządzenia
współpracująca z proce-
Systemy operacyjne
Systemy operacyjne wejścia/wyjścia
sorem, ma kluczowe Dane
cz. 3
cz. 3
znaczenie dla wydajności
sem. zimowy 2012/2013
sem. zimowy 2012/2013 całego systemu.
Jednostka
Musi ona w możliwie Pamięć sterująca
główna
(operacyjna)
najkrótszym czasie prze-
Andrzej Jędruch
Andrzej Jędruch Jednostka
arytm.  logiczna
kazywać do procesora
Procesor
żądane rozkazy i dane,
jak również zapisywać
dane przetworzone przez
procesor.
Pamięć główna (operacyjna) (2) Pamięć główna (operacyjna) (3)
Pamięć główna (operacyjna) (2) Pamięć główna (operacyjna) (3)
Pamięć główna (operacyjna) składa z dużej liczby
Poszczególne bajty (komórki) pamięci są
komórek (np. kilkadziesiąt milionów), a każda
ponumerowane od 0  numer komórki pamięci
komórka utworzona jest z pewnej liczby bitów.
nazywany jest jej adresem fizycznym.
Gdy komórkę pamięci tworzy 8 bitów, to
Zbiór wszystkich adresów fizycznych nazywa się
mówimy, że pamięć ma organizację bajtową 
fizyczną przestrzenią adresową.
taka organizacja jest typowa dla większości
W wielu współczesnych procesorach adresy
współczesnych komputerów.
fizyczne są 32-bitowe, co określa od razu
Poszczególne komórki mogą zawierać dane, na
maksymalny rozmiar zainstalowanej pamięci:
których wykonywane są obliczenia, jak również
232 = 4 294 967 296 bajtów (4 GB).
mogą zawierać rozkazy (instrukcje) dla procesora
Adresowanie
Adresowanie
Pamięci DRAM i SRAM (1)
Pamięci DRAM i SRAM (1)
pamięci
pamięci
We współczesnych komputerach instalowana jest
głównej
głównej
pamięć główna (operacyjna) wytwarzana w
(operacyjnej)
(operacyjnej)
technologii DRAM (ang. Dynamic Random Access
o rozmiarze
o rozmiarze Memory), w której każdy bit danych przechowy-
wany jest w oddzielnym kondensatorze.
4 GB
4 GB
Ten typ pamięci cechuje niski koszt, małe
rozmiary i niewielki pobór mocy, wymaga jednak
okresowego odświeżania ze względu na
rozpraszanie ładunków elektrycznych
gromadzonych w kondensatorach.
Nazwę Random Access Memory (RAM) tłumaczy
się jako pamięć o dostępie swobodnym, w której
czas odczytu nie zależy od położenia danej w
pamięci.
1
Pamięci DRAM i SRAM (2) Zasada lokalności
Pamięci DRAM i SRAM (2) Zasada lokalności
Obserwacje statystyczne wielu programów
Obok pamięci DRAM wytwarzane są też pamięci
wskazują, że w jednostce czasu (np. w ciągu 1
SRAM (ang. Static Random Access Memory),
ms) program odwołuje się tylko do stosunkowo
zbudowane z przerzutników.
niewielkiej liczby komórek pamięci, zawierających
Pamięci SRAM są szybsze, ale droższe, zajmują
rozkazy i dane  skłonność programów do
więcej miejsca i wydzielają więcej ciepła.
komunikacji z ograniczoną liczbą komórek
Z tych powodów pamięci SRAM używane są
pamięci znana jest jako zasada lokalności
wyłącznie do przechowywania najczęściej
częstość
używanych danych i rozkazów  stanowią
odwołań
podstawowy element pamięci podręcznych (ang.
cache memory).
Działanie pamięci podręcznej związane jest z
koncepcją zasady lokalności.
adres
pamięci
Hierarchia pamieci (1) Hierarchia pamieci (2)
Hierarchia pamieci (1) Hierarchia pamieci (2)
Istotną wadą pamięci DRAM jest zbyt długi czas Podane uwagi wskazują, że w komputerze
odczytu żądanych rozkazów lub danych w konieczne jest zainstalowanie kilku rodzajów
porównaniu z prędkością procesora  pamięci, o różnych własnościach, dostosowanych
wykorzystanie pełnej mocy obliczeniowej do pełnionych zadań.
procesora wymaga więc zainstalowania innej,
Klasyfikacja stosowanych typów pamięci
szybszej pamięci.
przedstawiana jest w formie diagramu.
Trzeba też brać pod uwagę właściwość, że pamięć
DRAM jest pamięcią ulotną, w której
zmagazynowane informacje są tracone po
wyłączeniu zasilania  niezbędne jest więc
zainstalowanie w komputerze pamięci zdolnej do
magazynowania danych także po wyłączeniu
zasilania.
Hierarchia pamieci (3) Zarządzanie pamięcią (1)
Hierarchia pamieci (3) Zarządzanie pamięcią (1)
rejestry Programy wykonywane przez procesor muszą się
Programy wykonywane przez procesor muszą się
Mniejsza,
L0 Rejestry procesora przechowuja
procesora
szybsza i
informacje uzyskane z pamieci L1
znajdować się w pamięci operacyjnej, która
znajdować się w pamięci operacyjnej, która
droższa pamięć
(on-chip) L1: podręczna
stanowi pamięć główną (operacyjną) komputera.
stanowi pamięć główną (operacyjną) komputera.
zintegrowana z
Pamięć L1 przechowuje
procesorem (SRAM)
informacje uzyskane z
Pamięć operacyjna jest tablicą, której rozmiar
Pamięć operacyjna jest tablicą, której rozmiar
pamięci L2
pamięć podręczna
(off-chip) L2: może sięgać kilkanaście miliardów bajtów (np. 8
może sięgać kilkanaście miliardów bajtów (np. 8
niezintegrowana z
Pamięć L2 przechowuje
procesorem (SRAM)
informacje uzyskane z
GB); każdy bajt ma własny adres.
GB); każdy bajt ma własny adres.
Większa,
pamięci głównej
L3:
wolniejsza pamięć główna (operacyjna)
Pamięć główna
i tańsza (DRAM) Pamięć operacyjna traci zawartość po wyłączeniu
Pamięć operacyjna traci zawartość po wyłączeniu
przechowuje
informacje uzyskane
zasilania (jest pamięcią ulotną).
pamięć masowa (ang. secondary zasilania (jest pamięcią ulotną).
L4:
z pamięci masowej
storage) (dyski lokalne)
L5:
pamięć masowa
(rozproszone systemy plików, serwery sieciowe)
Pamięć masowa przechowuje
informacje uzyskane z dysków
w serwerach sieciowych
2
Zarządzanie pamięcią (2) Zarządzanie pamięcią (3)
Zarządzanie pamięcią (2) Zarządzanie pamięcią (3)
Pamięć operacyjna jest za mała aby pomieścić Większość programów (w tym kompilatory,
Pamięć operacyjna jest za mała aby pomieścić Większość programów (w tym kompilatory,
wszystkie dane i programy, a zawarte w niej edytory, debuggery) do czasu załadowania do
wszystkie dane i programy, a zawarte w niej edytory, debuggery) do czasu załadowania do
dane giną po odcięciu zasilania. pamięci operacyjnej jest przechowywana na
dane giną po odcięciu zasilania. pamięci operacyjnej jest przechowywana na
dysku.
dysku.
Konieczne jest więc stosowanie pamięci
Konieczne jest więc stosowanie pamięci
pomocniczej, stanowiącej zaplecze dla pamięci Przetwarzanie danych zapisanych w pamięci
pomocniczej, stanowiącej zaplecze dla pamięci Przetwarzanie danych zapisanych w pamięci
operacyjnej  zadaniem pamięci pomocniczych pomocniczej wymaga uprzedniego przepisania ich
operacyjnej  zadaniem pamięci pomocniczych pomocniczej wymaga uprzedniego przepisania ich
jest trwałe przechowywanie wielkiej ilości danych do pamięci operacyjnej (za pomocą operacji
jest trwałe przechowywanie wielkiej ilości danych do pamięci operacyjnej (za pomocą operacji
wejścia-wyjścia),
wejścia-wyjścia),
Typowym urządzeniem pamięci pomocniczej jest
Typowym urządzeniem pamięci pomocniczej jest
dysk magnetyczny, jako środek magazynowania
dysk magnetyczny, jako środek magazynowania
danych i programów.
danych i programów.
Stosowanych jest wiele innych typów pamięci
Stosowanych jest wiele innych typów pamięci
pomocniczych (np. napędy CD/DVD, pen-drive y)
pomocniczych (np. napędy CD/DVD, pen-drive y)
Dyski twarde (1) Dyski twarde (2)
Dyski twarde (1) Dyski twarde (2)
We współczesnych komputerach powszechnego Ścieżki o tym samym promieniu na wszystkich
użytku dyski twarde pełnią dwie główne funkcje: powierzchniach tworzą cylinder.
" stanowią pamięć nieulotną, w której przechowywane są
programy i dane przez długie okresy (miesiące, lata);
" stanowią pamięć potrzebną do implementacji pamięci
wirtualnej.
Pojemności typowych dysków przekroczyły 1 TB.
Informacje na powierzchniach dysku zapisywane
są przez zespół ruchomych głowic w postaci
współśrodkowych okręgów zwanych ścieżkami 
w zależności od pojemności i konstrukcji dysku
liczba ścieżek wynosi od 5000 do 30000.
Zarządzanie pamięcią
Zarządzanie pamięcią
Dyski twarde (3)
Dyski twarde (3)
operacyjną (1)
operacyjną (1)
Rozpoczęcie przesyłania danych z dysku (lub na Warunkiem efektywnego wykorzystania systemu
Warunkiem efektywnego wykorzystania systemu
dysk) wymaga przesunięcia głowic komputerowego, a także skrócenia czasu
komputerowego, a także skrócenia czasu
zapisu/odczytu do odpowiedniego cylindra udzielania odpowiedzi użytkownikom jest
udzielania odpowiedzi użytkownikom jest
(zwykle 4 10 ms), a następnie oczekiwania aż stworzenie możliwości umieszczenia w pamięci
stworzenie możliwości umieszczenia w pamięci
potrzebna informacja będzie dostępna do operacyjnej kilku programów; można powiedzieć,
operacyjnej kilku programów; można powiedzieć,
zapisu/odczytu (zwykle 4 11 ms). że pamięć musi być dzielona między kilka
że pamięć musi być dzielona między kilka
procesów; wymaga to wprowadzenia
procesów; wymaga to wprowadzenia
Wynikający stąd czas oczekiwania zależy od
odpowiednich metod zarządzania pamięcią.
odpowiednich metod zarządzania pamięcią.
liczby obrotów dysku i innych parametrów
konstrukcyjnych, ale można przyjąć, że średnio
wynosi 10 ms.
Szybkość przesyłania danych zależy od
przyjętego standardu, ale można przyjąć wartość
25 MB/s jako typową.
3
Zarządzanie pamięcią Zarządzanie pamięcią
Zarządzanie pamięcią Zarządzanie pamięcią
operacyjną (2) operacyjną (3)
operacyjną (2) operacyjną (3)
Pamięć operacyjna stanowi jeden z zasobów Programy kierują do systemu operacyjnego
Pamięć operacyjna stanowi jeden z zasobów Programy kierują do systemu operacyjnego
systemu komputerowego i racjonalne żądania przydzielenia nowych obszarów pamięci,
systemu komputerowego i racjonalne żądania przydzielenia nowych obszarów pamięci,
gospodarowanie pamięcią jest warunkiem które po pewnym czasie, jeśli są już
gospodarowanie pamięcią jest warunkiem które po pewnym czasie, jeśli są już
efektywności systemu; udostępnianiem niepotrzebne, zwracane są do systemu.
efektywności systemu; udostępnianiem niepotrzebne, zwracane są do systemu.
(przydzielaniem) bloków pamięci poszczególnym
(przydzielaniem) bloków pamięci poszczególnym
Niekiedy programy żądają przydzielenia obszarów
Niekiedy programy żądają przydzielenia obszarów
programom zajmuje się system operacyjny.
programom zajmuje się system operacyjny.
większych niż cała zainstalowana pamięć główna
większych niż cała zainstalowana pamięć główna
W wielu przypadkach w trakcie tworzenia (operacyjna); ogólnie: programy wykazują
W wielu przypadkach w trakcie tworzenia (operacyjna); ogólnie: programy wykazują
programu nie można przewidzieć rozmiarów zmienne zapotrzebowanie na pamięć operacyjną;
programu nie można przewidzieć rozmiarów zmienne zapotrzebowanie na pamięć operacyjną;
danych, na których program będzie wykonywał
danych, na których program będzie wykonywał
System operacyjny powinien ewidencjonować
System operacyjny powinien ewidencjonować
działania  w takich przypadkach pamięć
działania  w takich przypadkach pamięć
aktualnie zajęte części pamięci wraz z informacją
aktualnie zajęte części pamięci wraz z informacją
potrzebna na dane powinna być przydzielana
potrzebna na dane powinna być przydzielana
w czyim są władaniu; system operacyjny
w czyim są władaniu; system operacyjny
dynamicznie przez system operacyjny w miarę
dynamicznie przez system operacyjny w miarę
powinien decydować, które procesy mają być
powinien decydować, które procesy mają być
żądań programu.
żądań programu.
załadowane do zwolnionych obszarów pamięci.
załadowane do zwolnionych obszarów pamięci.
Zarządzanie pamięcią Zarządzanie pamięcią
Zarządzanie pamięcią Zarządzanie pamięcią
operacyjną (4) operacyjną (5)
operacyjną (4) operacyjną (5)
System operacyjny powinien przydzielać i W dążeniu do jak najbardziej efektywnej pracy
System operacyjny powinien przydzielać i W dążeniu do jak najbardziej efektywnej pracy
zwalniać różne obszary pamięci stosownie do systemu komputerowego; opracowano i zbadano
zwalniać różne obszary pamięci stosownie do systemu komputerowego; opracowano i zbadano
potrzeb; aczkolwiek podstawową rolę pełni wiele różnych algorytmów zarządzania pamięcią.
potrzeb; aczkolwiek podstawową rolę pełni wiele różnych algorytmów zarządzania pamięcią.
pamięć operacyjna, to jednak pamięć pomocnicza
pamięć operacyjna, to jednak pamięć pomocnicza
jest często używana i musi działać wydajnie;
jest często używana i musi działać wydajnie;
system operacyjny musi zajmować się
system operacyjny musi zajmować się
planowaniem przydziału obszarów pamięci
planowaniem przydziału obszarów pamięci
dyskowej;
dyskowej;
Zarządzanie pamięcią jest szczególnie ważne w
Zarządzanie pamięcią jest szczególnie ważne w
systemach wielozadaniowych  system
systemach wielozadaniowych  system
operacyjny powinien odpowiednio dzielić
operacyjny powinien odpowiednio dzielić
dostępną pamięć między wykonywane programy.
dostępną pamięć między wykonywane programy.
Ochrona pamięci (1) Ochrona pamięci (2)
Ochrona pamięci (1) Ochrona pamięci (2)
W dobrze skonstruowanym systemie
W dobrze skonstruowanym systemie
komputerowym powinny istnieć mechanizmy
komputerowym powinny istnieć mechanizmy
zapewniające ochronę systemu operacyjnego
zapewniające ochronę systemu operacyjnego
Zadanie M
przed wpływami programów użytkowników, a
przed wpływami programów użytkowników, a
76700 4700 Rejestr graniczny
ponadto wzajemną ochronę programów
ponadto wzajemną ochronę programów
użytkowników.
użytkowników. Zadanie L
Prosty sposób realizacji takiej ochrony polega na
Prosty sposób realizacji takiej ochrony polega na
72000 72000 Rejestr bazowy
użyciu rejestru bazowego i granicznego: rejestr
użyciu rejestru bazowego i granicznego: rejestr
Zadanie K
bazowy przechowuje najmniejszy dopuszczalny
bazowy przechowuje najmniejszy dopuszczalny
adres fizyczny pamięci dla danego zadania
adres fizyczny pamięci dla danego zadania
56000
(programu), rejestr graniczny zawiera rozmiar
(programu), rejestr graniczny zawiera rozmiar
Adresy
obszaru pamięci.
obszaru pamięci.
pamięci
4
Ochrona pamięci (3) Fragmentacja pamięci (1)
Ochrona pamięci (3) Fragmentacja pamięci (1)
Każdy adres wygenerowany w programie jest Po uruchomieniu systemu cała pamięć jest
Każdy adres wygenerowany w programie jest Po uruchomieniu systemu cała pamięć jest
sprawdzany z zawartością ww. rejestrów  próba dostępna dla procesów użytkowych i jest
sprawdzany z zawartością ww. rejestrów  próba dostępna dla procesów użytkowych i jest
wyjścia poza obszar traktowana jest jako błąd traktowana jako jeden wielki blok pamięci 
wyjścia poza obszar traktowana jest jako błąd traktowana jako jeden wielki blok pamięci 
programu. dziura; gdy program lub system zgłasza
programu. dziura; gdy program lub system zgłasza
zapotrzebowanie na pamięć, to poszukiwana jest
zapotrzebowanie na pamięć, to poszukiwana jest
dziura, która nadaje się najlepiej do przydziału.
dziura, która nadaje się najlepiej do przydziału.
Najbardziej znane są następujące strategie
Najbardziej znane są następujące strategie
poszukiwania:
poszukiwania:
1. pierwsze dopasowanie,
1. pierwsze dopasowanie,
2. najlepsze dopasowanie,
2. najlepsze dopasowanie,
3. najgorsze dopasowanie;
3. najgorsze dopasowanie;
Fragmentacja pamięci (2) Fragmentacja pamięci (3)
Fragmentacja pamięci (2) Fragmentacja pamięci (3)
W wyniku wykonywania wielu operacji Czasami jeśli rozmiar dziury jest minimalnie
W wyniku wykonywania wielu operacji Czasami jeśli rozmiar dziury jest minimalnie
przydzielania i zwalniania obszarów pamięci większy od rozmiaru żądanego, to przydziela się
przydzielania i zwalniania obszarów pamięci większy od rozmiaru żądanego, to przydziela się
występuje fragmentacja, objawiająca się całą dziurę, aby uniknąć kłopotów związanych z
występuje fragmentacja, objawiająca się całą dziurę, aby uniknąć kłopotów związanych z
istnieniem dużej liczby małych niezajętych administrowaniem obszarami zawierającymi
istnieniem dużej liczby małych niezajętych administrowaniem obszarami zawierającymi
obszarów pamięci  przydzielanie większych kilkanaście bajtów  w rezultacie program
obszarów pamięci  przydzielanie większych kilkanaście bajtów  w rezultacie program
obszarów pamięci napotyka na trudności. otrzymuje większy obszar pamięć niż zamówiony,
obszarów pamięci napotyka na trudności. otrzymuje większy obszar pamięć niż zamówiony,
co oznacza że część pamięci pozostanie
co oznacza że część pamięci pozostanie
Fragmentacja zewnętrzna polega na tym, że
Fragmentacja zewnętrzna polega na tym, że
niewykorzystana  omawiane sytuacja nazywana
niewykorzystana  omawiane sytuacja nazywana
rozmiar znalezionej dziury jest większy od
rozmiar znalezionej dziury jest większy od
jest fragmentacją wewnętrzną.
jest fragmentacją wewnętrzną.
rozmiaru żądanego  po przydzieleniu pozostaje
rozmiaru żądanego  po przydzieleniu pozostaje
mały niezajęty obszar pamięci, który jest
mały niezajęty obszar pamięci, który jest
nieprzydatny dla innych programów.
nieprzydatny dla innych programów.
Fragmentacja pamięci (4) Pamięć fizyczna i wirtualna (1)
Fragmentacja pamięci (4) Pamięć fizyczna i wirtualna (1)
System operacyjny musi więc być zdolny do W trakcie wieloletniego rozwoju systemów
System operacyjny musi więc być zdolny do W trakcie wieloletniego rozwoju systemów
przesuwania bloków pamięci, tak by obszar komputerowych zaobserwowano szereg
przesuwania bloków pamięci, tak by obszar komputerowych zaobserwowano szereg
niezajęty tworzył zwarty blok  omawiany dalej rozmaitych trudności związanych z racjonalnym
niezajęty tworzył zwarty blok  omawiany dalej rozmaitych trudności związanych z racjonalnym
mechanizm stronicowania pozwala na tworzenie zarządzaniem pamięcią, zwłaszcza w systemach
mechanizm stronicowania pozwala na tworzenie zarządzaniem pamięcią, zwłaszcza w systemach
ciągłych obszarów pamięci bez konieczności wielozadaniowych.
ciągłych obszarów pamięci bez konieczności wielozadaniowych.
przepisywania zawartości pamięci.
przepisywania zawartości pamięci.
Często w pamięci operacyjnej dostępna była duża
Często w pamięci operacyjnej dostępna była duża
liczba niezajętych bloków, ale ich małe rozmiary
liczba niezajętych bloków, ale ich małe rozmiary
(np. kilkaset bajtów) uniemożliwiały efektywne
(np. kilkaset bajtów) uniemożliwiały efektywne
ich wykorzystanie w programach.
ich wykorzystanie w programach.
5
Pamięć fizyczna i wirtualna (2) Pamięć fizyczna i wirtualna (3)
Pamięć fizyczna i wirtualna (2) Pamięć fizyczna i wirtualna (3)
Scalenie niezajętych obszarów wymagałoby
Scalenie niezajętych obszarów wymagałoby
Kompilatory języków programowania (i
przesunięcia także obszarów zawierających
przesunięcia także obszarów zawierających
programiści) zakładają, że pamięć w komputerze
rozkazy i dane wykonywanych programów, co w
rozkazy i dane wykonywanych programów, co w
jest wystarczająco duża do pomieszczenia
wielu przypadkach było bardzo trudne do
wielu przypadkach było bardzo trudne do
programu i stanowi zwarty obszar. Całkowicie
realizacji (np. zmiana adresów rozkazów).
realizacji (np. zmiana adresów rozkazów).
ignoruje się przy tym sytuację w konkretnym
Ponieważ proces musi mieć przydzielona pamięć
Ponieważ proces musi mieć przydzielona pamięć
komputerze, a w szczególności aktualny rozmiar
ciągłą, konieczne jest wprowadzenie mechanizmu
ciągłą, konieczne jest wprowadzenie mechanizmu
niezajętej pamięci i jej fragmentację.
scalania logicznego pamięci poszatkowanej przez
scalania logicznego pamięci poszatkowanej przez
Ta idealizowana pamięć stanowi pamięć
fragmentację.
fragmentację.
wirtualną, w odróżnieniu od rzeczywiście
W rezultacie wieloletniego rozwoju architektury
istniejącej pamięci fizycznej.
procesorów i systemów operacyjnych wyłoniła się
koncepcja pamięci wirtualnej, będącej pewną
iluzją pamięci rzeczywistej (fizycznej).
Pamięć fizyczna i wirtualna (4) Pamięć fizyczna i wirtualna (5)
Pamięć fizyczna i wirtualna (4) Pamięć fizyczna i wirtualna (5)
Pamięć wirtualna stanowi duży, spójny obszar Innymi słowy pamięć operacyjna komputera w
pamięci komputera, w której bez trudu zmieści kształcie widzianym przez kompilator (lub
nawet duży program  rozmiar pamięci programistę) nosi nazwę pamięci wirtualnej, a
wirtualnej jest ograniczony przez rozmiar wolnej zbiór wszystkich możliwych adresów w pamięci
przestrzeni na dysku, jak również przez wirtualnej nosi nazwę wirtualnej przestrzeni
ograniczenia wynikające ze struktury instrukcji adresowej.
(rozkazów) procesora.
Zakłada się przy tym istnienie dużej, spójnej
Kompilatory języków programowania tworzą
pamięci operacyjnej komputera, ignorując
rozkazy programu, w których stosowane są
rzeczywiste rozmieszczenie niezajętych obszarów
adresy wirtualne.
pamięci w komputerze.
Transformacje adresów (1) Transformacje adresów (2)
Transformacje adresów (1) Transformacje adresów (2)
01E5C000
Pamięć wirtualna musi być jednak 01E5BFFF
a 01E5BFFE
urzeczywistniona za pomocą istniejącej pamięci
5A3D7004
01E5BFFD
fizycznej. Wymaga to skojarzenia poszczególnych
5A3D7003
01E5BFFC
5A3D7002 b
komórek pamięci wirtualnej z komórkami
5A3D7001
rzeczywiście istniejącej pamięci fizycznej.
Transformacja
5A3D7000
adresów
Występuje więc konieczność zamiany adresów
5A3D6FFF
5A3D6FFE a 01B34004
komórek pamięci wirtualnej na adresy komórek
5A3D6FFD 01B34003
pamięci fizycznej  zamiana ta nosi nazwę
5A3D6FFC b 01B34002
transformacji adresów.
5A3D6FFB 01B34001
Omawiany problem ilustruje przykład dwóch 01B34000
Adresy 01B33FFF
zmiennych  a i  b .
wirtualne
Adresy
fizyczne
6
Transformacje adresów (3) Transformacje adresów (4)
Transformacje adresów (3) Transformacje adresów (4)
Zmienne  a i  b w pamięci wirtualnej znajdują Transformacja taka mogłaby być realizowana za
Transformacja taka mogłaby być realizowana za
się w przylegających obszarach pamięci. W pomocą tablicy transformacji adresów, w której
pomocą tablicy transformacji adresów, w której
pamięci fizycznej, po transformacji adresów, adres logiczny stanowił by indeks wskazujący
adres logiczny stanowił by indeks wskazujący
mogą znajdować się w odległych obszarach element tablicy, w którym zapisany jest
element tablicy, w którym zapisany jest
pamięci. wymagany adres fizyczny.
wymagany adres fizyczny.
Konieczne jest więc wprowadzenie w komputerze
mechanizmu transformacji adresów, który
który
pozwalał by tłumaczyć adres wirtualny na
pozwalał by tłumaczyć adres wirtualny na
odpowiadający adres fizyczny.
odpowiadający adres fizyczny.
Jednopoziomowe tablice
Jednopoziomowe tablice
Transformacje adresów (5)
Transformacje adresów (5)
transformacji adresów (1)
transformacji adresów (1)
Pamięć fizyczną i wirtualną dzieli się na bloki
Pamięć fizyczną i wirtualną dzieli się na bloki
zwane stronami (typowy rozmiar 4 KB).
zwane stronami (typowy rozmiar 4 KB).
Każdy adres fizyczny wygenerowany przez
Każdy adres fizyczny wygenerowany przez
procesor dzieli się na dwie części:
procesor dzieli się na dwie części:
" numer strony (s),
" numer strony (s),
" odległość na stronie (o).
" odległość na stronie (o).
Numer strony jest indeksem do wyszukania
Numer strony jest indeksem do wyszukania
lokalizacji rzeczywistej strony w pamięci
lokalizacji rzeczywistej strony w pamięci
fizycznej.
fizycznej.
Jednopoziomowe tablice Dwupoziomowe tablice
Jednopoziomowe tablice Dwupoziomowe tablice
transformacji adresów (2) transformacji adresów (1)
transformacji adresów (2) transformacji adresów (1)
W współczesnych komputerach PC typowy
W współczesnych komputerach PC typowy
rozmiar pamięci wynosi 4 GB (obecnie coraz
rozmiar pamięci wynosi 4 GB (obecnie coraz
częściej spotyka się komputery wyposażone w
częściej spotyka się komputery wyposażone w
pamięć 8 GB lub większą).
pamięć 8 GB lub większą).
W przypadku 4-gigabajtowej przestrzeni
W przypadku 4-gigabajtowej przestrzeni
adresowej pokazana tablica transformacji
adresowej pokazana tablica transformacji
musiałaby zawierać 232 elementów, przy czym
musiałaby zawierać 232 elementów, przy czym
każdy element zawierał by 4 bajty.
każdy element zawierał by 4 bajty.
Pomijając rozmiar takiej tablicy należy także brać
Pomijając rozmiar takiej tablicy należy także brać
pod uwagę konieczność ciągłej aktualizacji tablicy
pod uwagę konieczność ciągłej aktualizacji tablicy
w zależności od wymagań stawianych przez
w zależności od wymagań stawianych przez
poszczególne programy (procesy).
poszczególne programy (procesy).
7
Dwupoziomowe tablice Dwupoziomowe tablice
Dwupoziomowe tablice Dwupoziomowe tablice
transformacji adresów (2) transformacji adresów (3)
transformacji adresów (2) transformacji adresów (3)
Z podanych przyczyn transformacja adresów Położenie konkretnej lokacji pamięci wewnątrz
Z podanych przyczyn transformacja adresów Położenie konkretnej lokacji pamięci wewnątrz
prowadzona jest w sposób uproszczony. strony określa młodsza, nietransformowana część
prowadzona jest w sposób uproszczony. strony określa młodsza, nietransformowana część
adresu wirtualnego.
adresu wirtualnego.
Zazwyczaj transformowany adres wirtualny dzieli
Zazwyczaj transformowany adres wirtualny dzieli
się na trzy (lub dwa) pola  pole zawierające W komputerach PC najczęściej stosuje się
się na trzy (lub dwa) pola  pole zawierające W komputerach PC najczęściej stosuje się
kilkanaście najmniej znaczących bitów adresu nie schemat transformacji, w którym 12 najmniej
kilkanaście najmniej znaczących bitów adresu nie schemat transformacji, w którym 12 najmniej
jest transformowane, natomiast pozostałe pola są znaczących bitów adresu wirtualnego nie jest
jest transformowane, natomiast pozostałe pola są znaczących bitów adresu wirtualnego nie jest
przekształcane za pomocą tablicy. przekształcane  zatem w tym przypadku strony
przekształcane za pomocą tablicy. przekształcane  zatem w tym przypadku strony
mają rozmiar 4096 bajtów (czyli 4 KB); dostępne
mają rozmiar 4096 bajtów (czyli 4 KB); dostępne
W takim ujęciu adres uzyskany po transformacji
W takim ujęciu adres uzyskany po transformacji
są też schematy transformacji, w których strony
są też schematy transformacji, w których strony
starszych bitów adresu wirtualnego wskazuje
starszych bitów adresu wirtualnego wskazuje
mają rozmiar 2 lub 4 MB.
mają rozmiar 2 lub 4 MB.
pewien obszar pamięci fizycznej, nazywany
pewien obszar pamięci fizycznej, nazywany
stroną.
stroną.
Dwupoziomowe tablice Dwupoziomowe tablice
Dwupoziomowe tablice Dwupoziomowe tablice
transformacji adresów (4) transformacji adresów (5)
transformacji adresów (4) transformacji adresów (5)
W takim ujęciu, w przypadku stron 4 KB, tablica Dla stron 4 KB wprowadzono dwupoziomową
W takim ujęciu, w przypadku stron 4 KB, tablica Dla stron 4 KB wprowadzono dwupoziomową
transformacji odwzorowuje 4-kilobajtowe bloki organizację tablic transformacji:
transformacji odwzorowuje 4-kilobajtowe bloki organizację tablic transformacji:
wirtualnej przestrzeni adresowej w 4-kilobajtowe
wirtualnej przestrzeni adresowej w 4-kilobajtowe
" poziom wyższy tworzy katalog tablic stron 
" poziom wyższy tworzy katalog tablic stron 
bloki fizycznej przestrzeni adresowej  zatem w
bloki fizycznej przestrzeni adresowej  zatem w
jest to tablica, która dzieli 4 GB liniową
jest to tablica, która dzieli 4 GB liniową
tablicy transformacji każda pozycja związana jest
tablicy transformacji każda pozycja związana jest
przestrzeń adresową na 1024 grupy stron;
przestrzeń adresową na 1024 grupy stron;
z jedną stroną 4 KB.
z jedną stroną 4 KB.
zatem tablica ma 1024 pozycje 32-bitowe;
zatem tablica ma 1024 pozycje 32-bitowe;
położenie katalogu tablic stron określa rejestr
położenie katalogu tablic stron określa rejestr
CR3;
CR3;
" poziom niższy tworzą tablice stron  mają
" poziom niższy tworzą tablice stron  mają
format identyczny z katalogiem stron (1024
format identyczny z katalogiem stron (1024
pozycje po 32 bity); tablica stron dzieli 4 MB
pozycje po 32 bity); tablica stron dzieli 4 MB
grupę stron na 1024 strony po 4 kB.
grupę stron na 1024 strony po 4 kB.
Dwupoziomowe tablice Dwupoziomowe tablice
Dwupoziomowe tablice Dwupoziomowe tablice
transformacji adresów (6) transformacji adresów (7)
transformacji adresów (6) transformacji adresów (7)
Rejestr CR3 zawiera adres fizyczny katalogu
Rejestr CR3 zawiera adres fizyczny katalogu
tablic stron.
tablic stron.
8
Tablica TLB (1) Tablica TLB (2)
Tablica TLB (1) Tablica TLB (2)
Transformacja adresu z użyciem tablicy Celowe jest więc rejestrowanie informacji o
Transformacja adresu z użyciem tablicy Celowe jest więc rejestrowanie informacji o
dwupoziomowej wymaga odczytywania ostatnio przeprowadzonych transformacjach
dwupoziomowej wymaga odczytywania ostatnio przeprowadzonych transformacjach
zawartości dwóch tablic, co przedłuża czas adresów i wykorzystywanie ich w trakcie dostępu
zawartości dwóch tablic, co przedłuża czas adresów i wykorzystywanie ich w trakcie dostępu
wykonywania rozkazu. do pamięci.
wykonywania rozkazu. do pamięci.
Zauważono, że programy mają skłonność do Informacje te gromadzone są w specjalnym
Zauważono, że programy mają skłonność do Informacje te gromadzone są w specjalnym
wykonywania działań na danych znajdujących się buforze wewnątrz procesora, znanym jako tablica
wykonywania działań na danych znajdujących się buforze wewnątrz procesora, znanym jako tablica
w sąsiedztwie (zasada lokalności), co oznacza TLB (ang. translation lookaside buffers).
w sąsiedztwie (zasada lokalności), co oznacza TLB (ang. translation lookaside buffers).
kolejne odwołania do pamięci mogą dotyczyć tej
kolejne odwołania do pamięci mogą dotyczyć tej
Badania symulacyjne pokazują, że 98%
Badania symulacyjne pokazują, że 98%
samej strony.
samej strony.
wszystkich dostępów do pamięci jest
wszystkich dostępów do pamięci jest
wspomaganych przez TLB.
wspomaganych przez TLB.
Realizacja pamięci wirtualnej za Realizacja pamięci wirtualnej za
Realizacja pamięci wirtualnej za Realizacja pamięci wirtualnej za
pomocą stronicowania (1) pomocą stronicowania (2)
pomocą stronicowania (1) pomocą stronicowania (2)
Omówione mechanizmy transformacji adresów W ten sposób wyłania się możliwość
Omówione mechanizmy transformacji adresów W ten sposób wyłania się możliwość
stanowią podstawę do implementacji pamięci jednoczesnego przechowywania w pamięci
stanowią podstawę do implementacji pamięci jednoczesnego przechowywania w pamięci
wirtualnej. wirtualnej wielu procesów, przy czym w pamięci
wirtualnej. wirtualnej wielu procesów, przy czym w pamięci
operacyjnej (fizycznej) znajdują się tylko
operacyjnej (fizycznej) znajdują się tylko
Mechanizmy te umożliwiają także wprowadzenie
Mechanizmy te umożliwiają także wprowadzenie
aktualnie używane fragmenty kodu i danych tych
aktualnie używane fragmenty kodu i danych tych
jeszcze bardziej efektywnej realizacji pamięci
jeszcze bardziej efektywnej realizacji pamięci
procesów.
procesów.
wirtualnej, w której tylko najczęściej używane
wirtualnej, w której tylko najczęściej używane
fragmenty procesu (programu) znajdują się w Pozostała część danych i kodu tych procesów
fragmenty procesu (programu) znajdują się w Pozostała część danych i kodu tych procesów
pamięci fizycznej, a pozostałe przechowywane są przechowywana jest na dysku i w miarę potrzeby
pamięci fizycznej, a pozostałe przechowywane są przechowywana jest na dysku i w miarę potrzeby
w pamięci dyskowej. kopiowana do pamięci operacyjnej.
w pamięci dyskowej. kopiowana do pamięci operacyjnej.
Innymi słowy chodzi tu o symulowanie dużej Podstawowym modułem pamięci w tych
Innymi słowy chodzi tu o symulowanie dużej Podstawowym modułem pamięci w tych
pamięci wirtualnej za pomocą stosunkowo mechanizmach jest strona o rozmiarze 4 KB.
pamięci wirtualnej za pomocą stosunkowo mechanizmach jest strona o rozmiarze 4 KB.
niedużej pamięci fizycznej i pamięci dyskowej.
niedużej pamięci fizycznej i pamięci dyskowej.
Realizacja pamięci wirtualnej za Realizacja pamięci wirtualnej za
Realizacja pamięci wirtualnej za Realizacja pamięci wirtualnej za
pomocą stronicowania (3) pomocą stronicowania (4)
pomocą stronicowania (3) pomocą stronicowania (4)
Jeśli strona, do której następuje odwołanie, Ponieważ stosowana jest transformacja adresów,
Jeśli strona, do której następuje odwołanie, Ponieważ stosowana jest transformacja adresów,
aktualnie nie znajduje się w pamięci operacyjnej, więc wymiana może dotyczyć jakiekolwiek strony
aktualnie nie znajduje się w pamięci operacyjnej, więc wymiana może dotyczyć jakiekolwiek strony
to generowany jest wyjątek (przerwanie), który w pamięci RAM (zwykle wybiera się stronę od
to generowany jest wyjątek (przerwanie), który w pamięci RAM (zwykle wybiera się stronę od
obsługiwany jest przez system operacyjny. dawna nieużywaną) położoną w dowolnym
obsługiwany jest przez system operacyjny. dawna nieużywaną) położoną w dowolnym
miejscu pamięci o adresie początkowym
miejscu pamięci o adresie początkowym
W powstałej sytuacji system operacyjny dokonuje
W powstałej sytuacji system operacyjny dokonuje
podzielnym przez 4096  dotychczasowa
podzielnym przez 4096  dotychczasowa
wymiany stron: inna, aktualnie nieużywana
wymiany stron: inna, aktualnie nieużywana
zawartość strony w pamięci fizycznej jest
zawartość strony w pamięci fizycznej jest
strona kopiowana jest na dysk, a na jej miejsce
strona kopiowana jest na dysk, a na jej miejsce
zapisywana na dysk, a na jej miejsce
zapisywana na dysk, a na jej miejsce
wprowadzana jest żądana strona.
wprowadzana jest żądana strona.
wprowadzana jest aktualnie potrzebna strona,
wprowadzana jest aktualnie potrzebna strona,
Wybór strony, która ma zostać usunięta z
Wybór strony, która ma zostać usunięta z
tymczasowo przechowywana na dysku.
tymczasowo przechowywana na dysku.
pamięci operacyjnej i zapisana na dysku może
pamięci operacyjnej i zapisana na dysku może
W systemie Windows strony zapisywane i
W systemie Windows strony zapisywane i
być zrealizowany za pomocą jednego z wielu
być zrealizowany za pomocą jednego z wielu
odczytywane z dysku gromadzone są w pliku
odczytywane z dysku gromadzone są w pliku
istniejących algorytmów zastępowania.
istniejących algorytmów zastępowania.
wymiany.
wymiany.
9
Realizacja pamięci wirtualnej za Polityka stronicowania na
Realizacja pamięci wirtualnej za Polityka stronicowania na
pomocą stronicowania (5) żądanie (1)
pomocą stronicowania (5) żądanie (1)
Stosowanie pamięci wirtualnej powoduje pewne Realizacja pamięci wirtualnej za pomocą
Stosowanie pamięci wirtualnej powoduje pewne Realizacja pamięci wirtualnej za pomocą
zmniejszenie prędkości wykonywania programu stronicowania ma liczne zalety, wśród których
zmniejszenie prędkości wykonywania programu stronicowania ma liczne zalety, wśród których
wskutek konieczności wymiany stron między można wymienić:
wskutek konieczności wymiany stron między można wymienić:
pamięcią operacyjną a pamięcią dyskową  im
pamięcią operacyjną a pamięcią dyskową  im
" poszczególne procesy mają dostęp wyłącznie do
" poszczególne procesy mają dostęp wyłącznie do
mniejsza jest zainstalowana pamięć RAM, tym swoich własnych obszarów pamięci  jakiekolwiek
mniejsza jest zainstalowana pamięć RAM, tym swoich własnych obszarów pamięci  jakiekolwiek
wymiana strona wykonywana częściej. odwołanie do pamięci przechodzi zawsze przez
wymiana strona wykonywana częściej. odwołanie do pamięci przechodzi zawsze przez
tablice transformacji adresów i jest kierowane do
tablice transformacji adresów i jest kierowane do
W szczególności możliwe jest wykonywanie
W szczególności możliwe jest wykonywanie
własnego obszaru pamięci procesu;
własnego obszaru pamięci procesu;
programu, który wymaga przydzielenia obszaru
programu, który wymaga przydzielenia obszaru
" zarządzanie pamięcią jest znacznie usprawnione,
" zarządzanie pamięcią jest znacznie usprawnione,
pamięci większego niż rozmiar pamięci fizycznej
pamięci większego niż rozmiar pamięci fizycznej
ponieważ system operacyjny nie musi
ponieważ system operacyjny nie musi
zainstalowanej w komputerze.
zainstalowanej w komputerze.
przeprowadzać scalania małych, niezajętych
przeprowadzać scalania małych, niezajętych
obszarów pamięci; zwarty obszar pamięci
obszarów pamięci; zwarty obszar pamięci
wirtualnej może być ulokowany w postaci wielu
wirtualnej może być ulokowany w postaci wielu
stron rozproszonych w całej pamięci RAM.
stron rozproszonych w całej pamięci RAM.
Polityka stronicowania na Polityka stronicowania na
Polityka stronicowania na Polityka stronicowania na
żądanie (2) żądanie (3)
żądanie (2) żądanie (3)
Efektywna realizacja stronicowania wymaga Przyjmuje się, że programy przed ich
Efektywna realizacja stronicowania wymaga Przyjmuje się, że programy przed ich
wprowadzenia pewnych reguł postępowania w wykonaniem rezydują w pamięci dyskowej.
wprowadzenia pewnych reguł postępowania w wykonaniem rezydują w pamięci dyskowej.
sytuacjach konfliktowych.
sytuacjach konfliktowych.
W momencie uruchomienia wprowadza się kod
W momencie uruchomienia wprowadza się kod
Stronicowanie na żądanie jest typowym programu do pamięci operacyjnej, ale nie cały!
Stronicowanie na żądanie jest typowym programu do pamięci operacyjnej, ale nie cały!
sposobem implementacji pamięci wirtualnej 
sposobem implementacji pamięci wirtualnej 
Do pamięci wprowadza się tyle stron (na
Do pamięci wprowadza się tyle stron (na
kopiowanie strony do pamięci operacyjnej
kopiowanie strony do pamięci operacyjnej
podstawie przewidywań), ile będzie to niezbędne
podstawie przewidywań), ile będzie to niezbędne
następuje tylko wtedy, gdy jest ona potrzebna.
następuje tylko wtedy, gdy jest ona potrzebna.
do pracy procesu do chwili ponownego wysłania
do pracy procesu do chwili ponownego wysłania
Innymi słowy, nie dokonuje się zmiany strony tak procesu na dysk.
Innymi słowy, nie dokonuje się zmiany strony tak procesu na dysk.
długo, jak nie jest to potrzebne (metoda  leniwa
długo, jak nie jest to potrzebne (metoda  leniwa
W szczególności wywołanie dużego programu
W szczególności wywołanie dużego programu
- ang. lazy swapper).
- ang. lazy swapper).
może wymagać sprowadzenia jedynie niewielkiej
może wymagać sprowadzenia jedynie niewielkiej
części jego kodu i danych.
części jego kodu i danych.
Polityka stronicowania na Algorytmy zastępowania
Polityka stronicowania na Algorytmy zastępowania
żądanie (4) stron (1)
żądanie (4) stron (1)
Zaleta  unikamy wprowadzania do pamięci tych W sytuacji, gdy konieczne jest załadowanie z
Zaleta  unikamy wprowadzania do pamięci tych W sytuacji, gdy konieczne jest załadowanie z
stron, które z dużym prawdopodobieństwem nie dysku do pamięci operacyjnej aktualnie
stron, które z dużym prawdopodobieństwem nie dysku do pamięci operacyjnej aktualnie
będą użyte. Skraca to czas wymiany i zmniejsza potrzebnej strony, a w pamięci operacyjnej nie
będą użyte. Skraca to czas wymiany i zmniejsza potrzebnej strony, a w pamięci operacyjnej nie
zapotrzebowanie na pamięć. ma wolnych bloków o rozmiarze 4 kB, trzeba
zapotrzebowanie na pamięć. ma wolnych bloków o rozmiarze 4 kB, trzeba
wybrać stronę ( ofiarę ) przeznaczoną do
wybrać stronę ( ofiarę ) przeznaczoną do
usunięcia i skopiowania na dysku.
usunięcia i skopiowania na dysku.
W intuicyjnym podejściu powinna to być strona
W intuicyjnym podejściu powinna to być strona
możliwie jak najrzadziej używana, choć wybór
możliwie jak najrzadziej używana, choć wybór
takiej strony może być trudny.
takiej strony może być trudny.
W tej sytuacji można wykorzystać jeden z
W tej sytuacji można wykorzystać jeden z
omawianych dalej algorytmów.
omawianych dalej algorytmów.
10
Algorytmy zastępowania Algorytmy zastępowania
Algorytmy zastępowania Algorytmy zastępowania
stron (2) stron (3)
stron (2) stron (3)
Algorytm First-In-First-Out (FIFO)  przy tym Algorytm Least Recently Used (LRU)  przy
Algorytm First-In-First-Out (FIFO)  przy tym Algorytm Least Recently Used (LRU)  przy
algorytmie usuwana jest strona, która najdłużej tym algorytmie usuwana jest strona, która nie
algorytmie usuwana jest strona, która najdłużej tym algorytmie usuwana jest strona, która nie
przebywa w pamięci operacyjnej. była używana przez najdłuższy okres.
przebywa w pamięci operacyjnej. była używana przez najdłuższy okres.
Przy stosowaniu tego algorytmu tworzy się Algorytm LRU można zaimplementować za
Przy stosowaniu tego algorytmu tworzy się Algorytm LRU można zaimplementować za
kolejkę FIFO. Strony sprowadzane do pamięci pomocą znaczników czasu (ang. time-stamps).
kolejkę FIFO. Strony sprowadzane do pamięci pomocą znaczników czasu (ang. time-stamps).
zapisywane są na końcu kolejki, a strony do Każda strona ma wówczas specjalne pole
zapisywane są na końcu kolejki, a strony do Każda strona ma wówczas specjalne pole
usunięcia z pamięci ( ofiary ) są brane z znacznika. Gdy jakiś proces odwołuje się do
usunięcia z pamięci ( ofiary ) są brane z znacznika. Gdy jakiś proces odwołuje się do
początku kolejki. strony, do tego licznika kopiuje się stan zegara
początku kolejki. strony, do tego licznika kopiuje się stan zegara
systemowego. Gdy trzeba wybrać stronę do
systemowego. Gdy trzeba wybrać stronę do
Algorytm ten w ogóle nie bierze pod uwagę
Algorytm ten w ogóle nie bierze pod uwagę
usunięcia, szuka się strony z najmniejszą
usunięcia, szuka się strony z najmniejszą
właściwości obsługiwanych procesów  zaletą
właściwości obsługiwanych procesów  zaletą
wartością znacznika.
wartością znacznika.
jest prostota jego implementacji.
jest prostota jego implementacji.
Ustawianie znacznika strony powinno odbywać
Ustawianie znacznika strony powinno odbywać
się sprzętowo, inaczej jest nieefektywne.
się sprzętowo, inaczej jest nieefektywne.
Algorytmy zastępowania Algorytmy zastępowania
Algorytmy zastępowania Algorytmy zastępowania
stron (4) stron (5)
stron (4) stron (5)
Algorytm drugiej szansy  algorytm stanowi Jeśli konieczne jest usunięcie strony z pamięci
Algorytm drugiej szansy  algorytm stanowi Jeśli konieczne jest usunięcie strony z pamięci
odmianę algorytmu FIFO. Gdy strona jest operacyjnej, to stronę tę bierzemy z początku
odmianę algorytmu FIFO. Gdy strona jest operacyjnej, to stronę tę bierzemy z początku
kopiowana z dysku do pamięci, to strona ta kolejki, ale:
kopiowana z dysku do pamięci, to strona ta kolejki, ale:
rejestrowana jest na końcu kolejki FIFO.
rejestrowana jest na końcu kolejki FIFO.
jeśli bit odwołania tej strony jest ustawiony na 1,
jeśli bit odwołania tej strony jest ustawiony na 1,
Jednocześnie bit odwołania związany z tą stroną
Jednocześnie bit odwołania związany z tą stroną
to następuje wyzerowanie tego bitu i dopisanie
to następuje wyzerowanie tego bitu i dopisanie
jest ustawiany na 1.
jest ustawiany na 1.
strony na koniec kolejki  na razie strona nie
strony na koniec kolejki  na razie strona nie
jest usuwana z pamięci, i jako kolejną  ofiarę
jest usuwana z pamięci, i jako kolejną  ofiarę
wybiera się stronę z początku kolejki;
wybiera się stronę z początku kolejki;
jeśli bit odwołania tej strony jest ustawiony na 0,
jeśli bit odwołania tej strony jest ustawiony na 0,
to strona jest usuwana z pamięci operacyjnej i
to strona jest usuwana z pamięci operacyjnej i
zapisywana na dysku.
zapisywana na dysku.
Algorytmy zastępowania Inne problemy
Algorytmy zastępowania Inne problemy
stron (6) stronicowania (1)
stron (6) stronicowania (1)
Istnieje wiele innych algorytmów zastępowania Przydział ramek (bloków pamięci, zwykle 4 kB)
Istnieje wiele innych algorytmów zastępowania Przydział ramek (bloków pamięci, zwykle 4 kB)
stron. W niektórych z nich występuje czasami między kilka procesów może być zrealizowany na
stron. W niektórych z nich występuje czasami między kilka procesów może być zrealizowany na
anomalia Belady'ego: niekorzystne zjawisko kilka sposobów.
anomalia Belady'ego: niekorzystne zjawisko kilka sposobów.
polegające na wzrastaniu współczynnika braków
polegające na wzrastaniu współczynnika braków
Przydział z minimalną liczbą ramek  okazało
Przydział z minimalną liczbą ramek  okazało
stron ze wzrostem wolnych obszarów pamięci.
stron ze wzrostem wolnych obszarów pamięci.
się, że im mniej przydzielonych stron (ramek),
się, że im mniej przydzielonych stron (ramek),
tym więcej braków stron. Stosuje się przydziały:
tym więcej braków stron. Stosuje się przydziały:
" każdemu po równo,
" każdemu po równo,
" przydział proporcjonalny,
" przydział proporcjonalny,
" przydział proporcjonalny z uwzględnieniem
" przydział proporcjonalny z uwzględnieniem
priorytetu.
priorytetu.
11
Inne problemy Realizacja pamięci wirtualnej za
Inne problemy Realizacja pamięci wirtualnej za
stronicowania (2) pomocą segmentacji (1)
stronicowania (2) pomocą segmentacji (1)
Szamotanie jest zjawiskiem polegające na tym, Istnieje też inny, technicznie łatwiejszy sposób
Szamotanie jest zjawiskiem polegające na tym, Istnieje też inny, technicznie łatwiejszy sposób
że proces spędza więcej czasu na stronicowaniu realizacji pamięci wirtualnej nazywany
że proces spędza więcej czasu na stronicowaniu realizacji pamięci wirtualnej nazywany
niż na wykonaniu kodu. segmentacją. Ogólnie, segmentacja to schemat
niż na wykonaniu kodu. segmentacją. Ogólnie, segmentacja to schemat
zarządzania pamięcią urzeczywistniający sposób
zarządzania pamięcią urzeczywistniający sposób
Sytuacja taka występuje wtedy, kiedy proces ma
Sytuacja taka występuje wtedy, kiedy proces ma
widzenia pamięci przez programistę.
widzenia pamięci przez programistę.
zbyt mało ramek do sprawnej realizacji. Zwykle
zbyt mało ramek do sprawnej realizacji. Zwykle
przyczyną szamotania jest zbyt duży stopień Wiele kompilatorów wytwarza odrębne segmenty
przyczyną szamotania jest zbyt duży stopień Wiele kompilatorów wytwarza odrębne segmenty
wieloprogramowości. dla zmiennych globalnych, stosu lokalnego, kodu
wieloprogramowości. dla zmiennych globalnych, stosu lokalnego, kodu
programu (może być ich wiele) i danych oraz
programu (może być ich wiele) i danych oraz
zmiennych lokalnych. Każdy z tych segmentów
zmiennych lokalnych. Każdy z tych segmentów
może być przechowywany na dysku i w miarę
może być przechowywany na dysku i w miarę
potrzeby kopiowany do pamięci operacyjnej.
potrzeby kopiowany do pamięci operacyjnej.
Realizacja pamięci wirtualnej za Zalety i wady pamięci
Realizacja pamięci wirtualnej za Zalety i wady pamięci
pomocą segmentacji (2) wirtualnej
pomocą segmentacji (2) wirtualnej
Rozmiary segmentów nie są jednakowe i Zalety:
Rozmiary segmentów nie są jednakowe i Zalety:
powstaje problem, który z aktualnie nie
powstaje problem, który z aktualnie nie
" można nie ograniczać wielkości kodu programu
" można nie ograniczać wielkości kodu programu
używanych segmentów odesłać na dysk.
używanych segmentów odesłać na dysk.
 uproszczenie programowania i likwidacja
 uproszczenie programowania i likwidacja
Zazwyczaj usuwany segment jest większy od
Zazwyczaj usuwany segment jest większy od
stosowania nakładek,
stosowania nakładek,
ładowanego, co prowadzi znowu do zjawisk
ładowanego, co prowadzi znowu do zjawisk
" rzadko używane fragmenty programu (np.
" rzadko używane fragmenty programu (np.
fragmentacji.
fragmentacji.
obsługi sytuacji wyjątkowych) można umieścić
obsługi sytuacji wyjątkowych) można umieścić
poza pamięcią operacyjną,
poza pamięcią operacyjną,
" można w umieścić w pamięci więcej
" można w umieścić w pamięci więcej
programów i będą one ładować się szybciej.
programów i będą one ładować się szybciej.
Wady:
Wady:
" trudna implementacja,
" trudna implementacja,
" może obniżyć wydajność systemu.
" może obniżyć wydajność systemu.
12


Wyszukiwarka

Podobne podstrony:
diagnoza wyklad cz3
GW Wyklad13 cz3
3 Formy org prawne wyklad cz3
Miernictwo Komentarz do wykładów cz3
podstawy relacyjnych?z?nych wyklad cz3 projektowanie
SO wyklad cz5
WYKŁAD St Opi cz3
wyklad krz cz3
GW Wyklad Budownictwo cz3
GW Wyklad06 TRANSP cz3
Wyklad06 wodyPowPolski cz3
Wykłady z analizy cz3
wyklad 6 nazwy cz3
Sieci komputerowe wyklady dr Furtak
Wykład 05 Opadanie i fluidyzacja

więcej podobnych podstron