When a page is included in the page cache, some fields of the corresponding page descriptor have special meanings:
Depending on the state of the page, includes pointers for the next and previous elements in the doubly linked list of clean, dirty, or locked pages of the address_space object.
Points to the address_space object to which the page belongs. If the page does not belong to the page cache, this field is null.
When the page's owner is an inode object, specifies the position of the data contained in the page within the disk image. The value is in page-size units.
Points to the next colliding page descriptor in the page hash list.
Points to the next_hash field of the previous colliding page descriptor in the page hash list.
In addition, when a page is inserted into the page cache, the usage counter (count field) of the corresponding page descriptor is incremented. If the count field is exactly 1, the page belongs to the cache but is not being accessed by any process; it can thus be removed from the page cache whenever free memory becomes scarce, as described in Chapter 16.
Was this article helpful?