ram flash

[Jak to działa] Wirtualna pamięć RAM – czy to rozwiązanie ma sens?

4 minuty czytania
Komentarze

Producenci współczesnych smartfonów prześcigają się na wszelkie możliwe sposoby. Dziś modne jest montowanie absurdalnie pojemnych pamięci operacyjnych. W ostatnim czasie producenci zaczęli jeszcze bardziej naginać ten parametr poprzez instalowanie wirtualnego RAMu. Technologia ta znana jest od dziesiątków lat i nie pierwszy raz zastosowano ją w smartfonach.

Czym jest i jak działa wirtualna pamięć RAM?

Zacznijmy od podstawy – każdy system operacyjny do działania wymaga pamięci operacyjnej. Dotyczy to tak samo naszych komputerów, jak i np. smartfonów, smart bandów i routerów WiFi. W przypadku bardzo prostego oprogramowania możliwe jest określenie ilości potrzebnej pamięci operacyjnej. Problem pojawia się jednak w przypadku bardziej zaawansowanych systemów, takich jak np. w komputerach. Ich funkcjonalność nie jest z góry określona, a zatem nie można przewidzieć ile RAM-u będzie potrzebował użytkownik do bezproblemowej pracy. Brak wolnej pamięci operacyjnej spowoduje zawieszenie się systemu. Są dwa sposoby na uniknięcie takiej sytuacji. Do oprogramowania można dołączyć task killera, który będzie zamykał aplikacje zwalniając tym samym pamięć RAM. Jest też inne rozwiązanie, które polega na przeznaczeniu części dysku do wykorzystania jako pamięci RAM.

Wirtualna pamięć operacyjna w systemach Windows

Nie jestem w stanie podać konkretnej daty, kiedy wirtualna pamięć pojawiła się w systemach Windows. System ten podczas instalacji automatycznie tworzy plik SWAP, który jest właśnie tym fragmentem dysku przeznaczonym do wykorzystywania jako rozszerzenie pamięci operacyjnej. W razie zaistnienia takiej potrzeby system może rozszerzyć ten plik, jednak poza elastycznością to rozwiązanie ma też poważną wadę – plik SWAP może ulegać fragmentacji, co jest problemem dla dysków HDD. Wirtualna pamięć RAM bez wątpienia ratowała użytkowników słabszych komputerów, jednak wraz ze wzrostem jej wykorzystania spadała responsywność komputera. Pamięć RAM charakteryzuje się ogromną przepustowością, nieosiągalną dla innych nośników. Przeniesienie części pamięci operacyjnej do pliku SWAP drastycznie spowalniało pracę komputera, ponieważ dysk komputera ma znacznie mniejszą przepustowość. Problem ten był zmorą użytkowników dysków HDD, ponieważ nie radziły one sobie z dużymi ilościami operacji.

Linux i partycja SWAP

Z podobnego rozwiązania korzystają także systemy Linuksowe, choć działa to w nieco inny sposób. Podczas instalacji systemu tworzona jest partycja SWAP. Jej późniejsze rozszerzenie jest problematyczne, jednak działa ona nieco wydajniej niż rozwiązanie z Windowsa. Systemy Linuksowe mają jednak małą przewagę w postaci parametru swappiness. Edytując go można ustalić, jak chętnie system będzie korzystał z pamięci SWAP. Domyślna wartość to 60, zmieniając go na 8 system będzie korzystał z wirtualnej pamięci tylko w ostatezności.

Pamięć wirtualna w systemach mobilnych

Dotychczas żaden producent nie implementował pamięci SWAP w systemach mobilnych. Wyjątkiem mogą być platformy Maemo i MeeGo, jednak nie jestem pewien, czy taka funkcjonalność była dostępna w fabrycznym oprogramowaniu. Ogólnie dzisiejsze systemy operacyjne nie potrzebują dodatkowej pamięci operacyjnej. W przypadku Androida mamy do czynienia z bardzo agresywnym task killerem, który automatycznie zamyka aplikacje w celu oczyszczenia pamięci.

Mimo wszystko dawniej próbowano zaprzyjaźnić Androida z pamięcią wirtualną. Działo się tak w czasach pierwszych smartfonów z tym systemem, które miały najczęściej 256 lub 512 MB RAM. Po zainstalowania custom roma z nowszym systemem najczęściej pojawiały się problemy z płynnością spowodowane za małą pojemnością pamięci operacyjnej. Android jest systemem Linuksowym, a więc skorzystano z partycji SWAP. Tworzono je na kartach pamięci, narzędzie do przygotowania nośnika było zintegrowane z np. CWM Recovery. Mimo prób ostatecznie porzucono to rozwiązanie. Powodem była mała przepustowość kart pamięci, często efekt takiej modyfikacji był wręcz odwrotny od zamierzonego. Telefony korzystające z partycji SWAP potrafiły działać skrajnie niestabilnie, z tego powodu rozmiar partycji ograniczano do około 64-128 MB.

Ofiara wojny na cyferki

W dzisiejszych czasach wirtualna pamięć RAM powoli odchodzi do przeszłości. Pamięci RAM znacznie staniały, poza tym korzystanie z pamięci wirtualnej jest zabójcze dla dysków SSD. Co się zatem stało, że to przestarzałe rozwiązanie wraca do łask? Producenci smartfonów próbują walczyć z konkurentami za pomocą cyferek w specyfikacji. Android optymalizowany był pod kątem pracy na urządzeniach z małymi pamięciami. System ten automatycznie zamyka wszystko, co się tylko da. Ten mechanizm działa w każdym dzisiejszym smartfonie. Dzięki niemu Androidowi nigdy nie brakuje pamięci, a przy okazji wydłuża się czas pracy na baterii. Pozostaje jeszcze jedno pytanie – co Android zrobi z dodatkową pamięcią operacyjną i czy wpłynie to żywotność kości pamięci? Prawdopodobnie nic z nią nie zrobi, wykorzystanie absurdalnie dużej pamięci jest praktycznie niemożliwe.

Zobacz też:

Motyw