はいた‐せいぎょ【排他制御】
排他制御
【英】lock
排他制御とは、一般に、特定のファイルやデータに対するアクセスや更新を制御することである。特にファイルやデータベースへの書き込み処理を行なう際に、データの整合性を保つためにアクセスやデータの読み書きを一時的に制限すること。
データの参照と書き込みとを常に解放しておくとすれば、二人の管理者が交互にデータを参照し、情報が共有されない状態のままで、各々の作業を反映したデータへと更新する場合が生じうる。このとき先に参照した者と、後に参照した者が、交錯した順序でデータ更新を行えば、実情とデータとは混乱して一致しなくなる恐れもある。
このような事態が生じるのを防ぐために、データを更新する際にはデータに排他制御をかけて、他の者がデータを読み書きできないようにする。そうすれば、他の者は更新完了後のデータのみ参照できるようになるので、実情との整合性が乱されることはない。その際、データの参照と更新との両方を禁ずるか、あるいは参照は許可するかが設定できる。ひとつのプログラムがデータにアクセスして処理を行う間、他の接続口には許可・不許可を示す標識が立てられる。
なお、複数のファイルにまたがって排他制御(ロック)が行われる場合には、ユーザーの一方があるファイルをロックしながら別のあるファイルのロック解除を待ち、もう一方ではその別のファイルをロックしながら先方のロックしたファイルのロック解除を待つ、そのため互いに固めつつ固められ、いつまでたっても処理が進まない、といった事態が生じうる。この現象はデッドロックと呼ばれており、プログラムの設計に問題がある場合に発生する。
排他制御
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/05 15:30 UTC 版)
コンピュータ・プログラムの実行において、複数のプロセスが利用出来る共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにする事で整合性を保つ処理の事をいう。相互排除または相互排他(mutual exclusion)ともいう。最大k個のプロセスが共有資源にアクセスして良い場合を k-相互排除という。
(はいたせいぎょ)とは、- ^ E. W. Dijkstra. Solution of a problem in concurrent programming control. Communications of the ACM, 8(9), page 569, September, 1965.
- ^ a b Taubenfeld. The Black-White Bakery Algorithm. In Proc. Distributed Computing, 18th international conference, DISC 2004. Vol 18, 56-70, 2004
- ^ L. Lamport. A new solution of Dijkstra’s concurrent programming problem. Communications of the ACM, 17(8):453–455, August 1974.
- ^ Holzmann, G.J. Bosnacki, D. “The Design of a Multicore Extension of the SPIN Model Checker”, Software Engineering, IEEE Transactions on, vol. 33, no. 10, pp.659-674, Oct. 2007
- ^ 優先度上限プロトコルは、ロックを獲得したいプロセスがすべて上限いっぱいの優先度であると機能しない。優先度継承は、ロック獲得中のプロセスよりも優先度が高いプロセスがロックを獲得しようとするまで動作しない。
- 1 排他制御とは
- 2 排他制御の概要
- 3 留意すべき現象と性質
- 4 参考文献
固有名詞の分類
- 排他制御のページへのリンク