Pamięć wirtualna

Transkrypt

Pamięć wirtualna
Pamięć wirtualna
Wykład 4
Przygotował:
Ryszard Kijaka
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, streamery oraz pamięci
optyczne typu CD-ROM czy też DVD-ROM.
PP -pamięci półprzewodnikowych to
pamięci do zapisu i odczytu dynamiczne i
statyczne oraz pamięci typu ROM, a także
rejestry wewnątrz mikroprocesora.
Hierarchia pamięci w systemie komputerowym
pojemności
Czas
dostępu
Ceny /1 bit
Rejestry
mikroproceso
ra
PP
Pamięć
statyczna RAM
Kierunek
wzrostu
Kierunek
Kierunek
zmniejszania wzrostu
Pamięć dynamiczna
RAM
Pamięć typu ROM
Dyski twarde
PM
Stąd:
Jak widzimy, wzrost pojemności układów
pamiętających oraz zmniejszanie się ceny l bitu jest
(niestety) odwrotnie proporcjonalne do zmniejszania
się czasu dostępu, czyli do szybkości działania tych
układów.
PM po przeliczeniu są tańsze lecz wolniejsze.
PP są zaś dużo szybsze, szczególnie te statyczne
lecz trudne do spojenia – cena.
Stosujemy tu kompromis PM a DRAM czy
DRAM a SRAM.
Pamięć ROM w pokazanej hierarchii zachowuje się
nietypowo i została tu umieszczona głównie z
powodu jej czasu dostępu - shadow BIOS.
Zasada działania pamięci wirtualnej
- mechanizm pamięci wirtualnej pozwala traktować
programom pamięć masową jako przedłużenie
pamięci operacyjnej.
-pamięć masowa ma znacznie większą pojemność,
co pozwala na używanie w programie dłuższych
adresów
- z drugiej strony nie jest możliwe odczytywanie
pojedynczych instrukcji w trakcie wykonywania
programu z pamięci masowej, która jest dość wolna,
a co ważniejsze, jej urządzenia są urządzeniami o
dostępie blokowym
rozwiązanie
Pewna część informacji wykonywanego
programu załadowana jest do pamięci operacyjnej.
Pozostała część niemieszcząca się w niej jest
przechowywana w pamięci masowej.
Jeżeli w trakcie realizacji programu następuje
odwołanie do informacji znajdującej się na dysku, to
odpowiedni mechanizm powoduje wczytanie
brakującego bloku informacji do pamięci
operacyjnej, przesyłając inny blok do pamięci
masowej w celu zwolnienia miejsca.
mechanizm pamięci wirtualnej
1. Program żąda dostępu do określonej informacji, podając
adres wirtualny.
2. Sprawdzana jest obecność poszukiwanej informacji w
pamięci operacyjnej. Informacja o obecności konkretnych
bloków w pamięci operacyjnej przechowywana jest w
specjalnej tablicy.
3. W przypadku braku poszukiwanej informacji jest ona
wczytywana z dysku, a odpowiednie pozycje w tablicach
obsługujących pamięć wirtualną są modyfikowane.
4. Obliczany jest adres fizyczny miejsca przechowywania
informacji w pamięci operacyjnej, czyli dokonywana jest
translacja adresu wirtualnego na fizyczny. Translacji tej
dokonuje się także przy użyciu odpowiedniej tablicy.
5. Poszukiwana informacja jest dostępna dla procesora, co
zamyka cykl działania pamięci wirtualnej.
Tablica dyskryptorów
Translacja adresu wirtualnego na fizyczny oraz
sprawdzenie obecności poszukiwanej informacji są
realizowane za pomocą specjalnej tablicy
przechowywanej w pamięci operacyjnej, zwanej
tablicą deskryptorów.
Pamięć RAM w Windows XP
32-bitowa architektura naszych komputerów
pozwala zaadresować do 4 GB pamięci operacyjnej.
Niestety w rzeczywistości mają one znacznie mniej
pamięci RAM i co gorsze o wiele mniej niż
potrzebują. Brakująca pamięć RAM została zatem
rozszerzona o dodatkową przestrzeń na dysku
twardym, którą stanowi plik stronicowania lub jak
kto woli - plik wymiany.
Oba te elementy - pamięć RAM i plik stronicowania
(pagefile.sys) tworzą przestrzeń adresową
nazywaną właśnie pamięcią wirtualną.
W systemie Windows XP tylko jądro systemu operuje
bezpośrednio na pamięci RAM. Wszystkie inne
procesy i aplikacje korzystają w mniejszym lub
większym stopniu z pośrednictwa pamięci wirtualnej.
W pamięci RAM przechowywane są dane pozostające
aktualnie w użyciu. Jeśli w pamięci RAM nie ma już
miejsca, system przerzuca do pliku stronicowania
wszystko to, co w danej chwili nie jest konieczne.
Tworzy w ten sposób wolne miejsce dla danych
bieżących. Jeżeli jakaś aplikacja potrzebuje
informacji zawartej w pliku wymiany, jest ona z
powrotem przenoszona do obszaru pamięci RAM.
Pamięć RAM w Windows XP
Wyraźnym sygnałem sugerującym, że pamięci może być za mało
będzie natomiast wyraźne spowolnienie pracy systemu. Warto wtedy
zajrzeć do Menadżera zadań, który dostarczy niezbędnych informacji
o zasobach RAM i ich wykorzystaniu. Menadżera zadań możemy
uruchomić kombinacją klawiszy Ctrl+Alt+Delete. Można także kliknąć
prawym przyciskiem myszy w wolne miejsce na pasku zadań i wybrać
"Menadżer zadań".
Pamięć
RAM w
Windows
XP
Windows XP - optymalizacja
pamięci wirtualnej – RAM-
Koncepcja pamięci podręcznej (cache)
Koncepcja pamięci cache jest podobna do
koncepcji pamięci wirtualnej i wynika z własności
pamięci SRAM i DRAM.
Pamięci statyczne są szybsze od pamięci
dynamicznych, natomiast pobierają więcej energii i
są zdecydowanie droższe. Ponadto są układami o
niższym stopniu scalenia. Z tych powodów nie
jest możliwe zbudowanie całej pamięci operacyjnej z
pamięci statycznych.
Z drugiej strony, pamięci dynamiczne są zbyt
wolne dla szybkich, współczesnych procesorów i
wymagają przy dostępie stanów oczekiwania.
Architektura systemu z pamięcią
cache
We współczesnych systemach z
pamięcią cache występują dwa rodzaje
architektury:
Look-through
 Look-aside.
Architektura Look-through
mikroprocesor
cache
zarządca
magistral
PAO
zarządca
magistral
Architektura Look-through
W architekturze tej pamięć cache, połączona
magistralą lokalną z procesorem, oddziela go od
reszty systemu. W przypadku trafienia główna
magistrala systemu nie jest w ogóle używana, co
powoduje dodatkowe zwiększenie szybkości
działania systemu.
Żądanie dostępu do pamięci jest przekazywane
do pamięci głównej (PAO) tylko w wypadku
chybienia. Inicjowany jest wówczas cykl magistrali
głównej z koniecznymi stanami oczekiwania.
Architektura Look-aside
mikroprocesor
cache
zarządca
magistral
PAO
zarządca
magistral
W przypadku tej architektury procesor nie jest
odizolowany od reszty układów przez cache. Dostęp
do pamięci powoduje rozpoczęcie normalnego cyklu
magistrali. W przypadku trafienia cykl ten jest
zawieszany, a operacja jest wykonywana w pamięci
cache bez stanów oczekiwania. W przypadku
chybienia wykonywany jest normalny cykl magistrali
ze stanami oczekiwania.
Przy zastosowaniu architektury Look-aside, nawet w
przypadku trafienia, magistrala nie jest dostępna dla
innych zarządców magistral. Nie są też możliwe
równolegle operacje dla dwóch zarządców magistral.
Zaletami architektury Look-aside są natomiast:
prostsza konstrukcja, niższy koszt i nieco szybsza
realizacja operacji w przypadku chybienia
Elementy systemu pamięci cache
System pamięci cache składa się z trzech
elementów:
 banku danych pamięci cache (pamięć danych),
 katalogu pamięci cache (często nazywanego
TAG-RAM-em),
 sterownika pamięci cache.
W banku danych pamięci cache przechowywana
jest zapisywana i odczytywana informacja,
natomiast katalog pamięci cache służy do
szybkiego sprawdzania, czy poszukiwana
informacja znajduje się w pamięci danych cache.
Sposoby zapewniania zgodności
pamięci cache
Niezgodność zawartości pamięci cache z
zawartością pamięci głównej występuje w dwóch
przypadkach: nastąpił zapis do pamięci cache bez
zapisu do pamięci głównej lub nastąpił zapis do
pamięci głównej bez zapisu do pamięci cache.
Pierwsza sytuacja występuje w przypadku
trafienia przy zapisie.
Druga występuje na przykład w przypadku
transmisji DMA do pamięci głównej.
strategie utrzymania zgodności:
> Write-through,
> buforowane Write-through,
> Write-back.
Write-through
W strategii Write-through każdy zapis do
pamięci cache powoduje jednocześnie zapis do
pamięci głównej. Jest to rozwiązanie bardzo proste
i pewne, niestety powodujące zmniejszenie
szybkości działania systemu (każdy zapis trafia do
„wolnej„ pamięci głównej).
buforowane Write-through
Buforowane (lub inaczej opóźnione) Writethrough polega na zapisaniu informacji zarówno w
przypadku trafienia, jak i chybienia do bufora
sterownika cache, przy czym procesor widzi tę
operację jako dostęp do pamięci bez stanów
oczekiwania.
W rzeczywistości operacja zapisu do pamięci
głównej jest realizowana później.
Write-back
W przypadku strategii Write-back zawartos'ci
pamięci cache i pamięci głównej są uzgadniane
tylko w przypadku takiej potrzeby. Występuje ona,
gdy inny zarządca magistrali chce skorzystać z
komórki pamięci głównej, która zawiera nieaktualną
informację, lub gdy w pamięci cache wymieniana
jest linia zawierająca nową informację.
Budowa pamięci cache stosującej strategię
Write-back jest bardziej skomplikowana, gdyż jak
wynika z podanego opisu, należy śledzić operacje
magistrali w pamięci głównej dotyczące innych
zarządców magistrali.
Drugi przypadek, w którym może dojść do
niezgodności pamięci głównej i pamięci cache,
występuje, gdy inny (niż procesor główny)
zarządca magistrali dokonuje zapisu do pamięci.
Najczęściej używaną metodą utrzymania
zgodności w takim przypadku jest
śledzenie przez sterownik cache operacji
magistrali (ang. bus snooping).
Przykład organizacji pamięci cache
cd.
Procesory