アルゴリズムを図解する
【 「パン屋のアルゴリズム」を図解する 】
このセッションでは、ランポートのアルゴリズムが正しいことを、ランポートの論文に従って示そうと思います。できるだけ図を使おうと思います。
ランポートは、アルゴリズムについての「三つの主張」が正しいことを示すことで、「パン屋のアルゴリズム」の正しさを証明しようとします。
三つの主張で重要なのは、critical section に入れるのは一つのプロセッサーだけだという主張(主張 2)と、レジ待ちのプロセッサーは、いずれ、critical section に入るという主張(主張 3)の二つです。
前者(主張 2)は、排他制御の safety という性質で、後者(主張 3)は、排他制御の liveness という性質です。ただし、この論文では、ランポートは、こうした言葉を使っていません。
アルゴリズム自身が進化・発展するだけでなく。アルゴリズムの記述のスタイル、アルゴリズムの正しさの証明のスタイルも時代と共に変化していることに留意してください。
このセッションで見るアルゴリズムの正しさの証明は、チケット番号全体に対する読み書きが、アトミックに行われる必要はないことを示しています。このbakeryアルゴリズムは、その値がコンカレントに書き込まれたものでないとしても、その読み出しが正しい値を返すならば、正しいのである。書き込みと重なった読み出しがどんな値を返すかは問題ではないのです。
-------------------------------------------
セッションの動画のURL
https://youtu.be/0YdFQGPkyHE?list=PLQIrJ0f9gMcOeqlB09PdBddfXLv2QjG-F
スライドのpdf
https://drive.google.com/file/d/13B_0_s74kk-b7MpQpkV3Ceq3Xdqp3P97/view?usp=sharing
関連blog 「アルゴリズムを図解する」https://maruyama097.blogspot.com/2022/07/blog-post_11.html
参考資料
Leslie Lamport, A new solution of Dijkstra's concurrent programming problem ,Communications of the ACM Volume 17 Issue 8 Aug. 1974 pp 453–455
https://dl.acm.org/doi/pdf/10.1145/361082.361093
Lamport, L. A new approach to proving the correctness of multi-process programs. ACM Trans. Program.Lang. Syst. 1, 1 (July 1979), 8497. https://lamport.azurewebsites.net/pubs/new-approach.pdf
セミナーのまとめページ
https://www.marulabo.net/docs/concurrent/
セミナー告知・申込ページ
https://concurrent.peatix.com/view
-------------------------------------------
コメント
コメントを投稿