Aby odpowiedzieć na to pytanie, odwiedzę jakieś wstępne zrozumienie. Stronicowania na żądanie nie można osiągnąć bez wsparcia sprzętowego. Wszystkie współczesne architektury komputerów obsługują stronicowanie, jednak wiele z nich ma różne szczegóły implementacji.
Procesory x86 wykorzystać to, co nazywa się stół stronę śledzić wirtualnych przestrzeni adresowych i stronie odwzorowań, jak również bity o funkcjonalnościami dostępu oraz, bardziej odpowiednie, czy ta strona jest jeszcze obecny w pamięci fizycznej. Naruszenie powoduje błędy strony, które są zatrzymywane przez system operacyjny.
Aby uzyskać więcej informacji na ten temat, zobacz ten artykuł .
Aby odpowiedzieć na pytanie o zamianę stron, musimy najpierw odwiedzić pytanie, w jaki sposób system operacyjny śledzi, które strony są używane przez jaki proces i jak są one przydzielane. Istnieje wiele różnych struktur danych, które można do tego wykorzystać. Płaska tablica bitów oznaczająca, czy ramka jest przydzielona, czy nie, jest jednym ze sposobów. Połączone listy lub stosy to kolejne. Przy czystym stronicowaniu na żądanie przydzielone strony nie są tak naprawdę oznaczane jako obecne, gdy są przydzielane. Powoduje to, że żaden fizyczny taran nie jest odkładany na proces, dopóki on do niego nie napisze. Gdy to zrobi, sprzęt zgłasza błąd, który pułapkuje system operacyjny, a następnie system operacyjny używa algorytmu wymiany, jeśli nie ma dostępnych fizycznych stron do przypisania do już przydzielonej strony wirtualnej.
Aby uzyskać więcej informacji na temat alokacji ramek strony, zobacz tutaj . Tam zobaczysz ogólny przegląd niektórych odpowiednich struktur danych.
Po wdrożeniu odpowiedniego algorytmu przydzielania stron należy wybrać inny sposób przydzielania miejsca na dysku do zamiany. Na przykład system Windows w przeszłości używał płaskiego pliku w systemie plików do zamiany stron. Wyobrażam sobie, że dla każdego węzła w strukturze danych, który śledzi przydzielone strony, przypisany jest wskaźnik do przesunięcia w pliku, wskazujący pozycję strony na dysku. Uniksowe systemy operacyjne tradycyjnie używają oddzielnych partycji do zamiany stron, co jest prawdopodobnie szybsze, ponieważ nie ma warstwy systemu plików.
Możliwe jest także oddzielenie struktur danych algorytmu wymiany od struktur algorytmu alokacji, jednak oba są ze sobą powiązane, więc prawdopodobnie nie jest to często wykonywane.
Mam nadzieję, że to odpowiada na twoje pytanie pomimo względnej zwięzłości, z jaką go potraktowałem. Odkryłem, że najlepszym sposobem na poznanie systemów operacyjnych jest zanurzenie się w niekiedy nieprzyjemnych szczegółach architektonicznych, które można znaleźć na stronach takich jak wiki.osdev.org i www.osdever.net, które w szczególności zajmują się tworzeniem hobby OS i zapewniają doskonałe samouczki na takich szczegółach.