JP5332716B2 - 起動制御方法、情報処理装置及びプログラム - Google Patents

起動制御方法、情報処理装置及びプログラム Download PDF

Info

Publication number
JP5332716B2
JP5332716B2 JP2009040441A JP2009040441A JP5332716B2 JP 5332716 B2 JP5332716 B2 JP 5332716B2 JP 2009040441 A JP2009040441 A JP 2009040441A JP 2009040441 A JP2009040441 A JP 2009040441A JP 5332716 B2 JP5332716 B2 JP 5332716B2
Authority
JP
Japan
Prior art keywords
cpu
startup
period
collisions
main memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009040441A
Other languages
English (en)
Other versions
JP2010198165A (ja
Inventor
英輝 小川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009040441A priority Critical patent/JP5332716B2/ja
Publication of JP2010198165A publication Critical patent/JP2010198165A/ja
Application granted granted Critical
Publication of JP5332716B2 publication Critical patent/JP5332716B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、起動制御方法、情報処理装置及びプログラムに関する。
組み込みシステムにおいて、リアルタイム性が求められる処理もしくはスケーラビリティが求められる処理等の性質の異なる処理を動作させることが必要となる場合がある。そのため、開発現場においては、異なるベンダにより開発された異なる性質の複数のOS(Operating System)が組み込みシステムに搭載される場合がある(以下、このように複数のOSが搭載されたシステムを「ハイブリッドOSシステム」とする)。このようなハイブリッドOSシステムの異種OS間において、補助記憶装置のような周辺装置を共有して利用するための仕組みや機構が提案され、実装されてきている。
一方、このような異種OSの起動シーケンスは、各OSのベンダが個別に高速化を図っており、メモリバスのような共有リソースに関する制御を最適化する手法は提案されていない。また、各OSのベンダが個別に高速化を図ったとしても、ユーザがシステムを利用可能となるのは、最も起動に時間がかかるOSの起動が完了してからである。
このようなことから、ハイブリッドOSシステムは、システム全体の起動時間の高速化が十分に図れていない。
なお、特許文献1には、複数種のオペレーティング・システムにおいて、ユーザインタフェース装置を使用するオペレーティング・システムを情報処理装置の稼働中に切り替えることを可能とする技術が開示されている。
また、特許文献には、データチャネル装置(以下「CH」とする)がCPU(Central Processing Unit)から送られる起動元中央処理装置番号をもとに競合処理を行い、CPU間の競合発生有無、受信オーダの正否を同一制御レジスタ上に設定することにより、CPUがCHを起動する時の状態チェックを1回のみで可能とする技術が開示されている。
さらに、特許文献には、上位のプロセッサがメモリアクセスを行う場合に、下位のプロセッサに対して動作停止指示信号を送出することにより、2つのプロセッサ間のメモリアクセス競合を簡単に防止することができる技術が開示されている。




特開2006−350956号公報 特開昭61−166669号公報 特開平03−080352号公報
背景技術として説明したように、ハイブリッドOSシステムは、システム全体の起動時間の高速化が十分に図れていないという問題がある。
本発明の目的は、上述のような課題を解決するためになされたものであり、システム全体の起動時間の高速化を図ることができる起動制御方法、情報処理装置及びプログラムを提供することにある。
本発明にかかる起動制御方法は、第1のOSの起動処理を分担して実行する複数の第1のCPUと、第2のOSの起動処理を実行し、前記第1のCPUとメインメモリを共有する第2のCPUの起動制御方法であって、前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの起動開始前期間において、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突状況を検出する衝突状況検出ステップと、検出された衝突状況に応じて、制限期間を決定する制限期間決定ステップと、前記第1のOSと前記第2のOSの起動処理を実行する場合に、前記制限期間の間、前記第2のCPUの動作を制限する動作制限ステップを備えたものである。
本発明にかかる情報処理装置は、第1のOSの起動処理を行う複数の第1のCPUと、第2のOSの起動処理を行う第2のCPUと、前記第1のCPU及び前記第2のCPUから共有されるメインメモリと、前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの期間を所定期間のそれぞれに区分した区分期間のそれぞれにおいて、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突状況を検出する衝突状況検出部と、前記区分期間のそれぞれにおける前記衝突状況を表示する表示部を備えたものである。
他方、本発明にかかる情報処理装置は、第1のOSの起動処理を行う複数の第1のCPUと、第2のOSの起動処理を行う第2のCPUと、前記第1のCPU及び前記第2のCPUから共有されるメインメモリと、前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの起動開始前期間において、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突状況を検出する衝突状況検出部と、検出された衝突状況に応じて、制限期間を決定する制限期間決定部と、前記第1のOSと前記第2のOSの起動処理を実行する場合に、前記制限期間の間、前記第2のCPUの動作を制限する動作制限部を備えたものである。
本発明にかかるプログラムは、第1のOSの起動処理を行う複数の第1のCPU及び第2のOSの起動処理を行う第2のCPUが共有するメインメモリのアクセス状況を監視するプログラムであって、前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの期間を所定期間のそれぞれに区分した区分期間のそれぞれにおいて、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突状況を検出するステップと、前記区分期間のそれぞれにおける前記衝突状況を記憶するステップをコンピュータに実行させるものである。
他方、本発明にかかるプログラムは、第1のOSの起動処理を分担して実行する複数の第1のCPUと、第2のOSの起動処理を実行し、前記第1のCPUとメインメモリを共有する第2のCPUの制御内容を決定するプログラムであって、前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの期間を所定期間のそれぞれに区分した区分期間のそれぞれにおける前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突が発生した回数に基づいた値を、所定の閾値と比較するステップと、前記比較した結果に基づいて、前記第2のCPUの動作を制限する制限期間を決定するステップをコンピュータに実行させるものである。
本発明により、システム全体の起動時間の高速化を図ることができる起動制御方法、情報処理装置及びプログラムを提供することができる。
発明の実施の形態1にかかるハイブリッドOSシステムの概念図である。 発明の実施の形態2にかかるハイブリッドOSシステムの概念図である。 発明の実施の形態2にかかるハイブリッドOSシステムを通常起動した場合における各CPUコアのOS起動処理区間を示す図である。 発明の実施の形態2にかかるハイブリッドOSシステムのメインメモリへのアクセスの衝突回数を取得する区間を示す図である。 発明の実施の形態2にかかるハイブリッドOSシステムの処理を示すシーケンス図である。 発明の実施の形態3にかかるハイブリッドOSシステムの概念図である。 発明の実施の形態3にかかるハイブリッドOSシステムの処理を示すシーケンス図である。
発明の実施の形態1.
図1を参照して、本発明の実施の形態1にかかるハイブリッドOSシステムの処理の概要について説明する。
図1は、本発明の実施の形態1にかかるハイブリッドOSシステム1及びハイブリッドOSシステム1上において動作するプログラム2を示す概念図である。
ハイブリッドOSシステム1は、CPU80、81、82及びメインメモリ20を備える。
CPU80、81、82は、メインメモリ20を共有しながら、OS100、101の起動処理を行う。CPU80、81は、OS100の起動処理を行い、CPUコア82は、OS101の起動処理を行う。なお、本実施の形態1におけるCPU80、81、82とは、それぞれがシングルコアCPUであってもよく、マルチコアCPUに含まれるCPUコアのそれぞれであってもよい。
メインメモリ20は、CPU80、81、82がOS100、101の起動処理を行うために必要な情報を記憶する。
動作制限部102は、OS100、101の起動処理を実行する場合に、CPU82の動作を制限する制限期間の間、CPU82の動作を制限する処理を行う。
衝突状況検出部103は、CPU80、81、82からのメインメモリ20へのアクセスの衝突状況を検出する処理を行う。
制限期間決定部104は、衝突状況検出部103が検出した衝突状況に応じて、CPU82の動作を制限する制限期間を決定する処理を行う。
続いて、本発明の実施の形態1にかかるハイブリッドOSシステムの処理について説明する。
まず、ハイブリッドOSシステム1の電源の投入もしくは再起動が行われると、CPUコア80、82は、OS100、101の起動処理を開始する。また、CPUコア81は、動作制御部102及び衝突状況検出部103を動作させる。
次に、衝突状況検出部103は、CPU81がOS100の起動処理を開始するまでの期間において、CPU80、81、82からのメインメモリ20へのアクセスの衝突状況を検出する。
また、動作制限部102は、CPU81がOS100の起動処理を開始するまでの期間のうち、CPU82の動作を制限する制限期間において、CPU82の動作を制限する。
次に、OS100の起動が完了すると、OS100は、制限期間決定部104を動作させる。起動制限期間決定部104は、検出した衝突状況に応じて、制限期間を決定する。
発明の実施の形態2.
図2を参照して、本発明の実施の形態2にかかるハイブリッドOSシステムについて説明する。
図2は、本発明の実施の形態2にかかるハイブリッドOSシステム1及びハイブリッドOSシステム1上において動作するプログラム2を示す概念図である。
ハイブリッドOSシステム1は、CPUコア10、11、12、13、メインメモリ20、バスコントローラ21、記憶装置22、表示装置30を備える。
CPUコア10、11、12、13は、メインメモリ20を共有しながら、OS100、101の起動処理を行う。CPUコア10、11は、OS100の起動処理を行い、CPUコア12、13は、OS101の起動処理を行う。
メインメモリ20は、CPUコア10、11、12、13がOS100、101の起動処理を行うために必要な情報を記憶する。
バスコントローラ21は、CPUコア10、11、12、13からのメインメモリ20へのアクセスを制御する。また、バスコントローラ21は、CPUコア10、11、12、13からのメインメモリ20へのアクセスの衝突を検出し、ラウンドロビンによって、メインメモリ20にアクセスするCPUコアを決定するとともに、検出した衝突の回数をカウントして自身の有するレジスタ(図示せず)に記憶する。
記憶装置22は、OS100、101のプログラム、CPUコア停止プログラム110、衝突回数取得プログラム111及び衝突回数出力プログラム112を格納する。記憶装置22は、例えば、フラッシュメモリ又はHDD(Hard Disc Drive)等により構成される。
CPUコア停止プログラム110は、CPUコアの動作を停止する処理を行う。CPUコア停止プログラム111は、動作制限部として機能する。
衝突回数取得プログラム111は、CPUコア10、11、12、13からのメインメモリ20へのアクセスの衝突回数を取得する処理を行う。なお、CPUコア停止プログラム110及び衝突回数取得プログラム111は、別々のプログラムとせず、1つのプログラムとしてもよい。衝突回数取得プログラム111及びバスコントローラ21は、衝突状況検出部として機能する。
衝突回数出力プログラム112は、衝突回数取得プログラム111が取得した衝突回数を表示装置30に出力する処理を行う。
表示装置30は、衝突回数出力プログラム112から出力された内容を表示する処理を行う。表示装置30は、例えば、CRT(Cathode Ray Tube)、プラズマディスプレイ又は液晶ディスプレイ等により構成される。
続いて、図3を参照して、本発明の実施の形態2にかかるハイブリッドOSシステムを通常起動した場合におけるOS起動処理について説明する。ここで、通常起動した場合におけるOS起動処理とは、OS起動処理において、CPUコア停止プログラム111によってCPUコアを停止させることがない場合におけるOS起動処理である。
図3は、本発明の実施の形態2にかかるハイブリッドOSシステムの通常起動した場合における各CPUコアのOS起動処理区間を示す図である。
まず、図3に示す時刻60において、ハイブリッドOSシステム1の電源の投入もしくは再起動が行われると、OS100側ではCPUコア10のみを使用して起動処理40を開始し、OS101側ではCPUコア12のみを使用して起動処理50を開始する。このように、複数のCPUコアによって動作するOSは、起動処理を開始するCPUコアを確定しておくことにより、安定した起動処理を行うようになっている。また、このようなOSは、ドライバのロード等のOS上で動作するプロセスが使用するハードウェアに対する初期化処理が完了してから、プロセスのスケジューラを起動して、複数のCPUコアを使用してプロセスの協調動作を行うことが可能となる。
図3においては、OS100は、時刻63までハードウェアに対する初期化処理を行っており、OS101は、時刻61までハードウェアに対する初期化処理を行っている。そのため、OS100は、時刻63となってからCPUコア11を初期化し、CPUコア11を使用して起動処理41を行うことが可能となり、OS101は、時刻61となってからCPUコア13を初期化し、CPUコア13を使用して起動処理51を行うことが可能となる。
ここで、OS100は、時刻64に起動が完了し、OS101は、時刻62に起動が完了する。OS100が時刻64に起動完了し、OS101がそれよりも早い時刻62に起動完了しているが、ユーザがハイブリッドOSシステムを使用可能となるのは、時刻64からとなる。
本実施の形態1では、この起動処理を行っていない期間が最も長いCPUコア11を利用することによって、ハイブリッドOSシステムの起動時間の高速化を実現する。
続いて、図4を参照して、本発明の実施の形態2にかかるハイブリッドOSシステムのメインメモリ20へのアクセスの衝突回数の取得方法およびCPUコアを停止させる区間の決定方法について説明する。
図4は、本発明の実施の形態2にかかるハイブリッドOSシステムのメインメモリ20におけるアクセスの衝突回数を取得する区間を示す図である。
メインメモリ20におけるアクセスの衝突回数は、CPUコア11が実行する衝突回数取得プログラム111が取得する。衝突回数取得プログラム111は、図4に示すように、時刻60を基準として、所定の時間間隔t毎に区分した区間70、71、72のそれぞれにおいて、CPUコア10、11、12、13からのメインメモリ20へのアクセスの衝突回数を取得する。なお、区間72の次以降の区間は図示を省略している。
衝突回数取得プログラム111は、CPUコア11がOS100の起動処理を行っていない時刻60から時刻63の期間に実行され、各区間70、71、72における衝突回数を取得する。衝突回数取得プログラム111は、レジスタ及びキャッシュメモリ(図示せず)にロードされて実行される。つまり、衝突回数取得プログラム111は、CPUコア11内のレジスタ及びキャッシュメモリに収まるサイズのプログラムである。そのため、衝突回数取得プログラム111を実行するCPUコア11からのメインメモリ20へのアクセスによる衝突は発生しない。
衝突回数取得プログラム111は、バスコントローラ21のレジスタに記憶されている衝突回数のカウント値を参照することにより、各区間70、71、72における衝突回数を取得する。例えば、各区間70、71、72の終了時点と開始時点におけるカウント値の差分により衝突回数が分かる。このように、メインメモリ20へのアクセスの衝突状況を衝突回数として検出する。
ここで、衝突回数が多い区間は、CPUコア10、11、12、13のメインメモリ20へのアクセス待ちとなる状況が多く発生していることとなる。よって、アクセス待ちとなっているCPUコア10、11、12、13は、待ち時間の間にOS100、101の起動処理を行うことができなくなっている。
そこで、衝突回数が多い区間の間、起動完了が早いOS101の起動処理を行うCPUコア12、13の動作を停止するように決定する。このように、衝突回数が多い区間において、起動完了が早いOS101の起動処理を行うCPUコア12、13の動作を制限することにより、起動完了が遅いOS100の起動処理を行うCPUコア10、11のメインメモリ20へのアクセス待ち時間を低減し、ハイブリッドOSシステムの起動時間を高速化することができる。
なお、バスコントローラ21は、CPUコア12とCPUコア13とによるメインメモリ20へのアクセスの衝突も衝突回数としてカウントしている。しかし、OS101のように起動完了が早いOSは、一般に起動完了が遅いOS100と比較してコードサイズがコンパクトであり、メインメモリ20へのアクセス回数も少ない。そのため、大半の衝突は、OS100の起動処理を行うCPUコア10、11からのアクセスを含んだものであるため、CPUコア10、11のアクセス待ち時間を有効に低減することができる。
具体的に、各区間70、71、72において、CPUコア12、13を停止させるかどうかの判断は、式(1)によって行う。式(1)は、衝突回数の閾値Nを算出する式である。nは、1回のメインメモリ20のアクセスにかかる時間である。tは、図4に示す所定の時間間隔tである。pは、CPUコア10、11、12、13がラウンドロビンによりメインメモリ20へのアクセスが待たされる確率である。
N=(p×t)/n・・・(1)
なお、pは、ユーザが任意に定めた値でよい。例えば、ハイブリッドOSシステム1の構成や実測した性能等に基づいて定める。具体的に例えると、本実施の形態2では、CPUコア11がOS100の起動処理を開始するまでには、最大で3つのCPUコア10、12、13がOS100、101の起動処理を行っている。そのため、待たされないでメインメモリ20にアクセスできる確率を1/3として、アクセスが待たされる確率pを2/3(1−1/3)としてもよい。
つまり、各区間70、71、72において、閾値Nを超えている区間は、以降のハイブリッドOSシステム1の起動処理において、CPUコア12、13の動作を停止するCPU動作停止区間とする。CPUコア12、13の動作の停止は、CPUコア12、13を停止させるコードをCPUコア停止プログラム110に追加することにより行えるようになる。
続いて、図5を参照して、本発明の実施の形態2にかかるハイブリッドOSシステムの処理について説明する。
まず、ハイブリッドOSシステム1の電源の投入もしくは再起動が行われると、CPUコア10、12は、OS100、101の起動処理を開始する。また、CPUコア11は、CPUコア停止プログラム110及び衝突回数取得プログラム111の実行を開始する(S300)。
次に、衝突回数取得プログラム111は、各区間70、71、72において、CPU10、11、12、13からのメインメモリ20へのアクセスの衝突回数を取得する(S301)。この処理は、CPUコア11がOS100の起動処理を開始するまで繰り返し行われる。そして、衝突回数取得プログラム111は、取得した各区間70、71、72における衝突回数をCPUコア11内のレジスタ又はキャッシュメモリに記憶する。
また、CPUコア停止プログラム110は、CPUコア12、13の動作を停止させるCPU動作停止区間となった場合、CPU動作停止区間の間、CPUコア12、13の動作を停止する(S302)。CPUコア12、13の動作の停止は、例えば、CPUコア12、13に対して割り込みを発行することにより行う。この処理も、CPUコア11がOS100の起動処理を開始するまで繰り返し行われる。
次に、CPUコア11がOS100の起動処理を開始できるようになると、CPUコア11は、OS100の起動処理を開始する(S303)。このときに、CPUコア11が初期化され、CPUコア停止プログラム110及び衝突回数取得プログラム111の実行が終了される(S304)。また、このときに、OS100は、CPUコア11内のレジスタ又はキャッシュメモリに記憶されている衝突回数をメインメモリ20に退避する。
次に、OS100及びOS101の起動が完了すると、OS100は、衝突回数出力プログラム112の実行を開始する(S305)。また、OS100は、起動に要した時間を記憶装置22に記憶する。ここで、起動が遅いOS100の起動に要した時間は、システムの起動に要した時間となる。
衝突回数出力プログラム112は、メインメモリ20に記憶されている衝突回数を取得し、表示装置30に出力して表示する。また、衝突回数出力プログラム112は、システムの起動に要した時間を記憶装置22から取得する。さらに、衝突回数出力プログラム112は、前回のシステム起動時のシステムの起動に要した時間が記憶装置22に記憶されている場合は、その時間も取得する。そして、起動時間がどのぐらい短縮されたかを示す短縮率を算出し、算出した短縮率を表示装置30に出力して表示する(S306)。短縮率は、例えば、前回のシステムの起動時間と今回のシステムの起動時間の差分である。
このときに、衝突回数出力プログラム112は、各区間70、71、72における衝突回数が閾値Nを超えているかどうかも併せて表示するようにしてもよい。
ユーザは、表示装置30に表示された各区間70、71、72のうち、衝突回数が閾値を超えている区間をCPU動作停止区間として決定し、この区間においてCPUコア12、13を停止させるコードをCPUコア停止プログラム110に追加する。そして、ハイブリッドOSシステム1を再度起動することを繰り返す。なお、この操作の繰り返しは、短縮率に基づいて、前回のシステムの起動時間から今回のシステムの起動時間があまり短縮されておらず、高速化が収束したと判断することができるまで行うとよい。このようにすることで、起動完了が遅いOS100の起動処理を行うCPUコア10、11のメインメモリ20へのアクセス待ち時間を低減していき、ハイブリッドOSシステム1の起動時間を高速化することができる。
以上に説明したように、本実施の形態2によれば、ユーザは、表示装置30に表示された各区間70、71、72におけるメインメモリ20へのアクセスの衝突回数を把握することができるようになる。また、これに基づいて、衝突回数が多い区間において、起動完了が早いOS101の起動処理を行うCPUコア12、13の動作を制限することにより、起動完了が遅いOS100の起動処理を行うCPUコア10、11のメインメモリ20へのアクセス待ち時間を低減し、ハイブリッドOSシステムの起動時間を高速化することができる。
また、メインメモリ20へのアクセスの衝突が発生した場合には、アクセスを許可するCPUコアを決定するためのオーバヘッドが発生してしまうが、本実施の形態2によれば、このオーバヘッドが発生する回数を低減することができ、それによってもハイブリッドOSシステム1の起動時間を高速化することができる。
発明の実施の形態3.
図6を参照して、本発明の実施の形態2にかかるハイブリッドOSシステムについて説明する。
図6は、本発明の実施の形態3にかかるハイブリッドOSシステム1及びハイブリッドOSシステム1上において動作するプログラム2を示す概念図である。
本実施の形態3にかかるハイブリッドOSシステム1は、図2に示す本実施の形態2にかかるハイブリッドOSシステム1のように記憶装置22に衝突回数出力プログラム112を格納せず、図6に示すように記憶装置22に停止区間決定プログラム113を格納する点において、実施の形態2と異なり、その他の構成要素は同様である。そのため、停止区間決定プログラム113以外の構成要素については、説明を省略する。
停止区間決定プログラム113は、衝突回数取得プログラム111が取得したCPUコア10、11、12、13からのメインメモリ20へのアクセスの衝突回数に基づいて、CPUコア12、13の動作を停止するCPU動作停止区間を決定する。停止区間決定プログラム113は、制限期間決定部として機能する。
なお、ハイブリッドOSシステムを通常起動した場合におけるOS起動処理、メインメモリ20へのアクセスの衝突回数の取得方法およびCPUコアを停止させる区間の決定方法については、実施の形態2と同様であるため、説明を省略する。
続いて、図7を参照して、本発明の実施の形態3にかかるハイブリッドOSシステムの処理について説明する。なお、ステップS300、301、302、303、304における処理は、実施の形態と同様であるため、説明を省略する。
ステップS304まで処理が終了すると、OS100は、停止区間決定プログラム113の実行を開始する(S310)。
停止区間決定プログラム113は、前回のシステムの起動時間と今回のシステムの起動時間を記憶装置22から取得する。そして、短縮率を算出し、算出した短縮率からハイブリッドOSシステム1の起動時間の高速化が収束したかどうかを判断する(S311)。この判断は、例えば、前回のシステムの起動時間と今回のシステムの起動時間の差分が、予め定めておいた値を下回っているかどうかにより判断する。
起動時間の高速化が収束したと判断した場合、停止区間決定プログラム113は、処理を終了する。
起動時間の高速化が収束していないと判断した場合、停止区間決定プログラム113は、メインメモリ20に記憶されている衝突回数を取得する。そして、停止区間決定プログラム113は、各区間70、71、72のうち、衝突回数が閾値を超えている区間をCPU動作停止区間として決定し、この区間においてCPUコア12、13を停止させるコードをCPUコア停止プログラム110に追加する(S312)。
そして、停止区間決定プログラム113は、OS100に再起動を指示することにより、ハイブリッドOSシステム1を再度起動する(S313)。
このようにして、高速化が収束したと判断されるまで、上述の処理が繰り返される。なお、実施の形態2と同様に、衝突回数および短縮率を表示装置30に表示するようにしてもよい。
なお、高速化が収束したと判断した場合には、衝突回数取得プログラム111及び停止区間決定プログラム113を以降のハイブリッドOSシステム1の起動処理において、実行させないようにしてもよい。
なお、周辺装置が固定化されている組み込みシステムでは、OSの起動処理におけるアセンブラレベルでの命令の実行順序が固定されているため、起動処理のうちの、メインメモリ20へのアクセスが行われる位置も常に同じとなる。そのため、本発明は特に組み込みシステムに適用すると有効である。
以上に説明したように、本実施の形態3によれば、実施の形態2と同様に、衝突回数が多い区間において、起動完了が早いOS101の起動処理を行うCPUコア12、13の動作を制限することにより、起動完了が遅いOS100の起動処理を行うCPUコア10、11のメインメモリ20へのアクセス待ち時間を低減し、ハイブリッドOSシステムの起動時間を高速化することができ、さらに起動時間の高速化を自動化することができる。
なお、本発明は上述の実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施の形態では、起動完了が早いOSの起動処理を行う全てのCPUの動作を制限しているが、そのうちの一部のCPUのみの動作を制限してもよい。
以上に説明した本発明にかかるハイブリッドOSシステムは、上述の実施の形態の機能を実現するプログラムを記憶した記憶媒体をシステムもしくは装置に供給し、システムあるいは装置の有するコンピュータ又はCPU、MPU(Micro Processing Unit)がこのプログラムを実行することによって、構成することが可能である。
また、このプログラムは様々な種類の記憶媒体に格納することが可能であり、通信媒体を介して伝達されることが可能である。ここで、記憶媒体には、例えば、フレキシブルディスク、ハードディスク、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、BD(Blu-ray Disc)、ROM(Read Only Memory)カートリッジ、バッテリバックアップ付きRAM(Random Access Memory)メモリカートリッジ、フラッシュメモリカートリッジ、不揮発性RAMカートリッジを含む。また、通信媒体には、電話回線の有線通信媒体、マイクロ波回線の無線通信媒体を含み、インターネットも含まれる。
また、コンピュータが上述の実施の形態の機能を実現するプログラムを実行することにより、上述の実施の形態の機能が実現されるだけではなく、このプログラムの指示に基づき、コンピュータ上で稼動しているOS(Operating System)もしくはアプリケーションソフトと共同して上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
さらに、このプログラムの処理の全てもしくは一部がコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットにより行われて上述の実施の形態の機能が実現される場合も、発明の実施の形態に含まれる。
1 ハイブリッドOSシステム
2 ハイブリッドOSシステム上において動作するプログラム
10、11、12、13 CPUコア
20 メインメモリ
21 バスコントローラ
22 記憶装置
30 表示装置
40、41、50、51 OS起動処理区間
60、61、62、63 時刻
70、71、72 時間間隔t毎に区分した区間
80、81、82 CPU
100、101 OS
102 動作制御部
103 衝突状況検出部
104 制限期間決定部
110 CPUコア停止プログラム
111 衝突回数取得プログラム
112 衝突回数出力プログラム
113 停止区間決定プログラム

Claims (8)

  1. 第1のOSの起動処理を分担して実行する複数の第1のCPUと、前記第1のOSの起動処理よりも処理時間が短い第2のOSの起動処理を実行し、前記第1のCPUとメインメモリを共有する第2のCPUの起動制御方法であって、
    前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの起動開始前期間において、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突回数を検出する衝突状況検出ステップと、
    前記検出された衝突回数が所定の閾値に達している期間を制限期間として決定する制限期間決定ステップと、
    前記第1のOSと前記第2のOSの起動処理を実行する場合に、前記制限期間の間、前記第2のCPUの動作を制限する動作制限ステップを備えた起動制御方法。
  2. 前記衝突状況検出ステップは、前記起動開始前期間を所定期間のそれぞれに区分した区分期間のそれぞれにおいて、前記衝突回数を検出し、
    前記制限期間決定ステップは、前記区分期間のそれぞれにおける前記衝突回数が前記所定の閾値に達している場合に、当該区分期間を前記制限期間として決定する請求項1に記載の起動制御方法。
  3. 前記動作制限ステップは、前記制限期間において、前記第2のCPUの動作を停止させる請求項1または2に記載の起動制御方法。
  4. 前記衝突状況検出ステップ、前記制限期間決定ステップ及び前記動作制限ステップは、繰り返し実行され、
    前記起動制御方法は、今回の前記第1のOS及び前記第2のOSが起動完了するまでの起動時間と、前回の起動時における前記起動時間のそれぞれを取得し、前記今回の起動時間と前記前回の起動時間との差分が、所定の値を下回っている場合、前記繰り返し実行を終了する起動時間取得ステップをさらに備える、
    請求項1乃至のいずれかに記載の起動制御方法。
  5. 第1のOSの起動処理を行う複数の第1のCPUと、
    前記第1のOSの起動処理よりも処理時間が短い第2のOSの起動処理を行う第2のCPUと、
    前記第1のCPU及び前記第2のCPUから共有されるメインメモリと、
    前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの期間を所定期間のそれぞれに区分した区分期間のそれぞれにおいて、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突回数を検出する衝突状況検出部と、
    前記区分期間のそれぞれにおける前記衝突回数を表示する表示部と、
    前記区分期間のそれぞれにおける前記衝突回数が所定の閾値に達している場合に、当該区分期間を前記第2のCPUの動作を制限する制限期間として決定する制限期間決定部とを備えた情報処理装置。
  6. 第1のOSの起動処理を行う複数の第1のCPUと、
    前記第1のOSの起動処理よりも処理時間が短い第2のOSの起動処理を行う第2のCPUと、
    前記第1のCPU及び前記第2のCPUから共有されるメインメモリと、
    前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの起動開始前期間において、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突回数を検出する衝突状況検出部と、
    前記検出された衝突回数が所定の閾値に達している期間を制限期間として決定する制限期間決定部と、
    前記第1のOSと前記第2のOSの起動処理を実行する場合に、前記制限期間の間、前記第2のCPUの動作を制限する動作制限部を備えた情報処理装置。
  7. 第1のOSの起動処理を行う複数の第1のCPU及び前記第1のOSの起動処理よりも処理時間が短い第2のOSの起動処理を行う第2のCPUが共有するメインメモリのアクセス状況を監視するプログラムであって、
    前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの期間を所定期間のそれぞれに区分した区分期間のそれぞれにおいて、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突回数を検出するステップと、
    前記区分期間のそれぞれにおける前記衝突回数表示するステップと、
    前記区分期間のそれぞれにおける前記衝突回数が所定の閾値に達している場合に、当該区分期間を前記第2のCPUの動作を制限する制限期間として決定するステップをコンピュータに実行させるプログラム。
  8. 第1のOSの起動処理を分担して実行する複数の第1のCPUと、前記第1のOSの起動処理よりも処理時間が短い第2のOSの起動処理を実行し、前記第1のCPUとメインメモリを共有する第2のCPUの制御内容を決定するプログラムであって、
    前記複数の第1のCPUのうち、前記第1のOSの起動処理を最後に開始するCPUが、当該起動処理を開始するまでの起動開始前期間において、前記第1のCPU及び前記第2のCPUからの前記メインメモリへのアクセスの衝突回数を検出するステップと、
    前記検出された前記衝突回数が所定の閾値に達している期間を前記第2のCPUの動作を制限する制限期間として決定するステップをコンピュータに実行させるプログラム。
JP2009040441A 2009-02-24 2009-02-24 起動制御方法、情報処理装置及びプログラム Expired - Fee Related JP5332716B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009040441A JP5332716B2 (ja) 2009-02-24 2009-02-24 起動制御方法、情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009040441A JP5332716B2 (ja) 2009-02-24 2009-02-24 起動制御方法、情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2010198165A JP2010198165A (ja) 2010-09-09
JP5332716B2 true JP5332716B2 (ja) 2013-11-06

Family

ID=42822854

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009040441A Expired - Fee Related JP5332716B2 (ja) 2009-02-24 2009-02-24 起動制御方法、情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5332716B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5561241B2 (ja) * 2011-05-25 2014-07-30 株式会社デンソー マイクロコンピュータ
US8615766B2 (en) * 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0820999B2 (ja) * 1989-03-23 1996-03-04 日本電気株式会社 情報処理装置
JP2001216284A (ja) * 1999-11-25 2001-08-10 Denso Corp 電子制御装置
JP2008186175A (ja) * 2007-01-29 2008-08-14 Toyota Motor Corp オペレーティングシステムの起動制御方法及び情報処理装置

Also Published As

Publication number Publication date
JP2010198165A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
JP7313381B2 (ja) ハードウェアアクセラレーションのためのハードウェアリソースの埋込みスケジューリング
US10706496B2 (en) Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor
JP5215324B2 (ja) メディア装置における複数のオペレーティングシステム支援
US7853743B2 (en) Processor and interrupt controlling method
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
US20070118838A1 (en) Task execution controller, task execution control method, and program
JP3952992B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
EP2869189A1 (en) Boot up of a multiprocessor computer
JP5332716B2 (ja) 起動制御方法、情報処理装置及びプログラム
US20160283250A1 (en) Boot controlling processing apparatus
US11249777B2 (en) Virtual machine context management
CN113535341B (zh) Linux下CPU核间中断通信的实现方法及装置
US7412597B2 (en) Computer system and booting method thereof
JP6645348B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
US7984446B1 (en) Method and system for multitasking BIOS initialization tasks
JP2010140239A (ja) 割り込みレイテンシーを短縮する装置及び方法
US12032474B2 (en) Computer-readable recording medium storing acceleration test program, acceleration test method, and acceleration test apparatus
JP5668505B2 (ja) クロック周波数制御プログラム、クロック周波数制御装置
JP5335625B2 (ja) ブート時間を短縮するコンピュータ・プログラム
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP2009258984A (ja) 情報処理装置およびロード制御方法
KR102292211B1 (ko) 전자기기
CN113342427B (zh) 程序控制方法及装置
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2003131893A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びに記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees