お知らせ

schesim version 0.8.0 を公開しました。

2013/11/29 5:39 に Yutaka Matsubara が投稿   [ 2013/11/29 8:45 に更新しました ]

Ruby 1.9系、2.0系で動作する schesim version 0.8.0 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

version 0.7.3からの主な変更点は、以下の通りです。
  • シミュレータ本体(schesim.rb)
    • 機能追加
      • アプリケーションフック機能を追加.
    • その他
      • タスク関数の実装をThreadからFiberに変更.それに伴い,Ruby 1.9.x 以降の環境でのみ動作する.Ruby 1.8.x 以前はサポート外とする.
      • Rakefileの軽微な修正.
      • バージョン番号を0.7.3に更新.
変更点の詳細は、ソースコードパッケージ内のCHANGESファイルをご覧ください。

このリリースでは、シミュレータの機能に大きな変更はありませんが、動作環境が ruby 1.8系から 1.9.3 以降に変更になりました。
これにより、シミュレーション速度が3〜5倍程度高速化されました。rubyの1.9.3からサポートされたFiberを使用していますので、1.9.2以前のrubyでは動作しません。ご注意ください。

本シミュレータに関するご質問やご要望等を、常時受け付けています。
お気軽にお問い合わせください。

schesim version 0.7.3 を公開しました。

2013/04/06 5:27 に Yutaka Matsubara が投稿

約1年ぶりの更新ですが、schesim version 0.7.3 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

version 0.7.2からの主な変更点は、以下の通りです。
  • シミュレータ本体(schesim.rb)
    • 機能追加
      • タスク処理記述から呼び出せるAPIに,mig_tsk を追加.
    • バグ修正
      • マルチコアアーキテクチャにおいて,タスクが待ち状態に遷移すると同時刻に,別コアから起動要求が発生した場合に,エラーで停止してしまうバグを修正.
    • その他
      • タスクが待ち状態に遷移するAPIにおいて,task_api.rbで待ち状態に遷移させるのではなく,タスクスレッドの動作が中断した後に変更するよう修正(他のAPIと統一).
      • Rakefileの不要なコードを削除.
      • バージョン番号を0.7.3に更新.
変更点の詳細は、ソースコードパッケージ内のCHANGESファイルをご覧ください。

今回公開した0.7.3を含めて、これまで公開しているバージョンでは、ruby1.8系で動作させることを想定しており、より新しいバージョンのruby(1.9系、2.0系)では動作しないという制限がありました。次のバージョン(0.8.0とする予定)で、より新しいバージョンのruby(1.9系、2.0系)で動作するようコードを変更する予定です(そのかわり,ruby1.8系では動作しなくなります)。

本シミュレータに関するご質問やご要望等を、常時受け付けています。
お気軽にお問い合わせください。

schesim version 0.7.2 を公開しました。

2012/03/06 17:15 に Yutaka Matsubara が投稿

schesim version 0.7.2 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

version 0.7.1 からの主な変更点は、以下の通りです。

  • シミュレータ本体(schesim.rb)
    • 機能追加
      • タスク処理記述から呼び出せるAPIに,rot_rdq,wup_tsk,slp_tsk を追
      • 研究用としてBSSアルゴリズムとTPAアルゴリズムの2つの階層型スケジューリングをlabs/以下に追加
        • bss.rb, tpa.rb
    • 動作変更
      • 出力するTLV可視化用リソースファイルのタスク出力順序を,プロセッサID番号,所属アプリケーションID番号,優先度,ID番号でソートするよう変更
    • バグ修正
      • アプリケーション情報ファイルにおいて,デッドラインを持たないタスクのデッドラインにnullを指定した(もしくは,パラメータ指定を記述しない)場合,パラメータの妥当性チェックでエラーが発生してしまうバグを修正
      • タスクの起動要求がキューイングされたタイミングで,そのタスクの絶対デッドラインを更新した結果,デッドラインミスの検出を逃してしまうバグを修正
      • 残りバジェットの表示において,0未満の値が切り落とされてしまうバグを修正
      • タスクの実行終了と同時刻にそのタスクの起動要求が発生する場合に,起動要求を受け付ける前にタスクの終了処理を実行すべきであるが,タスクの起動要求がキューイングされてしまうバグを修正
    • その他
      • タスク処理記述から呼び出せるAPIの定義をtask.rbからtask_api.rbに分
      • C0カバレッジ情報を取得するコマンドをRakefileに追加
      • バージョン番号を0.7.2に更新
  • タスク生成スクリプト(appgen.rb)
    • 動作変更(シミュレータの最新版に対応)
      • タスクのオフセットパラメータを生成
      • フック関数の定義を削除
      • タスク実行時間を,所属するアプリケーションのシェアに比例するよう変更
変更点の詳細は、ソースコードパッケージ内のCHANGESファイルをご覧ください。
なお、前のバージョンからある制限はこのバージョンでも存在しますので、ご注意ください。

本シミュレータに関するご質問やバグレポート、ご要望等を受け付けています。
また、本シミュレータを用いたリアルタイムアプリケーションの開発・検証、スケジューリングアルゴリズムの教育等にもご協力しています。

ご興味をお持ちの方は、お気軽にお問い合わせください。
よろしくお願いします。

ESS2011で優秀論文賞を受賞しました。

2011/10/22 22:24 に Yutaka Matsubara が投稿

2011年11月19日(水)~21日(金)に、国立オリンピック記念青少年総合センター(東京都渋谷区)で、ESS2011(組込みシステムシンポジウム2011)が開催されました。
私たちは、schesimに関する、以下の研究論文を発表し優秀論文賞を受賞しました。

「リアルタイムアプリケーション向けタスク処理定義可能なスケジューリングシミュレータ」
佐野 泰正,松原 豊,本田 晋也,高田 広章(名古屋大学)

この研究論文は、SWEST13で発表したポスターの内容に対して詳細な考察を追加し、論文としてまとめたものです。

schesimの特徴の1つに挙げている「柔軟なアプリケーションモデル」により、実機に近いシミュレーションを実現できることを示すために、過去に提案されたスケジューリングシミュレータで採用されている主なアプリケーションモデル2つ(シンプルモデルとRTSIMモデル)と、schesimのアプリケーションモデル(schesimモデル)を用いて同じエンジン制御アプリケーションのモデルを作成し、これら3つのモデルを使ったシミュレーション結果と、実機(正確にはISS)での動作とでタスクの応答時間にどれくらい差が生じるのかを定量的に評価しました。

その結果、シンプルモデルとRTSIMモデルの誤差はそれぞれ25.7%と25.2%になったのに対して、schesimは10.5%(分散5μs^2の実行時間変動などもモデルに反映すると9.6%になる)まで抑えることができることを示しました。

また、論文には含まれていませんが、タスク切替え時間などのOSのオーバヘッドをモデルに含めることで、5.5%まで誤差を小さくできたという実験結果も出ています。
どの程度まで誤差を小さくすれば良いかは、利用者がシミュレーション結果に求める精度やモデル作成の労力などを加味して決めることになります。

論文の内容にご興味をお持ちの方は、ダウンロードページからダウンロードできますので、ぜひご一読ください。
また、モデル化の対象となるアプリケーションを募集していますので、良い題材をお持ちの方はぜひお知らせください。

schesim version 0.7.1 を公開しました。

2011/09/25 8:15 に Yutaka Matsubara が投稿   [ 2012/03/06 17:10 に更新しました ]

schesim version 0.7.1 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

version 0.7.1 からの主な変更点は、以下の通りです。
  • シミュレータの動作変更
    • タスク実行後の残り実行時間の計算において、実行されたタスクが所属するアプリケーションのプロセッサ利用率と、実行された時間の積を残り実行時間から減算していたが、実行された時間をそのまま残り実行時間から減算するよう変更した。
      • プロセッサ利用率を1以外の値に指定している場合には、タスク処理記述ファイルの修正が必要です。具体的な変更イメージは、チュートリアルのp.7をご覧ください。
      • プロセッサ利用率を1に指定している場合には、前バージョンと動作は変わりません。
  • バグ修正
    • (シナリオファイルなどで)同一のシステム時刻に、同一の優先度のタスクを複数起動した場合に、タスクの優先順位が起動順序と一致しないことがあるバグを修正。
    • タスク終了時に、起動要求がキューイングされているために再度実行可能状態に遷移する場合に、タスク優先度が起動時優先度に戻されないバグを修正。
    • デッドラインをミスしたタスクが待ち状態に遷移する際に、すでにデッドライン監視の対象から外れているにも関わらず、再度デッドライン監視の対象から外そうと試みるバグを修正。
変更点の詳細は、ソースコードパッケージ内のCHANGESファイルをご覧ください。
なお、前のバージョンからある制限はこのバージョンでも存在しますので、ご注意ください。

本シミュレータに関するご質問やバグレポート、ご要望等がございましたら、お気軽にお問い合わせください。
また、本シミュレータを用いたリアルタイムアプリケーションの開発・検証、スケジューリングアルゴリズムの教育等にもご協力しています。

ご興味をお持ちの方は、お気軽にお問い合わせください。
よろしくお願いします。

SWEST13でポスター発表をします。

2011/08/29 5:40 に Yutaka Matsubara が投稿   [ 2011/08/29 6:08 に更新しました ]

2011年9月1日(木)~2日(金)に、下呂温泉 水明館(岐阜県下呂市)にて、SWEST13(第13回組込みシステム技術に関するサマーワークショップ)が開催されます。
私たちは、以下のタイトルで、schesimに関するポスター発表をします。

「リアルタイムアプリケーション向けタスク処理定義可能なスケジューリングシミュレータ」
佐野 泰正,松原 豊,本田 晋也,高田 広章(名古屋大学)

このポスター発表では、次の点についてご紹介します。
  1. schesimの基本的な仕組み
  2. エンジン制御アプリケーションをモデル化する方法
  3. 作成したアプリケーションモデルの精度評価
1つ目と2つ目はすでに発表した内容ですが、3つ目のモデルの精度評価を新しく追加しました。

過去に提案されたスケジューリングシミュレータのアプリケーションモデル2つ(シンプルモデルとRTSIMモデル)と、schesimのアプリケーションモデル(schesimモデル)を使って、同じエンジン制御アプリケーションのモデルを作成しました。
3つのモデルと実際のアプリケーションとで、どれくらい動作に違いが生じるのかを定量的に評価しました。
この評価により、schesimの特徴の1つに挙げている「柔軟なアプリケーションモデル」の正当性を示します。

開発者の一人である佐野がポスターの説明員を務めます。
SWEST13に参加される方は、ぜひお越しください。

お問い合わせフォームを設置しました。

2011/08/12 2:55 に Yutaka Matsubara が投稿   [ 2011/08/12 19:37 に更新しました ]

schesimについて、知り合いの方からは直接メールでお問合せを頂いていたのですが、もう少し気軽に問い合わせをして頂けるよう、お問い合わせフォームを設置してみました。

このフォームから問い合わせ頂ければ、開発者に届きます。
どのような内容でもお気軽にお問い合わせください。

なお、このフォームでは、メールアドレスのフォーマットチェックをしていません。
送信したのに確認メールが届かない場合には、メールアドレスを間違って入力された可能性があります。
その場合には、お手数ですが、再度入力してください。

また、ご意見やバグ報告などをお送り頂く際に、送信元を伏せたい場合には、適当なアドレスを入力して頂いて構いません。

ご活用頂けると幸いです。
よろしくお願い致します。

schesim version 0.7.0 を公開しました。

2011/07/25 22:08 に Yutaka Matsubara が投稿   [ 2011/07/25 22:16 に更新しました ]

schesim version 0.7.0 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

version 0.6.0 からの主な変更点は、以下の通りです。
  • (実行時間や応答時間などの)統計情報の測定区間をユーザが指定できる機能を追加
  • ユーザズマニュアルとチュートリアルの更新
  • いくつかのバグ修正
詳細は、ソースコードパッケージ内のCHANGESファイルをご覧ください。
なお、前のバージョンからある制限はこのバージョンでも存在しますので、ご注意ください。

本シミュレータに関するご質問やバグレポート、ご要望等がございましたら、お気軽にお問い合わせください。
また、本シミュレータを用いたリアルタイムアプリケーションの開発・検証、スケジューリングアルゴリズムの教育等にも、ご協力致します。

ご興味をお持ちの方は、お気軽にお問い合わせください。
よろしくお願いします。

schesim version 0.6.0 を公開しました。

2011/07/11 7:02 に Yutaka Matsubara が投稿   [ 2011/07/15 0:55 に更新しました ]

schesim version 0.6.0 のソースコードパッケージを公開しました。
ダウンロードページから取得できます。

現在のパッケージには、以下の制限がありますので、ご注意ください。
  • 階層型スケジューリング用のソースコードは含まれていません(今後公開していく予定です)。
  • ruby 1.9.2 で正常に動作するのは、Windows 環境のみです。MacOS X、Linuxでは、正常に動作せず、異常終了します(今後のリリースで改善する予定です)。
ソースコードのライセンスは、より多くの方々にご活用頂くために、Apache License, Version 2.0 としました。
ライセンスの詳細については、パッケージ内の LICENSE ファイルをご覧頂く必要がありますが、参考情報として、以下のウェブサイトに日本語訳が公開されています。

Apache License Version 2.0の日本語参考訳
http://sourceforge.jp/projects/opensource/wiki/licenses%2FApache_License_2.0

本シミュレータに関するご質問やバグレポート、ご要望等がございましたら、お気軽にお問い合わせください。
また、本シミュレータを用いたリアルタイムアプリケーションの開発・検証、スケジューリングアルゴリズムの教育等にも、ご協力致します。

ご興味をお持ちの方は、お気軽にお問い合わせください。
よろしくお願いします。

組込み技術とネットワークに関するワークショップ ETNET2011 で発表しました。

2011/07/09 0:16 に Yutaka Matsubara が投稿   [ 2011/07/09 0:27 に更新しました ]

7/2,3に、沖縄県宮古島市で開催された組込み技術とネットワークに関するワークショップ(ETNET2011)で、「リアルタイムアプリケーション向けタスク処理定義可能なスケジューリングシミュレータ」佐野泰正,松原豊,本田晋也,高田広章(名大)という題目で、schesimに関する研究発表をしました。
発表論文は、ダウンロードページから取得できます。
エンジン制御アプリケーションのモデルを作成して、schesimでシミュレーションした結果が掲載されていますので、ぜひご覧ください。
ご質問がございましたら、お気軽にお問い合わせください。

1-10 of 14