初心者向けのリアルタイムオペレーティングシステム

こんにちは、Habr!

今日は、リアルタイムオペレーティングシステム(RTOS)などの興味深いことについてお話します。 これが経験豊富なプログラマーにとって興味深いものかどうかはわかりませんが、初心者はそれが好きになると思います。



RTOSとは何ですか?



ウィキペディアを見ると、4つの定義があります。

要するに、RTOSは、一定期間内に外部イベントに応答するオペレーティングシステムです。 ここから、RTOSの主な目的、つまりイベントへの迅速な対応が必要なデバイスを理解できます(ただし、RTOSの動作を中断と混同しないでください)。



なぜ必要なのですか?



これにはかなりの理由があります。

まず、RTOSはマルチタスク、セマフォプロセスの優先度などをサポートします。

第二に、それは非常に軽く、ほとんどリソースを必要としません。

第三に、ほとんどすべてのハードウェアで上記のすべてを取得できます(たとえば、FreeRTOSは8ビットAtMegaでも動作します)。

そして第四に、ただ遊んで楽しんでください。



3つの有名なRTOSの概要。



注意:以下は私の個人的な意見です。



FreeRTOS


今日最も人気のあるRTOSの1つ。 大量の鉄に移植されました。 公式サイト



長所


1)無料

2)大量の鉄に移植

3)強力な機能

4)グラフィックス、インターネットなど、さまざまなライブラリがあります。

5)優れたドキュメント。

短所


1)新しいハードウェアへの移植のかなり複雑なプロセス。



結論:これは、優れたドキュメントを備えた真にプロフェッショナルなRTOSです。 ハードウェアにすでにポートがある場合、初心者に適しています。



Keilrtx


最近まで、このRTOSは商用でしたが、最近オープンになりました。 armアーキテクチャでのみ機能します。 公式サイト



長所


1)無料

2)(armのアーキテクチャ内で)新しいハードウェアに簡単に移植できます。

3)グラフィックス、インターネットなど、さまざまなライブラリがあります。



短所


1)Keilと一緒に働くことはほとんど不可能です

2)わずかに切り捨てられた機能

3)アームのみがサポートされています。

4)(個人的な経験から)多くのRTOSの速度が低下します。

結論:初心者および小規模プロジェクトに最適です。



uc / os


強力な商用RTOS。 サイト



長所


1)膨大な数の関数とライブラリ。

2)多くの鉄をサポート

短所


1)コマーシャル。

2)使いにくい。



結論:初心者にとっては、RTOSと呼ぶことができます。



その他の興味深いRTOS



RTLinux通常のLinuxベースのRTOS。

UnixベースのQNX RTOS。



RTOSを使用した開発の機能



まず、最初に、次のことを理解する必要があります。RTOSはWindowsではありません。 インストールできません。 このシステムは、単にプログラムでコンパイルします。

RTOSでプログラムを作成する場合、通常の意味での関数は使用されません。 違いは、プロセス(またはタスク)が使用されることです。違いは、プロセスとは異なり、プロセスは無限ループであり、終了しないことです(誰かまたは彼自身が彼を殺さない限り-つまり、メモリからアンロードします)。

複数のプロセスが有効になっている場合、RTOSはそれらを切り替えて、コンピューターの時間とリソースを順番に割り当てます。 ここでプロセスの優先順位の概念が発生します-2つのプロセスが同時にマシン時間を必要とする場合、RTOSはそれをより優先順位の高い人に与えます。

RTOSには特別な遅延機能があります-1つのプロセスの遅延時間の間、時間が無駄に消えないように、2番目のプロセスが実行されます。

セマフォのようなものについて話しましょう-これは、アプリケーションリソースへのプロセスのアクセスを制御するようなものです。 各リソースにはマーカーがあります-プロセスがリソースを必要とするとき、それはそれを取り、このリソースを使用します。 マーカーがない場合、プロセスは返されるまで待機する必要があります。 例を挙げましょう。異なるプロセスが1つのUARTで情報を送信します。 セマフォがなかった場合、それらは順番にバイトを送信し、混乱が判明します。 そのため、最初のプロセスはUARTでマーカーを取得し、メッセージを送信して2番目に送信しました(など、無限に)。



RTOSの追加ライブラリ。



多くの場合、RTOSは、たとえばグラフィックス、インターネットなどで作業するためのさまざまなライブラリを提供します。 彼らは本当に便利であり、それらを使用することを軽disしません。 ただし、RTOSが書かれているRTOSがないと機能しません。

以下に例を示します。

RTX Graphics Internet File Systemの場合



2番目の(おそらく最後の)パートでは、ミューテックス、メッセージバッファ、およびそれらの使用方法について説明します。



All Articles