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

Pager


Rev.9を表示中。最新版はこちら

Pagerはディスク上のデータなどをアドレス空間からアクセスできるようにする。Default Pager,Vnode Pager,Device Pagerの三種類がある。


Default Pager
仮想記憶を実現するために補助記憶装置にPageOutされたページをPageInする。

Vnode Pager
ファイルとアドレス空間のマッピングを行う。mmap()などで使用される。

Device Pager
I/O空間上のメモリなどハードウェア上のメモリなどをマップするのに使う。


[関連ルーチン]
Pagerへのインタフェースはosfmk/vm/memory_object.cにある。

memory_object_data_request()
Memory Object(Pager)にデータの取得を要求する。
vm_fault_page()でPageIn処理をするのに使われる。

Pagerの種類に応じて以下の各Requestルーチンを呼び出す。

dp_memory_object_data_request()
vnode_pager_data_request()
device_pager_data_request()


memory_object_data_return()
ページアウト用カーネルスレッド(vm_pageout_iothread_continue())から呼び出される。

Pagerの種類に応じて以下の各Requestルーチンを呼び出す。

dp_memory_object_data_return()
vnode_pager_data_return()
device_pager_data_return()



最終更新 2006/06/13 19:17:25 - kztomita
(2006/06/13 15:09:54 作成)


最近更新したページ