Mac OS Xのカーネル Xnuのメモ書き

ページアウト


vm_pageout_continue()
カーネルスレッド
空きページが少なくなるとvm_pageout_scan()を呼び出してページアウトさせるページを選ぶ。

vm_pageout_scan()
Inactiveキューのページを取り出してページアウトキューに積む。

Inactiveページが少ない時(Act,Inactページ総数の1/3未満)はActiveキューからInactiveキューにページを移動させている。

PageoutQueueに既定値以上のページを積んでいる場合は、Activeページの移動は行わない。代わりにページ状態がDirtyだったらActiveキューに入れ直している。このため、書き込みがあるページはInactiveページには移動されにくくなりそう。


vm_pageout_iothread_continue()
vm_pageout_scan()によってページアウトキューに積まれたページをページアウトさせるカーネルスレッド。

Internal Object(カーネルに作成されたVM Object)のページか否かで二つのページアウトキューがあり、各キューごとにカーネルスレッドが動作している。
vm_pageout_queue_external
vm_pageout_queue_internal


最終更新 2006/06/16 19:30:37 - kztomita
(2006/06/15 14:17:57 作成)


最近更新したページ