I-26-2. 非同期処理と同期処理の実装パターンと特徴

非同期/同期の概念について触れ、その実装パターンと設計について内容と特徴を説明する。また実行モードの種類や割り込みの優先順位といった具体的な事項について説明する。

【学習の要点】

* 非同期処理は、あるタスクが実行をしている際に、他のタスクが別の処理を実行できる方式である。同期処理では、あるタスクが実行している間、他のタスクの処理は中断される方式である。

* タスクの情報を保持する管理テーブル(Task Control Block: TCB)から、プログラムへのポインタとコンテキストの情報を取得して、カーネルはタスクを起動する。

* タスクの実行モードにはカーネルモードとユーザモードがある。カーネルモードは全ての命令の実行が許可されるのに対し、ユーザモードでは実行できる命令に制限が加わる。

図I-26-2. 同期処理と非同期処理

【解説】

1) 非同期と同期の設計

非同期処理は、あるタスクが実行をしている際に、他のタスクが別の処理を実行できる方式である。同期処理では、あるタスクが実行している間、他のタスクの処理は中断される方式である。

* システム全体のコンテキストの設計

- 非同期処理を入れ、多重にコンテキストを用意することにより処理速度の向上を目指す設計が行われる。

2) タスクの構成資源

* タスクの生成

- タスクは生成時に、プログラム部分の他、名前、GUID(一意のID)、優先度、タスクの情報を保持する管理テーブル(Task Control Block: TCB)、スタックが割り当てられる。

* 実行モードと起動方法

- カーネルモード

OSの実行モードであり、全ての命令の実行が許可される。あらゆるハードウェア資源にアクセスできる。

- ユーザモード

通常のプログラムの実行モードであり、命令の実行に制限が加わる。ハードウェア資源に制限・監視付きでアクセスできる。

3) 処理の優先順位

* 割り込みには優先度がある。優先度の高いタスクの割り込みが優先される。

* 割り込みは必要に応じて禁止することができる。割り込みを禁止することを割り込みマスクという。

* マスクできない優先度の高いタスクもあり、これをNon-Maskable Interrupt(NMI)という。

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン