このページを編集する際は、編集に関する方針に従ってください。

概要

  • include/linux/rmap.hにて定義
  • anonymousメモリ(無名メモリ)
    • anonymousメモリ(無名メモリ)とはファイルと直接関連づけられていないページ(ページ群)を指す
      • プロセスのヒープ領域、スタック、Copy-On-Writeページに対して使用される
      • Copy-On-Writeページ:ゼロページを割り当てておいて、実際に使用する際に例外を発生させ、ページの割り当てを遅延する

実装

/*

* The anon_vma heads a list of private "related" vmas, to scan if
* an anonymous page pointing to this anon_vma needs to be unmapped:
* the vmas on the list will be related by forking, or by splitting.
*
* Since vmas come and go as they are split and merged (particularly
* in mprotect), the mapping field of an anonymous page cannot point
* directly to a vma: instead it points to an anon_vma, on whose list
* the related vmas can be easily linked or unlinked.
*
* After unlinking the last vma on the list, we must garbage collect
* the anon_vma object itself: we're guaranteed no page can be
* pointing to this anon_vma once its vma list is empty.
*/

struct anon_vma {

	spinlock_t lock;	/* Serialize access to vma list */
  • 排他の為のスピンロック
	struct list_head head;	/* List of private "related" vmas */
  • vmaのリスト

};

履歴

  • 作者:ひら
  • 日付:2005/8/27
  • 対象:2.6.10
    更新日更新者更新内容

コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:11:00 (2919d)