制御メモ
■ 排他制御
複数のプロセスが利用出来る共有資源に対し、複数のプロセスからの同時アクセスにより競合が発生する場合に、あるプロセスに資源を独占的に利用させている間は、他のプロセスが利用できないようにする事で整合性を保つ処理 | |
・セマフォ(Semaphore)制御: クリティカルセクションに複数のタスクが入ることができる排他制御 Semaphore: 1. 腕木通信、 2. セマフォ制御におけるクリティカルセクションに入ることができる数、変数 (参考)Flag Semaphore: 手旗信号 |
|
・ミューテックス(Mutex)制御: クリティカルセクションに1つのタスクのみが入ることができる排他制御 | |
(参考)MutexはMUTual EXclusionからの造語 | |
・閉塞: 鉄道においては排他制御のことを閉塞と呼ぶ。線路を一定区間(閉塞区間)に区切り、1つの閉塞区間には同時に2つ以上の列車が入らない(入れない)ようにすることで、安全を確保している。 ・通票: 国鉄時代に閉塞区間に入ることができる通行票の一般的呼称。 形状、地域により通票、タブレット、スタフなどと呼ばれていた。 法令、省令などで規定されていた名称はない。 ・タブレット: 列車運転の際機関手に渡す円形通行許可票 |
■ トランザクション処理
相互依存の関係にある複数の処理を1つの処理単位にまとめて、矛盾なく処理すること。データベースにおいて、処理の一貫性を持たせるために、複数の処理を1つの処理として実行して管理する仕組みで、データの整合性を保つための要素の1つ。 | |
■ Harmonyにおける排他制御の必要性
1. 以下の制御に対してはトランザクション処理部分があるので割込み処理に対してはミューテックス制御が必要である。 USB制御、ファイルシステム制御、 DMA制御、など |
|
2. 1つのモジュールを 2つ以上のタスクが共同使用する場合、競合しないようにミューテックス排他制御が必要である。 3. 複数のモジュールをモジュール数以上のタスクが共同使用する場合、競合しないようにセマフォ排他制御が必要である。 (例)3つのUARTモジュールを5つのタスクが共同使用する場合など |