Podręcznik użytkownika

 

“System wizualizacji działania pamięci hierarchicznej” prezentuje procesy, zachodzące podczas odwołania się procesora do pamięci komputera, takie jak:

·        sposób translacji adresu logicznego na fizyczny

·        sposób funkcjonowania pamięci podręcznej

·        zawartość podstawowych struktur danych, biorących udział w obsłudze tego odwołania

 

Wizualizacja ma postać kolejno wykonywanych kroków. Przy każdym z nich wyświetlana jest informacja o wykonywanych w nim działaniach.

W symulacji przyjęto, że pamięć operacyjna ma pojemność 512KB, a pamięć wirtualna 1MB.

Ze względu na fakt, że system wizualizuje procesy związane z odwołaniami procesora do pamięci, obsługiwane są tylko rozkazy typu MOV, dotyczące przesłań danych do rejestrów ogólnego przeznaczenia.

1.               Uruchamianie apletu oraz aplikacji

System działa jako aplet Java lub jako aplikacja Java. Do jego uruchomienia jest potrzebna (dla apletu) przeglądarka internetowa zawierająca moduł rozszerzający Java Plug-in dla Java w wersji 1.2.0 lub wyższej lub (dla aplikacji) środowisko Java w wersji 1.2.0 lub wyższej.

1.1.    Uruchamianie aplikacji w systemie Windows

W systemie Windows aplikację uruchamia się za pomocą pliku MemoVis.bat. W systemie operacyjnym powinna być zdefiniowana zmienna środowiskowa JAVA_HOME, wskazująca na katalog zawierający środowisko Java. Można również uruchomić aplikację z wiersza poleceń komendą:

%JAVA_HOME%/bin/java -classpath “MemoVis.jar” wizualizacja/Main

1.2.    Uruchamianie aplikacji w systemie Linux

W systemie Linux aplikację uruchamia się za pomocą skryptu MemoVis.sh. W systemie operacyjnym powinna być zdefiniowana zmienna środowiskowa JAVA_HOME, wskazująca na katalog zawierający środowisko Java. Można również uruchomić aplikację z wiersza poleceń komendą:

$JAVA_HOME/bin/java -classpath MemoVis.jar wizualizacja/Main

1.3.    Uruchamianie apletu

Należy otworzyć stronę MemoVis.html w przeglądarce internetowej spełniającej warunki opisane na początku tego rozdziału i na pytanie, czy chcemy zaufać uruchamianemu oprogramowaniu odpowiedzieć Yes.

2.               Ogólny opis okien wizualizacji

Interfejs użytkownika składa się z okna głównego oraz tabel, przedstawiających zawartość wybranych struktur danych. Poniżej znajduje się lista oraz krótki opis wyświetlanych okien:

·        okno główne –wizualizuje procesy zachodzące podczas odwoływania się procesora do pamięci, umożliwia wpisanie przez użytkownika rozkazu do wykonania i sterowanie przebiegiem wizualizacji. Zawiera główne menu systemu.

·        tabela pamięci operacyjnej (Operating Memory) – przedstawia zawartość pamięci operacyjnej

·        tabela pamięci podręcznej danych (Cache Memory) – wyświetla zawartość pamięci podręcznej danych

·        tabela tablicy stron (Page Table) – przedstawia zawartość tablicy stron

·        tabela rejestrów (Registers) – wyświetla zawartość wybranych rejestrów

3.                Szczegółowy opis okien wizualizacji

3.1.    Menu

Menu znajduje się na oknie głównym. Składa się z następujących elementów:

·        File – podmenu sterujące.

o       Exit -  umożliwia zamknięcie aplikacji lub apletu:

·        View – umożliwia zmianę systemu notacji liczb wyświetlanych w tabelach. Zawiera następujące elementy:

o       Binary – zmienia system notacji liczb na binarny

o       Decimaly – zmienia system notacji liczb na dziesiętny

o       Hexadecimaly – zmienia system notacji liczb na szesnastkowy

·        Algorithm – umożliwia zmianę algorytmu usuwania stron z pamięci operacyjnej oraz uruchomienie mechanizmów obliczania statystyk odwołań procesora do stron, wykorzystywanych przez te algorytmy. Zawiera następujące elementy:

o       LRU – zmienia algorytm usuwania stron z pamięci operacyjnej na LRU (Least Recently Used - wybór strony najdawniej używanej)

o       LFU – zmienia algorytm usuwania stron z pamięci operacyjnej na LFU (Least Freąuently Used – wybór strony najrzadziej używanej)

o       Count statistics – uruchamia mechanizmy obliczania statystyk odwołań procesora do stron dla powyższych algorytmów

·        Window – umożliwia włączanie oraz ukrywanie okien, zawierających tabele z zawartością wybranych struktur danych. Zawiera następujące elementy:

o       Registers – włącza/ukrywa okno tabeli rejestrów

o       Cache Memory – włącza/ukrywa okno tabeli pamięci podręcznej danych

o       Operating Memory – włącza/ukrywa okno tabeli pamięci operacyjnej

o       Page Table – włącza/ukrywa okno tabeli tablicy stron

·        Help – umożliwia wyświetlenie podstawowych informacji dotyczących systemu wizualizacji oraz podręcznik użytkownika. Zawiera następujące elementy:

o       About – wyświetla podstawowe informacje o systemie wizualizacji

o       Help – wyświetla podręcznik użytkownika

3.2.    Okno główne

Zawiera podstawowe elementy wizualizacji oraz menu (opisane powyżej).

 

Rysunek 21. Okno główne

 

Znajdują się na nim cztery panele:

·        panel rozkazu – wyświetla komunikaty prezentujące informacje na temat danego kroku wizualizacji, zawiera pole umożliwiające wpisanie rozkazu przez użytkownika oraz następujące przyciski sterujące:

o       Execute – rozpoczyna proces wizualizacji. Powoduje sprawdzenie poprawności wpisanego rozkazu. Jeżeli wpisany rozkaz jest poprawny, ukrywany jest przycisk Execute, a na jego miejscu pojawiają się przyciski sterowania przebiegiem wizualizacji (Play, Step, All) oraz wyłączana jest możliwość edycji pola treści rozkazu

o       Play – rozpoczyna wykonywanie kolejnych kroków wizualizacji z jednosekundowym odstępem czasu

o       Step – powoduje wykonanie jednego kroku wizualizacji

o       All – powoduje wykonanie wszystkich kroków wizualizacji w sposób natychmiastowy

 

Rysunek 21. Panel rozkazu przed rozpoczęciem procesu wizualizacji

 

Rysunek 21. Panel rozkazu w trakcie wizualizacji

 


·        panel segmentacji – przedstawia proces translacji adresu logicznego na adres liniowy (mechanizm segmentacji)

 

Rysunek 21. Panel segmentacji

 

·        panel stronicowania – przedstawia proces translacji adresu liniowego na adres fizyczny (mechanizm stronicowania)

 

Rysunek 21. Panel stronicowania

 


·        panel pamięci podręcznej danych – przedstawia sposób działania pamięci podręcznej danych

 

Rysunek 21. Panel pamięci podręcznej danych

 


3.3.    Tabela pamięci operacyjnej

Wyświetla zawartość pamięci operacyjnej. Każdy wiersz tabeli odpowiada jednej linii pamięci (32 bajty). Pierwsza kolumna zawiera informację o numerze strony oraz numerze linii każdego wiersza. Gdy wykonywane są działania na pamięci operacyjnej, w tabeli zaznaczane są odpowiednie linie.

 

Rysunek 21. Tabela pamięci operacyjnej

 

3.4.    Tabela pamięci podręcznej

Prezentuje zawartość pamięci podręcznej danych. Każdy wiersz tabeli odpowiada jednej linii pamięci (32 bajty). Pierwsza kolumna zawiera informację o numerze bloku (0, 1) oraz numerze linii wiersza. Druga kolumna przedstawia numer strony, zapisany w elemencie katalogu odpowiadającemu danej linii bloku. Gdy wykonywane są działania na pamięci podręcznej danych, w tabeli zaznaczane są odpowiednie linie.

 

Rysunek 21. Tabela pamięci podręcznej danych

 

3.5.    Tabela tablicy stron

Wyświetla zawartość tablicy stron. W symulacji pamięć wirtualna zajmuje 1MB (256*4kB, gdzie 4kB to rozmiar jednej strony) więc wymaga to tylko jednej tablicy stron (jedna tablica stron zawiera 1024 elementy, a wyświetlane jest z nich w tym wypadku jedynie 256). Tabela dla każdej strony pokazuje:

·        fizyczny numer strony

·        bit A (Accessed) automatycznie ustawiany przez procesor na 1, gdy następuje odwołanie do danej strony

·        bit P (Present) sygnalizujący obecność (1) lub nieobecność (0) strony w pamięci operacyjnej

·        wartość LRU wykorzystywaną w algorytmie usuwania stron z pamięci operacyjnej LRU. Pokazuje jak dawno dana strona była używana

·        wartość LFU wykorzystywaną w algorytmie usuwania stron z pamięci operacyjnej LFU. Pokazuje jak często dana strona była używana

 

Rysunek 21. Tabela tablicy stron

 


3.6.    Tabela rejestrów

Przedstawia zawartość wybranych rejestrów. Każdy wiersz odpowiada pojedynczemu rejestrowi. Pierwsza kolumna zawiera nazwy rejestrów, a druga ich wartości.

 

Rysunek 21. Tabela rejestrów

4.                Przykłady zastosowania

W symulacji możliwe są następujące sytuacje:

·        podany przez użytkownika rozkaz jest poprawny lub niepoprawny

·        strona z szukaną daną jest obecna lub nieobecna w pamięci operacyjnej

·        linia pamięci z szukaną daną jest obecna w pamięci podręcznej danych.

o       linia pamięci z szukaną daną jest zapisana w bloku 0 lub 1 pamięci podręcznej danych

·        linia pamięci z szukaną daną nie jest obecna w pamięci podręcznej danych.

o       linia pamięci z szukaną daną zostanie pobrana z pamięci operacyjnej i zapisana w bloku 0 lub 1 pamięci podręcznej danych


4.1.    Przykład 1

Jest to podstawowy przykład, opisujący działanie wizualizacji, w oparciu o wykonanie pojedynczego rozkazu. Główny nacisk w przykładzie jest położony na pokazaniu użytkownikowi prawidłowej obsługi. Warto zauważyć, że w każdym momencie działania systemu wizualizacji istnieje możliwość obejrzenia tabel pokazujących zawartość symulowanych pamięci oraz rejestrów, poprzez wybór elementów menu Window.

W przykładzie tym, po uruchomieniu systemu wizualizacji, należy wpisać rozkaz MOV AH, DS:15H w pole tekstowe, znajdujące się w prawym górnym rogu okna głównego (pole rozkazu).

 

Rysunek 6. Panel rozkazu.  Przycisk Execute

 

Następnie należy nacisnąć przycisk Execute, znajdujący się obok pola treści rozkazu. Spowoduje to ukrycie przycisku Execute i pojawienie się przycisków Play, Step oraz All.

Opis kolejnych kroków wizualizacji rozpoczyna się od wyjaśnienia działania opcji najwolniejszej Step, która wymaga ręcznego potwierdzenia każdego kroku (największe znaczenie edukacyjne). Następnie zostanie przedstawiona opcja automatyczna Play, w której użytkownik ma możliwość utrwalenia wiedzy o poznanych procesach (w opcji Step). Dzięki ostatniemu z przycisków All użytkownik ma możliwość sprawdzenia własnej znajomości procesów zachodzących podczas odwołania procesora do pamięci. (Uwaga: istnieje możliwość zrezygnowania z ciągłego korzystania z przycisku Step poprzez skorzystanie w dowolnym momencie z jednego z pozostałych dwóch przycisków).


Korzystanie z przycisku Step

 

Rysunek 7. Panel rozkazu. Przycisk Step

 

Najpierw jest pokazany mechanizm segmentacji, czyli translacja adresu logicznego na liniowy. Składa się on z następujących kroków:

·        wyświetlenie zawartości rejestru GDTR, zawierającego adres globalnej tablicy deskryptorów GDT oraz wskazanie początku tej tablicy

·        wyświetlenie zawartości rejestru LDTR, zawierającego numer deskryptora w tablicy GDT i pokazanie tego deskryptora

·        wyświetlenie zawartości wskazanego deskryptora w tablicy GDT, zawierającego adres lokalnej tablicy deskryptorów LDT oraz wskazanie początku tej tablicy

·        wyświetlenie zawartości rejestru segmentowego (podanego w rozkazie), który zawiera numer deskryptora w tablicy LDT

 

Rysunek 21. Panel segmentacji dla kroku wyświetlenia zawartości rejestru segmentowego

 

·        pokazanie zawartości deskryptora w tablicy LDT, zawierającego liniowy adres początku segmentu

·        wyświetlenie przesunięcia w obrębie segmentu, podanego przez użytkownika w rozkazie

·        zsumowanie wartości początku segmentu oraz przesunięcia w jego obrębie, w celu obliczenia adresu liniowego szukanej komórki pamięci, a następnie wyświetlenie go na ekranie

 

Rysunek 21. Panel segmentacji dla kroku zsumowania wartości początku segmentu oraz przesunięcia w jego obrębie

 

Następnie prezentowany jest mechanizm stronicowania, czyli translacji adresu liniowego na fizyczny. Składa się on z następujących kroków:

·        wyświetlenie adresu liniowego, uzyskanego w wyniku działania mechanizmu segmentacji

·        wyświetlenie zawartości rejestru CR3, zawierającego numer strony w pamięci operacyjnej przechowującej katalog tablic stron i wskazanie początku tej tablicy

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w katalogu tablic stron i wskazanie go w tej tablicy

·        wyświetlenie zawartości elementu katalogu tablic stron, zawierającego numer strony w pamięci operacyjnej przechowującej tablicę stron i wskazanie początku tej tablicy

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w tablicy stron i wskazanie go w tej tablicy

 

Rysunek 21. Panel stronicowania dla kroku wskazania elementu tablicy stron

 

·        wyświetlenie wartości bitu P elementu tablicy stron. W tym przypadku wynosi on 1, więc strona jest obecna w pamięci operacyjnej. Jednocześnie jest zaznaczana linia tabeli tablicy stron zawierająca element opisujący tą stronę (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, PageTable)

 

Rysunek 8 Tabela tablicy stron

 

·        wyświetlenie zawartości elementu tablicy stron, zawierającego numer strony w pamięci operacyjnej, w której znajduje się szukana komórka pamięci i  zapisanie tego numeru w odpowiadającej mu części adresu

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wpisanie go do odpowiedniej części adresu fizycznego na ekranie

 

Rysunek 21. Panel stronicowania dla kroku dla kroku wyznaczenia przesunięcia w obrębie strony

 

Następnie rozpoczyna się wizualizacja sposobu funkcjonowania pamięci podręcznej danych, składająca się z następujących kroków:

·        wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 0

·        wyświetlenie zawartości wskazanego elementu katalogu 0 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony

·        wartości są różne, więc następuje sprawdzenie, czy szukana dana nie znajduje się w bloku 1. Następuje wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 1


·        wyświetlenie zawartości wskazanego elementu katalogu 1 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony

 

Rysunek 21. Panel pamięci podręcznej danych dla kroku porównania zawartości elementu katalogu 1 z numerem strony zawartym w adresie fizycznym

 

Wartości elementu katalogu 1 i części adresu fizycznego, która zawiera numer strony są różne, więc szukana dana nie znajduje się w pamięci podręcznej. Należy pobrać linię pamięci, w której znajduje się szukana dana, z pamięci operacyjnej. Wizualizacja przechodzi z powrotem do obszaru przedstawiającego mechanizm stronicowania, prezentując następujące kroki:


·        wskazanie początku strony, zawierającej szukaną daną, na podstawie numeru strony zawartego we wskazany wcześniej elemencie tablicy stron

 

Rysunek 9. Panel stronicowania dla kroku wskazania początku strony, zawierającej szukaną daną

 

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wskazanie szukanej danej w wyświetlanej stronie. Jednocześnie jest zaznaczana linia tabeli pamięci operacyjnej, zawierająca linię pamięci, w której znajduje się szukana dana. Linia ta zostanie pobrana do pamięci podręcznej (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Operating Memory)

 

Rysunek 10. Tabela pamięci operacyjnej

 


Następnie na obszarze prezentującym sposób funkcjonowania pamięci podręcznej danych przedstawiane są następujące kroki:

·     wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wyświetlenie bitu LRU związanego z tą linią. Wynosi on 0, wskazując na fakt, że pobrana z pamięci operacyjnej linia powinna zostać zapisana w bloku 0

·     pokazanie zapisu w elemencie katalogu bloku 0 numeru strony pobranej z pamięci operacyjnej

·     pokazanie linii pamięci zapisywanej w bloku 0. Jednocześnie jest zaznaczana linia tabeli pamięci podręcznej, zawierająca linię pamięci, w której znajduje się szukana dana (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Cache Memory)

·        wyodrębnienie z adresu fizycznego tych jego części, które zawierają numer linii oraz numer dwusłowa i wskazanie na ich podstawie dwusłowa w bloku 0, zawierającego szukaną komórkę

·        wyświetlenie zawartości wskazanego dwusłowa na ekranie

 

Rysunek 21. Panel pamięci podręcznej danych dla kroku wyświetlenia zawartości wskazanego słowa

 

·        zapisania pobranej z pamięci wartości, do rejestru AH (EAX)

 

Rysunek 11. Tabela rejestrów dla kroku zapisania danej do rejestru

 


·        zakończenie wizualizacji

 

Rysunek 12. Okno główne wizualizacji

 

Korzystanie z przycisku Play

 

Rysunek 13. Panel rozkazu. Przycisk Play

 

Użytkownik, który skorzysta z przycisku Play zobaczy wszystkie kolejne kroki pokazywane w odstępach jednosekundowych.


Korzystanie z przycisku All

 

Rysunek 14. Panel rozkazu. Przycisk All

 

Użytkownik, który skorzysta z opcji All zobaczy jedynie końcowy efekt działania wizualizacji i będzie miał możliwość obejrzenia zawartości wszystkich.

4.2.    Przykład 2

Przykład ten przedstawia sytuację, w której wpisany rozkaz jest niepoprawny.

Po uruchomieniu systemu wizualizacji, należy wpisać niepoprawny, lub nieobsługiwany przez system wizualizacji, rozkaz (np.: MOV KD, DS:15H) w pole rozkazu.

 

Rysunek 15. Panel rozkazu dla niepoprawnej treści rozkazu

 

W wyniku naciśnięcia przycisku Execute zostanie wyświetlony komunikat, informujący o błędnej treści rozkazu (pierwszego argumentu).

 

Rysunek 16. Komunikat informujący o błędnej treści rozkazu

 

4.3.    Przykład 3

Przykład ten przedstawia sytuację, w której:

·        wpisany rozkaz jest poprawny

·        strona z szukaną daną nie jest obecna w pamięci operacyjnej

·        linia z szukaną daną nie jest zapisana w pamięci podręcznej danych

W przykładzie tym, po uruchomieniu systemu wizualizacji, należy wpisać rozkaz MOV CL, CS:3106H w pole rozkazu.

Rozpoczyna się wizualizacja. Najpierw jest pokazany mechanizm segmentacji, którego wizualizacja przebiega podobnie jak w przykładzie 1:

·        wyświetlenie zawartości rejestru GDTR, zawierającego adres globalnej tablicy deskryptorów GDT oraz wskazanie początku tej tablicy

·        wyświetlenie zawartości rejestru LDTR, zawierającego numer deskryptora w tablicy GDT i pokazanie tego deskryptora

·        wyświetlenie zawartości wskazanego deskryptora w tablicy GDT, zawierającego adres lokalnej tablicy deskryptorów LDT oraz wskazanie początku tej tablicy

·        wyświetlenie zawartości rejestru segmentowego (podanego w rozkazie), który zawiera numer deskryptora w tablicy LDT

·        pokazanie zawartości deskryptora w tablicy LDT, zawierającego liniowy adres początku segmentu

·        wyświetlenie przesunięcia w obrębie segmentu, podanego przez użytkownika w rozkazie

·        zsumowanie wartości początku segmentu oraz przesunięcia w jego obrębie, w celu obliczenia adresu liniowego szukanej komórki pamięci, a następnie wyświetlenie go na ekranie

 

Rysunek 21. Panel segmentacji

 

Następnie prezentowany jest mechanizm stronicowania. Warto zauważyć, że przebiega on inaczej niż w przykładzie 1 i składa się z następujących kroków:

·        wyświetlenie adresu liniowego, uzyskanego w wyniku działania mechanizmu segmentacji

·        wyświetlenie zawartości rejestru CR3, zawierającego numer strony w pamięci operacyjnej przechowującej katalog tablic stron i wskazanie początku tej tablicy

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w katalogu tablic stron i wskazanie go w tej tablicy

·        wyświetlenie zawartości elementu katalogu tablic stron, zawierającego numer strony w pamięci operacyjnej przechowującej tablicę stron i wskazanie początku tej tablicy

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera numer elementu w tablicy stron i wskazanie go w tej tablicy

·        wyświetlenie wartości bitu P elementu tablicy stron; w tym przypadku wynosi 0, więc strona nie jest obecna w pamięci operacyjnej. Zostaje uruchomiony, wybrany w menu Algorithm, algorytm usuwania stron z pamięci operacyjnej (LRU lub LFU), który znajduje zapisaną w pamięci operacyjnej stronę, która zgodnie z regułą danego algorytmu, ma najmniejsze prawdopodobieństw, że w najbliższym czasie będzie potrzebna. Wybrana strona zostaje usunięta z pamięci operacyjnej (jeśli był na niej wykonany zapis, to zostaje zapisana w pamięci masowej), a na jej miejsce sprowadzana jest z pamięci masowej potrzebna strona.

 

Rysunek 17. Panel stronicowania dla kroku sprawdzenia wartości bitu P elementu tablicy stron

 

Jednocześnie zaznaczane są elementy tabeli tablicy stron, opisujące stronę usuniętą (6H) z pamięci operacyjnej oraz stronę sprowadzoną (7H) na jej miejsce z pamięci masowej (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Page Table)

 

Rysunek 18. Tabela tablicy stron, z zaznaczonymi elementami opisującymi stronę usuniętą z pamięci operacyjnej i stronę sprowadzoną na jej miejsce z pamięci masowej

 

·        wyświetlenie zawartości elementu tablicy stron, zawierającego numer strony w pamięci operacyjnej, w której znajduje się szukana komórka pamięci i  zapisanie tego numeru w odpowiadającej mu części adresu

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wpisanie go do odpowiedniej części adresu fizycznego na ekranie

 

Rysunek 21. Panel stronicowania

 

Następnie rozpoczyna się wizualizacja sposobu funkcjonowania pamięci podręcznej danych, składająca się z następujących kroków:

·        wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 0

·        wyświetlenie zawartości wskazanego elementu katalogu 0 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony

·        wartości są różne, więc następuje sprawdzenie, czy szukana dana nie znajduje się w bloku 1. Następuje wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wskazanie elementu o tym numerze w katalogu bloku 1

·        wyświetlenie zawartości wskazanego elementu katalogu 1 i porównanie go z tą częścią adresu fizycznego, która zawiera numer strony

 

Rysunek 21. Panel pamięci podręcznej danych dla kroku porównania zawartości elementu katalogu 1 z numerem strony zawartym w adresie fizycznym

 

Wartości elementu katalogu 1 oraz części adresu fizycznego, która zawiera numer strony są różne, więc szukana dana nie znajduje się w pamięci podręcznej. Należy pobrać linię pamięci, w której znajduje się szukana dana, z pamięci operacyjnej. Wizualizacja przechodzi z powrotem do obszaru przedstawiającego mechanizm stronicowania, prezentując następujące kroki:

·        wskazanie początku strony, zawierającej szukaną daną, na podstawie numeru strony zawartego we wskazany wcześniej elemencie tablicy stron

·        wyodrębnienie z adresu liniowego tej jego części, która zawiera przesunięcie w obrębie strony i wskazanie szukanej danej w wyświetlanej stronie. Jednocześnie jest zaznaczana linia tabeli pamięci operacyjnej, zawierająca linię pamięci, w której znajduje się szukana dana. Linia ta zostanie pobrana do pamięci podręcznej

Następnie na obszarze prezentującym sposób funkcjonowania pamięci podręcznej danych przedstawiane są następujące kroki:

·     wyodrębnienie z adresu fizycznego tej jego części, która zawiera numer linii szukanej komórki pamięci i wyświetlenie bitu LRU związanego z tą linią. Wynosi on 0, wskazując na fakt, że pobrana z pamięci operacyjnej linia powinna zostać zapisana w bloku 0

·     pokazanie zapisu w elemencie katalogu bloku 0 numeru strony pobranej z pamięci operacyjnej

·     pokazanie linii pamięci zapisywanej w bloku 0. Jednocześnie jest zaznaczana linia tabeli pamięci podręcznej, zawierająca linię pamięci, w której znajduje się szukana dana (aby zobaczyć wspomnianą tabelę, należy wybrać w menu: Window, Cache Memory)

·        wyodrębnienie z adresu fizycznego tych jego części, które zawierają numer linii oraz numer dwusłowa i wskazanie na ich podstawie dwusłowa w bloku 0, zawierającego szukaną komórkę

 

Rysunek 19. Panel pamięci podręcznej dla kroku wskazywania dwusłowa zawierającego szukaną daną

 

·        wyświetlenie zawartości wskazanego dwusłowa na ekranie

·        zapisania pobranej z pamięci wartości, do rejestru CL (ECX)

 

Rysunek 20. Tabela rejestrów dla kroku zapisania danej do rejestru

·        zakończenie wizualizacji

 

Rysunek 21. Okno główne wizualizacji