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