0

差出人:https ://mail.rtai.org/pipermail/rtai/2012-April/024968.html

何が起こるかというと、真のリアルタイムRTAIタスクがLinuxによって通知されると、未定義の期間、リアルタイムが失われます。

POSIX APIは、一般的にRTAIではサポートされていません。
では、POSIXリアルタイム信号がRTAIのリアル​​タイムタスクに送信されると、制御はユーザースペースに移されますか?しかし、POSIXシグナルもリアルタイムのものであり、カーネルモジュール(?)に書き込むことができるので、どうしてソフトリアルタイムになると言えるのでしょうか。

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

4

1 に答える 1

0

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

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

コードが RTAI で動作する限り、すべて問題ありません。Linux カーネルが実行する必要のある何かを呼び出すと、Linux カーネルは RTAI によって非リアルタイム プロセスとしてスケジュールされるため、リアルタイム性が失われます。つまり経験則として、Linux を通過するものは何でも悪いということです。

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

于 2012-05-03T11:02:57.740 に答える