Delikatne przypomnienie: aby zapewnić lepszą odpowiedź dla reszty społeczności, nie mów czegoś w stylu „Nie mów o czterech rodzajach pamięci”. Nawet jeśli dobrze o tym wiesz, może przybyć tu tysiąc i jeden obywateli Internetu z nadzieją na dodatkową odpowiedź. :)
„Stronicowanie” to dokładny termin na następującą akcję. „Zamiana” jest używana potocznie do „stronicowania”, jednak obecnie dość zamiennie. „Zamiana” pierwotnie odnosiło się do całkowitego przeniesienia przestrzeni pamięci programu na „pamięć dodatkową” (w przeciwieństwie do „pamięci głównej”, która jest w pewnym sensie archaicznym określeniem… RAM.). Granica między stronicowaniem a zamianą jest znacznie rozmyta przez systemy Windows i Unix, które nazywają swapy przestrzeni stronicowania.
Następnie trzeba wiedzieć o przywoływaniu, aby zrozumieć pojęcie aktywnej, przewodowej i nieaktywnej pamięci. Stronicowanie oznacza, że strona pamięci jest przenoszona z pamięci o swobodnym dostępie (tj. Pamięci RAM) na dysk twardy lub inne dodatkowe urządzenie pamięci masowej. Dzięki temu działająca aplikacja może żądać więcej pamięci niż całkowita dostępna pamięć systemowa RAM.
Zauważ, że chociaż stronicowanie oznacza ogromną utratę wydajności, aby ponownie uzyskać dostęp do tego określonego fragmentu informacji, stronicowanie może wystąpić w dwóch różnych przypadkach: (Cytując siebie: Wady braku partycji wymiany )
- Jeśli nie ma wystarczającej ilości pamięci dla wszystkich aplikacji - w przypadku, gdy dzieje się tak w systemie bez przestrzeni wymiany, spowoduje to brak alokacji pamięci dla nowych aplikacji żądających nowych stron pamięci - co zwykle skutkuje zakończeniem programu.
- Kiedy niektóre strony pamięci (pamięć jest podzielona na „strony”) były używane jakiś czas temu, ale nie są już używane, zostaną przeniesione do pliku wymiany, a pozostała pamięć może zostać wykorzystana do zrobienia czegoś innego, co może być bardziej przydatne (np. nawet buforowanie!) - gdy dzieje się to w systemie bez przestrzeni wymiany, spowoduje to, że bezczynne strony pozostaną w pamięci. Nie jest to jednak nic poważnego, ponieważ w dzisiejszych czasach mamy dość dużą pamięć.
Cztery typy pamięci są klasyfikowane następująco:
Przewodowy: używany przez aplikację, która twierdzi, że część przydzielonej pamięci musi pozostać fizycznie w pamięci RAM i nie może być zamieniana na dysk, bez względu na to, czy jest ostatnio używana, czy nie, tj. Inna aplikacja NIE może żądać tej konkretnej części pamięci. Przykłady są częścią pamięci wykorzystywanej przez system i pamięci maszyn wirtualnych.
Aktywne i nieaktywne: są to pamięci zwykle używane przez aplikacje w trybie użytkownika, w których można je zamieniać na dyski. „Aktywny” oznacza, że był ostatnio używany, a „Nieaktywny” oznacza, że nie był ostatnio używany. W ten sposób system operacyjny zamienia najpierw nieaktywne strony, a następnie strony aktywne, jeśli to konieczne.
Wolna pamięć: pamięć, która nie jest używana. Jest to wykorzystywane do innych celów, takich jak buforowanie dysku twardego.
Jeśli twoje pytanie brzmi: „W trudnej sytuacji, w której pamięć jest niewystarczająca, w jakiej kolejności system próbowałby przydzielić pamięć do nowej aplikacji?”, To sekwencją byłoby przydzielenie
wolna pamięć → pamięć nieaktywna → pamięć aktywna
W pewnym sensie, nawet ostatnio używana pamięć może być stronicowana. „Przewodowa” część jest tym, czego nie można by za wszelką cenę rozwikłać.
Jednak w nowoczesnych systemach jest raczej mało prawdopodobne, że pamięć aktywna zostanie stronicowana, ponieważ mamy dużo dostępnej pamięci RAM.