知識マップ: 取りこぼさない取り込み処理をAdaのタスクで作る ── 保護オブジェクトのリングバッファと優先度

記事「取りこぼさない取り込み処理をAdaのタスクで作る ── 保護オブジェクトのリングバッファと優先度」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

カメラの取り込みを、周期タスクと処理タスクと、スロットの番号を入れる保護オブジェクトの有限バッファーで組み立てる。保護オブジェクトのエントリはバリアで呼び出し側を待たせ、周期タスクはdelay untilで予定時刻を保つ。保護オブジェクトの優先度上限はPriorityアスペクトで設定し、呼ぶタスクの優先度が上限より高いとProgram_Errorになる。JorvikプロファイルはFIFO_Within_PrioritiesとCeiling_Lockingを含み、SPARKで並行処理を扱うにはRavenscarかJorvikが要る。GNATproveはタスクが同期されていないものを共有するとデータ競合として報告する。GNATのLinux版はFIFO_Within_PrioritiesのタスクをSCHED_FIFOのスレッドで動かすが、その権限がなければ優先度は効かない。バッファーがあふれるとフレームは捨てられる。

Adaのタスクで作るカメラの取り込み処理の知識マップ保護オブジェクトが有限バッファーを実装してバリアを使い、Adaのタスクがdelay untilで周期を保ち、保護オブジェクトの優先度上限をPriorityで設定すること、JorvikプロファイルがFIFO_Within_PrioritiesとCeiling_Lockingを前提とすること、SPARKが並行処理にJorvikプロファイルを前提とし、GNATproveでデータ競合を確かめること、GNATのLinux版がFIFO_Within_PrioritiesにSCHED_FIFOを使うこと、満杯の有限バッファーがフレームドロップの原因になり得ることを示す図。実装を担う利用する利用するで構成できる前提とする前提とする前提とするで確認できる利用する実装を担う原因になり得るAdaのタスク(並行処理)保護オブジェクト(protected object)フレームドロップ有限バッファーバリア(保護エントリのwhen条件)delay until(絶対時刻の遅延)タスク優先度(pragma Priority)JorvikプロファイルFIFO_Within_PrioritiesCeiling_LockingプロトコルSPARKデータ競合(data race)GNATproveSCHED_FIFOGNAT

概念間の関係(全11件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Adaのタスク(並行処理)
スレッドをOSのAPIやライブラリに頼らず、言語仕様に組み込む形で提供するAdaの並行実行単位。
保護オブジェクト(protected object)
procedure・function・entryの3種の操作を通じてのみ内部データへアクセスさせ、排他制御を言語が保証するAda 95で導入された機構。
フレームドロップ
カメラが撮影・送信した画像(フレーム)の一部またはすべてが、受信側のアプリに正しく届かないこと。
Jorvikプロファイル
Ravenscarプロファイルから6つの制限を外し、Simple_BarriersをPure_Barriersに置き換えた、Ada 2022で標準に加わったタスク機能のプロファイル。
SPARK
プログラムの性質を数学的に証明できるように設計された、Adaのサブセット(部分言語)とそのツール群。
データ競合(data race)
複数のタスクが同じメモリ位置に同時アクセスし、少なくとも一方が書き込みであるために結果が未定義になる状態である。
FIFO_Within_Priorities
同一優先度内はFIFOで実行し、より高い優先度のタスクが低い優先度のタスクをプリエンプトする、Annex Dが定める標準的なタスクディスパッチポリシー。
GNAT
GCCに含まれる無償のAdaコンパイラで、Adaの代表的な処理系。
有限バッファー
容量に上限を設けたキュー・循環バッファー。満杯になったら生産側を待たせることが自然な背圧になる。

機械可読データ

このデータセットについて

作成
合同会社小村ソフト
ライセンス
CC BY 4.0 ── 出典(合同会社小村ソフト)とライセンスへのリンクを明示し、改変した場合はその旨を示すことを条件に、再配布・改変を含めて再利用できます
最終確認日
2026-11-10 ── 収録する関係のうち、最後に出典と照合した日

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。