(57)【要約】  汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行すること。この課題を解決するために、計時依頼部（１０１）は、希望の計測時間から予想遅延時間を減算し、得られた減算結果を依頼計測時間として、汎用ＯＳ部（１０８）に計時を依頼する。処理負荷検知部（１０２）は、計時依頼部（１０１）に希望の計測時間が入力された時点での汎用ＯＳ部（１０８）における処理負荷を検知する。予想遅延時間取得部（１０３）は、処理負荷検知部（１０２）によって検知された処理負荷と同一条件を遅延時間記憶部（１０４）から検索し、この条件に対応して記憶された遅延時間を予想遅延時間として取得する。遅延時間記憶部（１０４）は、過去に汎用ＯＳ部（１０８）が時間を計測した際に生じた遅延時間とその時の処理負荷とを対応付けて記憶している。
2008126218.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションからの要求により計時処理を実行する汎用ＯＳを備える情報処理装置であって、
前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶する記憶手段と、
アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知手段と、
前記検知手段によって検知された処理負荷に対応する遅延時間を予想遅延時間として前記記憶手段から取得する取得手段と、
前記取得手段によって取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記検知手段は、
ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記取得手段は、
前記検知手段によって検知された処理負荷に対応する遅延時間が前記記憶手段に記憶されていない場合に、予想遅延時間を０とすることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記取得手段は、
前記検知手段によって検知された処理負荷と前記記憶手段によって記憶された処理負荷および遅延時間とを用いて前記検知手段によって検知された処理負荷に対応する遅延時間を推定することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記依頼手段によって前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出手段と、
前記算出手段によって算出された遅延時間を前記検知手段によって検知された処理負荷に対応付けて前記記憶手段に登録する登録手段と
をさらに有することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記算出手段は、
前記依頼手段によって前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して計時完了時刻を求め、前記依頼手段によって前記汎用ＯＳへ依頼された計時が完了した時刻と計時完了時刻との差分を前記取得手段によって取得された予想遅延時間に加算して遅延時間を算出することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記登録手段は、
前記検知手段によって検知された処理負荷が前記記憶手段に登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする請求項５記載の情報処理装置。
【請求項８】
前記登録手段は、
前記検知手段によって検知された処理負荷が前記記憶手段に未登録である場合、当該処理負荷と前記算出手段によって算出された遅延時間とを対応付けて前記記憶手段に新たに登録することを特徴とする請求項５記載の情報処理装置。
【請求項９】
アプリケーションからの要求により計時処理を実行する汎用ＯＳを備える情報処理装置における時間計測方法であって、
アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知工程と、
過去における前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶するメモリから前記検知工程にて検知された処理負荷に対応する遅延時間を予想遅延時間として取得する取得工程と、
前記取得工程にて取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼工程と
を有することを特徴とする時間計測方法。
【請求項１０】
前記検知工程は、
ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする請求項９記載の時間計測方法。
【請求項１１】
前記取得工程は、
前記検知工程にて検知された処理負荷に対応する遅延時間が前記メモリに記憶されていない場合に、予想遅延時間を０とすることを特徴とする請求項９記載の時間計測方法。
【請求項１２】
前記取得工程は、
前記検知工程にて検知された処理負荷と前記メモリに記憶された処理負荷および遅延時間とを用いて前記検知工程にて検知された処理負荷に対応する遅延時間を推定することを特徴とする請求項９記載の時間計測方法。
【請求項１３】
前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出工程と、
前記算出工程にて算出された遅延時間を前記検知工程にて検知された処理負荷に対応付けて前記メモリに登録する登録工程と
をさらに有することを特徴とする請求項９記載の時間計測方法。
【請求項１４】
前記算出工程は、
前記依頼工程にて前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して得られる計時完了時刻と前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時刻との差分を前記取得工程にて取得された予想遅延時間に加算して遅延時間を算出することを特徴とする請求項１３記載の時間計測方法。
【請求項１５】
前記登録工程は、
前記検知工程にて検知された処理負荷が前記メモリに登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする請求項１３記載の時間計測方法。
【請求項１６】
前記登録工程は、
前記検知工程にて検知された処理負荷が前記メモリに未登録である場合、当該処理負荷と前記算出工程にて算出された遅延時間とを対応付けて前記メモリに新たに登録することを特徴とする請求項１３記載の時間計測方法。
【請求項１７】
アプリケーションからの要求により計時処理を実行する汎用ＯＳを備えるコンピュータにおける時間計測プログラムであって、前記コンピュータに、
アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知工程と、
過去における前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶するメモリから前記検知工程にて検知された処理負荷に対応する遅延時間を予想遅延時間として取得する取得工程と、
前記取得工程にて取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼工程と
を実行させることを特徴とする時間計測プログラム。
【請求項１８】
前記検知工程は、
ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする請求項１７記載の時間計測プログラム。
【請求項１９】
前記取得工程は、
前記検知工程にて検知された処理負荷に対応する遅延時間が前記メモリに記憶されていない場合に、予想遅延時間を０とすることを特徴とする請求項１７記載の時間計測プログラム。
【請求項２０】
前記取得工程は、
前記検知工程にて検知された処理負荷と前記メモリに記憶された処理負荷および遅延時間とを用いて前記検知工程にて検知された処理負荷に対応する遅延時間を推定することを特徴とする請求項１７記載の時間計測プログラム。
【請求項２１】
前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出工程と、
前記算出工程にて算出された遅延時間を前記検知工程にて検知された処理負荷に対応付けて前記メモリに登録する登録工程と
をさらに前記コンピュータに実行させることを特徴とする請求項１７記載の時間計測プログラム。
【請求項２２】
前記算出工程は、
前記依頼工程にて前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して得られる計時完了時刻と前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時刻との差分を前記取得工程にて取得された予想遅延時間に加算して遅延時間を算出することを特徴とする請求項２１記載の時間計測プログラム。
【請求項２３】
前記登録工程は、
前記検知工程にて検知された処理負荷が前記メモリに登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする請求項２１記載の時間計測プログラム。
【請求項２４】
前記登録工程は、
前記検知工程にて検知された処理負荷が前記メモリに未登録である場合、当該処理負荷と前記算出工程にて算出された遅延時間とを対応付けて前記メモリに新たに登録することを特徴とする請求項２１記載の時間計測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションからの要求により計時処理を実行する汎用ＯＳを備える情報処理装置、時間計測方法、および時間計測プログラムに関し、特に、汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行する場合に適用することができる情報処理装置、時間計測方法、および時間計測プログラムに関する。
【背景技術】
【０００２】
従来、コンピュータなどの情報処理装置においては、例えばタイムアウト処理などのために時間が計測されることがある。この種の情報処理装置は、所定の周波数で発振するハードウェアのクロックをカウントすることにより計時を行っている。具体的には、時間の計測を必要とするアプリケーションが希望の計測時間をＯＳ（Operating  System）へ通知し、ＯＳは、クロックをカウントして希望計測時間が経過したときに、その旨をアプリケーションへ通知する。【０００３】
このように、情報処理装置において時間を扱う場合には、主にＯＳによってクロックがカウントされるが、このＯＳが複数の処理を同時に行う汎用ＯＳである場合には、汎用ＯＳの処理状況によっては時間計測が遅延することがある。【０００４】
そこで、例えば特許文献１に記載されたように、時計装置の時刻を修正する際には、ＣＰＵ（Central  Processing  Unit）の処理状況に応じたタスク待ち時間を要求された修正時間に加算して、時刻の修正をすることが検討されている。この技術によれば、汎用ＯＳの処理状況に応じて変化するＣＰＵの処理遅延を考慮して、時計装置の時刻を正確に修正することが可能となる。【０００５】
【特許文献１】特開平１０−２５３７７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えばタイムアウト処理などの際の時間計測においては、時間計測前にあらかじめ処理遅延を考慮する必要があり、実際の処理遅延に基づいて修正時間を補正する特許文献１記載の技術では、正確な時間計測ができないという問題がある。すなわち、例えば図１に示すように、アプリケーションが汎用ＯＳに対して希望計測時間の計測を依頼した場合、汎用ＯＳの処理状況によっては、他の処理による遅延時間が生じる。そして、他の処理による処理負荷が軽減された後に、アプリケーションから依頼された希望計測時間が実際に計測されるため、アプリケーションに計測時間が経過したことが通知されるのは、アプリケーションの希望計測時間より遅延時間だけ遅れたタイミングとなってしまう。【０００７】
これは、アプリケーションが例えば３秒後のタイムアウト処理を実行するために、汎用ＯＳへ３秒の時間計測を依頼すると、汎用ＯＳにおける処理遅延により、例えば３．５秒後に希望の計測時間（３秒）が経過したことがアプリケーションへ通知されることを意味する。このとき、上述した特許文献１に記載の技術では、実際の処理遅延に基づいて計測時間を補正することになるため、アプリケーションによる依頼から３．５秒が経過したことをアプリケーションへ通知することは可能であるものの、アプリケーションの依頼どおりに３秒が経過したときに、その旨をアプリケーションへ通知することはできない。【０００８】
このような問題に対処するために、汎用ＯＳを時間計測を正確に行うことに特化した専用ＯＳに改変することも考えられるが、この場合には、汎用ＯＳのメリットである全体的なスループットの向上が損なわれるとともに、ＯＳの改変や維持によってコストが増大してしまう。【０００９】
本発明はかかる点に鑑みてなされたものであり、汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行することができる情報処理装置、時間計測方法、および時間計測プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明は、アプリケーションからの要求により計時処理を実行する汎用ＯＳを備える情報処理装置であって、前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶する記憶手段と、アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知手段と、前記検知手段によって検知された処理負荷に対応する遅延時間を予想遅延時間として前記記憶手段から取得する取得手段と、前記取得手段によって取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼手段とを有することを特徴とする。【００１１】
また、本発明は、上記発明において、前記検知手段は、ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする。【００１２】
また、本発明は、上記発明において、前記取得手段は、前記検知手段によって検知された処理負荷に対応する遅延時間が前記記憶手段に記憶されていない場合に、予想遅延時間を０とすることを特徴とする。【００１３】
また、本発明は、上記発明において、前記取得手段は、前記検知手段によって検知された処理負荷と前記記憶手段によって記憶された処理負荷および遅延時間とを用いて前記検知手段によって検知された処理負荷に対応する遅延時間を推定することを特徴とする。【００１４】
また、本発明は、上記発明において、前記依頼手段によって前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出手段と、前記算出手段によって算出された遅延時間を前記検知手段によって検知された処理負荷に対応付けて前記記憶手段に登録する登録手段とをさらに有することを特徴とする。【００１５】
また、本発明は、上記発明において、前記算出手段は、前記依頼手段によって前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して計時完了時刻を求め、前記依頼手段によって前記汎用ＯＳへ依頼された計時が完了した時刻と計時完了時刻との差分を前記取得手段によって取得された予想遅延時間に加算して遅延時間を算出することを特徴とする。【００１６】
また、本発明は、上記発明において、前記登録手段は、前記検知手段によって検知された処理負荷が前記記憶手段に登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする。【００１７】
また、本発明は、上記発明において、前記登録手段は、前記検知手段によって検知された処理負荷が前記記憶手段に未登録である場合、当該処理負荷と前記算出手段によって算出された遅延時間とを対応付けて前記記憶手段に新たに登録することを特徴とする。【００１８】
また、本発明は、アプリケーションからの要求により計時処理を実行する汎用ＯＳを備える情報処理装置における時間計測方法であって、アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知工程と、過去における前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶するメモリから前記検知工程にて検知された処理負荷に対応する遅延時間を予想遅延時間として取得する取得工程と、前記取得工程にて取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼工程とを有することを特徴とする。【００１９】
また、本発明は、上記発明において、前記検知工程は、ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする。【００２０】
また、本発明は、上記発明において、前記取得工程は、前記検知工程にて検知された処理負荷に対応する遅延時間が前記メモリに記憶されていない場合に、予想遅延時間を０とすることを特徴とする。【００２１】
また、本発明は、上記発明において、前記取得工程は、前記検知工程にて検知された処理負荷と前記メモリに記憶された処理負荷および遅延時間とを用いて前記検知工程にて検知された処理負荷に対応する遅延時間を推定することを特徴とする。【００２２】
また、本発明は、上記発明において、前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出工程と、前記算出工程にて算出された遅延時間を前記検知工程にて検知された処理負荷に対応付けて前記メモリに登録する登録工程とをさらに有することを特徴とする。【００２３】
また、本発明は、上記発明において、前記算出工程は、前記依頼工程にて前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して得られる計時完了時刻と前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時刻との差分を前記取得工程にて取得された予想遅延時間に加算して遅延時間を算出することを特徴とする。【００２４】
また、本発明は、上記発明において、前記登録工程は、前記検知工程にて検知された処理負荷が前記メモリに登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする。【００２５】
また、本発明は、上記発明において、前記登録工程は、前記検知工程にて検知された処理負荷が前記メモリに未登録である場合、当該処理負荷と前記算出工程にて算出された遅延時間とを対応付けて前記メモリに新たに登録することを特徴とする。【００２６】
また、本発明は、アプリケーションからの要求により計時処理を実行する汎用ＯＳを備えるコンピュータにおける時間計測プログラムであって、前記コンピュータに、アプリケーションが計時処理を要求する際に前記汎用ＯＳの処理負荷を検知する検知工程と、過去における前記汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶するメモリから前記検知工程にて検知された処理負荷に対応する遅延時間を予想遅延時間として取得する取得工程と、前記取得工程にて取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を前記汎用ＯＳへ依頼する依頼工程とを実行させることを特徴とする。【００２７】
また、本発明は、上記発明において、前記検知工程は、ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知することを特徴とする。【００２８】
また、本発明は、上記発明において、前記取得工程は、前記検知工程にて検知された処理負荷に対応する遅延時間が前記メモリに記憶されていない場合に、予想遅延時間を０とすることを特徴とする。【００２９】
また、本発明は、上記発明において、前記取得工程は、前記検知工程にて検知された処理負荷と前記メモリに記憶された処理負荷および遅延時間とを用いて前記検知工程にて検知された処理負荷に対応する遅延時間を推定することを特徴とする。【００３０】
また、本発明は、上記発明において、前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時に、前記汎用ＯＳによる計時処理の遅延時間を算出する算出工程と、前記算出工程にて算出された遅延時間を前記検知工程にて検知された処理負荷に対応付けて前記メモリに登録する登録工程とをさらに前記コンピュータに実行させることを特徴とする。【００３１】
また、本発明は、上記発明において、前記算出工程は、前記依頼工程にて前記汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して得られる計時完了時刻と前記依頼工程にて前記汎用ＯＳへ依頼された計時が完了した時刻との差分を前記取得工程にて取得された予想遅延時間に加算して遅延時間を算出することを特徴とする。【００３２】
また、本発明は、上記発明において、前記登録工程は、前記検知工程にて検知された処理負荷が前記メモリに登録済みである場合、当該処理負荷に対応する遅延時間を更新することを特徴とする。【００３３】
また、本発明は、上記発明において、前記登録工程は、前記検知工程にて検知された処理負荷が前記メモリに未登録である場合、当該処理負荷と前記算出工程にて算出された遅延時間とを対応付けて前記メモリに新たに登録することを特徴とする。
【発明の効果】
【００３４】
本発明によれば、アプリケーションが計時処理を要求する際に汎用ＯＳの処理負荷を検知し、過去における汎用ＯＳの処理負荷と計時処理の遅延時間とを対応付けて記憶するメモリから、検知された処理負荷に対応する遅延時間を予想遅延時間として取得し、取得された予想遅延時間をアプリケーションが要求する計測時間から減算して得られる依頼計測時間の計時を汎用ＯＳへ依頼する。このため、汎用ＯＳが特別な処理をしなくても、過去の処理負荷と遅延時間の傾向から予想される遅延時間をあらかじめ計測時間から減算して汎用ＯＳに計時を依頼することができ、汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行することができる。【００３５】
また、本発明によれば、ＣＰＵ負荷率、空きメモリ容量、またはダーティバッファからのデータの書き出しの有無を前記汎用ＯＳの処理負荷に対応する条件として検知するため、計時処理の遅延時間との相関が高い条件を確実に検知して、記憶された条件と比較することができ、正確な予想遅延時間を得ることができる。【００３６】
また、本発明によれば、検知された処理負荷に対応する遅延時間がメモリに記憶されていない場合に、予想遅延時間を０とするため、計時完了後に、検知された処理負荷に対応する遅延時間を容易に算出して新たにメモリに記憶させることができる。【００３７】
また、本発明によれば、検知された処理負荷とメモリに記憶された処理負荷および遅延時間とを用いて、検知された処理負荷に対応する遅延時間を推定するため、検知された処理負荷に完全に合致するものがメモリに記憶されていなくても、適切な予想遅延時間を取得することができる。【００３８】
また、本発明によれば、汎用ＯＳへ依頼された計時が完了した時に、汎用ＯＳによる計時処理の遅延時間を算出し、算出された遅延時間を処理負荷に対応付けてメモリに登録する。このため、計時が繰り返されるたびに、処理負荷と遅延時間の対応関係が常に最新の状態に更新され、次回以降の計時の際に用いられる予想遅延時間を正確なものにすることができる。【００３９】
また、本発明によれば、汎用ＯＳへ計時が依頼される時刻にアプリケーションが要求する計測時間を加算して得られる計時完了時刻と汎用ＯＳへ依頼された計時が完了した時刻との差分を予想遅延時間に加算して遅延時間を算出する。このため、実際に計時が完了した時刻が算出された計時完了時刻より後の時刻であれば予想遅延時間を大きくするように補正し、実際に計時が完了した時刻が算出された計時完了時刻より前の時刻であれば予想遅延時間を小さくするように補正することができ、次回以降の計時の際に用いられる予想遅延時間を確実に正確なものにすることができる。【００４０】
また、本発明によれば、検知された処理負荷がメモリに登録済みである場合、当該処理負荷に対応する遅延時間を更新するため、対応する処理負荷が既に記憶済みである遅延時間を最新の状態に更新することができる。【００４１】
また、本発明によれば、検知された処理負荷がメモリに未登録である場合、当該処理負荷と算出された遅延時間とを対応付けてメモリに新たに登録するため、計時が多く繰り返されるほど、検知される処理負荷に対応する遅延時間が記憶済みである可能性が高まり、処理負荷に応じた予想遅延時間が得られる可能性を高めることができる。
【図面の簡単な説明】
【００４２】
【図１】図１は、汎用ＯＳにおける時間計測の遅延の例を示す図である。
【図２】図２は、本発明の一実施の形態に係る情報処理装置の要部構成を示すブロック図である。
【図３】図３は、一実施の形態に係る処理負荷と遅延時間の対応の例を示す図である。
【図４】図４は、一実施の形態に係る情報処理装置の計時開始時の動作を示すフロー図である。
【図５】図５は、一実施の形態に係る情報処理装置の計時完了時の動作を示すフロー図である。
【図６】図６は、一実施の形態に係る遅延時間登録の例を示す図である。
【図７】図７は、一実施の形態に係る遅延時間更新の例を示す図である。
【符号の説明】
【００４３】
１０１  計時依頼部
１０２  処理負荷検知部
１０３  予想遅延時間取得部
１０４  遅延時間記憶部
１０５  計時結果判定部
１０６  現在時刻取得部
１０７  遅延時間登録部
１０８  汎用ＯＳ部
【発明を実施するための最良の形態】
【００４４】
本発明の骨子は、汎用ＯＳの処理負荷に応じた時間計測の遅延時間を記録しておき、アプリケーションが時間計測の依頼をする際には、処理負荷が一致する過去の遅延時間をあらかじめ希望計測時間から減算して汎用ＯＳへ計測を依頼することである。以下、本発明の一実施の形態について、図面を参照して詳細に説明する。【００４５】
図２は、本発明の一実施の形態に係る情報処理装置の要部構成を示すブロック図である。この情報処理装置は、例えばサーバやパーソナルコンピュータなどであり、様々なアプリケーションを実行することが可能である。図２に示す情報処理装置は、計時依頼部１０１、処理負荷検知部１０２、予想遅延時間取得部１０３、遅延時間記憶部１０４、計時結果判定部１０５、現在時刻取得部１０６、遅延時間登録部１０７、および汎用ＯＳ部１０８を有している。これらのうち、遅延時間記憶部１０４および汎用ＯＳ部１０８以外の処理ブロックは、アプリケーション部に含まれている。【００４６】
計時依頼部１０１は、図示しないアプリケーションが計測を希望する計測時間が入力されると、処理負荷検知部１０２へその旨を通知し、その後、予想遅延時間取得部１０３から予想遅延時間を取得する。そして、計時依頼部１０１は、希望の計測時間から予想遅延時間を減算し、得られた減算結果を依頼計測時間として、汎用ＯＳ部１０８に計時を依頼する。すなわち、計時依頼部１０１は、アプリケーションから計測時間が入力されると、計測時間より予想遅延時間だけ短い依頼計測時間の計時を汎用ＯＳ部１０８に依頼する。このとき、計時依頼部１０１は、予想遅延時間取得部１０３から予想遅延時間が取得されなかった場合は、予想遅延時間を０として、入力された計測時間をそのまま依頼計測時間とする。【００４７】
また、計時依頼部１０１は、依頼計測時間の計時を依頼する際に、入力された計測時間および予想遅延時間を計時結果判定部１０５へ出力する。【００４８】
処理負荷検知部１０２は、計時依頼部１０１に計測時間が入力された旨が通知されると、現時点での汎用ＯＳ部１０８における処理負荷を検知する。具体的には、処理負荷検知部１０２は、ＣＰＵ負荷率、空きメモリ容量、およびダーティバッファからの書き出しの有無を検知する。ＣＰＵ負荷率が高ければ、汎用ＯＳ部１０８における処理負荷は高い状態と考えられ、時間計測の遅延量が大きくなる。同様に、空きメモリ容量が小さければ、汎用ＯＳ部１０８における処理負荷が高い状態と考えられ、時間計測の遅延量が大きくなる。また、ダーティバッファからディスクへのデータの書き出しが行われていれば、汎用ＯＳ部１０８における処理負荷が高い状態と考えられ、時間計測の遅延量が大きくなる。【００４９】
そして、処理負荷検知部１０２は、検知したＣＰＵ負荷率、空きメモリ容量、およびダーティバッファ書き出しの有無を予想遅延時間取得部１０３および遅延時間登録部１０７へ出力する。なお、処理負荷検知部１０２が検知する処理負荷としては、ＣＰＵ負荷率、空きメモリ容量、およびダーティバッファ書き出しの有無だけでなく、他の条件を検知するようにしても良い。【００５０】
予想遅延時間取得部１０３は、処理負荷検知部１０２によって検知された処理負荷と同一条件を遅延時間記憶部１０４から検索し、この条件に対応して記憶された遅延時間を予想遅延時間として取得する。そして、予想遅延時間取得部１０３は、取得した予想遅延時間を計時依頼部１０１へ送出する。【００５１】
また、予想遅延時間取得部１０３は、処理負荷検知部１０２によって検知された処理負荷と同一条件が遅延時間記憶部１０４にない場合は、その旨を計時依頼部１０１へ通知する。【００５２】
遅延時間記憶部１０４は、過去に汎用ＯＳ部１０８が時間を計測した際に生じた遅延時間とその時の処理負荷とを対応付けて記憶している。具体的には、遅延時間記憶部１０４は、例えば図３に示すように、ＣＰＵ負荷率、空きメモリ容量、およびダーティバッファ書き出しの有無の条件と実際に生じた遅延時間とを対応付けて記憶している。すなわち、遅延時間記憶部１０４は、処理負荷検知部１０２によって検知される処理負荷の条件とこの条件下で過去に生じた遅延時間とを記憶している。【００５３】
計時結果判定部１０５は、計時依頼部１０１が計時を依頼する際、現在時刻に計測時間を加算して、アプリケーションが希望する計時完了時刻を算出しておく。そして、計時結果判定部１０５は、汎用ＯＳ部１０８による計時が完了した際、予想遅延時間、現在時刻、および計時完了時刻から、今回の計時における実際の遅延時間を算出し、遅延時間登録部１０７へ通知する。具体的には、計時結果判定部１０５は、予想遅延時間に現在時刻と計時完了時刻の差分を加算して今回の遅延時間を算出する。したがって、現在時刻が計時完了時刻以後であれば、遅延時間は予想遅延時間以上となり、現在時刻が計時完了時刻より前の時刻であれば、遅延時間は予想遅延時間未満となる。【００５４】
また、計時結果判定部１０５は、汎用ＯＳ部１０８による計時が完了した際、現在時刻と計時完了時刻を比較し、現在時刻が計時完了時刻以後の時刻であるか否かを判定する。この判定の結果、現在時刻が計時完了時刻以後であれば、計時結果判定部１０５は、アプリケーションが希望する計測時間の計時が完了した旨の通知信号を図示しないアプリケーションへ出力する。一方、現在時刻が計時完了時刻より前の時刻であれば、計時結果判定部１０５は、計時完了時刻と現在時刻の差分を新たに計測時間として計時依頼部１０１へ通知し、計時完了時刻までの時間の計時を再度依頼させる。【００５５】
現在時刻取得部１０６は、計時結果判定部１０５が現在時刻を必要とする際に、汎用ＯＳ部１０８から現在時刻を取得し、計時結果判定部１０５へ通知する。具体的には、現在時刻取得部１０６は、計時依頼部１０１から汎用ＯＳ部１０８への計時依頼時と汎用ＯＳ部１０８による計時完了時とに現在時刻を取得して、計時結果判定部１０５へ通知する。【００５６】
遅延時間登録部１０７は、処理負荷検知部１０２から通知された処理負荷と計時結果判定部１０５から通知された遅延時間とを対応付けて遅延時間記憶部１０４に登録する。このとき、遅延時間登録部１０７は、処理負荷検知部１０２によって検知された処理負荷と同一条件が遅延時間記憶部１０４に登録済みである場合には、この条件に対応する遅延時間を更新する。また、遅延時間登録部１０７は、処理負荷検知部１０２によって検知された処理負荷と同一条件が遅延時間記憶部１０４に未登録である場合には、条件と遅延時間とを新たに登録する。【００５７】
汎用ＯＳ部１０８は、情報処理装置を動作させるための基本ソフトウェアである汎用ＯＳを実行し、アプリケーションからの依頼に応じてデータの入出力や時間の計測などを行う。具体的には、汎用ＯＳ部１０８は、ハードウェアのクロックをカウントし、計時依頼部１０１から依頼された依頼計測時間を計時したり、現在時刻取得部１０６へ現在時刻を通知したりする。【００５８】
次いで、上記のように構成された情報処理装置における計時開始時の動作について、図４に示すフロー図を参照しながら説明する。なお、図４に示す処理フローは、アプリケーションが時間の計測を希望する場合（図４中スタートから開始される）や計時完了時刻になる前に計時が完了した際の不足分を再度計時する場合（図４中（Ａ）から開始される）に実行される。【００５９】
まず、図示しないアプリケーションまたは計時結果判定部１０５から計測時間が計時依頼部１０１へ入力されると、その旨が計時依頼部１０１から処理負荷検知部１０２へ通知され、処理負荷検知部１０２によって汎用ＯＳ部１０８における処理負荷が検知される（ステップＳ１０１）。具体的には、処理負荷検知部１０２によって、ＣＰＵ負荷率、空きメモリ容量、およびダーティバッファ書き出しの有無が汎用ＯＳ部１０８の処理負荷を示す条件として検知される。【００６０】
検知された処理負荷の条件は、予想遅延時間取得部１０３および遅延時間登録部１０７へ出力され、遅延時間登録部１０７によって、計時完了時まで保持される。また、処理負荷の条件が処理負荷検知部１０２から出力されると、予想遅延時間取得部１０３によって、遅延時間記憶部１０４が参照される（ステップＳ１０２）。そして、予想遅延時間取得部１０３によって、処理負荷に相当する条件に合致する遅延時間が遅延時間記憶部１０４に記憶されているか否かが判断される（ステップＳ１０３）。すなわち、予想遅延時間取得部１０３によって、処理負荷検知部１０２によって検知された条件と同一条件に対応する遅延時間が遅延時間記憶部１０４に記憶されているか否かが判断される。【００６１】
この結果、条件に合致する遅延時間が遅延時間記憶部１０４に記憶されていれば（ステップＳ１０３Ｙｅｓ）、予想遅延時間取得部１０３によって、条件に対応する遅延時間が予想遅延時間として取得され（ステップＳ１０４）、計時依頼部１０１へ通知される。そして、計時依頼部１０１によって、入力された計測時間から予想遅延時間が減算されることにより依頼計測時間が算出される（ステップＳ１０５）。この依頼計測時間は、過去に汎用ＯＳ部１０８の処理負荷が現在と類似した状況であった際の時間計測の遅延を考慮した値であり、今回の時間計測においても同様の遅延が生じれば、依頼計測時間の計時完了時には計時依頼部１０１に入力された計測時間が経過していることになる。【００６２】
一方、条件に合致する遅延時間が遅延時間記憶部１０４に記憶されていなければ（ステップＳ１０３Ｎｏ）、予想遅延時間取得部１０３によって、その旨が計時依頼部１０１へ通知され、計時依頼部１０１によって、暫定的に予想遅延時間が０とされ、入力された計測時間がそのまま依頼計測時間とされる（ステップＳ１０６）。【００６３】
このようにして計時依頼部１０１によって依頼計測時間が求められると、この依頼計測時間の計時が計時依頼部１０１から汎用ＯＳ部１０８へ依頼される（ステップＳ１０７）。依頼計測時間が計時依頼部１０１から汎用ＯＳ部１０８へ通知される際、入力された計測時間および予想遅延時間は、計時依頼部１０１から計時結果判定部１０５へ出力される。そして、計時結果判定部１０５からの要求に応じて現在時刻取得部１０６によって現在時刻が取得される（ステップＳ１０８）。すなわち、現在時刻取得部１０６から汎用ＯＳ部１０８へ現在時刻が要求され、取得された計時依頼時の現在時刻は、計時結果判定部１０５へ通知される。【００６４】
そして、計時結果判定部１０５では、計時完了時に計時結果や予想遅延時間が正確であったか否かを判定するため、現在時刻に計測時間が加算されて計時完了時刻が算出される（ステップＳ１０９）。計時完了時刻は、計時依頼部１０１に入力された計測時間が正確に計時された場合に計時が完了する予定の時刻であり、汎用ＯＳ部１０８から計時完了の通知が到着する時刻が計時完了時刻に一致すれば、計時結果および予想遅延時間が正確であったことになる。計時結果判定部１０５によって計時完了時刻が算出されると、この計時完了時刻は、計時完了時まで計時結果判定部１０５によって保持される。【００６５】
このように、計時開始時の処理フローにおいては、計測時間から汎用ＯＳ部１０８における処理負荷に応じた予想遅延時間が減算された上で、汎用ＯＳ部１０８へ計時が依頼される。つまり、アプリケーション部においてアプリケーションが希望する計測時間から予想遅延時間を減算して依頼計測時間が求められ、汎用ＯＳ部１０８に対しては、依頼計測時間の計時が依頼される。このため、汎用ＯＳ部１０８は、処理による遅延を考慮せずに通常通り計時処理を実行すれば良く、汎用ＯＳの改変が不要である。【００６６】
また、計時開始時の処理フローが完了した時点では、計時結果判定部１０５においては、計時が完了する予定の計時完了時刻が保持され、遅延時間登録部１０７においては、計時依頼時の汎用ＯＳ部１０８における処理負荷が保持されることになる。これらの計時完了時刻および処理負荷は、計時完了時に用いられる。【００６７】
次に、本実施の形態に係る情報処理装置の計時完了時の動作について、図５に示すフロー図を参照しながら説明する。【００６８】
計時完了時には、汎用ＯＳ部１０８から計時完了の旨が計時結果判定部１０５へ通知され、計時結果判定部１０５からの要求に応じて現在時刻取得部１０６によって現在時刻が取得される（ステップＳ２０１）。すなわち、現在時刻取得部１０６から汎用ＯＳ部１０８へ現在時刻が要求され、取得された計時完了時の現在時刻は、計時結果判定部１０５へ通知される。【００６９】
そして、計時結果判定部１０５では、計時依頼時に計時依頼部１０１から出力された予想遅延時間の補正が行われる。具体的には、計時結果判定部１０５によって、予想遅延時間に現在時刻と計時完了時刻との差分が加算され、今回の計時における遅延時間が算出される（ステップＳ２０２）。ここで、本実施の形態においては、計時開始時に計測時間から予想遅延時間を減じた依頼計測時間の計時が汎用ＯＳ部１０８へ依頼されているため、予想遅延時間が正確であれば、現在時刻と計時開始時に算出された計時完了時刻とが一致するはずである。したがって、この場合には、今回の計時においても汎用ＯＳ部１０８における計時で予想遅延時間の遅延が生じたことになり、遅延時間は予想遅延時間に等しいことになる。【００７０】
また、予想遅延時間が実際の遅延時間より小さければ、現在時刻が計時完了時刻より後の時刻となるはずである。したがって、この場合には、遅延時間は予想遅延時間よりも現在時刻と計時完了時刻の差分だけ大きい時間となる。さらに、予想遅延時間が実際の遅延時間より大きければ、現在時刻が計時完了時刻より前の時刻となるはずである。したがって、この場合には、遅延時間は予想遅延時間よりも現在時刻と計時完了時刻の差分だけ小さい時間となる。【００７１】
このようにして算出された今回の計時における遅延時間は、遅延時間登録部１０７によって、処理負荷の条件に対応付けられて遅延時間記憶部１０４に登録される（ステップＳ２０３）。このとき、処理負荷の条件が遅延時間記憶部１０４に未登録のものである場合には、遅延時間登録部１０７によって、処理負荷の条件と遅延時間とが新たに登録され、処理負荷の条件が遅延時間記憶部１０４に登録済みのものである場合には、遅延時間登録部１０７によって、処理負荷の条件に対応する遅延時間が更新される。【００７２】
すなわち、例えば図３に示した遅延時間記憶部１０４の記憶内容に対して、今回の計時における処理負荷の条件が「ＣＰＵ負荷率：１００％、空きメモリ容量：０ＭＢ、バッファ書き出し：有」である場合には、この条件が遅延時間記憶部１０４に未登録であるため、図６に太枠で示すように、この条件と条件に対応する遅延時間「１．７μｓ」とが新たに遅延時間記憶部１０４に登録される。また、今回の計時における処理負荷の条件が「ＣＰＵ負荷率：９７％、空きメモリ容量：０ＭＢ、バッファ書き出し：有」である場合には、この条件が遅延時間記憶部１０４に登録済みであるため、図７に太枠で示すように、この条件に対応する遅延時間のみが「１．３μｓ」に更新される。【００７３】
このように、本実施の形態においては、汎用ＯＳ部１０８の処理負荷と処理負荷に対応する遅延時間とが常に最新の状態に更新され、次回以降の計時の際に、処理負荷に応じた予想遅延時間として用いられることになる。したがって、汎用ＯＳ部１０８の処理状況がより計時依頼時の状況に近いときの遅延時間を予想遅延時間とすることができ、時間計測を正確に行うことができる。また、時間計測を繰り返せば繰り返すほど、遅延時間記憶部１０４に登録される処理負荷の条件と遅延時間との対応関係が増加し、計時依頼時の処理負荷の条件に合致するものが存在する可能性が高くなる。このため、計時依頼時に適切な予想遅延時間を減じた依頼計測時間を算出することができる可能性が高くなる。【００７４】
遅延時間記憶部１０４への遅延時間の登録と同時に、計時結果判定部１０５においては、現在時刻と計時開始時に算出された計時完了時刻が比較される（ステップＳ２０４）。この結果、現在時刻が計時完了時刻以後の時刻であれば（ステップＳ２０４Ｙｅｓ）、計時依頼部１０１に計測時間が入力されてからこの計測時間以上が経過していることから、計時結果判定部１０５によって、計測時間が経過した旨の通知信号が出力される（ステップＳ２０５）。本実施の形態においては、計時依頼時に計測時間から処理負荷に応じた予想遅延時間を減算した依頼計測時間の計時が汎用ＯＳ部１０８へ依頼されているため、計時完了時の現在時刻と計時開始時に算出された計時完了時刻とがほぼ一致し、計時が正確に行われる。したがって、計時結果判定部１０５から出力される通知信号は、アプリケーションが希望する計測時間を正確にアプリケーションに報知することとなる。【００７５】
一方、計時完了時の現在時刻と計時開始時に算出された計時完了時刻との比較の結果、現在時刻が計時完了時刻より前の時刻であれば（ステップＳ２０４Ｎｏ）、計時依頼部１０１に計測時間が入力されてからこの計測時間がまだ経過していないことから、計時結果判定部１０５によって、不足分の計測時間が算出される。すなわち、計時結果判定部１０５によって、計時完了時刻から現在時刻が減算されて不足分の計測時間が算出され（ステップＳ２０６）、算出された計測時間が計時依頼部１０１へ出力される。この場合、計時依頼部１０１に不足分の計測時間が入力されると、図４に示した計時開始時の処理が再度実行され、不足分の計測時間の計測が開始される。そして、最終的に、計時完了時の現在時刻が計時開始時に算出される計時完了時刻以後の時刻となるまで計時が繰り返される。【００７６】
これにより、処理負荷に応じた予想遅延時間が過大であった場合でも、最終的に計時完了の通知信号が計時結果判定部１０５から出力されるのは、アプリケーションが希望する計測時間が経過してからとなり、正確な計時を行うことができる。【００７７】
以上のように、本実施の形態によれば、計時依頼時の汎用ＯＳの処理負荷に応じた予想遅延時間をアプリケーション側であらかじめ計測時間から減算し、減算の結果得られた依頼計測時間の計時を汎用ＯＳへ依頼する。そして、汎用ＯＳによる計時の結果、実際の遅延時間を算出して記憶し、次回以降の時間計測時の予想遅延時間として用いる。このため、汎用ＯＳが特別な処理をしなくても、過去の処理負荷と遅延時間の傾向から予想される遅延時間をあらかじめ計測時間から減算して汎用ＯＳに計時を依頼することができ、汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行することができる。【００７８】
なお、上記一実施の形態においては、処理負荷検知部１０２によって検知された処理負荷と完全に一致する条件が遅延時間記憶部１０４に記憶されていなければ、予想遅延時間を０とするものとしたが、処理負荷を示す条件の一部から予想遅延時間取得部１０３が遅延時間を補間して予想遅延時間を決定しても良い。すなわち、例えば処理負荷検知部１０２によって検知された処理負荷とＣＰＵ負荷率のみが異なる条件に対応する遅延時間が遅延時間記憶部１０４に記憶されている場合には、予想遅延時間取得部１０３がＣＰＵ負荷率の違いを基にして、遅延時間記憶部１０４に記憶された遅延時間から予想遅延時間を推定するようにしても良い。【００７９】
また、上記一実施の形態においては、計時完了時に、実際の遅延時間を求めて遅延時間記憶部１０４に登録するものとしたが、既に遅延時間記憶部１０４に記憶された遅延時間を更新する際には、記憶されている遅延時間を完全に消去してしまうのではなく、新たな遅延時間との平均値などを記憶させるようにしても良い。このとき、新たな遅延時間に対する重み付け係数を大きくする重み付けを施すなどとしても良い。
【産業上の利用可能性】
【００８０】
本発明は、汎用ＯＳに改変を加えることなくコストの増大を抑制しながら、時間計測を正確に実行する場合に適用することができる。
【図１】
2008126218.tif 000003
【図２】
2008126218.tif 000004
【図３】
2008126218.tif 000005
【図４】
2008126218.tif 000006
【図５】
2008126218.tif 000007
【図６】
2008126218.tif 000008
【図７】
2008126218.tif 000009
【国際調査報告】
2008126218.tif 000010
2008126218.tif 000011