セマフォ
Semaphore
せまふぉ
共有資源へのアクセスを制御するための同期機構。カウンティングセマフォ(カウンタで管理)とバイナリセマフォ(0/1で管理)がある。P操作(取得/Wait)とV操作(解放/Signal)で資源の排他制御を行う。
Related
他の資格での定義
共有する資源の使用の可否を表す変数(セマフォ)を使って、複数の処理の排他制御や同期をとる方式。資源を使う前にセマフォの値を減らすP操作を行い、値が0なら空くまで待つ。使い終わったら値を増やすV操作を行い、待っている処理を再開させる。
共有資源を同時に使えるプロセス数を計数値で管理し、排他制御や同期を実現する仕組み。P操作で獲得、V操作で解放を行い、値が0のときは待ち行列に入る。使い方を誤るとデッドロックの原因となる。
並行処理における排他制御と同期の仕組み。カウンティングセマフォとバイナリセマフォがある。P操作(取得)とV操作(解放)で共有資源へのアクセスを制御する。優先度逆転問題が生じる場合は優先度継承プロトコルで対処する。
共有資源へのアクセスを、セマフォと呼ぶ整数の変数とP操作・V操作によって制御する排他制御の方式で、E.W.ダイクストラが考案した。P操作でセマフォの値を減らし、値が負になれば待ち状態に入り、V操作で値を増やして待っているプロセスを起こす。値が0と1だけの2値セマフォは相互排除に、計数セマフォは台数に限りのある資源の割当てに使う。
並行処理における排他制御と同期の仕組み。カウンティングセマフォとバイナリセマフォがある。P操作(取得)とV操作(解放)で共有資源へのアクセスを制御する。優先度逆転問題が生じる場合は優先度継承プロトコルで対処する。
共有資源の利用を、セマフォと呼ぶ整数の変数で管理して排他制御や同期を行う方式。資源を使う前にP操作で値を減らし(0なら待つ)、使い終えたらV操作で値を増やして待っている処理を再開させる。値が0と1だけのバイナリセマフォは相互排除に使われる。
Past Exams
過去問での出題
過去問で 13 回出題(エンベデッドシステムスペシャリスト試験 9・応用情報技術者試験 3・高度試験 午前Ⅰ 1)。うち 1 回は用語そのものを問う問題です。
- 令和7年度 秋期 応用情報技術者試験 午前 問16正解の選択肢(IPA の PDF を新しいタブで開きます)
- 令和7年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問6(IPA の PDF を新しいタブで開きます)
- 令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問6(IPA の PDF を新しいタブで開きます)
- 令和4年度 春期 応用情報技術者試験 午前 問17選択肢(IPA の PDF を新しいタブで開きます)
- 令和4年度 春期 高度試験 午前Ⅰ 問6選択肢(IPA の PDF を新しいタブで開きます)
- 平成31年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8(IPA の PDF を新しいタブで開きます)
- 平成30年度 春期 応用情報技術者試験 午前 問18(IPA の PDF を新しいタブで開きます)
- 平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問8用語を問う問題(IPA の PDF を新しいタブで開きます)
- 平成28年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問7選択肢(IPA の PDF を新しいタブで開きます)
- 平成25年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問5選択肢(IPA の PDF を新しいタブで開きます)
出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「用語を問う問題」は、この用語の説明や特徴そのものを問う問題です。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。
Related
関連キーワードの用語
相互排他(Mutual Exclusion)のための同期機構。バイナリセマフォと似ているが、所有権の概念を持ち、ロックしたタスクのみがアンロックできる。優先度逆転問題への対策として優先度継承プロトコルをサポートするものが多い。
低優先度タスクが共有資源をロック中に、高優先度タスクがその資源を待つことで、実質的に低優先度タスクが高優先度タスクより先に実行される現象。中優先度タスクによるプリエンプションにより待ち時間が無限に延びる可能性がある(無限優先度逆転)。
優先度逆転問題の対策手法。低優先度タスクが共有資源をロック中に高優先度タスクがブロックされた場合、低優先度タスクの優先度を高優先度タスクと同じレベルに一時的に引き上げる。これにより中優先度タスクによるプリエンプションを防止する。
ビットパターンによって複数のイベントの発生を管理するタスク間同期機構。各ビットが異なるイベントに対応し、AND条件(全イベント発生待ち)やOR条件(いずれかのイベント発生待ち)で待ち合わせが可能。RTOSの基本的な同期機能の一つ。
複数のタスクが互いに相手の保持する資源の解放を待ち合い、どのタスクも処理を進められなくなる状態。相互排他、保持と待ち、非プリエンプション、循環待ちの4条件が全て揃うと発生する。資源の獲得順序の統一などで予防する。
優先度逆転とデッドロックを防止する同期プロトコル。各共有資源にその資源を使用するタスクの最高優先度(優先度上限)を設定し、資源をロックしたタスクの優先度を即座に優先度上限まで引き上げる。優先度継承より保守的だが安全性が高い。
