仮想記憶への応用とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > 仮想記憶への応用の意味・解説 

仮想記憶への応用

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/06/17 01:47 UTC 版)

コピーオンライト」の記事における「仮想記憶への応用」の解説

コピーオンライトは主に仮想記憶方式オペレーティングシステム使用されている。例えば、プロセスコピー作成 (fork) するとき、書き換えることのないメモリページは、両方プロセス(元のプロセス生成されプロセス)で共用し書き換える可能性のあるメモリページは、新たなメモリページ割り当ててコピー作成する必要がある。ここでコピーオンライト使用される一方プロセスメモリ更新すると、オペレーティングシステムカーネルがその操作横取りしメモリコピー作成してメモリ内容更新他方プロセスから見えないようにする。 他にも、calloc()関数使われている。calloc()メモリ領域ゼロ初期化して確保するmalloc参照)。このためゼロ初期化されたページシステム1つ用意しておき、calloc()確保した領域にはこのページマッピングしてコピーオンライト機能使用するこのようにするとcalloc()呼び出し直後はたとえ何ページメモリが必要でも物理的に1ページしか使われておらず、その領域内容更新しようとしたときに初め個別コピー作成されるこのような最適化はページサイズ以上の大きなアロケーションでのみ使用されるのが一般的である。 コピーオンライトは、MMUに対してプロセスアドレス空間のある領域リードオンリーであると通知することで実現する。その領域データ書き込もうとしたとき、MMU例外発生し、それをカーネル処理するカーネル新たな物理ページ確保して書き込みが行われた領域マッピング変更して、その新たな物理ページ対応させるCOW主な利点は、メモリ空間的にまばらに利用する可能性にある。データ格納したときだけ物理メモリ使用量が増えるので、若干メモリ使用量増えるが非常に効率的なハッシュテーブル実装することができる。しかし、そのような使い方をすると仮想空間使い切ってしまう危険性もある(ハッシュテーブル使われる仮想アドレス空間領域マッピングされる物理ページはまばらだが、他の用途空間利用できない)。カーネルレベルでのCOW主な問題点はその複雑さにあるが、そのような懸念スワップ方式などのもっと基本的な部分も同じである。カーネル自身コピーオンライト制御されているページ書き込み行った場合、やはりコピーが必要となる(訳注例えシステムコール結果ユーザー空間書き込む場合など。実際に書きこみの前にコピーオンライトかどうかチェックし必要に応じてコピー作成後に書き込みを行う)。 COWカーネル以外でも、ライブラリアプリケーションやシステムコードなどでも使われるC++Standard Template Library提供する string クラスコピーオンライト型の実装可能な設計になっているこのような領域でのCOWはマルチスレッドコードで問題となる。コピー元のリソース複数スレッド共有するにはロックが必要であり、COW利点上のオーバヘッドとなる可能性が高い。

※この「仮想記憶への応用」の解説は、「コピーオンライト」の解説の一部です。
「仮想記憶への応用」を含む「コピーオンライト」の記事については、「コピーオンライト」の概要を参照ください。

ウィキペディア小見出し辞書の「仮想記憶への応用」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「仮想記憶への応用」の関連用語

仮想記憶への応用のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



仮想記憶への応用のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのコピーオンライト (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS