🌐

FreeRTOSのカタカナ用語集

2024/06/08に公開

概要

組み込み開発のFreeRTOSの勉強中なのですが、どの本を読んでもカタカナ用語が多くて意味わからない状況で困ってしまいました。なので、私のような初心者が困ったときの辞書として各カタカナ用語を日常のシチュエーションに例えて説明してみました。

セマフォ (Semaphore)

: セマフォは、トイレの空き状況を示す標識のようなものです。トイレが1つしかない場合、誰かが使用中の時は「使用中」の標識を出し、空いている時は「空き」の標識を出します。他の人は「空き」の標識が出るまで待ちます。

ミューテックス (Mutex)

: ミューテックスは、トイレの鍵のようなものです。トイレを使う時に鍵をかけ、使用後に鍵を開けます。他の人は鍵が開くまでトイレを使えません。

プリエンプティブ・スケジュール (Preemptive Scheduling)

: これは、緊急性の高い仕事を優先する会社のようなものです。例えば、通常業務を行っている時に緊急の電話がかかってきたら、通常業務を一時中断して緊急の電話に対応します。緊急の対応が終わったら、通常業務に戻ります。

タイムスライス (Time Slice)

: これは、子供たちが一つのゲーム機を順番に使うようなものです。例えば、子供Aが10分間ゲームをしたら、次に子供Bが10分間ゲームをします。これを順番に繰り返します。

イベントドリブン (Event-Driven)

: イベントドリブンは、家の中でのベルやアラームに反応するようなものです。家の中で、ドアベルが鳴ったらドアを開けに行く、電話が鳴ったら電話を取る、火災報知器が鳴ったら避難するなど、特定のイベントが発生した時にそれに応じた行動を取ります。

デッドロック (Deadlock)

: これは、道の真ん中で互いに譲らない2台の車のようなものです。車Aと車Bが互いに道を譲らず、どちらも動けない状態です。

スタックオーバーフロー (Stack Overflow)

: これは、洋服の棚が物でいっぱいになり、さらに物を置こうとすると物が崩れ落ちるようなものです。棚には限界があり、それを超えると収拾がつかなくなります。

コンテキストスイッチ (Context Switch)

: これは、仕事中に別のプロジェクトに切り替えるようなものです。今やっている仕事の状態をメモし、新しいプロジェクトの資料を取り出して作業を開始します。次に元の仕事に戻る時は、メモを見て作業を再開します。

リソーススタベーション (Resource Starvation)

: これは、家族の中で食事の取り合いが起き、いつも一番遅く食卓につく人が食事を取れないようなものです。食事が足りなくなり、その人が食べられない状態です。

タスク (Task)

: これは、家の中の様々な仕事(掃除、料理、洗濯など)のようなものです。各仕事は異なる目的を持っており、それぞれが並行して進められます。

フック関数 (Hook Function)

: これは、特定の条件が満たされた時に自動で作動するアラームのようなものです。例えば、キッチンタイマーがゼロになると鳴るアラームのように、特定のイベントが発生した時に特定の動作を行うものです。

キュー (Queue)

: キューは、行列に並ぶようなものです。例えば、映画のチケットを買うために人々が一列に並んでいる様子です。先に並んだ人から順にチケットを買っていきます。

FIFOキュー (FIFO Queue)

: FIFOキューは、「先入れ先出し」の原則で、先に来たものが先に処理される仕組みです。例えば、スーパーマーケットのレジの列です。先に並んだ人が先にレジで会計をします。

タスク・ディスパッチャ (Task Dispatcher)

: タスク・ディスパッチャは、オフィスのマネージャーのようなものです。マネージャーは、各従業員に仕事を割り振ります。どの仕事を誰に割り当てるかを決定し、業務がスムーズに進むように管理します。

プライオリティ・インヘリタンス (Priority Inheritance)

: プライオリティ・インヘリタンスは、ブロックされている重要な仕事を優先させるために一時的に他の仕事の優先度を上げる仕組みです。例えば、レストランで注文を受ける場面を考えてみると、ウェイターが低優先度の注文(例:デザート)を処理しているときに、急ぎの高優先度の注文(例:熱々のステーキを提供する)が来たとします。ウェイターは一時的にデザートの注文を保留にして、ステーキを優先的に処理します。ステーキの注文が完了したら、再びデザートの注文に戻ります。

割り込みサービスルーチン (Interrupt Service Routine, ISR)

: 割り込みサービスルーチンは、突然の緊急電話に対応するようなものです。
あなたが家で料理をしているとしましょう。突然、電話が鳴ります。この電話は重要な緊急連絡です。料理を一時中断して電話を取ります(これが割り込みの発生)。電話の内容を確認し、必要な対応をした後、料理に戻ります。ここで、電話に対応する行動が割り込みサービスルーチンに相当します。

詳細な例:

  1. 料理中の作業: これは通常のプログラムの実行です。
  2. 電話の着信: これはハードウェアの割り込みです。例えば、タイマー割り込みやI/Oデバイスからの割り込みがこれに当たります。
  3. 料理を中断し、電話を取る: これは割り込みサービスルーチン (ISR) の開始です。割り込みが発生すると、CPUは現在の作業を一時停止し、割り込みサービスルーチンを実行します。
  4. 電話に応答し、必要な対応を行う: これはISRの処理内容です。ISRは特定の割り込みに対して必要な処理を行います。
  5. 電話が終わったら料理に戻る: ISRの処理が完了すると、CPUは元のプログラムの状態に戻り、続きの作業を再開します。

このように、割り込みサービスルーチンはシステムが外部からの突然の要求に迅速に対応するためのメカニズムです。日常生活の緊急電話の対応と同様に、プログラムの特定の処理を一時的に中断し、割り込みの処理を優先して行います。

最後に

もしかすると、専門家からすると正確性に欠けるかもしれませんが、初心者が勉強中に考えた案ですので、寛大な心で読んでいただけると幸いです。

Discussion