2012-04-21 3 views
0

https://mail.rtai.org/pipermail/rtai/2012-April/024968.htmlPOSIXリアルタイム信号はソフトリアルタイムになりますか?

は何が起こるだろうことは、真のリアルタイムRTAIタスクは、Linuxで を通知されたときに、未定義の期間のためのリアルタイムを失うだろうということです。

POSIX APIは、一般的にRTAIではサポートされていません。
したがって、POSIXリアルタイム信号がRTAIのリアル​​タイムタスクに送信されると、コントロールはユーザ空間に移動しますか?しかし、私はPOSIXシグナルもリアルタイムなものだと思うので、カーネルモジュール(?)で記述することができます。どのようにソフトリアルタイムになると言えるでしょうか?

引用の理由がわかりません。紛失している点を説明してください。

答えて

0

まず、とはどういう意味ですか?コントロールはユーザー空間に移動しますか?あなたのタスクがカーネル空間にある場合、それはユーザー空間にシフトすることはありません。それがユーザー空間にあれば、それはすでにそこにあります!

RTAIでは、ハードリアルタイムタスク、ソフトリアルタイムタスク、およびLinuxカーネルがあります。タスクは、RTAIまたはLinuxカーネルによってスケジューリングされます。 RTAIはリアルタイムの振る舞いを保証しますので、締め切りや期間などはRTAIになります。しかし、Linuxはこれを理解しておらず、気にもなりません。

あなたのコードがRTAIで動作する限り、すべて正常です。 Linuxカーネルが行う必要のあるものを呼び出すと、LinuxカーネルはRTAIの非リアルタイムプロセスとしてスケジュールされるため、リアルタイム性が失われます。大雑把に言えば、Linuxを通過するものは何でも悪いものです。

Linuxからの信号を受け取った場合、Linuxカーネルがこのプロセスの一部を処理しますが、シグナルハンドラはLinuxコンテキストで実行され、割り込みは無効になっています。つまり、RTAIが状況を制御することなく、リアルタイム環境から完全に外れていることを意味します。したがってリアルタイムの危機。

関連する問題