An efficient write-watch mechanism and process. A bitmap is associated with
the virtual address descriptor (VAD) for a process, one bit for each
virtual page address allocated to a process having write-watch enabled. As
part of the write-watch mechanism, if a virtual address is trimmed to disk
and that virtual address page is marked as modified, then the
corresponding bit in the VAD is set for that virtual address page. In
response to an API call (e.g., from a garbage collection mechanism)
seeking to know which virtual addresses in a processs have been modified
since last checked, the memory manager walks the bitmap in the relevant
VAD for the specified virtual address range for the requested process. If
a bit is set, then the page corresponding to that bit is known to have
been modified since last asked. If specified by the API, the bit is
cleared in the VAD bitmap so that it will reflect the state since this
time of asking. If the bit is not set, to determine if the page was
modified, the page table entry (PTE) is checked for that page, and if the
PTE indicates the page was modified, the page is known to be modified,
otherwise that page is known to be unmodified since the last call. One
enhancement uses page directory tables to locate a series of trimmed
pages, sometimes avoiding the need to access the PTE.
Ein leistungsfähiges schreiben-passen Einheit auf und verarbeiten. Eine BitübersichtIST mit dem virtuellen Adresse Beschreiber (VAD) für einen Prozeß, ein Bit für jede virtuelle Seite Adresse verbunden, die einem Prozeßhaben zugeteilt wird, schreiben-aufpassen ermöglicht. Als Teil schreiben-passen Sie Einheit auf, wenn eine virtuelle Adresse zur Scheibe getrimmt wird und diese virtuelle Adresse Seite gekennzeichnet wird, wie geändert, dann die entsprechende Spitze im VAD für diese virtuelle Adresse Seite eingestellt wird. In Erwiderung auf eine API benennen Sie (z.B., von einer Abfallansammlung Einheit) das Suchen, zu wissen, welche virtuelle Adressen in processs da letztes überprüft, die Gedächtnismanagerwege die Bitübersicht im relevanten VAD für die spezifizierte virtuelle Adresse Strecke für den erbetenen Prozeß geändert worden sind. Wenn eine Spitze eingestellt wird, dann bekannt die Seite, die dieser Spitze entspricht, geändert worden zu sein, da letztes gebeten worden. Wenn sie durch die API spezifiziert wird, ist die Spitze löschte in die VAD Bitübersicht, damit sie den Zustand seit dieser Zeit des Bittens reflektiert. Wenn die Spitze nicht eingestellt wird, um festzustellen, wenn die Seite geändert wurde, wird der Seitentafeleintrag (PTE) auf diese Seite überprüft, und wenn das PTE anzeigt, wurde die Seite, die Seite bekannt geändert zu werden geändert, andernfalls, daß Seite bekannt, um unverändert zu sein da der letzte Anruf. Eine Verbesserung benutzt Seite Verzeichnistabellen, um eine Reihe getrimmte Seiten zu errichten und manchmal vermeidet die Notwendigkeit, das PTE zugänglich zu machen.