| 項目 | 内容 |
|---|---|
| inactive | Inactiveページである。 |
| active | Activeページである。 |
| pageout_queue | PageOutQueueにつながれている。 vm_pageout_queue_internal,externel |
| laundry | PageOutQueueにつまれるときにTRUEになる。 pageout_queueに似ているが、pageout_queueはIOスレッドがキューからページを取り出すとFALSEになるが、laundryはTRUEのまま。PagerがPageout処理中であることを判定するためのもの? |
| free | Freeページ。Freeキューにつながれている。 |
| reference | PageTableEntryのAccessed bit相当。 |
| pageout | Pageoutするためにwired,busy状態である。 |
| wanted | このページを待っているスレッドが存在する。 |
| tabled | vm_objectのmemqにつながれている時、TRUE |
| fictitious | 物理ページが存在しない |
| absent | データが要求されたがページが存在しない場合TRUE。 vm_object_upl_request()でPageinのUPLを作る際、VM Objectにページがなかった場合、セットされている。 |
| dirty | PageTableEntryのDirty bit相当。 |
| 種別 | 説明 |
|---|---|
| wired | Pageoutできないページ。 Wiredページはどのキューにも積まれていない。 |
| active | 少なくとも1つのpmapに属しているページ。 |
| inactive | どのpmapにも属していないページ。Pageout時はinactiveページが選ばれる。 vm_page_scan()でinactiveページ数が少なくなると、activeキューからinactiveキューに移動させている(*1)。 |
| free | 未使用ページ。いわゆる空きメモリ。 |
参考 osfmk/vm/vm_page.h
/*
* Each pageable resident page falls into one of three lists:
*
* free
* Available for allocation now.
* inactive
* Not referenced in any map, but still has an
* object/offset-page mapping, and may be dirty.
* This is the list of pages that should be
* paged out next.
* active
* A list of pages which have been placed in
* at least one physical map. This list is
* ordered, in LRU-like fashion.
*/