Linux はリアルタイム オペレーティング システムではありません。 Linux はタイムシェアリング オペレーティング システムであり、コンピュータが同時に数人、数十、さらには数百人のユーザーにサービスを提供できるようにするオペレーティング システムです。タイムシェアリング オペレーティング システムは、システムのプロセッサ時間とメモリ空間を特定の時間に分割します。各エンド ユーザーのプログラムに順番に切り替えます。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
RTOS、英語の完全名は Real Time Operating System、つまり、リアルタイムオペレーティングシステム。
1. リアルタイム オペレーティング システムの定義
リアルタイム オペレーティング システム (RTOS) とは、外部イベントまたはデータが生成されたときに、それを受け入れて処理できることを意味します。処理結果は生産プロセスを制御したり、指定された時間内に処理システムに迅速に応答したり、すべてのリアルタイム タスクが協調して実行されるオペレーティング システムを制御したりできます。
したがって、タイムリーな対応と高い信頼性が特長です。
リアルタイム オペレーティング システムは、ハード リアルタイムとソフト リアルタイムに分けられます。ハード リアルタイムでは、指定された時間内に操作が完了する必要があり、これはオペレーティング システムの設計時に保証されます。
ソフト リアルタイムでは、タスクの優先度に従ってできるだけ早く操作を完了する必要があります。私たちが通常使用しているオペレーティング システムは、特定の変更を加えるとリアルタイム オペレーティング システムになることがあります。
リアルタイム オペレーティング システムは、特定の制限時間内に特定の機能が完了することを保証するオペレーティング システムです。たとえば、生産ライン上のロボットが確実にオブジェクトにアクセスできるようにオペレーティング システムを設計できます。 「ハード」リアルタイム オペレーティング システムでは、オブジェクトに到達可能にするための計算が許容時間内に完了できない場合、オペレーティング システムはエラーで終了します。
「ソフト」リアルタイム オペレーティング システムでは、生産ラインは引き続き動作しますが、製品が許容時間内に到着できないため、製品の出力が遅くなり、ロボットが短期間の非生産期間があります。リアルタイム オペレーティング システムには、特定のアプリケーション向けに設計されたものと、汎用のものがあります。
一部の汎用オペレーティング システムは、自らをリアルタイム オペレーティング システムと呼んでいます。しかし、Microsoft の Windows NT や IBM の OS/390 など、ほとんどの汎用オペレーティング システムにはある程度、リアルタイム システム特性があります。つまり、オペレーティング システムが厳密にはリアルタイム システムではない場合でも、リアルタイム アプリケーションの問題の一部を解決できます。
2. リアルタイム オペレーティング システムの特性
1) マルチタスク;
2) スレッドの優先順位
3 ) 複数の割り込みレベル
小規模な組み込みオペレーティング システムでは、多くの場合、リアルタイム オペレーティング システムが必要であり、カーネルはリアルタイム オペレーティング システムの要件を満たしている必要があります。
3. リアルタイム オペレーティング システムの関連概念
(1) 基本概念
コードのクリティカル セクション: 以下のコードを指します。加工中は分割不可。コードのこの部分の実行が開始されると、割り込みは許可されません;
リソース: タスクによって占有されるエンティティ;
共有リソース: 複数のタスクで使用できるリソース;
タスク: スレッドとも呼ばれる、単純なプログラムです。各タスクには特定の優先順位が与えられ、独自の CPU レジスタ セットと独自のスタック スペースを持ちます。通常、各タスクは無限ループであり、各タスクはスリープ状態、準備完了状態、実行中状態、一時停止状態、中断状態の 5 つの状態にあります;
タスク切り替え : 現在のタスクの状態を保存します。実行中のタスク (CPU レジスタのすべての内容) をタスク自身のスタック領域に格納し、次に実行する次のタスクの現在のステータスをタスクのスタックから CPU のレジスタにリロードして、次のタスクの実行を開始します。
# カーネル: 各タスクの管理、各タスクへの CPU 時間の割り当て、およびタスク間の通信を担当します。非プリエンプティブル コアとプリエンプティブル コアに分割; スケジューリング: カーネルの主な役割の 1 つは、どのタスクを実行するかを決定することです。一般的には優先度スケジューリング方式に基づく; (2) 優先度に関する問題 タスクの優先度: 優先度を変更できない静的優先度と、優先度を変更できる動的優先度に分けられる; 優先順位の逆転: 優先順位の逆転の問題は、リアルタイム システムで最も一般的な問題です。共有リソースを割り当てると、優先度の低いタスクが最初に実行され、優先度の高いタスクが後で実行されることがあります。解決策は、「優先順位継承」アルゴリズムを使用してタスクの優先順位を一時的に変更し、優先順位の逆転を抑えることです。 (3) 相互排除 共有データ領域はタスク間の情報交換を容易にしますが、共有データを処理する際には各タスクの排他性を保証する必要があります。相互排他条件を満たす一般的な方法としては、割り込みをオフにする、テスト アンド セット命令 (TAS) を使用する、タスク切り替えを禁止する、セマフォを使用するなどがあります。 リアルタイム オペレーティング システムを使用する意義は、さまざまな予期せぬイベントをタイムリーに処理できること、つまり、パフォーマンスを測定するための最も重要かつ代表的なパフォーマンス指標パラメータであるさまざまな割り込みを処理できることにあるためです。組み込みリアルタイム オペレーティング システムでは、間違いなく割り込み応答時間になるはずです。割り込み応答時間は通常、次のように定義されます: 割り込み応答時間 = 割り込み遅延時間、CPU 状態を保存する時間、関数に入るカーネルの ISR の実行時間。割り込み遅延時間 = MAX (割り込みをオフにする最大時間、最大命令時間) ISR の最初の命令の実行を開始する時間。
TSOS、英語の正式名称はTime-sharingOperatingSystem、つまりタイムシェアリングオペレーティングシステムです。
コンピュータが同時に数人、数十人、さらには数百人のユーザーにサービスを提供できるようにするオペレーティング システムは、タイムシェアリング オペレーティング システムと呼ばれます。コンピュータを多くのエンド ユーザーに接続することにより、タイムシェアリング オペレーティング システムは、システムのプロセッサ時間とメモリ領域を一定の間隔で各エンド ユーザーのプログラムに順番に切り替えます。
時間間隔が短いため、各ユーザーは自分がコンピューターを独占的に所有しているように感じます。タイムシェアリング オペレーティング システムの特徴は、リソースの使用率を効果的に高めることができることです。たとえば、UNIX システムは、タイムシェアリング操作を効果的にサポートするために、剥奪された動的優先順位 CPU スケジューリングを使用します。
タイムシェアリングシステムは、ユーザーのニーズに応えて誕生した新しいタイプのOSです。多チャネルバッチ処理システムとは性能差が全く異なります。ユーザーのニーズは、具体的には以下の側面に反映されます: 人間とコンピューターの相互作用 共有ホスティング ユーザーがコンピューターにアクセスするのに便利
1. タイムシェアリング システムの基本的な考え方
タイム スライス: コンピュータのシステム リソース (特に CPU 時間) を時間に分割します。各期間はタイム スライスと呼ばれ、各ユーザーが順番にタイム スライスを使用します。
タイムシェアリングテクノロジ: プロセッサの実行時間を非常に短いタイムスライスに分割し、タイムスライスに従ってプロセッサを各オンラインジョブに順番に割り当てます。
タイムシェアリング オペレーティング システム: オンラインのマルチユーザー対話型オペレーティング システムです。一般に、タイム スライス ローテーションは、1 台のコンピュータが複数の端末にサービスを提供できるようにするために使用されます。各ユーザーに対して十分に速い応答時間を確保し、インタラクティブなセッション機能を提供します。
設計目標: ユーザーのリクエストにタイムリーに応答し、可能な限りシステム リソースの使用率を最大化します。
オフィスオートメーション、教育、トランザクション処理、および人間と機械の対話が必要なその他の場面に適しています。
2. 動作方法
ホストは複数の端末に接続されており、各端末はユーザーによって使用され、対話的にシステムに対してコマンド要求を行い、システムはコマンドを受け入れます。各ユーザーからの送信、タイム スライス ローテーションを使用してサービス リクエストを処理、結果を端末上で対話的にユーザーに表示、ユーザーは前のステップの結果に基づいて次のコマンドを発行します
タイムシェアリングの実装の鍵システム 問題: タイムリーな受け取り。速やかに対処してください。
3. 機能
対話性: ユーザーは、システムと人間とコンピューターの対話を行います。
多重性: 複数のユーザーがそれぞれの端末で同じ CPU を同時に使用します。
独立性: ユーザーは、互いに干渉したり混乱したりすることなく、互いに独立して操作できます。
適時性: ユーザーはシステムから短時間でタイムリーな回答を得ることができます。
応答時間に影響する要因: 端末の数、タイム スライスのサイズ、情報交換の量、および情報交換の速度。
RTOSとTSOSはそれぞれに特徴があり、RTOSはモーションコントロールやキー入力などのリアルタイム処理が必要なシステムなど、比較的低速なMCUによく使われます。通常はミリ秒レベル、さらには米国レベルの応答が必要です。
タイムシェアリング: 現在普及している PC とサーバーはすべてこの動作モードを採用しており、CPU 動作を複数のタイム スライスに分割してさまざまなコンピューティング リクエストを処理します。
リアルタイム: 通常、エレベーターの昇降制御など、ボタンを押すなどのアクションに対してリアルタイム処理が必要なマイクロコントローラーで使用されます。
上記の分析を通じて、Linux はタイムシェアリング システムであることが明らかですが、リアルタイムに変更できることがわかります。例: UCOS はリアルタイムです。 Linux から変更されたシステム. それらの違いについては、Baidu からの同様の回答を引用することができます:
タイムシェアリング システムは、同時に 2 つ以上のアカウントにサービスを提供できるシステムです。
関連する推奨事項: 「Linux ビデオ チュートリアル」
以上がLinux はリアルタイム オペレーティング システムですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。