Pamięć przewodowa a pamięć aktywna w systemie OS X

13

Mam problem ze zrozumieniem różnicy między pamięcią przewodową a pamięcią aktywną w systemie OS X.

Nie mów o czterech rodzajach pamięci (nie mów o wolnej lub nieaktywnej pamięci, ponieważ już wiem, co to są). Wystarczy porównać i porównać pamięć przewodową z pamięcią aktywną, aby lepiej je zrozumieć.

tony_sid
źródło

Odpowiedzi:

29

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 )

  1. 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.
  2. 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.

bubu
źródło
Teraz sprawiłeś, że to pytanie stało się bardziej skomplikowane niż musiało być, mówiąc o innych rodzajach pamięci. Więc teraz muszę zapytać o pamięć aktywną a nieaktywną. Słyszałem, że nieaktywna pamięć to tak naprawdę wolna pamięć. O co chodzi Czy pamięć aktywna jest również wolną pamięcią? Porównaj i kontrastuj pamięć aktywną z pamięcią nieaktywną.
tony_sid
1
Słyszałem, że nieaktywna pamięć to po prostu pamięć podręczna na wypadek, gdyby zamknięty program został ponownie uruchomiony. Jeśli to prawda, to dlaczego należy go umieścić na dysku?
tony_sid
1
Słyszałeś coś złego. Zamknięta aplikacja zostanie zwolniona z pamięci, chyba że coś jest poważnie nie tak z architekturą pamięci.
bubu
2
fantastyczna odpowiedź! +1
posdef
1
@tony_sid stara dyskusja, ale to, co słyszałeś, jest poprawne. Jak wspomniano w wsparciu Apple: „Jeśli jednak otworzysz Maila, zanim jego nieaktywna pamięć zostanie użyta przez inną aplikację, Mail otworzy się szybciej, ponieważ jego nieaktywna pamięć jest konwertowana na pamięć aktywną, zamiast ładować ją z wolniejszego napędu”.
Gaurav,