TRONの今が気になって調べていたところ見かけたので調べることにしました。
さて、突然ですが皆さんはPCにOSを入れているでしょうか。
私はMacでネットサーフィンとお絵描き・Windowsでゲーム・Linuxで遊ぶみたいな使い方をしていましたが、Win11に乗り換えてからは
主に見た目からこちらをメインで使うようになりました。WindowsはペンタブユーザーにやさしいOSです。
前述のOS達は俗に汎用OSと呼ばれるOSです。逆にリアルタイムOS(RTOS)と呼ばれるのものにはμITRONやT-Kernelなどが存在します。私は組み込み分野に疎いので詳しくはありませんが。
両者の違いですが、それは用いられる状況に起因します。
汎用OSは一般的に想像するようなコンピューターに搭載されますが、
RTOSは家電や車、工業用ロボットなど、分野を問わず様々な製品に搭載されています。
汎用OSでは複数のアプリケーションやユーザーに平等にCPUを割り当てることを基本的な目的としている一方、自動車の様な高い信頼性が求めらるシーンで用いられるRTOSでは、限られた時間内に計算を完了する高い応答性を実現することを目的にしています。
設定された時間期限内に処理を行うシステムをリアルタイムシステムと言います。
汎用OSのタスクスケジューリングで一般的なのは、処理を時間で分割する方法です。一定時間で完了しなかったタスクはキューの最後尾に回されます。あるタスクAの処理中にタスクBの処理要求が来ても、Aの時間が終わるまでBは実行されません。
一定時間ごとに処理を切り替える方式は、ラウンドロビンやタイムシェアリング方式と呼ばれます。
一方RTOSでは、あらかじめ決められた優先度に従ってタスクを処理します。タスクAの処理中により優先度の高いタスクBの処理要求が入った場合、Aの処理を中断しBの処理を開始します。同じ優先度のタスクは先に待ち状態に入ったタスクから処理されます。
これによって汎用OSに比べ、高優先度のタスクを早いタイミングで処理することができます。
またタスク管理の他にも、タスク同士の通信機能や割り込み管理、メモリ管理機能など、RTOSには様々な機能が求められます。
とはいえ最近の汎用OSでも時間に加え優先度を組み合わせたタスク管理を行っています。
ただより厳密な応答性能や、OS自体の容量や必要なリソースという面においては組み込み向けのRTOSに利があります。
パーソナルコンピューター向けのBTRONの普及は叶いませんでしたが、プロジェクトの成果は組み込み分野に広く活かされているようです。
また現在でもBTRONの派生として超漢字という製品が販売されています。ちょっと試してみたいです。
参照:
https://www.tron.org/ja/onwebseminar/
https://edn.itmedia.co.jp/edn/articles/1403/18/news003.html
https://www.aps-web.jp/academy/rtos/290/
http://www.chokanji.com/