Co to jest pamięć wirtualna?
Pamięć wirtualna to mechanizm przechowywania, który daje użytkownikowi złudzenie posiadania bardzo dużej pamięci głównej. Odbywa się to poprzez traktowanie części pamięci dodatkowej jako pamięci głównej. W pamięci wirtualnej użytkownik może przechowywać procesy o rozmiarze większym niż dostępna pamięć główna.
Dlatego zamiast ładować jeden długi proces do pamięci głównej, system operacyjny ładuje różne części więcej niż jednego procesu w pamięci głównej. Pamięć wirtualna jest najczęściej implementowana ze stronicowaniem i segmentacją popytu.
W tym samouczku dotyczącym systemu operacyjnego dowiesz się:
- Co to jest pamięć wirtualna?
- Jak działa pamięć wirtualna?
- Co to jest stronicowanie na żądanie?
- Rodzaje metod zamiany stron
- Zastąpienie strony FIFO
- Optymalny algorytm
- Wymiana strony LRU
- Zalety pamięci wirtualnej
- Wady pamięci wirtualnej
Dlaczego potrzebujesz pamięci wirtualnej?
Oto powody, dla których warto używać pamięci wirtualnej:
- Zawsze, gdy komputer nie ma miejsca w pamięci fizycznej, zapisuje to, co musi pamiętać, na dysku twardym w pliku wymiany jako pamięć wirtualna.
- Jeśli komputer z systemem Windows potrzebuje więcej pamięci / RAM, a następnie jest zainstalowany w systemie, wykorzystuje do tego niewielką część dysku twardego.
Jak działa pamięć wirtualna?
We współczesnym świecie pamięć wirtualna stała się obecnie dość powszechna. Jest używany, gdy niektóre strony wymagają załadowania do pamięci głównej w celu wykonania, a pamięć nie jest dostępna dla tych wielu stron.
Tak więc w takim przypadku, zamiast zapobiegać przedostawaniu się stron do pamięci głównej, system operacyjny wyszukuje przestrzeń RAM, która jest minimalnie używana w ostatnim czasie lub która nie jest odwoływana do pamięci dodatkowej, aby zwolnić miejsce na nowe strony w pamięć główna.
Zrozummy zarządzanie pamięcią wirtualną na jednym przykładzie.
Na przykład:
Załóżmy, że system operacyjny wymaga 300 MB pamięci do przechowywania wszystkich uruchomionych programów. Jednak obecnie w pamięci RAM jest tylko 50 MB dostępnej pamięci fizycznej.
- System operacyjny skonfiguruje następnie 250 MB pamięci wirtualnej i użyje programu o nazwie Virtual Memory Manager (VMM) do zarządzania tymi 250 MB.
- Tak więc w tym przypadku VMM utworzy plik na dysku twardym o rozmiarze 250 MB do przechowywania dodatkowej wymaganej pamięci.
- System operacyjny przejdzie teraz do adresowania pamięci, biorąc pod uwagę 300 MB rzeczywistej pamięci przechowywanej w pamięci RAM, nawet jeśli dostępne jest tylko 50 MB miejsca.
- Zadaniem VMM jest zarządzanie 300 MB pamięci, nawet jeśli dostępne jest tylko 50 MB rzeczywistej pamięci.
Co to jest stronicowanie na żądanie?
Mechanizm stronicowania na żądanie jest bardzo podobny do systemu stronicowania z wymianą, w którym procesy przechowywane w pamięci dodatkowej i strony są ładowane tylko na żądanie, a nie z wyprzedzeniem.
Tak więc, gdy nastąpi przełączenie kontekstu, system operacyjny nigdy nie kopiuje żadnej ze stron starego programu z dysku ani żadnej ze stron nowego programu do pamięci głównej. Zamiast tego rozpocznie wykonywanie nowego programu po załadowaniu pierwszej strony i pobierze strony programu, do których się odwołuje.
Jeśli podczas wykonywania programu program odwołuje się do strony, która może być niedostępna w pamięci głównej, ponieważ została zamieniona, procesor traktuje ją jako nieprawidłowe odwołanie do pamięci. Dzieje się tak, ponieważ błąd strony i transfery wysyłają kontrolę z powrotem z programu do systemu operacyjnego, który wymaga zapisania strony z powrotem w pamięci.
Rodzaje metod zamiany stron
Oto kilka ważnych metod zamiany stron
- FIFO
- Optymalny algorytm
- Wymiana strony LRU
Zastąpienie strony FIFO
FIFO (First-in-first-out) to prosta metoda implementacji. W tej metodzie pamięć wybiera do wymiany stronę, która najdłużej znajdowała się w adresie wirtualnym pamięci.
Funkcje:
- Za każdym razem, gdy ładowana jest nowa strona, strona ostatnio pojawiająca się w pamięci jest usuwana. Dlatego łatwo jest zdecydować, która strona wymaga usunięcia, ponieważ jej numer identyfikacyjny jest zawsze na stosie FIFO.
- Najstarsza strona w pamięci głównej to taka, która powinna zostać wybrana do wymiany jako pierwsza.
Optymalny algorytm
Optymalna metoda zamiany stron wybiera tę stronę do zastąpienia, dla której czas do następnego odwołania jest najdłuższy.
Funkcje:
- Optymalny algorytm daje najmniejszą liczbę błędów stronicowania. Ten algorytm jest trudny do zaimplementowania.
- Optymalna metoda algorytmu zastępowania stron ma najniższy wskaźnik błędów stronicowania spośród wszystkich algorytmów. Ten algorytm istnieje i powinien nazywać się MIN lub OPT.
- Wymień stronę, która w przeciwieństwie do używania przez dłuższy czas. Wykorzystuje tylko czas, w którym strona musi zostać użyta.
Wymiana strony LRU
Pełna forma LRU to strona Najrzadziej ostatnio używane. Ta metoda pomaga systemowi operacyjnemu znaleźć użycie strony w krótkim okresie czasu. Algorytm ten powinien zostać zaimplementowany poprzez skojarzenie licznika ze stroną parzystą.
Jak to działa?
- Strona, która najdłużej nie była używana w pamięci głównej, zostanie wybrana do wymiany.
- Łatwość implementacji, prowadzenie listy, zastępowanie stron przez spoglądanie w przeszłość.
Funkcje:
- Metoda wymiany LRU ma największą liczbę. Ten licznik jest również nazywany rejestrami starzenia się, które określają ich wiek i liczbę odnośników do powiązanych z nimi stron.
- Strona, która najdłużej nie była używana w pamięci głównej, to ta, która powinna zostać wybrana do wymiany.
- Utrzymuje również listę i zastępuje strony, cofając się w czasie.
Wskaźnik błędów
Wskaźnik błędów to częstotliwość, z jaką zawodzi zaprojektowany system lub komponent. Wyraża się w liczbie awarii na jednostkę czasu. Jest oznaczony grecką literą λ (lambda).
Zalety pamięci wirtualnej
Oto zalety / zalety korzystania z pamięci wirtualnej:
- Pamięć wirtualna pomaga przyspieszyć, gdy do wykonania programu potrzebny jest tylko określony segment programu.
- Jest bardzo pomocny we wdrażaniu środowiska wieloprogramowego.
- Pozwala na jednoczesne uruchamianie większej liczby aplikacji.
- Pomaga dopasować wiele dużych programów do mniejszych programów.
- Wspólne dane lub kod mogą być współdzielone między pamięcią.
- Proces może być większy niż cała pamięć fizyczna.
- Dane / kod należy w razie potrzeby odczytać z dysku.
- Kod można umieścić w dowolnym miejscu w pamięci fizycznej bez konieczności przenoszenia.
- Więcej procesów powinno być utrzymywanych w pamięci głównej, co zwiększa efektywne wykorzystanie procesora.
- Każda strona jest przechowywana na dysku, dopóki nie będzie potrzebna, zostanie usunięta.
- Pozwala na jednoczesne uruchamianie większej liczby aplikacji.
- Nie ma określonego ograniczenia co do stopnia wieloprogramowania.
- Należy pisać duże programy, ponieważ dostępna wirtualna przestrzeń adresowa jest większa w porównaniu z pamięcią fizyczną.
Wady pamięci wirtualnej
Oto wady / wady korzystania z pamięci wirtualnej:
- Aplikacje mogą działać wolniej, jeśli system korzysta z pamięci wirtualnej.
- Przełączanie się między aplikacjami może zająć więcej czasu.
- Oferuje mniej miejsca na dysku twardym do użytku.
- Zmniejsza stabilność systemu.
- Umożliwia uruchamianie większych aplikacji w systemach, które nie oferują wystarczającej ilości fizycznej pamięci RAM, aby je uruchomić.
- Nie oferuje takiej samej wydajności jak pamięć RAM.
- Ma to negatywny wpływ na ogólną wydajność systemu.
- Zajmują przestrzeń dyskową, która może być używana w inny sposób do długoterminowego przechowywania danych.
Podsumowanie:
- Pamięć wirtualna to mechanizm przechowywania, który daje użytkownikowi złudzenie posiadania bardzo dużej pamięci głównej.
- Pamięć wirtualna jest potrzebna, gdy komputer nie ma miejsca w pamięci fizycznej
- Mechanizm stronicowania na żądanie jest bardzo podobny do systemu stronicowania z wymianą, w którym procesy przechowywane w pamięci dodatkowej i strony są ładowane tylko na żądanie, a nie z wyprzedzeniem.
- Ważne Metody wymiany stron to 1) FIFO 2) Optymalny algorytm 3) Wymiana strony LRU.
- W metodzie FIFO (First-in-first-out) pamięć wybiera stronę do zastąpienia, która najdłużej znajdowała się w adresie wirtualnym pamięci.
- Optymalna metoda zamiany stron wybiera tę stronę do zastąpienia, dla której czas do następnego odwołania jest najdłuższy.
- Metoda LRU pomaga systemowi operacyjnemu znaleźć wykorzystanie strony w krótkim okresie czasu.
- Pamięć wirtualna pomaga przyspieszyć, gdy do wykonania programu potrzebny jest tylko określony segment programu.
- Aplikacje mogą działać wolniej, jeśli system korzysta z pamięci wirtualnej.