リード・コピー・アップデートと呼ばれる理由
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/01/13 15:24 UTC 版)
「リード・コピー・アップデート」の記事における「リード・コピー・アップデートと呼ばれる理由」の解説
この名称はRCUがリンクリストをその場で更新するのに使われていたことに由来する。この場合、以下のような処理の流れとなる。 新しい構造体を作成する。 データを古い構造体からコピーし、古いデータ構造へのポインタをセーブする。 新しいデータ構造に更新(変更)を加える。 グローバルなポインタが新しいデータ構造の方を指すよう変更する。 カーネルが古いデータ構造の参照者がいないと判断するまでスリープする(Linuxなら synchronize_rcu() を使用する)。 更新を行ったスレッドがカーネルによって起こされたら、安全に古いデータ構造を解放できる。 そのため、参照 (read) スレッドは、更新 (update) スレッドがコピー (copy) している間も並行して動作できる。以上から、「リード・コピー・アップデート(read-copy update)」と呼ばれたのである。これを RCU という略称で呼ぶようになったのはLinuxコミュニティである。類似の技術は、例えばVM/XA(英語版)では passive serialization あるいは MP defer と呼ばれ、K42(英語版)やTornadoでは generations と呼ばれている。
※この「リード・コピー・アップデートと呼ばれる理由」の解説は、「リード・コピー・アップデート」の解説の一部です。
「リード・コピー・アップデートと呼ばれる理由」を含む「リード・コピー・アップデート」の記事については、「リード・コピー・アップデート」の概要を参照ください。
- リードコピーアップデートと呼ばれる理由のページへのリンク