FREE AID

機電系フリーランスエンジニア求人情報サイト「フリーエイド」

  • TOP>
  • 記事一覧>
  • リアルタイムOSとは?汎用OSとの違いや特徴を紹介!

リアルタイムOSとは?汎用OSとの違いや特徴を紹介!

2023.10.09更新

機電系エンジニア必見!!貴重なフリーランス案件はこちら ▶

この記事を書いた人

機電系専門ライター Div.長谷川

長谷川

FREE AID編集部 機電系専門ライター Div.
アナログ回路設計・営業を経験した後ライター&ディレクターとして独立。
電気電子・ITジャンルを得意とし、正確で分かりやすい情報の発信を行っています。

時間内に処理を行わなければならないシステムに導入されるリアルタイムOS。今回はそんなリアルタイムOSについて、汎用OSとの違いや特徴を解説します。しっかりと特徴を把握できるように解説しますので、ぜひ最後まで読んでみてください。

リアルタイムOSと汎用OSの違い

まずは、リアルタイムOSが汎用OSとどのような違いを持っているか解説しましょう。汎用OSはWindowsやiOS、Linux、Androidなどの種類があり、誰でも扱えるユーザーフレンドリーなUI、様々なアプリケーションとの互換性を持つのが特徴です。

一方、リアルタイムOSは、汎用OSのような使いやすさや柔軟性を持たない代わりに、処理に時間制限を設け、最悪条件時でも一定時間内に処理を行うことに特化したOSです。その特性上、処理に遅延が発生してはならないシステムに使われることが多く、特に遅延が事故に直結する工場機械や家電、自動車などの組み込み系機器に数多く採用されています。

リアルタイムOSの特徴

それでは、リアルタイムOSが持つ特徴を詳しく紹介します。

最悪応答時間の保証

まず、リアルタイムOSには最悪応答時間(デッドライン)という概念があり、タスク(スレッド)を定められた期間内に処理することが保証されています。このデッドラインの設定により、処理にかかる時間を明確に定義できるため、安全性などを担保できるようになります。

低容量で小型

リアルタイムOSは組み込みシステムで使われるため、コンピュータのスペックが低くても正常に動作することが求められます。そのため、汎用OSと異なり機能は最低限に絞られており、低容量になるような設計が行われています。

タスクを並行処理できる

通常、コンピュータは一度に1つのタスクしか処理できませんが、それでは厳しいリアルタイム性を実現するのが難しいという問題があります。そのため、リアルタイムOSではCPUを仮想化・多重化することで複数のタスクを並行処理できるようになっています。

仮想メモリは使用できない

汎用OSでは、メモリが不足した際に一時的にハードディスクのデータを移す「仮想メモリ」を使い、メモリ以上のデータ処理を可能としています。しかし、リアルタイムOSではリアルタイム性を阻害してしまうことから、仮想メモリは使用できません。仮想メモリがないと、メモリ以上のデータ量を処理した際に正常な動作が行われなくなるため、データ量を抑える工夫が重要となります。

リアルタイムOSの機能

リアルタイムOSは「リアルタイム性」を重視するOSであることをお伝えしましたが、リアルタイム性を確保するために取り入れられている主な機能について解説します。

ハードリアルタイムとソフトリアルタイム

タスクにはデッドラインが設けられますが、タスク量が多いと全てのタスクを期限内に処理するのが難しくなります。そんな場合に大きな問題を発生させないため、必ず期限を守らなければならないものと、最悪守らなくともよいものに重要度を分ける手法が用いられるのが一般的です。

ここで、期限を過ぎると致命的な問題が発生する場合は「ハードリアルタイム」、致命的ではないが価値が下がっていく場合は「ソフトリアルタイム」と呼ばれます。ハードリアルタイムシステムの方がリアルタイム性への要求が厳しいため「リアルタイム性が高い」といった表現がされます。

タスクスケジューリング

汎用OSでは、タスクの処理を順番に行う「ラウンドロビン」という手法が取られています。しかし、この手法はタスク量が多く、コンピュータのスペックが処理に追いつかない場合、重要なタスクを処理できず致命的な問題が発生する可能性があります。

そこで、リアルタイムOSでは、安全面を確保するための緊急停止など、重要なタスクほど優先して処理する「タスクスケジューリング」が行われています。また、何らかの故障により重要度が高いタスクが完了できない場合でもデッドラインを守る「タイムアウト」機能も同時に有していることが多いです。

セマフォを用いたアクセス制御

複数のタスクが同時に処理された際、メモリやハードウェアに同時にアクセスを行ってしまうと、処理の競合が発生して不具合の原因となります。そこで、競合の問題が発生しうる処理に対して「セマフォ」を導入し、アクセスできるタスクの数を制限するのが一般的です。

セマフォの中では、1つのタスクのみにアクセスを許可するバイナリセマフォが最も多用されています。また、優先順位を考慮したアクセス制御のできるミューテックスや、2以上のタスクにアクセスを許可するカウンティングセマフォなどの方式も利用されます。

リアルタイムOSのセキュリティ課題

最後に、リアルタイムOSの利用において重要となる、セキュリティの課題点についても紹介しておきましょう。これまで、汎用OSが複数のデバイス同士で通信することが多いのに対し、リアルタイムOSは特定の機器内だけで動作することから、セキュリティ上の脅威にさらされにくいと判断されてきました。

しかし、IoTの進化に伴い、リアルタイムOSが搭載された機器も他のデバイスと通信する機器が増えたため、最近は汎用OSと同じようなセキュリティ対策を考える必要が発生しています。現在はセキュリティの脆弱性に対する分析や、セキュリティ対策が確立されていない状況ですが、ハード側・ソフト側でそれぞれ行える対策もあるため、セキュリティを意識した設計がこれから重要になってくるでしょう。

まとめ

今回は、組み込みシステムに良く用いられるリアルタイムOSについて、特徴や機能などをお伝えしました。リアルタイムOSはタスクに最悪応答時間(デッドライン)を設定し、一定時間内にタスクを必ず実行することが特徴のOSです。

タスクの処理を円滑に行うため様々な機能が搭載されており、産業機器や自動車など、処理の遅延が致命的な問題を引き起こす用途において数多く使われています。設計には独自の知識が必要になるので、より詳しい情報を知りたい方はリアルタイムOSの仕様を調べてみてください。

フリーランス×機電系エンジニア!高単価求人はこちら ▶
  • TOP>
  • 記事一覧>
  • リアルタイムOSとは?汎用OSとの違いや特徴を紹介!
【貴重!】機電系フリーランス案件を見る
【貴重!】機電系フリーランス案件を見る