OSEK OSと、その拡張であるAUTOSAR Classic Platform OSをざっくり理解するには、3つのことをわかっていればいいかも。
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
OSってなんですか
10年くらい、OSってなんだかよくわからなかった。
基本、OSを使ったソフトは、DOS/UNIXでしか開発していない。
OSといっても、コマンドを作るだけで、面倒なことはしない。
コマンドは、実行したら終わって欲しい。
コマンドは他のソフトと並列で動くかどうかは、プログラムは知らなくていい作りになっている。
Taskという概念はいらない。
Taskを知らないから、TaskのためのEventとか、Alarmとか、Counterってなんのためにあるか知らない。
OSは、Taskを知らなくても、動いてくれるのがOSだと思っていた。
C言語は、DOS、UNIXなどでコマンドで実行するだけでTask記述のいらないプログラムが書ける便利な言語だと思っていた。
OSは、プログラマがタスクを知らなくても、プログラムが書いて動かせるようにする仕組みだと思っていた。
制御ソフトウェアで割り込みとアセンブラで組むときも、DOS、UnixのコマンドをC言語で書くときと一緒。
TASKは全く記述しない。モータ制御をしたいだけだから、センサ割り込みがあったら計算してモータの制御を帰るだけ。
タスクは要らない。
Category 1 ISR(Interrupt service routine), Category2 ISR(interrupt service routine)
Category 1 ISRは、OS、タスクのことは全く気にしなくていい。
それがわかってOSEK OSが大好きになった。
そんなある日、名古屋で、OSC Nagoyaがあった。
12ステップで作る組込みOS自作入門
坂井 弘亮
を開いて説明してくれた。ほら、本の半分のところまでタスクの説明ないでしょ。
OSEKについて、「12ステップで作る組込みOS自作入門」が好きになった。
なぜ、OSマニアの肩は、タスクタスクってうるさいんだろうと思っていたのに。
うるさくないOSもあれば、うるさくないOS本もあるんだって。
タスクは縁の下の力持ちで、システムの土台を支えるのだから、プログラマに姿を見せなくてもいいという持論に賛成者があらわれたようで嬉しかった。
タスクが存在しなくてもいいというわけではない、OSプログラマ以外の人には、タスクの存在を気づかれないような仕組みを作るのがOSプログラマの仕事なのだと思っていた。
メインフレームでも、オフコンでも。
COBOLが悪いんじゃない。COBOLを順に動かすためのスクリプトであるJCL(Job Control Language)が、Job(仕事=タスク)のことがわかっていないと書けないことが問題。COBOLは、英語をプログラミングとして動かすだけの仕組みで、OSのことを知らなくても書けるようにしている。Javascriptが書けて、COBOLが書けねい人は、英語文化圏ではいないように思う。
Event, Alarm, Counter
概念 | Hardware | software | SW別名 |
---|---|---|---|
割り込み | interrupt | Event | software interrupt |
時計 | timer | alarm | software timer |
計数・計時 | clock | counter | softwre counter |
イベントって、ソフトウェア割り込みの一種でタスクで利用するやつ。
アラームって、ソフトウェアタイマの一種でイベント、タスクで利用するやつ。
カウンタって、ソフトウェアカウンタのことで、アラームで利用するやつ。
って書いてあればわかるのに。
イベントは、タスクにイベント待ちがあるタイプで使うやつ。
基本タスク、拡張タスク
基本タスクは、イベント待ちのないタスク。
例えば、UDPなんかを設計するのによい。
拡張タスクは、イベント待ちのあるタスク。
例えば、TCPなんかを設計するのによい。
BCC1, ECC1とBCC2、ECC2
基本タスクは、同じ優先度のタスクがあると、RunningからReadyに戻る時に同じ優先度のタスク先頭に入る。
拡張タスクで、イベント待ちからReadyに戻るときには、同じ優先度のタスクの最後に戻る。
最後に戻るのが嫌なら、同じ優先度のタスクを複数設定しなければいい。
拡張タスクの優先度に1タスクだけ割り当てるのをECC1という。
基本タスクの優先度に1タスクだけ割り当てるのをBCC1という。
拡張タスクの優先度に複数タスク割り当てるのをECC2という。
基本タスクの優先度に複数タスク割り当てるのをBCC2という。
BCC1, ECC1だけだったら、タスクキューを作らなくても配列で管理できるかも。
どちらも合体させると、タスクキューを使う設計もあるかも。
参考資料(Reference)
aspberry Pi 3 Model B+ 向けにリアルタイムOSを実装してみた話
https://qiita.com/tenkoh2/items/baa8e0b6c09669793b4f
[メモ] TrampolineRTOSでLチカ (OSEK/VDX & AUTOSAR APIにあわせたRTOS)
https://qiita.com/mt08/items/65f2ac9bbdae09a34470
MacでLego Mindstorms NXT環境構築 in 2018
https://qiita.com/vivid344/items/2f23f846cd3b135c5a74
ETロボコン開発環境構築 for Mac
https://qiita.com/tac0x2a/items/b1d82050c660935765ef
自己参照(self reference)
OSEKはもう流行らないのでしょうか。AUTOSAR(64)OSEK(1)
https://qiita.com/kaizen_nagoya/items/b87687254b11f30cc2ee
OSEKを図から理解 OSEK(2)
https://qiita.com/kaizen_nagoya/items/f87a7ff5aeb63803a022
OSEK OS(AUTOSAR OS)をざっくり理解するには OSEK(3)
https://qiita.com/kaizen_nagoya/items/c68c0b86b97d4a90e6e2
calloutとcallback, OSEK/VDX OS and AUTOSAR OSEK(4)
https://qiita.com/kaizen_nagoya/items/b95b81354d07b9172a56
OSEK/VDX ISO and 2.23 OSEK(5)
https://qiita.com/kaizen_nagoya/items/4d6bcec01e0132f9c41c
OSEK/VDX OSEK(6)
https://qiita.com/kaizen_nagoya/items/a7720994f2178a15be81
ISO OSEK/VDX and ISO Linux OS 同梱ソースをC++またはRUSTで書く企画 OSEK(7)
https://qiita.com/kaizen_nagoya/items/27899e936c90b415d700
OSEK 記事で views 100,000を目指して OSEK(8)
https://qiita.com/kaizen_nagoya/items/ff45ee55566eeff5f62e
自動車用OSを網羅する OSEK(9)
https://qiita.com/kaizen_nagoya/items/a61144daf500a3f2b4f4
Smallest Set Profile and Automotive Profile, OSEK(10)
https://qiita.com/kaizen_nagoya/items/0c5484f6562cc259e7f0
Exclusive Area, OSEK(11)
https://qiita.com/kaizen_nagoya/items/d87ff4e08378dbcf68a7
自動車のソフトウェア、例えばAUTOSAR の仕事を始めてする方に, OSEK(12)
https://qiita.com/kaizen_nagoya/items/1832634788c23498e054
名古屋で自動車関係のソフトウェア設計する際にあるといいかもしれない知識, OSEK(13)
https://qiita.com/kaizen_nagoya/items/9f01d55e4bd0bd931c96
single task os and data, OSEK(14)
https://qiita.com/kaizen_nagoya/items/6acbd5d2cfd3ed8bca60
AUTOSARといえば O で始まる用語は? OSEK(15)
https://qiita.com/kaizen_nagoya/items/06c969fe5c4b3e7319e0
Automotive Software Expert Examination Exercise, Examples or Extract. OSEK(16)
https://qiita.com/kaizen_nagoya/items/1762e0612ef01e036efb
自動運転資料集(1) OSEK(17)
https://qiita.com/kaizen_nagoya/items/42eb2129e281f25eaab8
TOPPERS of the YearとAUTOSAR, AUTOSAR(39), OSEK(18)
https://qiita.com/kaizen_nagoya/items/f241bb4a819733110b7a
Autosar 2.0を読む, AUTOSAR(25), OSEK(19)
https://qiita.com/kaizen_nagoya/items/b44a1047c2c517d522fe
IT関連技術でお世話になった方々, OSEK(20)
https://qiita.com/kaizen_nagoya/items/8a5bf487594cd106e8b8
AUTOSARの4つの入力, OSEK(21)
https://qiita.com/kaizen_nagoya/items/72cef6028b9697f7968e
AUTOSAR これだけ知っていればなんとかなる。OSEK(22)
https://qiita.com/kaizen_nagoya/items/7a63e706bfb8f331cfe4
AUTOSAR based on ISO, OSEK(23)
https://qiita.com/kaizen_nagoya/items/867a709cdf6f4dbdecc6
AUTOSARと国際規格。AUTOSAR(65), OSEK(24)
https://qiita.com/kaizen_nagoya/items/4ddba03efb942969b125
AUTOSAR入門, AUTOSAR(16), OSEK(25)
https://qiita.com/kaizen_nagoya/items/5e43b8ef0935c32ee11d
AUTOSAR 記事1000までの道, OSEK(26)
https://qiita.com/kaizen_nagoya/items/785473512f5f7f85a6bf
Autosarの課題, OSEK(27)
https://qiita.com/kaizen_nagoya/items/617d10b0e34143030600
AUTOSAR: The past 20 years and he next 10 years, OSEK(28)
https://qiita.com/kaizen_nagoya/items/2dab0707c01059c152c4
Autosar文書を読む(準備), OSEK(29)
https://qiita.com/kaizen_nagoya/items/5f547173544703d267aa
AUTOSARが手に取るように分かるようになる。AUTOSAR(29), OSEK(30)
https://qiita.com/kaizen_nagoya/items/ae092ea6aef89cdc15df
posixとethernet, osekとTCP/IP, osek(31)
https://qiita.com/kaizen_nagoya/items/73b79a4a56f433bd53c0
斉藤直希「組み込み向けリアルタイムOSの基礎知識を整理する」を整理する, OSEK(32)
https://qiita.com/kaizen_nagoya/items/d305e83b37d0c57dceb3
TOPPERS活用アイデア・アプリケーション開発コンテスト受賞作品紹介 まとめ作成中, OSEK(33)
https://qiita.com/kaizen_nagoya/items/72b882d96b2841f25faf
はじめてのAUTOSAR(classic platform) <エンジニア夏休み企画>【読書感想文】, OSEK(34)
https://qiita.com/kaizen_nagoya/items/696ad320f76f284664d7
AUTOSARとSimulink: Adaptive Platform, Classic Platformとマルチコア・共通化, OSEK(35)
https://qiita.com/kaizen_nagoya/items/d613b0b14bfd91989a13
AUTOSAR Abstract Platformへの道(詳細編), OSEK(36)
https://qiita.com/kaizen_nagoya/items/cb217133884fa0a2c704
building block:AUTOSAR Abstruct Platform , OSEK(37),
https://qiita.com/kaizen_nagoya/items/bf7c17624f648fb9f392
系建築家(system architect)になるには, OSEK(38)
https://qiita.com/kaizen_nagoya/items/8c341e69233cb32f6275
自己紹介 OSEK(39)
https://qiita.com/kaizen_nagoya/items/90aa368f296613ec93b5
AUTOSAR 「完全に理解した」, OSEK(40)
https://qiita.com/kaizen_nagoya/items/51983798ad7902b33cb1
一覧
物理記事 上位100
https://qiita.com/kaizen_nagoya/items/66e90fe31fbe3facc6ff
量子(0) 計算機, 量子力学
https://qiita.com/kaizen_nagoya/items/1cd954cb0eed92879fd4
数学関連記事100
https://qiita.com/kaizen_nagoya/items/d8dadb49a6397e854c6d
統計(0)一覧
https://qiita.com/kaizen_nagoya/items/80d3b221807e53e88aba
品質一覧
https://qiita.com/kaizen_nagoya/items/2b99b8e9db6d94b2e971
言語・文学記事 100
https://qiita.com/kaizen_nagoya/items/42d58d5ef7fb53c407d6
医工連携関連記事一覧
https://qiita.com/kaizen_nagoya/items/6ab51c12ba51bc260a82
自動車 記事 100
https://qiita.com/kaizen_nagoya/items/f7f0b9ab36569ad409c5
通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7
日本語(0)一欄
https://qiita.com/kaizen_nagoya/items/7498dcfa3a9ba7fd1e68
英語(0) 一覧
https://qiita.com/kaizen_nagoya/items/680e3f5cbf9430486c7d
転職(0)一覧
https://qiita.com/kaizen_nagoya/items/f77520d378d33451d6fe
仮説(0)一覧(目標100現在40)
https://qiita.com/kaizen_nagoya/items/f000506fe1837b3590df
音楽 一覧(0)
https://qiita.com/kaizen_nagoya/items/b6e5f42bbfe3bbe40f5d
「@kazuo_reve 新人の方によく展開している有益な情報」確認一覧
https://qiita.com/kaizen_nagoya/items/b9380888d1e5a042646b
Qiita(0)Qiita関連記事一覧(自分)
https://qiita.com/kaizen_nagoya/items/58db5fbf036b28e9dfa6
鉄道(0)鉄道のシステム考察はてっちゃんがてつだってくれる
https://qiita.com/kaizen_nagoya/items/26bda595f341a27901a0
安全(0)安全工学シンポジウムに向けて: 21
https://qiita.com/kaizen_nagoya/items/c5d78f3def8195cb2409
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794
Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0
線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001
OSEK OS設計の基礎 OSEK(100)
https://qiita.com/kaizen_nagoya/items/7528a22a14242d2d58a3
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
++ Support(0)
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514
Coding(0) Rules, C, Secure, MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0
プログラマによる、プログラマのための、統計(0)と確率のプログラミングとその後
https://qiita.com/kaizen_nagoya/items/6e9897eb641268766909
なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2
言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4
プログラムちょい替え(0)一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394
Python(0)記事をまとめたい。
https://qiita.com/kaizen_nagoya/items/088c57d70ab6904ebb53
官公庁・学校・公的団体(NPOを含む)システムの課題、官(0)
https://qiita.com/kaizen_nagoya/items/04ee6eaf7ec13d3af4c3
「はじめての」シリーズ ベクタージャパン
https://qiita.com/kaizen_nagoya/items/2e41634f6e21a3cf74eb
AUTOSAR(0)Qiita記事一覧, OSEK(75)
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
LaTeX(0) 一覧
https://qiita.com/kaizen_nagoya/items/e3f7dafacab58c499792
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
Rust(0) 一覧
https://qiita.com/kaizen_nagoya/items/5e8bb080ba6ca0281927
小川清最終講義、最終講義(再)計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 初稿 20220224
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.