Pamięć wirtualna to obszar dodatkowej przestrzeni pamięci systemu komputerowego (takiej jak dysk twardy lub dysk półprzewodnikowy), który działa tak, jakby był częścią pamięci RAM lub pamięci podstawowej systemu.
idealnie, dane potrzebne do uruchomienia aplikacji są przechowywane w pamięci RAM, gdzie mogą być szybko dostępne przez procesor. Ale gdy uruchamiane są duże aplikacje lub gdy wiele aplikacji działa jednocześnie, pamięć RAM systemu może się zapełnić.
aby obejść ten problem, niektóre dane przechowywane w pamięci RAM, które nie są aktywnie używane, można tymczasowo przenieść do pamięci wirtualnej (która fizycznie znajduje się na dysku twardym lub innym urządzeniu pamięci masowej). Zwalnia to przestrzeń w pamięci RAM, która może być następnie wykorzystana do przechowywania danych, do których system musi uzyskać dostęp w najbliższym czasie.
wymieniając dane między pamięcią RAM a pamięcią wirtualną, gdy nie jest potrzebna, i z powrotem z pamięci wirtualnej na pamięć RAM, gdy jest potrzebna, system może nadal działać płynnie z dużo mniejszą fizyczną pamięcią RAM, niż w przeciwnym razie wymagałby.
Pamięć wirtualna umożliwia systemowi uruchamianie większych aplikacji lub uruchamianie większej liczby aplikacji w tym samym czasie bez wyczerpania pamięci RAM. W szczególności system może działać tak, jakby jego całkowite zasoby pamięci RAM były równe ilości fizycznej pamięci RAM plus ilość wirtualnej pamięci RAM.
Dlaczego potrzebna jest pamięć wirtualna?
Pamięć wirtualna została opracowana, gdy fizyczna PAMIĘĆ RAM była bardzo droga, a pamięć RAM jest nadal droższa na gigabajt niż Nośniki pamięci masowej, takie jak dyski twarde i dyski półprzewodnikowe. Z tego powodu znacznie mniej kosztowne jest użycie kombinacji fizycznej pamięci RAM i pamięci wirtualnej niż wyposażenie systemu komputerowego w więcej pamięci RAM.
ponieważ korzystanie z pamięci wirtualnej (lub zwiększenie pamięci wirtualnej) nie wiąże się z dodatkowymi kosztami finansowymi (ponieważ wykorzystuje istniejącą przestrzeń dyskową), umożliwia komputerowi wykorzystanie większej ilości pamięci niż jest fizycznie dostępna w systemie.
innym kluczowym sterownikiem korzystania z pamięci wirtualnej jest to, że wszystkie systemy komputerowe mają limit (podyktowany przez sprzęt i oprogramowanie) na ilość fizycznej pamięci RAM, która może być zainstalowana. Korzystanie z pamięci wirtualnej pozwala systemowi nadal działać poza fizycznymi limitami pamięci RAM.
Pamięć wirtualna vs.pamięć fizyczna
ponieważ pamięć RAM jest droższa niż pamięć wirtualna, wydaje się – wszystko jest równe – że komputery powinny być wyposażone w jak najmniej pamięci RAM i jak najwięcej pamięci wirtualnej.
ale w rzeczywistości cechy pamięci wirtualnej są inne niż właściwości pamięci fizycznej. Kluczową różnicą między pamięcią wirtualną a pamięcią fizyczną jest to, że pamięć RAM jest znacznie szybsza niż pamięć wirtualna.
tak więc system z 2 GB fizycznej pamięci RAM i 2 GB pamięci wirtualnej nie będzie oferował takiej samej wydajności jak podobny system z 4 GB fizycznej pamięci RAM. Aby zrozumieć, dlaczego, konieczne jest zrozumienie, jak działa pamięć wirtualna.
Jak Działa Pamięć Wirtualna?
gdy aplikacja (w tym system operacyjny) jest uruchomiona, przechowuje lokalizację wątków programu i innych danych pod adresem wirtualnym, podczas gdy dane są faktycznie przechowywane pod adresem fizycznym w pamięci RAM. Jeśli później to miejsce pamięci RAM jest pilniej potrzebne przez inny proces, dane mogą zostać zamienione z pamięci RAM na pamięć wirtualną.
odpowiedzialność za śledzenie wszystkich tych danych podczas ich wymiany między pamięcią fizyczną i wirtualną spada na Menedżera pamięci komputera. Menedżer pamięci utrzymuje tabelę, która mapuje wirtualne adresy używane przez system operacyjny i aplikacje na fizyczne adresy, w których dane są faktycznie przechowywane. Gdy dane są zamieniane między pamięcią RAM a pamięcią wirtualną, tabela jest aktualizowana tak, aby dany adres wirtualny zawsze wskazywał właściwą fizyczną lokalizację.
komputer może uruchamiać tylko wątki i manipulować danymi przechowywanymi w pamięci RAM, a nie w pamięci wirtualnej. Wymiana danych potrzebnych do pamięci RAM zajmuje znaczną ilość czasu. Wynika z tego, że korzystanie z pamięci wirtualnej wiąże się z uderzeniem wydajności.
Mówiąc Inaczej, system z 4 GB PAMIĘCI RAM ogólnie oferuje wyższą wydajność niż system z 2 GB PAMIĘCI RAM i 2 GB pamięci wirtualnej ze względu na hit wydajności spowodowany wymianą, i z tego powodu mówi się, że pamięć wirtualna jest wolniejsza niż RAM.
jednym z potencjalnych problemów z pamięcią wirtualną jest to, że jeśli ilość pamięci RAM jest zbyt mała w porównaniu z ilością pamięci wirtualnej, system może wydawać dużą część zasobów procesora wymieniając dane tam iz powrotem. Tymczasem wykonanie użytecznej pracy prawie się zatrzymuje – proces znany jako thrashing.
aby zapobiec awarii, zwykle konieczne jest zmniejszenie liczby aplikacji uruchamianych jednocześnie lub po prostu zwiększenie ilości pamięci RAM w systemie.
systemy operacyjne, takie jak większość wersji systemu Windows, generalnie zalecają, aby użytkownicy nie zwiększali pamięci wirtualnej ponad 1,5 razy więcej fizycznej pamięci RAM. Tak więc system z 4 GB PAMIĘCI RAM powinien mieć pamięć wirtualną nie większą niż 6 GB.
aby zminimalizować wpływ na wydajność spowodowany wymianą pamięci fizycznej i wirtualnej, najlepiej użyć najszybszego urządzenia pamięci masowej podłączonego do systemu do hostowania pamięci wirtualnej i zlokalizowania obszaru pamięci wirtualnej na własnej partycji.
Pamięć wirtualna może współpracować z pamięcią główną komputera, aby umożliwić szybsze i bardziej płynne operacje.
jak zwiększyć pamięć wirtualną w systemie
większość systemów operacyjnych pozwala użytkownikom na zwiększenie pamięci wirtualnej ze strony konfiguracji.
- w systemie Windows użytkownicy mogą również zezwolić systemowi na dynamiczne zarządzanie ilością dostarczanej pamięci wirtualnej.
- podobnie w systemie Mac OS użytkownicy mogą używać panelu Preferencje do przydzielania pamięci wirtualnej.
rodzaje pamięci wirtualnej: Paging i segmentacja
Pamięć wirtualna może być zarządzana na wiele różnych sposobów przez system operacyjny, a dwa najczęstsze podejścia to paging i segmentacja.
przywoływanie pamięci wirtualnej
w systemie, który używa stronicowania, PAMIĘĆ RAM jest podzielona na kilka bloków – Zwykle o rozmiarze 4k – zwanych stronami. Procesy są następnie przydzielane na tyle stron, aby spełnić ich wymagania dotyczące pamięci. Oznacza to, że zawsze będzie marnowana niewielka ilość pamięci, z wyjątkiem nietypowego przypadku, gdy proces wymaga dokładnie całej liczby stron.
podczas normalnego przebiegu operacji strony (tj. bloki pamięci o rozmiarze 4K) są zamieniane między pamięcią RAM a plikiem strony, który reprezentuje pamięć wirtualną.
segmentacja pamięci wirtualnej
segmentacja jest alternatywnym podejściem do zarządzania pamięcią, gdzie zamiast stron o stałym rozmiarze, procesy są przydzielane segmenty o różnej długości, aby dokładnie spełnić ich wymagania. Oznacza to, że w przeciwieństwie do systemu paged, Żadna pamięć nie jest marnowana w segmencie.
segmentacja pozwala również na podział aplikacji na logicznie niezależne przestrzenie adresowe, co może ułatwić ich udostępnianie i zwiększyć bezpieczeństwo.
ale problem z segmentacją polega na tym, że ponieważ każdy segment ma inną długość, może to prowadzić do fragmentacji pamięci.”Oznacza to, że w miarę przydzielania i dealokacji segmentów można pozostawić rozrzucone małe fragmenty pamięci, które są zbyt małe, aby mogły być użyteczne.
w miarę gromadzenia się tych małych kawałków, można przydzielać coraz mniej segmentów o użytecznych rozmiarach. A jeśli system operacyjny zacznie używać tych małych segmentów, będzie ich ogromna liczba do śledzenia, a każdy proces będzie musiał używać wielu różnych segmentów, co jest nieefektywne i może zmniejszyć wydajność.
zalety i wady pamięci wirtualnej
mimo, że pamięć RAM jest obecnie stosunkowo niedroga w porównaniu z kosztem, gdy pamięć wirtualna została opracowana po raz pierwszy, nadal jest niezwykle przydatna i nadal jest stosowana w wielu, być może większości systemów komputerowych. Kluczowy problem z pamięcią wirtualną dotyczy wydajności.
zalety pamięci wirtualnej
- umożliwia jednoczesne uruchamianie większej liczby aplikacji.
- umożliwia uruchamianie większych aplikacji w systemach, które nie mają wystarczającej ilości fizycznej pamięci RAM, aby je uruchomić.
- zapewnia sposób na zwiększenie pamięci, która jest mniej kosztowna niż zakup większej ilości pamięci RAM.
- zapewnia sposób na zwiększenie pamięci w systemie, który ma maksymalną ilość pamięci RAM, którą może obsługiwać jego sprzęt i system operacyjny.
wady pamięci wirtualnej
- nie oferuje takiej samej wydajności jak pamięć RAM.
- może negatywnie wpływać na ogólną wydajność systemu.
- zajmuje przestrzeń dyskową, która w przeciwnym razie mogłaby zostać wykorzystana do długoterminowego przechowywania danych.