2012-04-28 7 views
1

リアルタイムシステムに課されるタイミング制約は、スレッドまたはタスクが、タスクの負荷のために逐次実行されるプログラムがタイミングを保証できないタイミングに基づいて、スレッドまたはタスクが独自の実行を制御する必要があることを意味しますか?リアルタイムシステムはなぜ並行ですか?

よろしくお願いいたします。

+2

実際には、いくつかのスレッドのコンセプトが実際には存在しない小さな組み込み機器で動作するリアルタイムシステムがたくさんあります(そして、私たちはハードrt保証について話しています)。したがって、あなたの前提は間違っています:) – Voo

+0

システムが時間に敏感な外部プロセスを制御し、予測不可能な外部入力に反応する場合、応答を出す前にタスクを完了するか、別のタスクに介入するのを待つことはできません。 2つ以上のタスクを同時に処理する必要があります。 – joshp

+1

@Vooに同意すると、私はプロセスを使用せず、スレッドもなく、割り込みにも依存してマルチタスクを処理するrtコードで作業していました。私はそのコードを同時に考えます。今日は並行してどういう意味ですか? – joshp

答えて

5

1つのスレッドでリアルタイムシステムを作成することができますので、同時に実行する必要はありません。

スレッドを使用すると、リアルタイムシステムで役立つことがありますが、独自の問題が発生する可能性があります。

おそらく、すべてのスレッドが何をしているのかを意識する必要があるため、リアルタイム性を並行性に関連付けることができます。

-1

同時<>他の人が投稿したようにリアルタイム。

リアルタイムシステムは、優れたIOパフォーマンスのために、事前スケジューラを使用する傾向があります。協調スケジューリングまたは非スケジューリングスケジューリングは、待ち時間と全体的なIOパフォーマンスが重要ではないアプリケーションにのみ適しています。

「本当の」並行性がacutally使用されるかどうか、ie。複数のコアが別の問題です。

1

私はピーターの答えが好きでしたが、私は詳しく説明したいと思います。

リアルタイムシステムの一部である外的な物理デバイス、つまりリアルタイムソフトウェアとコンピュータが相互作用する部分には、何もないものから何らかの並行性があります。リアルタイムシステムは本質的に並行ではありませんが、大部分ではないにしても多くはある程度です。

リアルタイム性のあるソフトウェアには、外生的な部分の並行性の量に関係なく、一般的にはnoneからの並行性があります(いわゆるPeterと呼ばれる「マスタースレッド」) /等。適切であるとみなされる。

そして、Peterが指摘したように、ソフトウェアの並行性が高ければ高いほど、より複雑で難しい並行性制御が得られます。これは一般に当てはまり、時間の制約のためにリアルタイムソフトウェアで悪化する。いくつかの評判の良いソフトウェア科学者は、人間の心は何かの高度な非同期並行性を管理するのにはあまり適していないと主張しています。

エドワード・リーは、この技術レポート「The Trouble With Threads」www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.pdfに精通して書かれているように、並行スレッドの最も批評家の一人です。

+0

私は数年前に「スレッドの問題」を読んだ。私がこのレポートを読んだとき、私は、アクター、メッセージ・パッシング、erlangなどは少なくとも言及されていましたが、ロックに重大な過度の信頼性を持つ素朴なスレッド実装を取り除くことにも感銘を受けませんでした。しかし、私が結論に至ったとき、私はちょうど..うーん、言葉は私にはうまくいかなかった。決定論的手段は決定論的手段をもって で達成されるべきである。私たちのデスクトップシステムは、混乱している時に1つの割り込みを構築しています。 I/O割り込みは、カオス的に近づき、スレッドを準備します。スレッドの問題は、代替手段がないことです。 –

関連する問題