著者
小林 良岳 佐藤 友隆 唐野 雅樹 結城 理憲 前川 守
出版者
一般社団法人電子情報通信学会
雑誌
電子情報通信学会論文誌. D-I, 情報・システム, I-情報処理 (ISSN:09151915)
巻号頁・発行日
vol.84, no.6, pp.605-616, 2001-06-01
被引用文献数
5

連続して使用しているシステムでは, その上で実行中のプログラムに変更を行うことは困難である.しかし, 性能の向上やバグの除去による信頼性の向上を考えたとき, ソフトウェアに対する変更は必要不可欠である.実行中のプログラムの一部を動的に差し替えたり拡張するには, 実行状態及び内部状態を監視する手段が必要であり, 更に, 変更時には新しいモジュールにその状態を反映してやる必要がある.そこで, 我々は状態再現を伴ったソフトウェア部品の変更が可能なOS「彩(Aya)」の実装を行っている.我々の手法では, 状態監視のためにプログラマがソースコードに変更を加える必要はなく, Portalと呼ばれる状況監視のためのコードをコンパイル時に自動生成し, それをOS側で管理する.これにより, プログラム作成時のミスを軽減することができると考えられる.また, 状態の監視は差替え要求時にのみ動的に行うため運用時のオーバヘッドを削減できる.本論文では, Ayaで実現されている動的再構成のための要素について述べる.また, 評価を行いPortal組込みによるオーバヘッドは, 実用に耐え得る範囲であることを示す.
著者
山田 真大 林 和宏 鈴木 章浩 岡本 幸太 小林 良岳 本田 晋也 高田 広章
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2013-OS-126, no.18, pp.1-7, 2013-07-24

組込み向け機器に利用されるハードウェアの高性能化に伴い,組込み OS として Linux などの汎用 OS が搭載されるようになった.組込み機器では,リアルタイム性が重要視されるため,Linux を採用する場合,カーネルに改良を施すことでリアルタイム性を確保している.また,マルチコア CPU を搭載する組込み機器では,Linux が持つ CPU affinity の機能を用いることで,シングルコアでは不可能であった高負荷時におけるリアルタイム性も確保することが可能になった.しかし,CPU コア毎に存在するカーネルスレッドは CPU affinity を適用することができず,また,この処理がまれに引き起こすタイマのカスケード処理には多くの処理時間を必要とし,リアルタイム性を阻害する原因となる.本論文では,マルチコア CPU の各コアを,リアルタイム性を必要とする CPU コアと不要とする CPU コアに分割し,リアルタイム性を必要とする CPU コアでは,タイマのカスケード処理を発生させないよう事前に対策を施すことで,リアルタイム性を確保する手法を提案する.
著者
山田 真大 林 和宏 鈴木 章浩 岡本 幸太 小林 良岳 本田 晋也 高田 広章
出版者
一般社団法人情報処理学会
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS)
巻号頁・発行日
vol.2013, no.18, pp.1-7, 2013-07-24

組込み向け機器に利用されるハードウェアの高性能化に伴い,組込み OS として Linux などの汎用 OS が搭載されるようになった.組込み機器では,リアルタイム性が重要視されるため,Linux を採用する場合,カーネルに改良を施すことでリアルタイム性を確保している.また,マルチコア CPU を搭載する組込み機器では,Linux が持つ CPU affinity の機能を用いることで,シングルコアでは不可能であった高負荷時におけるリアルタイム性も確保することが可能になった.しかし,CPU コア毎に存在するカーネルスレッドは CPU affinity を適用することができず,また,この処理がまれに引き起こすタイマのカスケード処理には多くの処理時間を必要とし,リアルタイム性を阻害する原因となる.本論文では,マルチコア CPU の各コアを,リアルタイム性を必要とする CPU コアと不要とする CPU コアに分割し,リアルタイム性を必要とする CPU コアでは,タイマのカスケード処理を発生させないよう事前に対策を施すことで,リアルタイム性を確保する手法を提案する.With the increase in hardware performance of modern embedded systems, general-purpose operating systems (OS) such as Linux are commonly used as embedded OSs. Furthermore, the use of multi-core CPUs enables Linux to improve its real-time performance even on high-load scenarios which is rather hard to achieve on single-core CPUs thanks to its "CPU affinity" functionality. However, we found two issues in the current version of the Linux kernel: the CPU affinity of some kernel threads cannot be specified; and the use of timer cascading (use of multiple hardware timers to count time) increases the worst-case response time of real-time tasks. In this paper, we classify the cores in a multi-core CPU into 2 different groups: cores which require real-time performance guarantees; and cores which do not require such guarantees. Then, we propose and evaluate a method that improves the real-time performance of the system by disabling timer cascading on cores which require real-time performance guarantees.
著者
小林 良岳 中山 健 前川 守
出版者
一般社団法人情報処理学会
雑誌
情報処理学会研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:09196072)
巻号頁・発行日
vol.2003, no.42, pp.9-16, 2003-05-08

実行中のプログラムに対し,その一部を動的に差し替えあるいは拡張するにはプログラムの実行状態を監視する手段が必要である.しかし,状態監視のためにソースコードに変更を加えることは,プログラム作成者の負担となり思わぬミスを招く.我々は,コンパイル時にPortal と呼ばれる状況監視のためのコードを,関数の呼び出しポイントに対して自動生成する Portal Creator(PoC)を実装しているが,生成の方針が静的であり,一旦Portalを生成したコードは必要がない場合でも常にPortalを通過するため処理時間に対するPortalのオーバーヘッドが加わるという欠点がある.そこで本稿では,コンパイル時にはプログラムをPortal生成に十分となるように修正するにとどめ,Portalの生成を実行時や実行中に延期できる方法を提案する.また,評価によりPortalを生成するために必要な情報を組み込んだ実行イメージのパフォーマンスが実用の範囲内であることと,実行後にPortalを組み込んだ場合のパフォーマンスが従来のPortalと同程度であることを示す.In order to dynamically replace and extend programs while they are running, some mechanisms to monitor the current status of them is necessary. However, regarding modifications to the programs for monitoring would be a burden to the programmers and error-prone. We already proposed Portal Creator(PoC) which automatically generates a Portal for each function at compile time for the above purpose. But once Portals are created, all function calls must go through Portal even if it is not used. In this paper, we propose a method for ``lazy'' Portal creation, can be postponed until execution time or run-time. At compile time, PoC just modifies program structure and creates informations to be needed for portal creation. We evaluate the performance of this method on program execution.