Co to jest zestaw roboczy i do czego służy?
Zestaw roboczy to podzbiór stron wirtualnych rezydujących w pamięci fizycznej.
W systemie Windows istnieje wiele rodzajów zestawów roboczych:
Zestawy robocze procesów zawierają strony, do których prowadzą wątki w ramach jednego procesu.
Zestaw roboczy systemu zawiera rezydentny podzestaw stronicowego kodu systemowego (obejmuje to głównie jądro i załadowane sterowniki), między pulę stronicowaną i pamięć podręczną systemu.
Zestawy robocze sesji, które zawierają rezydentne podzbiory danych specyficznych dla sesji trybu jądra przydzielonych przez podsystem Windows, pulę stronicowania sesji, widoki odwzorowane sesji i inne sterowniki sesji.
Zasadniczo zestaw roboczy służy do decydowania, ile pamięci fizycznej można użyć, aby uniknąć wielu stronicowania. Gdy wystąpi błąd strony , sprawdzane są granice zestawu roboczego i ilość wolnej pamięci w systemie. W razie potrzeby menedżer pamięci pozwala procesowi wyrosnąć na maksimum zestawu roboczego. Jeśli pamięć jest za mało, system Windows zastąpi strony w zestawie roboczym, gdy wystąpi błąd strony.
System Windows spróbuje utrzymać dostępną pamięć, zapisując zmodyfikowane strony na dysku. Jeśli zabraknie pamięci, menedżer zestawu roboczego spróbuje przyciąć większość zestawów roboczych, aby zwiększyć ilość dostępnej fizycznej pamięci RAM dostępnej dla systemu. Procesy, które mają większą liczbę stron, mają większą tendencję do oglądania.
Domyślny zestaw roboczy dla procesu składa się z co najmniej 50 stron i maksymalnie do 345 stron. Limity można zmienić, ale domyślne będą wystarczające w większości przypadków użycia, należy również zauważyć, że maksymalny rozmiar zestawu roboczego nie może przekraczać maksymalnego ogólnosystemowego obliczonego w czasie rozruchu.
System Windows zgłasza całkowitą, szczytową i prywatną ilość fizycznej pamięci RAM używanej przez strony wirtualnego zestawu roboczego dla procesu. Prywatny wskazuje pamięć, która nie jest współużytkowana przez procesy.
Co to jest opłata za zatwierdzenie i do czego służy?
Strony w wirtualnej przestrzeni adresowej procesu są bezpłatne, zastrzeżone lub zatwierdzone. Aplikacje mogą zarezerwować przestrzeń adresową, a następnie ją zatwierdzić ; rezerwowanie się nie zajmuje miejsca w pamięci ani w plikach stron, odbywa się to głównie w celu zmniejszenia pamięci poprzez odroczenie zobowiązań stron.
Zatwierdzone strony to strony, które po uzyskaniu dostępu ostatecznie tłumaczą na prawidłowe strony w pamięci fizycznej; są prywatne i można je udostępniać lub mapować na widok sekcji. Sekcją może być pamięć współdzielona lub pliki mapowane ; więc jeśli zatwierdzone strony są zamapowane na części zmapowanego pliku, może być konieczne ich przeniesienie z dysku podczas uzyskiwania dostępu.
Najpopularniejszym znanym plikiem odwzorowanym jest plik strony. Przechowuje zmodyfikowane strony, które są nadal używane przez jakiś proces, ale musiały zostać zapisane na dysk. Robiąc to bardziej agresywnie, pamięć można łatwiej opróżnić bez konieczności wcześniejszego zapisywania we / wy.
Menedżer pamięci śledzi opłatę prywatnego zatwierdzenia na poziomie globalnym i na proces jako przydział pliku strony. Wartości te są następnie używane do ustalenia, jak często zapisywać do pliku strony. Zwróć uwagę, że zwolnienie pamięci odbywa się przez działający mechanizm zestawu ...
Gdy czegoś już nie ma w pamięci, jest ono ładowane z pliku stronicowania.
Raporty systemu Windows zatwierdzają opłatę jako całkowitą ilość pamięci używanej przez proces, dla której nie ma magazynu kopii zapasowych; zasadniczo podsumowuje ilość fizycznej pamięci RAM, która jest nadal nieobecna w pliku stronicowania i odejmuje od niej inne zmapowane pliki.
Sklep z kopiami zapasowymi to magazyn zawierający kopie zapasowe danych; na przykład, jeśli zamapujesz obraz w pamięci, wówczas obraz znajdzie się zarówno w pamięci, jak i na dysku; więc nie ma sensu obliczać tego obrazu jako użycia pamięci, biorąc pod uwagę, że zawsze można uzyskać do niego dostęp z dysku, gdy jest to konieczne w warunkach wysokiej pamięci.
Co to są sterty pamięci i do czego służą?
Znany jako pula stronicowana i niestronicowana ...
Wątki systemowe z jądra nie mają takiej przestrzeni adresowej jak procesy; dlatego muszą alokować dowolną pamięć dynamiczną w stertach pamięci systemu operacyjnego, która jest najczęściej tworzona przez pulę stronicowaną lub niestronicowaną.
Pula stronicowana składa się z pamięci wirtualnej, którą można stronicować do i z systemu. Sterowniki urządzeń, które nie muszą uzyskiwać dostępu do pamięci na niskim poziomie wysyłki (wyższy priorytet), mogą swobodnie korzystać z pul stronicowanych.
Pula niestronicowana składa się z pamięci wirtualnej, która z pewnością znajduje się w pamięci fizycznej przez cały czas, a zatem można uzyskać do niej dostęp w dowolnym momencie bez powodowania błędu strony. Sterowniki urządzeń, które muszą uzyskiwać dostęp do pamięci na niższym poziomie wysyłki MUSZĄ korzystać z puli niestronicowanej, aby zapewnić dostęp do danych, ponieważ wywołania We / Wy są niedostępne w tym momencie, na tym poziomie jest głównie kod krytyczny ...
Pule te mają minimalny i maksymalny rozmiar, są one określane jako niewielki procent dostępnej pamięci RAM. Chociaż mogą się rozwijać, należy pamiętać, że nie przekroczą one określonego procentu dostępnej pamięci RAM. Chociaż pula niestronicowana jest dość solidna, biorąc pod uwagę, że dotyczy tylko bardziej krytycznej pamięci, pula stronicowana rozszerzy się na plik stronicowania.
Jest to jeden z najbardziej nadzorowanych problemów, gdy ludzie wyłączają plik strony. Wśród innych problemów ze stabilnością i wydajnością , które z pewnością warto sprawdzić, jeśli wyłączyłeś plik strony.
- Źródło : fragmenty książki Windows Wewnętrzne przepisane na zrozumiały tekst.