
No.1ベストアンサー
- 回答日時:
貴殿の理解でおおよそ間違っていません。
RTOSの資源の少ない環境においては、タスクは、起動時点で
生成済みで、削除されない作りをすることが多いためです。
ですので、起動されてから生成済みのタスクを起動したり、停止したり
制御をします。
以下、μITRON4.0の場合について回答します。
・「コンパイル時にタスクを生成」とは?
--> 実際には、カーネル起動時にタスクが起動するまでの間に
タスクを生成します。 どんなタスク生成するするかは、
実行時には、ROMテーブルなどに出力されているデータに基づいて
生成されます。そのROMテーブルは、コンパイル前に
変なテキストファイルに定義を書いてそれをコンフュギュレータ
と呼ばれる専用ツールを使って、コンパイルできる言語に変換します。
μITRONによっても方言があって、変なテキストファイルではなく、
直接C言語でROMテーブルなどを定義するものもあります。Nortiという
RTOSはそうなっています。
・汎用OSにおけるタスク生成と、どのように違うのか?
--> 利用するメモリとCPU負荷が少なくて済みます。
静的生成の反対の動的生成では、ヒープメモリ等の獲得が必要に
なります。汎用OSではMMUが搭載されている場合が多く、メモリを
効率的に使えますが、RTOSではそれがなく、メモリが非効率になります。
また、生成時のエラーチェックは、動的生成ではシステム起動時ですが、
静的生成では、コンパイルまでにエラーチェックされていますので
実行時はエラー処理をかなり省くことができます。
・そもそも「タスク生成」とは?
--> タスクを実行するためのタスク固有のワークエリアを確保して
起動をかければ実行できる状態にすること
静的というと、「動かない=あらかじめ決められている」というイメージを持っていますが、正しいでしょうか。
--> そうです。変なテキストファイルであらかじめ決めておきます。
ご回答ありがとうございます。
つまり静的タスク生成とは、
「タスクのワークエリア(メモリ上の作業領域)等をあらかじめ定めておいて、OS起動時にその定義通りにタスクを生成する(ワークエリアを確保する)」
ということですね。
>変なテキストファイル
「静的API」のことでしょうか?
リアルタイムOSにおけるタスク生成についてまとめると、
(参照:onosuke様 参考URL)
1.「静的API」という記法で、制御ブロック(タスクの状態を表すデータ構造)の初期状態やメモリーの割り付けを、あらかじめ定めておく。
2.↑を「コンフィギュレータ」というツールで、コンパイルできる言語に変換する。
3.↑をコンパイルし、ROMテーブルにデータを出力する。
4.OS起動時、↑のデータに基づいてタスクを生成する(ワークエリアを確保し、タスク実行の準備をする)。
また、汎用OSとリアルタイムOSを比べると、
・汎用OS…必要時にワークエリア等を決め、タスクを生成する。
・リアルタイムOS…あらかじめワークエリア等を決めておき、その設定に従ってOS起動時にタスクを生成する。
なるほど! すっきりしました。
以上の解釈に誤りがありましたら、ご指摘お願いいたします。
No.2
- 回答日時:
参考URLからの引用です。
----ここから引用----
>タスクやセマフォなど,OSの管理する各種のオブジェクトを
>必要に応じて動的に生成/削除するのではなく,
>あらかじめ静的に(システム設計時に)生成しておくアプローチがある。
----ここまで引用----
考え方としては、上記引用文のように
設計段階で各種の資源(OSの管理する各種のオブジェクト)を
あらかじめ決定(確定/限定)することです。
上記考え方の実装(実現方法)のひとつが、
「タスクの静的な生成」ですね。
ここで閑話休題。
「リアルタイムOSの特徴」として列挙されるモノは、汎用OSの差異に注目して列挙したモノです。
一方、「上記の考え方」は、「リアルタイムOSの目的」=「制約の厳しい組込システムに特化したOSを提供する」を達成する方針として出てきたものです。
こういったことを踏まえて、
「Bという手段はどういうことなのか?」から視点を変えて、
「Aという目的を達成するための手段がBである」という読み方をすると、
理解しやすくなりませんか?
参考URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20051 …
ご回答ありがとうございます。
参考URLを見てみました。
つまり、リアルタイムOSにおける静的タスク生成は、
「制約の厳しい組み込みシステムに対応するために、あらかじめタスク生成に必要な設定(メモリ割り付け等)を決めておくことで、初期化処理を短くする」
という意味があるんですね。
R32C様のご回答と合わせて、そちらのお礼にてまとめさせて頂きました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- Windows 10 ソフトの実行を自動化したいです。 1 2022/10/15 16:09
- デスクトップパソコン タスク、プログラム実行後に自動シャットダウンしたい 3 2023/08/25 18:01
- Windows 10 Windowsのタイムスケジューラーについての質問です。 先日、Webスクレイピング用のプログラムを 1 2022/09/28 05:51
- Android(アンドロイド) タスクやTodoのandroidアプリで、リスト上でタスクの登録日時を表示できるものはありませんか? 2 2023/07/17 17:54
- Windows 10 タスクマネージャーの設定 2 2022/04/04 07:39
- その他(コンピューター・テクノロジー) ChatGPT ExcelVBAの精度は3.5と4で違いはある? 1 2023/04/21 21:00
- Excel(エクセル) Excel タスク管理のツールのアドバイスをお願いいたします 1 2022/08/07 16:50
- Outlook(アウトルック) outlookの送信エラーについて 1 2022/05/13 12:04
- 中途・キャリア 自分の会社は待遇が良い方なのかどうか 6 2022/06/02 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
生理でも会ってくれるセフレっ...
-
Windows10で最近パソコンを立ち...
-
デスクトップで謎の半透明なウ...
-
エクセルでリソース不足の警告...
-
パソコンのバツ印が出てこなく...
-
PCにps4のコントローラーを接続...
-
サイトの×をクリックしても閉じ...
-
大学内でオンラインゲームをや...
-
[スマホゲームについて] iPhone...
-
ポケモンのなつき度チェック(...
-
『魅力』を
-
ゲーム配信などでクリッピーブ...
-
STEAMで画面が全体表示されない
-
ポケモンのリーフグリーンでハ...
-
男性は好きでもない人と一緒に...
-
彼女がオンラインゲームに夢中...
-
XINPUT1_3.dllとは何でしょうか...
-
3DSはSDカードを付けずに使用で...
-
リトルバスターズのおすすめ攻...
-
「~が如く」と「~の如く」の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10で最近パソコンを立ち...
-
ポポロクロイス物語2について
-
デスクトップで謎の半透明なウ...
-
[スマホゲームについて] iPhone...
-
エクセルでリソース不足の警告...
-
生理でも会ってくれるセフレっ...
-
ポケモンのなつき度チェック(...
-
PCにps4のコントローラーを接続...
-
STEAMで画面が全体表示されない
-
手持ちのポケモンがゆうことを...
-
パソコンのバツ印が出てこなく...
-
男性は好きでもない人と一緒に...
-
PS2のソフトが使えるはずのPS3...
-
3DSはSDカードを付けずに使用で...
-
動画見ながらゲーム等するとPC...
-
PCゲームのプレイ中に突然デス...
-
CPUに高負荷がかかると、Discor...
-
ユーザーアカウントが複数ある...
-
ゲーム中にGPU使用率が急激に下...
-
PCゲームのセーブデータはどこ...
おすすめ情報