Architektura systemu
Windows.
Zarządzanie pamięcią.
Paulina Pudo
V ET-I PiZ
Architektura systemu
operacyjnego Windows 95
Powłoka 32-bitowa
realizuje komunikację jądra
systemu z użytkownikiem i działającymi aplikacjami.
Obsługuje ona dane otrzymywane z klawiatury, myszki i
innych urządzeń wejściowych i odpowiednio na nie reaguje
za pomocą graficznego interfejsu użytkownika, który
obejmuje pulpit, ikony, okna, paski menu itd.
Kernel obsługuje podstawowe funkcje systemowe: usługi
plikowe, zarządzanie pamięcią operacyjną i procesami
(proces - aktywny program załadowany do pamięci
operacyjnej).
Register to centralna baza danych systemu Windows 95
zawierająca różnorodne informacje o jego konfiguracji.
Virtual Machine Manager odpowiada za uruchamianie
aplikacji i przydzielanie im obszarów pamięci.
Installable File System Manager zajmuje się obsługą
systemu plików na dyskach twardych i CD-ROM.
Configuration Manager wykrywa konfiguracje urządzeń
podłączanych do magistrali systemowej
Architektura 32-bitowa to w skrócie architektura systemu
przetwarzania danych komputera oparta na jednostkach
informacji wielkości 32 bitów. Oznacza to, że procesor
przetwarza dane w dokładnie takich porcjach. Jednak w
transferach zewnętrznych (np. do pamięci operacyjnej)
często wykorzystuje się szersze (64) lub węższe (16)
zakresy.
W odniesieniu do możliwości adresowania pamięci, 32 bity
określają ilość możliwych do zaadresowania komórek.
Istnieje 2
32
wariacji 32-bitowego adresu, czyli bezpośrednio
można adresować 4 294 967 296 komórek pamięci.
32 – bitowy model pamięci
w systemie Windows
Pamięć wirtualna i fizyczna
W Windows można rozróżnić dwa rodzaje pamięci: fizyczną i
wirtualną.
Określanie fizycznej pamięci komputera
Pamięć fizyczna jest pamięcią RAM zainstalowaną na komputerze.
Windows automatycznie wykrywa ją i konfiguruje odpowiednio
system.
Pamięć fizyczna w komputerze jest niezbędnym elementem
umożliwiającym działanie systemu oraz pozwalającym na
uruchamianie w nim aplikacji. Aby dowiedzieć się ile pamięci RAM
jest zainstalowanej w komputerze należy z menu Start wybrać
Ustawienia->Panel sterowania ->System.
Otworzy się okno dialogowe przedstawiające stan zasobów
komputera, pośród których jest informacja o ilości zainstalowanej
pamięci RAM.
Jeżeli wyświetlana wielkość pamięci nie zgada się z fizyczną
ilością pamięci PAM znajdującą się w komputerze, należy użyć
programu diagnostycznego.
Pamięć wirtualna lub pamięć wymiany
(można też się spotkać z nazwą „
swap
”).
Ta część pamięci to przestrzeń na dysku. System operacyjny
rezerwuje przestrzeń na dysku twardym dla „przestrzeni
wymiany danych”. System operacyjny może korzystać z
pamięci wirtualnej (lub przestrzeni wymiany danych), jeżeli
zabraknie mu pamięci fizycznej. Nazwa ta wzięła się z tego,
że system operacyjny pobiera dane z pamięci fizycznej, które
jego zdaniem przez jakąś chwilę nie będą używane i zapisuje
je w zarezerwowanej przestrzeni wymiany danych. Następnie
ładuje do pamięci fizycznej dane, które w danej chwili będą w
użyciu. Odczyt i zapis do pamięci wirtualnej nie odbywa się w
tak szybki sposób jak to ma miejsce z pamięcią fizyczną.
Dlatego też system operacyjny stara się przechowywać dane
(szczególnie te często używane) w pamięci fizycznej.
Całkowita ilość dostępnej pamięci to ilość pamięci
fizycznej i wirtualnej.
Pamięć wirtualna
Pamięć wirtualna oznacza oddzielenie pamięci fizycznej od
pamięci logicznej dostępnej użytkownikowi. U podstaw tej
idei leży obserwacja, że w każdej chwili tylko część pamięci
wykonywanego programu musi znajdować się w pamięci
operacyjnej komputera. Logiczna przestrzeń adresowa
może być, więc znacznie większa niż fizyczna. Adresy w
pamięci wirtualnej są odwzorowywane na adresy pamięci
fizycznej. Pamięć wirtualna umożliwia, więc współdzielenie
przestrzeni adresowej przez wiele procesów. Pozwala też
efektywniej tworzyć procesy.
Jeśli ta strona nie była modyfikowana od czasu ostatniego
ładowania z dysku, to zawartość bloku 1 i ramki 0 są takie same.
W przeciwnym wypadku tylko w ramce 0 jest aktualny stan
strony 0. Strona 4 nie jest natomiast odwzorowana w pamięci
operacyjnej. Jej zawartość znajduje się wyłącznie na dysku w
bloku nr r. Jeśli jakiś proces chciałby skorzystać ze strony 4 musi
być ona sprowadzona do pamięci operacyjnej, co wiąże się z
zarezerwowaniem dla niej jakiejś pustej ramki.
Na tym rysunku widać
przykładowy stan pamięci
wirtualnej systemu. Strona 0 w
pamięci logicznej jest
przyporządkowana
(odwzorowana w) ramce nr 0 w
pamięci fizycznej, która z kolei
odpowiada blokowi 1 w pamięci
dyskowej. Aktualny stan strony
nr 0 jest zapisany w ramce
0.
Pamięć stronicowana
(ang. paged memory)
Pamięć operacyjna fizycznie podzielona na jednakowej
długości obszary nazywane ramkami. Zawartość każdej z
ramek nosi nazwę strony. Adresowanie odbywa się za
pomocą tablicy stron (również przechowywanej na
stronach), której adres jest pamiętany w rejestrze bazowym
tablicy stron. Dzięki zmianom zawartości tego rejestru przy
przełączaniu kontekstu procesu możliwe jest wydzielenie
każdemu procesowi odrębnej przestrzeni adresowej i
uniemożliwienie dostępu do stron pamięci należących do
innych procesów.
Strony pamięci mogą albo rezydować w pamięci fizycznej,
albo być przechowywane w pamięci zewnętrznej (na
przykład na dysku twardym) aż do momentu, gdy będą
niezbędne do działania programu.
Stronicowanie na żądanie
Stronicowanie na żądanie jest najczęstszym sposobem
implementacji pamięci wirtualnej. W skrócie można go
określić jako sprowadzanie strony do pamięci operacyjnej
tylko wtedy, gdy jest ona potrzebna. Nazywa się to także
procedurą leniwej wymiany.
Takie rozwiązanie zmniejsza liczbę wykonywanych operacji
wejścia/wyjścia i zapotrzebowanie na pamięć operacyjną,
ponieważ nie sprowadza się niepotrzebnych stron
(pojedyncze wywołanie dużego wielofunkcyjnego programu
może wymagać sprowadzenia jedynie niewielkiej części
jego kodu). Dzięki temu zmniejsza się czas reakcji systemu.
Można też obsłużyć większą liczbę użytkowników.
Przykład stronicowania
Stronicowanie z dwoma poziomami tablic stron
Rysunek: Sprzęt stronicujący (źródło: Silberschatz, Galvin, Podstawy
systemów operacyjnych)
Plik ukryty
Na dysku twardym, używany przez system Windows do
przechowywania części plików programów i danych, które
są zbyt duże i nie mogą być umieszczone w całości w
pamięci. Plik stronicowania i pamięć fizyczna (lub pamięć
RAM) tworzą pamięć wirtualną. System Windows przenosi
dane z pliku stronicowania do pamięci zgodnie z potrzebami
oraz z pamięci do pliku stronicowania, aby zwolnić miejsce
dla nowych danych. Plik stronicowania jest również
nazywany plikiem wymiany
W Windows 95/98 plik wymiany nosi nazwę WIN386.SWP,
w Windows NT/XP jest to plik PAGEFILE.SYS, domyślnie
równy wielkości fizycznej pamięci operacyjnej plus 12 MB -
wielkość PAGEFILE.SYS można samodzielnie zmienić.
Plik wymiany określany jest przez trzy parametry:
lokalizacja - czyli fizyczne umiejscowienie pliku
rozmiar początkowy - określa ile MB system zarezerwuje
podczas startu dla pliku wymiany
rozmiar maksymalny - określa do jakiego rozmiaru może
urosnąć plik wymiany.
Aby dostać się do interesujących nas ustawień klikamy
kolejno:
Menu Start -> Panel Sterowania -> System -> zakładka
„Zaawansowane” -> okienko "Wydajność” -> Ustawienia ->
zakładka „Zaawansowane” -> Pamięć Wirtualna -> Zmień.
Jak to działa?
System Windows przed każdym startem systemu tworzy
plik wymiany od podstaw i szuka „ciągłej przestrzeni”, gdzie
mógłby go umiejscowić w całości. Jeżeli jej nie znajdzie
wówczas plik wymiany jest dzielony na kilka części. Dopóki
nie zmieniamy parametrów Swap’a nie ma ryzyka, że
zostanie podzielony na części. Zmieniając rozmiary pliku
wymiany pamiętaj, aby „Rozmiar początkowy” był
adekwatny do potrzeb twojego komputera. Jeśli dla
przykładu potrzebujesz 320MB a parametr początkowy
ustawiony masz na 280MB wówczas podczas korzystania z
aplikacji, kolejne fragmenty pliku wymiany zostaną
zapisane w różnych miejscach, co spowoduje, iż cały plik
będzie pofragmentowany. Sytuacja ta wpłynie dość
niekorzystnie na całą wydajność systemu, ponieważ
nadmiar danych będzie każdorazowo pofragmentowany, co
z kolei uniemożliwia nam bezpośrednią defragmentację
pagefile.sys.
Wielkość SWAP
Bardzo znanym schematem było trzymanie się dosyć
prostego i logicznego równania, gdzie początkowy rozmiar
pliku wymiany równał się ilość posiadanej fizycznie pamięci
RAM x 1,5, zaś rozmiar maksymalny pliku równał się ilość
posiadanej fizycznie pamięci RAM x 3.
Jest to dosyć duże uproszczenie, choć wciąż oficjalnie
popierane przez Microsoft.
Nie ma sensu powiększać Swap’a do zbyt dużych
rozmiarów, jeżeli nie grasz w wymagające gry lub nie
pracujesz przez wiele godzin z wymagającymi aplikacjami.
W normalnych zastosowaniach domowych nie ma co
próbować nawet wyłączać pliku wymiany. Chyba, że
posiadasz minimum 512 MB, a jedynymi aplikacjami, jakie
używasz są, przeglądarka internetowa, komunikator, edytor
tekstu, i gry typu pasjans.
Położenie SWAP a partycja systemu plików
Reasumując, polecam wszystkim by plik wymiany trzymali
na początku dysku systemowego, na specjalnie utworzonej
do tego partycji w systemie plików FAT
Plik wymiany staje się coraz większy wraz z upływem czasu
pracy w Windows. Możecie sami sprawdzać aktualną
wielkość tego pliku. W tym celu uruchomcie Eksploratora
Windows i odszukajcie na dysku plik win386.swp (Windows
95/98) lub pagefile.sys (Windows 2000/XP). Z reguły
znajduje się on w katalogu głównym na dysku C: lub
katalogu C:Windows.
Plik wymiany może przerazić swoją wielkością, w
komputerach z dużym dyskiem często przekracza on 1 GB.
Taki rozmiar pociąga za sobą pierwszy, niepożądany skutek
- jest on zapisany w wielu fragmentach, w różnych
miejscach twardego dysku (ulega fragmentacji). Wydłuża to
czas dostępu do informacji.
ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ -
PODSUMOWANIE
Rzadko zauważa się ją, gdy komputer działa
prawidłowo, ale pamięć stanowi klucz do poprawy
wydajności. 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ń".
Na tym etapie
poszukiwaną informację
znajdziemy w polu "Pamięć
zadeklarowana".
KONIEC