X



トップページLinux
52コメント17KB
Linuxでシェルスクリプトでリアルタイム制御したい
0001login:Penguin
垢版 |
2022/07/20(水) 20:47:28.15ID:E38JxbXg
組み込み型システムで GNU/Linux を使う場合リアルタイム制御をするには
低遅延カーネルやスケジューラーをリアルタイム(RT)クラスにしないといけないです。

しかしスケジューラを変更するとマルチタスクやストリーム指向プログラミングと
相性が悪いので並列処理が実施されなくなるという危険性があります。

そんな事をせずにシェルスクリプトでリアルタイム制御する方法はありませんか?
0003login:Penguin
垢版 |
2022/07/21(木) 06:46:21.58ID:Xm/8DEW5
なんだ埋め立てスクリプト実行環境構築の質問か
0005login:Penguin
垢版 |
2022/07/24(日) 14:00:16.97ID:HyZhrXmn
むりやな。
まずLinuxにおけるrtを勉強しなされ
0006login:Penguin
垢版 |
2022/07/25(月) 05:52:05.76ID:DbrK9dtP
>>5
そんなことないですよ。
RTカーネルを使うのが常識でしたが
それをカバーする簡単なコマンドとパイプを使えば
リアルタイム制御ができるんです。
0007login:Penguin
垢版 |
2022/07/25(月) 07:29:14.47ID:2stbgxf6
限定した範囲でできるいわれてもやな
0008login:Penguin
垢版 |
2022/07/25(月) 08:44:26.47ID:DbrK9dtP
いや、できますよ。
そういう論文もあります。
0009login:Penguin
垢版 |
2022/07/25(月) 08:54:42.00ID:DbrK9dtP
うーん?もしかしてリアルタイム処理とか
UNIX哲学を知らない人かな?
0011login:Penguin
垢版 |
2022/07/26(火) 07:13:01.67ID:ApeLtyhl
この2つですね。普通のLinuxでシェルスクリプトを使って
最大13ミリ程度の低遅延のリアルタイム制御を実現しています。

POSIXに準拠するために特殊なハードウェアが限定される
リアルタイム拡張を使わない。徹底してますよね。

シェルスクリプトを用いたUNIX哲学に基づくリアルタイム制御
https://www.sea.jp/ss2021/download/11-SS2021.pdf

UNIX機におけるIoT機器制御のためのタイミング管理
https://www.sea.jp/ss2021/download/12-SS2021.pdf
0012login:Penguin
垢版 |
2022/07/26(火) 23:33:41.65ID:3H0dO0fw
>>11
有り難う
読んでみます
リアルタイムの定義は精度ではないとは思いますが
最大13ミリ秒の精度のものを
一般的にはリアルタイムとは呼ばないと思います
0013login:Penguin
垢版 |
2022/07/27(水) 01:26:59.30ID:6brb/JzW
でもリアルタイムカーネルという特殊なものを使わなくても
UNIX哲学のやり方でリアルタイム制御ができるのはすごいと思いませんか?
特殊なハードウェアが不要なので移植性に優れていて淘汰されないんですよ
POSIXに準拠してるコマンドだけを使ってるから
シェルスクリプトはPythonなんか使うよりも移植性が高いんです
0014login:Penguin
垢版 |
2022/07/27(水) 01:29:58.04ID:6brb/JzW
倒立振子のシステムを構築できてるから
リアルタイム制御の定義に当てはまると思います。
UNIX哲学のを取り入れたPOSIX原理主義だけが
リアルタイムカーネルを使わずにリアルタイム処理を実現できるのです。
0015login:Penguin
垢版 |
2022/07/27(水) 13:43:54.98ID:YYqoZvos
何に使えるんでしょうか?
用途は何ですか?
0016login:Penguin
垢版 |
2022/07/27(水) 18:55:25.19ID:KqFwJ6i0
>>15
論文を読みましたか?
リアルタイムカーネルを使わずに、シェルスクリプトをリアルタイム制御に使えます。
UNIX哲学に基づいていて移植性・持続性を最大限に高めるためにシェルスクリプトが使えるようになります。
ハードウェアに依存しないものは、多少性能が劣っても将来淘汰されにくいとされています。
20年や30年経っても保守をあまりやらなくても動作するソフトウェアの開発手法です。
0017login:Penguin
垢版 |
2022/07/27(水) 18:58:44.50ID:YYqoZvos
>>16
何に使えるんでしょうか?
用途は何ですか?
0018login:Penguin
垢版 |
2022/07/27(水) 19:06:31.52ID:KqFwJ6i0
だーかーらー、倒立振子のシステムとかですよ
0019login:Penguin
垢版 |
2022/07/27(水) 19:09:48.71ID:YYqoZvos
>>18
一般的なリアルタイムOSの用途は何でしょうか?
シェルスクリプトで置き換えられますか?
0020login:Penguin
垢版 |
2022/07/27(水) 19:21:13.08ID:KqFwJ6i0
論文を見てください。シェルスクリプトでも低遅延で動かすことができて
倒立振子のシステムを構築できるので、リアルタイム制御ができています。

UNIX環境ではタスクスケジューラの影響でプロセスの実行タイミングが
正確に予測できないから、リアリタイム制御に支障をきたしてしまうわけです。

だからこれまではリアルタイム制御を必要とする組み込み型システムでは
プロセスのプライオリティを変更したり、スケジューラのリアルタイムポリシーを
SCHED_FIFOに設定するなどしてプロセスの優先度を高めるという手法とか
Linuxカーネルを低遅延カーネルに置き換えるなどの工夫が行われてきたでしょ?

そういったことが要らなくなるんですよ。
0021login:Penguin
垢版 |
2022/07/27(水) 19:28:18.24ID:YYqoZvos
>>11
>最大13ミリ程度の低遅延のリアルタイム制御を実現しています。
13ミリ秒なんて低遅延なんて呼ばないと思います

>>20
>Linuxカーネルを低遅延カーネルに置き換えるなどの工夫が行われてきたでしょ?
この辺のシステムで問題にしているのは13ミリ秒なんてオーダーですか?

>そういったことが要らなくなるんですよ。
本当に要らなくなりますか?
0022login:Penguin
垢版 |
2022/07/27(水) 19:44:11.19ID:KqFwJ6i0
リアルタイムの定義は人それぞれでしょうね。
それだけじゃ足りないという人もいれば十分という人もいるでしょう。

しかしリアルタイムカーネルが不要になることは
倒立振子のシステムを構築していることで証明されています
0023login:Penguin
垢版 |
2022/07/27(水) 22:57:40.21ID:YYqoZvos
>>22
>リアルタイムの定義は人それぞれでしょうね。
リアルタイムシステムの定義ははっきりしていて
予め決められた時間以内での動作が保証されている
システムのことです

13ミリ秒以内に確実に動作が保証されているなら
それもリアルタイムシステムと言えるでしょう

しかし一般的なリアルタイムOSの使いどころを考えると
たとえ13ミリ秒以内の動作が保証されていても
13ミリ秒では精度が粗すぎるのではないでしょうか?

>>20
>そういったことが要らなくなるんですよ。
要らなくならないと全く思えません
0024login:Penguin
垢版 |
2022/07/27(水) 22:58:36.60ID:YYqoZvos
訂正
>>20
>そういったことが要らなくなるんですよ。
要らなくならると全く思えません
0025login:Penguin
垢版 |
2022/07/28(木) 01:05:46.42ID:ks+/6RLe
>>23
> 予め決められた時間以内での動作が保証されている
> システムのことです
それはあなたの定義ですね。
論文にはそんなことは書かれていません。

そもそもディスからの読み込みとかスワップがあるので
技術的に予め決められた時間以内での動作が保証するのは不可能です
0026login:Penguin
垢版 |
2022/07/28(木) 01:29:33.91ID:YWAvkwsi
>>25
あなたの上げてくれた論文で参照されている文献を
いくつか読まれた方が良いですよ
0028login:Penguin
垢版 |
2022/07/28(木) 01:47:39.81ID:ks+/6RLe
>>26
その文献の名前を言ってみてください
0029login:Penguin
垢版 |
2022/07/28(木) 01:49:26.28ID:ks+/6RLe
>>27
そういうのは専用のハードウェアが必要になるから
移植性・持続性が実現できません
0030login:Penguin
垢版 |
2022/07/28(木) 01:52:43.00ID:YWAvkwsi
>>29
リアルタイムの一般的な定義が書いてあるよ
>>23は俺の定義ではない
それとリアルタイムOSで求められる時間精度がどれくらいかも分かる
13ミリ秒ってw
0031login:Penguin
垢版 |
2022/07/28(木) 02:24:20.06ID:ks+/6RLe
だから人それぞれって言ってるでしょ
倒立振子のシステムみたいに13ミリ秒で十分な場合もあれば
1ミリ秒ぐらい必要な場合もあるでしょうね
0032login:Penguin
垢版 |
2022/07/28(木) 02:32:27.60ID:YWAvkwsi
>>31
>>23

一般的なリアルタイムOSがターゲットしている精度とは
1000倍くらいかけ離れていてお話にならないってのが
率直な感想です
0033login:Penguin
垢版 |
2022/07/28(木) 03:02:31.62ID:ks+/6RLe
そういうのは特殊な機能を持ったハードウェアと
カーネルの入れ替えが必要で、そういうは移植性や持続性に劣るわけです
だから論文で使ってるようなラズパイでは無理なんです

この論文のすごいところはUNIX哲学に基づいたリアルタイム制御のシステムで
移植性や持続性を最大限に高めるためにシェルスクリプトを使って
リアルタイム制御が可能であることの有効性を実証した所
0034login:Penguin
垢版 |
2022/07/28(木) 03:18:27.20ID:YWAvkwsi
>>33
RT LinuxとかART-LinuxとかRTAIとか
普通のPCAT互換機で動きますがな
0035login:Penguin
垢版 |
2022/07/28(木) 03:29:50.51ID:ks+/6RLe
ハードウェアがサポートしている場合の話ね。ここ読めばわかるよ。
https://www.sea.jp/ss2021/download/12-SS2021.pdf

RTLinuxを導入しようとした場合、ハードウェアがサポートしてるか確認して
Linuxカーネルのソースコード一式とRTLinuxのパッチを用意して
ビルドを成功させないといけない。この時点でほとんどの人は脱落する

さらにリアルタイム性を確保するために、一般のシステムコールが使えない

こんなものよりもオプション扱いのPOSIX 1003.1bを含まない
POSIX.1-2017を使って、シェルスクリプトで同じことができる方が
移植性も持続性も高いわけだ
0036login:Penguin
垢版 |
2022/07/28(木) 03:34:17.36ID:YWAvkwsi
>>35
だからw精度のオーダーが全然違うやろ?
1000倍の精度で闘ってる物の代替にはならんのだってばw
0037login:Penguin
垢版 |
2022/07/28(木) 03:40:31.18ID:YWAvkwsi
>>35
そのサポートが必要と言ってるハードってなんだ?
その辺の電気屋でパソコン買ってきたら動くぞ
0038login:Penguin
垢版 |
2022/07/28(木) 03:49:11.31ID:rGXorJqB
ユニケージ開発手法の所なのね
あそこってシェルスクリプトで実現する事が最優先事項で、後はおざなりな印象なんだよね
0039login:Penguin
垢版 |
2022/07/28(木) 08:36:19.19ID:TMvOtyLX
またユニケージはデタラメで間違いだらけの論文書いてるのか?
やさしいWeb3レベルじゃん
0040login:Penguin
垢版 |
2022/08/01(月) 09:07:16.94ID:wcG5CFOI
よし、今週も頑張ろう
0041login:Penguin
垢版 |
2022/09/30(金) 09:07:58.31ID:Ci9QqQ5W
カーネルをrtでコンパイルするだけかな
誰でもできるよ
0042login:Penguin
垢版 |
2022/09/30(金) 12:06:17.72ID:2tPMfyYU
>>41
POSIXに準拠してないし、そんなものに依存したら
持続性がなくなるだろ。POSIX原理主義なら20年動くんやで
0043login:Penguin
垢版 |
2022/09/30(金) 12:48:11.85ID:xHTvZxaw
要らんそんなもん
ゴキブリにでも食わしとけ
0044login:Penguin
垢版 |
2022/09/30(金) 20:54:42.16ID:2tPMfyYU
Pythonなんかで作ったウェブサービスは数年で動かなくなるが
シェルスクリプトで作ったショッピングカートCGIは
ノーメンテで10年間動いている
0045login:Penguin
垢版 |
2022/10/21(金) 22:35:56.13ID:ID0kBxpZ
1000倍の精度で戦っている物の代替にはならんのだってばw
0046login:Penguin
垢版 |
2022/10/22(土) 00:22:33.16ID:kiA5DwNO
シェルスクリプトは速い
1秒間に1000回もコマンドを叩ける
0047login:Penguin
垢版 |
2022/10/22(土) 01:59:35.18ID:Rtj1I2cl
Cで書いたら何回関数呼べるかな?
0048login:Penguin
垢版 |
2022/10/24(月) 15:06:58.54ID:yUV2cPWp
しかしながらなかなか興味深いと思いました
0050login:Penguin
垢版 |
2022/10/31(月) 20:01:40.82ID:17Wpz/ii
>>44
シェルスクリプトはOSの機能なんだからあたりまえだろw
0051login:Penguin
垢版 |
2023/05/05(金) 23:32:17.36ID:uKa5ylSS
シェルスクリプトがOSの機能?
寝言は寝てから言え
0052login:Penguin
垢版 |
2024/03/22(金) 17:29:37.88ID:Ay60hcGb
すごいなぁ
速いプロセッサで「たまたま」時間内に処理が終わっただけを
「リアルタイム処理」と言えちゃうのは

「リアルタイム処理」は許容応答遅延を決めて
それより小さくなるように「割込みマスク」なりを最低限用いる思想なんだが

倒立振り子とミサイルじゃ応答許容度が全然違うからね
レスを投稿する


ニューススポーツなんでも実況