説明

入出力制御装置、入出力制御方法

【課題】リアルタイム性の要求される入出力処理の最悪実行時間を把握でき、処理の最適化を図れる入出力制御装置を提供する
【解決手段】二次記憶装置10には入出力処理が優先順位に従って入力される。第1キュー102は最悪実行時間を算出する入出力処理を格納し、格納された入出力処理の順序が変更不能に構成する。第2キュー103は最悪実行時間を算出しない入出力処理を格納し、格納された入出力処理の順序が変更可能に構成する。オーダリング部103は第2キュー103内の入出力処理を処理時間が短縮されるように並べ替える。切り替え条件保持部106は、入出力処理を取り出すアクセス先を第1のキュー102又は第2のキュー103のいずれかに決定するための切り替え条件を保持する。入出力実行部108は切り替え条件に基づいて第1キュー102又は第2キュー103から入出力処理を取得して実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は入出力制御装置及び入出力制御方法に関する。
【背景技術】
【0002】
現在、SATA(Serial Advanced Technology Attachment)ディクス等の二次記憶装置は、コマンドを効率的に処理するためのコマンドキューイング機能を備えるものが多い。コマンドキューイング機能とは、キューに入れられたコマンドの発行順序にかかわらず、最適な処理効率となるようにコマンドを並べ替えた後に処理する機能である。コマンドキューイング機能が有効な二次記憶装置に対し、入出力手段(ディスクデバイスドライバ)は複数個の入出力処理を同時に発行することができる。二次記憶装置は、有限の深さをもつキューを備え、入出力手段から受け取った入出力処理をキューに格納する。二次記憶装置内のファームウェアは、ディスクのシークタイムが最小となるようにキュー内の入出力処理を並べ替えた後に入出力処理を実行する。
【0003】
二次記憶装置は、一般に自己のコマンドキューイング機能を有効にするか否かを設定できる。コマンドキューイング機能を有効にした場合、入出力処理が二次記憶装置のファームウェアにより並べ替えられてしまうため、実行順序をコントロールできなくなる。一方、コマンドキューイング機能を無効にした場合、ディスクのシークタイムを短縮することができなくなる。よって、一般的な二次記憶装置によっては、リアルタイム性が必要とされる入出力処理の実行と、コマンドキューイング機能による入出力処理の最適化と、の両立ができなかった。
【0004】
特許文献1では、優先順位に基づいて、入力されたコマンドを適宜並べ替えて実行する入出力制御装置に関する技術が開示されている。当該入出力制御装置は、上位装置からの入出力処理の処理順序を複数のデバイス毎に管理するDAキューと、各デバイスへの入出力を管理するデバイスキューとを備える。当該入出力制御装置は、DAキュー及びデバイスキューを優先順位に応じて並べ替えることにより、優先順位の高い処理を素早く処理することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−006135号公報
【特許文献2】特開2009−181474号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の入出力制御装置によっては、入出力処理の最悪実行時間を算出できないという問題がある。当該問題について以下に説明する。
【0007】
最悪実行時間とは、ある計算タスクを入力してから完了するまでにかかる時間のうち、最長の時間(最悪のケースの時間)を指す。最悪実行時間を知ることは、リアルタイム性の要求される各アプリケーションのタイミング解析にとって最重要とされる。
【0008】
特許文献1に記載の入出力制御装置は、キューに処理が入れられるたびに、優先度に応じてキュー内の処理の順序を頻繁に変更する。キューに入れられた処理順序が頻繁に変更されることにより、ある処理をキューに入力した時点から、当該処理を終了するまでの時間が算出できない。すなわち、各処理を入力してから終了するまでの最悪実行時間を算出できない。
【0009】
つまり、特許文献1に記載の入出力装置によっては、コマンドキューイングによる処理高速化が図れるものの、リアルタイム性の要求される入出力処理の最悪実行時間が把握できない。
【0010】
本発明はこのような問題を解決するためになされたものであり、リアルタイム性の要求される入出力処理の最悪実行時間を把握でき、かつ、リアルタイム性の要求されない入出力処理の処理時間の最適化を図れる入出力制御装置及び入出力制御方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明にかかる入出力制御装置の一態様は、最悪実行時間の算出が必要な入出力処理が格納され、格納された複数の入出力処理の順序が変更不能に構成された第1キューと、最悪実行時間の算出が不要な入出力処理が格納され、格納された複数の入出力処理の順序が変更可能に構成された第2キューと、前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替えるオーダリング部と、入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行する実行部と、を備え、入出力処理は優先順位に従って入力されるものである。
【0012】
本発明にかかる入出力制御方法の一態様は、入出力処理が優先順位に従って入力され、入力データの並べ替えが出来ないように構成された第1キューに最悪実行時間の算出が必要な入出力処理を格納し、入力データの並べ替えが出来るように構成された第2キューに最悪実行時間の算出が不要な入出力処理を格納し、入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を記憶し、前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替え、前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行するものである。
【0013】
本発明にかかる情報処理装置の一態様は、最悪実行時間の算出が必要な処理タスクが格納され、格納された複数の処理タスクの順序が変更不能に構成された第1キューと、最悪実行時間の算出が不要な処理タスクが格納され、格納された複数の処理タスクの順序が変更可能に構成された第2キューと、前記第2キューに格納された前記複数の処理タスクを、処理時間が短縮されるように並べ替えるオーダリング部と、処理タスクを取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから処理タスクを取得して実行する実行部と、を備え、
処理タスクが優先順位に従って入力されるものである。
【0014】
本発明にかかる入出力処理システムの一態様は、前記入出力処理装置と、前記送信装置と、を備える情報記憶システムであって、前記送信装置は、各アプリケーションの実行状態をモニタリングするモニタリング部を備え、前記モニタリングの結果に応じて前記切り替え条件変更要求を送信することを特徴とするものである。
【発明の効果】
【0015】
本発明によれば、リアルタイム性の要求される入出力処理の最悪実行時間を把握でき、かつ、リアルタイム性の要求されない入出力処理の処理時間の最適化を図れる入出力制御装置及び入出力制御方法を提供することができる。
【図面の簡単な説明】
【0016】
【図1】実施の形態1にかかる入出力処理システムのブロック図である。
【図2】実施の形態1にかかる入出力処理分別部101の動作を示すフローチャートである。
【図3】実施の形態1にかかる入出力実行部108の入出力処理の実行動作を示したフローチャートである。
【図4】実施の形態1にかかる入出力処理システムのブロック図である。
【発明を実施するための形態】
【0017】
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1は本実施の形態にかかる入出力処理システムの構成を示すブロック図である。入出力処理システム1は、二次記憶装置10と、オペレーティングシステム200と、特権領域管理部210と、ハードリアルタイムアプリケーション220と、ソフトリアルタイムアプリケーション230と、非リアルタイムアプリケーション240と、を備える。
【0018】
二次記憶装置10は、入出力処理分別部101と、特権領域用キュー102と、非特権領域用キュー103と、オーダリング部104と、特権領域情報105と、閾値保持部106と、特権領域連続処理数保持部107と、入出力実行部108と、を備える。
【0019】
入出力分別部101は、入力された入出力処理の種別に応じて、当該入力された入出力処理を特権領域用キュー102と、非特権領域用キュー103とに振り分けて入力する処理部である。入力された入出力処理が特権領域に対するものである場合、入出力分別部101は、当該入出力処理を特権領域用キュー102に入力する。特権領域に対する処理は、ハードリアルタイムアプリケーション220及びソフトリアルタイムアプリケーション230から出力された入出力処理である。特権領域とは、最悪実行時間の算出が必要な入出力処理が行われる領域である。一方、入力された入出力処理が非特権領域に対するものである場合、入出力分別部101は、当該入出力処理を非特権領域用キュー103に入力する。非特権領域に対する処理は、非リアルタイムアプリケーション240から出力された入出力処理である。非特権領域とは、最悪実行時間の算出が不要な入出力処理が行われる領域である。
【0020】
特権領域用キュー102は、ハードリアルタイムアプリケーション220及びソフトリアルタイムアプリケーション230から出力された入出力処理が格納されるキューである。特権領域用キュー102に格納される入出力処理は、最悪実行時間の算出が必要な入出力処理である。特権領域用キュー102に格納された入出力処理の順序は並び変えられることが無いFIFO(First In, First Out)キューであり、有限の深さを持つ。すなわち、特権領域用キュー102に格納された入出力処理は、キューに入れられた順序のまま処理が行われる。
【0021】
非特権領域用キュー103は、非リアルタイムアプリケーション240から出力された入出力処理が格納されるキューである。非特権領域用キュー103は有限の深さを持つキューである。非特権領域用キュー103に格納される入出力処理は、最悪実行時間の算出が不要な入出力処理である。非特権領域用キュー103に格納された入出力処理の順序は、オーダリング部104により並べ替えられる。
【0022】
オーダリング部104は、非特権領域用キュー103に格納された入出力処理を処理時間が短縮されるように並べ替える処理部である。本例では、オーダリング部104は、既存のコマンドキューイングにおけるリオーダリング機能を実現する処理部である。オーダリング部104は、二次記憶装置10内のディスク(不図示)のシークタイムが最短となるように、非特権領域用キュー103内の入出力処理を並べ替える。
【0023】
特権領域情報105は、二次記憶装置10内の特権領域に関する情報を保持したファイルである。たとえば、特権領域情報105には、入出力実行部108が入出力処理を行う二次記憶装置10内の各ディスクが特権領域にかかるものであるか否かという情報を保持する。
【0024】
閾値保持部106は、入出力処理を取り出すアクセス先を特権領域用キュー102または非特権領域用キュー103のいずれかに決定するための条件を定めた切り替え条件を保持する。本例では、閾値保持部106は、連続して特権領域用キュー102から取り出して実行した入出力処理の数の閾値として保持する。すなわち、閾値保持部106は、特権領域への入出力を連続して最大何回まで許可するかという情報を保持する。
【0025】
閾値を超えない場合には、特権領域用キュー102に格納された入出力処理が実行される。閾値に達した場合には、非特権領域用キュー103に格納された入出力処理が実行される。たとえば、閾値保持部106が閾値として"10"を保持していた場合、特権領域連続処理数保持部107の保持する値が"10"となった後に、非特権領域用キュー103から1個の入出力処理が取り出され、実行される。
【0026】
なお、閾値保持部106の保持する値を無限大と設定することも可能である。この場合、特権領域用キュー102に入出力処理が1つでも格納されている場合には、特権領域用キュー102から入出力処理が取り出されて実行されることになる。
【0027】
当該閾値は、システム構成を行う際(システムのインストール等の処理を行う際)に特権領域管理部210により設定される。また、当該閾値は後述するモニタリング部202による変更要求に応じて変更されうる。
【0028】
特権領域連続処理数保持部107は、特権領域用キュー102から取り出して実行した入出力処理の状態(本例では、連続して特権領域用キュー102から取り出して実行した入出力処理の数)を保持する処理部である。特権領域連続処理数保持部107の保持する値は、入出力実行部108の更新要求により変更される。ただし、ハードリアルタイムアプリケーション220からの入出力が処理されている間には、特権領域連続処理数保持部107は保持する値を変更しないように制御する。特権領域連続処理数保持部107が保持する値を変更しないことにより、ハードリアルタイムアプリケーション220が動作している間には、特権領域連続処理数保持部107の保持する値が閾値に達することはない。閾値に達することが無いため、ハードリアルタイムアプリケーション220が動作している間は、常に特権領域用キュー102内の入出力処理が実行される。
【0029】
入出力実行部108は、特権領域用キュー102または非特権領域用キュー103から入出力処理を取り出して実行する処理部である。特権領域連続処理数保持部107が保持する値が閾値保持部106の保持する閾値に達しておらず、かつ、特権領域用キュー102が空ではない場合、入出力実行部108は特権領域用キュー102から入出力処理を取り出して実行する。特権領域用キュー102から入出力処理を取り出して実行した後に、入出力実行部108は、特権領域連続処理数保持部107の保持する値のインクリメント("1"増加させる)するための要求を特権領域連続処理数保持部107に出力する。
【0030】
一方、特権領域連続処理数保持部107が保持する値が閾値保持部106の保持する閾値に達した場合、または、特権領域用キュー102が空の場合、入出力実行部108は非特権領域用キュー103から入出力処理を取り出して実行する。非特権領域用キュー103からから入出力処理を取り出して実行した後に、入出力実行部108は、特権領域連続処理数保持部107の保持する値を"0"に設定するための要求を特権領域連続処理数保持部107に出力する。
【0031】
オペレーティングシステム200は、入出力部201と、モニタリング部202と、を備える。オペレーティングシステム200は、コンピュータ等の情報処理装置において、ハードウェアを抽象化したインターフェイスをアプリケーションソフトウェアに提供するソフトウェアであり、基本ソフトウェアの一種である。
【0032】
入出力部201は、二次記憶装置10とのインターフェイスとなる処理部である。入出力部201は、各アプリケーション(220〜240)から入力された入出力処理を二次記憶装置10の入出力処理分別部101に入力する。この際、入出力部201は、オペレーティングシステム200のスケジューラ機能等により、特権領域に対する入出力処理を優先度に応じた順序に並べ替えた後に入出力処理分別部101に入力する。
【0033】
モニタリング部202は、各アプリケーション(220〜240)から生成されたプロセスの処理状態等をモニタリングする処理部である。モニタリング部220は、オペレーティングシステム200内において常時稼働する処理部であり、各アプリケーション(220〜240)の動作状態を監視する。モニタリング部202は当該監視により、非リアルタイムアプリケーションであっても長時間二次記憶装置20への入出力処理が終了していないアプリケーションがあるか否かを検出する。このようなアプリケーションが検出された場合、モニタリング部202は閾値保持部106に対して閾値を下げるような変更を要求する。
【0034】
またモニタリング部202は、ハードリアルタイムアプリケーション220の動作状況をモニタリングし、当該動作状況を特権領域連続処理数保持部107に通知する。具体的には、モニタリング部202は、ハードリアルタイムアプリケーション220が動作開始状態になったことを特権領域連続処理数保持部107に通知する。また、ハードリアルタイムアプリケーション220の処理が終了したことを検知した場合、モニタリング部202は、停止状態になったことを特権領域連続処理数保持部107に通知する。当該通知に応じて、特権領域連続処理数保持部107は、保持する値をインクリメントするか否かを決定する。
【0035】
特権領域管理部210は、入出力処理システム1のシステム構成時に二次記憶装置10における各ディスクの状態を設定する処理部である。すなわち、特権領域管理部210は二次記憶装置10の各ディスクが特権領域であるか、非特権領域であるかを設定するための管理部である。特権領域管理部が設定した設定内容は、特権領域情報105として保存される。
【0036】
ハードリアルタイムアプリケーション220は、確実に時間制約を厳守して処理を終了する必要がある処理を行うアプリケーションである。ソフトリアルタイムアプリケーション230は、時間制約を厳守して処理を終了する必要がないが、その処理の価値が、処理終了時間が長くなるにつれて下がるアプリケーションである。ハードリアルタイムアプリケーション220及びソフトリアルタイムアプリケーション230から出力された入出力処理は、二次記憶装置10に送信された後に特権領域用キュー102に格納される。
【0037】
非リアルタイムアプリケーション240は、時間制約を厳守して処理を終了する必要が無い処理を行うアプリケーションである。非リアルタイムアプリケーション240から出力された入出力処理は、二次記憶装置10に送信された後に非特権領域用キュー103に格納される。
【0038】
次に本実施の形態にかかる入出力処理システム1のシステム構成を決定する際の各処理部の動作について説明する。システムを構成する(システムをインストールする)際に、ユーザは特権領域及び非特権領域を考慮して二次記憶装置10の設定を行う。すなわち、ユーザはインストール時に二次記憶装置10のどのディスクを特権領域または非特権領域にするかを指定する。たとえば、ユーザは二次記憶装置10の1枚目のプラッタの表裏両面を特権領域と定めて、この領域にパーティション1を作成する。続いてユーザは、残りの領域を用いてパーティション2〜Nを作成して非特権領域とする。また、システムインストール時に、特権領域連続処理数保持部107の保持する値を"0"に設定する。
【0039】
システムインストールの終了後、すなわちオペレーティングシステム200のインストール及び特権領域/非特権領域の設定が終わった後に、ユーザは特権領域管理部210に閾値保持部106の閾値を決めるための指示を行う。特権領域管理部210は、閾値保持部106が保持する閾値を設定する。この閾値は、特権領域への入出力を連続して最大何回まで許可するかを定める。
【0040】
続いて、本実施の形態にかかる入出力処理システム1による入出力処理の制御について図1〜図3を用いて説明する。図2は、入出力処理分別部101の動作を示すフローチャートである。まず、入出力処理分別部101の動作について説明する。
【0041】
各アプリケーション(220〜240)が出力した入出力処理は、入出力部201に入力される。この際、各アプリケーションが出力した入出力処理が二次記憶装置10のどのディスクに対する処理であるかは、例えばオペレーティングシステム200の機能により認識可能である。入出力処理は、オペレーティングシステム200のスケジューラ機能により処理の優先度が高い順序に並べ替えられる。入出力処理部201は、当該順序に並び変えられた入出力処理を入出力処理分別部101に入力する。
【0042】
入出力処理分別部101は、入出力処理を受信する(S101)。入出力処理分別部101は、受信した入出力処理が特権領域への入出力であるか否かを判定する(S102)。特権領域への入出力である場合(S102:Yes)、入出力処理分別部101は特権領域用キュー102に空きがあるかを判定する(S103)。
【0043】
特権領域用キュー102に空きがある場合(S103:Yes)、入出力処理分別部101は、当該入出力処理を特権領域用キュー102に格納する(S104)。一方、特権領域用キュー102に空きがない場合(S103:No)、入出力処理分別部101は、特権領域用キュー102に空きが無い旨を入出力部201に通知する(S105)。
【0044】
一方、入力された入出力処理が非特権領域への入出力である場合(S102:No)、入出力処理分別部101は非特権領域用キュー103に空きがあるかを判定する(S106)。
【0045】
非特権領域用キュー103に空きがある場合(S106:Yes)、入出力処理分別部101は、当該入出力処理を非特権領域用キュー103に格納する(S107)。一方、非特権領域用キュー103に空きがない場合(S106:No)、入出力処理分別部101は、非特権領域用キュー103に空きが無い旨を入出力部201に通知する(S108)。
【0046】
次に、入出力処理の実行動作について図3を用いて説明する。図3は、入出力処理の実行動作を示したフローチャートである。
【0047】
入出力実行部108は、特権領域連続処理数保持部107が保持する特権領域連続処理数を読み込む。そして、入出力実行部108は特権領域連続処理数と、閾値保持部106から読み込んだ閾値を比較する(S201)。
【0048】
特権領域連続処理数が閾値を超えていない場合(S201:No)、入出力実行部108は特権領域用キュー102が空か否かを判定する(S202)。特権領域用キュー102が空ではない場合(S202:No)、入出力実行部108は特権領域用キュー102から入出力処理を取り出して実行する(S203)。そして、入出力実行部108は特権領域連続処理数のインクリメントを特権領域連続処理数保持部107に要求する。ハードリアルタイムアプリケーション220が稼働中ではない場合(S204:No)、特権領域連続処理数保持部107は特権領域連続処理数のインクリメント処理を行う(S205)。ハードリアルタイムアプリケーション220が稼働中である場合(S204:Yes)、特権領域連続処理数保持部107は特権領域連続処理数のインクリメント処理を行わない。
【0049】
一方、特権領域用キュー102が空の場合(S202:Yes)、または、特権領域連続処理数が閾値に達している場合(S201:Yes)、入出力実行部108は非特権領域用キュー103が空か否かを判定する(S206)。非特権領域用キュー103が空である場合(S206:Yes)、入出力処理部108はS201の処理から再度処理を行う。
【0050】
非特権領域用キュー103が空ではない場合(S206:No)、入出力実行部108は非特権領域用キュー103から入出力処理を取り出して実行する(S207)。ここで、非特権領域用キュー103に格納された入出力処理はオーダリング部104により処理時間が最適となる順序に並び変えられている。入出力処理の実行後、入出力実行部108は特権領域連続処理数を"0"に設定するための要求を特権領域連続処理数保持部107に出力する。特権領域連続処理数保持部107は、特権領域連続処理数を"0"に設定する(S208)。
【0051】
次に本実施の形態にかかる入出力処理システムにおけるハードリアルタイプアプリケーション220の最悪実行時間の算出概念について説明する。各アプリケーション(220〜240)からの入出力処理の要求時に、オペレーティングシステム200はスケジューラ機能を用いて入出力処理の優先順位になるように入出力処理を並び変える。その後、入出力部201は、優先順位の順序に並び変えられた入出力処理を二次記憶装置10に入力する。特権領域用キュー102に格納された入出力処理はキューに入力された順序から並び変えられることなく実行される。
【0052】
1つの入出力処理の完了にかかる時間は、ディスクのシークタイムと、入出力ブロックの読み込みまたは書き込みにかかる時間と、の加算により算出できる。一般にディスクのシークタイムはディスク1回転以内の時間と考えられるため、ディスク性能等から算出可能である。また、入出力処理にかかるブロックサイズは例えば特許文献2に開示の技術により計算可能である。よって、入出力ブロックの読み込みまたは書き込みにかかる時間も算出可能となる。ディスクのシークタイムと、入出力ブロックの読み込みまたは書き込みにかかる時間と、がわかることにより、1つの入出力処理の完了にかかる時間が算出できる。
【0053】
処理中または処理に取り掛かろうとしている非特権領域への入出力処理の有無、及び特権領域用キュー102に格納されている入出力処理数の2点は二次記憶装置10の一般的機能により算出可能である。すなわち、二次記憶装置10に入力するハードリアルタイムアプリケーション220の入出力処理が処理される前に実行される入出力処理の数と、1つの入出力処理の実行にかかる処理時間が算出可能である。そのため、ハードリアルタイムアプリケーション220による入出力処理の最悪実行時間が算出できる。
【0054】
また、ソフトリアルタイムアプリケーション230の入出力処理の最悪実行時間も、閾値と、特権領域連続処理数と、の関係をさらに考慮することにより算出可能である。
【0055】
続いて、本実施の形態にかかる入出力処理システムの効果について説明する。上述のようにオペレーティングシステム200は、優先順位に応じて入出力処理を並び変えた後に入出力処理を特権領域用キュー102(第1キュー)または非特権領域キュー103(第2キュー)に入力する。非特権領域キュー103には、最悪実行時間が不要な処理が入力されるため、オーダリング部104は処理時間が短縮するようにキュー内の並べ替えを行う。この並べ替えにより、コマンドキューイングの効果を得ることが出来る。
【0056】
また、最悪実行時間の算出が必要なリアルタイムアプリケーション220の入出力処理は、特権用領域キュー102に入れられた後に並び変えられることはない。そのため、上述したように、入力された段階でのキューの状況から最悪実行時間を算出することが可能になる。そのため、リアルタイムアプリケーション220のタイミング解析が容易となる。
【0057】
また、上述のように連続して特権領域用キュー102から取り出して実行した処理の数である特権領域連続処理数(第1キュー連続処理数)を保持する。当該処理の数と、閾値と比較することにより、適切なタイミングで非リアルタイムアプリケーション240の入出力処理の実行も確保できる。当該閾値は、各アプリケーションの入出力処理の実行状況に応じて変更可能である。
【0058】
さらにまた、確実に時間制約を厳守して処理を終了する必要があるハードリアルタイムアプリケーション220の動作中には上述の特権領域連続処理数のインクリメントを停止させる。これにより、ハードリアルタイムアプリケーション220のリアルタイム性を確保できる。
【0059】
本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。たとえば、上述の例では、二次記憶装置における入出力処理についての説明を行ったが、本発明はコマンドキューイング機能を備え、任意の処理タスクを処理する情報処理装置においても適用することが可能である。
【0060】
なお、本実施の形態1にかかる二次記憶装置(入出力制御装置)の最小構成を図4に示す。二次記憶装置10(入出力処理装置)は、特権領域用キュー102(第1キュー)と、非特権領域用キュー103(第2キュー)と、オーダリング部104と、閾値保持部106(切り替え条件保持部)と、入出力実行部108と、を備える。
【0061】
二次記憶装置10には、入出力処理が優先順位の順序に並び変えられて入力される。特権領域用キュー102には、入力された入出力処理のうち、最悪実行時間の算出が必要な入出力処理が格納される。特権領域用キュー102はデータの並び変えを生じないFIFOキューである。一方、非特権領域用キュー103には、入力された入出力処理のうち、最悪実行時間の算出が不要な入出力処理が格納される。
【0062】
オーダリング部104は、非特権領域用キュー103に入力された入出力処理を処理時間が短縮されるように並び変える。
【0063】
閾値保持部106は、特権領域用キュー102または非特権領域用キュー103のどちらから入出力処理を取り出すかを定める条件を保持する。入出力実行部108は、閾値保持部106の保持する値に基づいてキューにアクセスし、入出力処理を実行する。
【0064】
上記の図4の構成によっても、オーダリング部104による並び変え処理によりコマンドキューイングの効果を享受できる。また、特権領域用キュー102に入力された入出力処理の最悪実行時間は、入力された段階でのキューの状況と、閾値の条件から算出可能である。
【0065】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0066】
(付記1)
最悪実行時間の算出が必要な入出力処理が格納され、格納された複数の入出力処理の順序が変更不能に構成された第1キューと、
最悪実行時間の算出が不要な入出力処理が格納され、格納された複数の入出力処理の順序が変更可能に構成された第2キューと、
前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替えるオーダリング部と、
入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行する実行部と、を備え、
入出力処理は優先順位に従って入力されるものである入出力制御装置。
【0067】
(付記2)
前記第1キューは、確実に時間制約を厳守して処理を終了する必要があるハードリアルタイムアプリケーションからの入出力処理と、時間制約を厳守して処理を終了する必要はないが、その処理の価値が、処理終了時間が長くなるにつれて下がるソフトリアルタイムアプリケーションからの入出力処理と、を格納し、
前記第2キューは、時間制約を厳守して処理を終了する必要が無い非リアルタイムアプリケーションからの入出力処理を格納することを特徴とする付記1に記載の入出力制御装置。
【0068】
(付記3)
前記第1キューから取り出して実行した入出力処理の状態である第1キュー実行状態を保持する第1キュー状態保持部を備え、
前記実行部は、前記切り替え条件と、前記第1キュー実行状態と、に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行することを特徴とする付記1または付記2に記載の入出力制御装置。
【0069】
(付記4)
前記第1キュー状態保持部は、連続して前記第1キューから取り出して実行した入出力処理の数である第1キュー連続処理数を保持し、
前記切り替え条件は、前記第1キュー連続処理数の上限値である閾値であり、
前記実行部は、前記第1キュー連続処理数が前記閾値未満である場合には前記第1キューから入出力処理を取得して実行し、前記第1キュー連続処理数が前記閾値に達した場合には前記第2キューから入出力処理を取得して実行することを特徴とする付記3に記載の入出力処理装置。
【0070】
(付記5)
前記切り替え条件保持部は、入出力処理を送信する送信装置からの切り替え条件変更要求に応じて保持する前記切り替え条件を変更することを特徴とする付記1乃至付記4のいずれか1項に記載の入出力装置。
【0071】
(付記6)
前記第1キュー状態保持部は、前記ハードリアルタイムアプリケーションからの入出力処理が前記入出力処理装置に入力されている間は、前記第1キュー連続処理数を増加させないことを特徴とする付記4または付記5に記載の入出力処理装置。
【0072】
(付記7)
前記オーダリング部は、前記第2キューに格納された前記複数の入出力処理を、処理時間が最短となるように並べ替えることを特徴とする付記1乃至付記6のいずれか1項に記載の入出力処理装置。
【0073】
(付記8)
前記入出力処理装置と、前記送信装置と、を備える情報記憶システムであって、
前記送信装置は、各アプリケーションの実行状態をモニタリングするモニタリング部を備え、
前記モニタリングの結果に応じて前記切り替え条件変更要求を送信することを特徴とする入出力処理システム。
【0074】
(付記9)
最悪実行時間の算出が必要な処理タスクが格納され、格納された複数の処理タスクの順序が変更不能に構成された第1キューと、
最悪実行時間の算出が不要な処理タスクが格納され、格納された複数の処理タスクの順序が変更可能に構成された第2キューと、
前記第2キューに格納された前記複数の処理タスクを、処理時間が短縮されるように並べ替えるオーダリング部と、
処理タスクを取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから処理タスクを取得して実行する実行部と、を備え、
処理タスクが優先順位に従って入力される情報処理装置。
【0075】
(付記10)
入出力処理が優先順位に従って入力され、
入力データの並べ替えが出来ないように構成された第1キューに最悪実行時間の算出が必要な入出力処理を格納し、
入力データの並べ替えが出来るように構成された第2キューに最悪実行時間の算出が不要な入出力処理を格納し、
入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を記憶し、
前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替え、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行する入出力処理方法。
【0076】
(付記11)
前記第1キューは、確実に時間制約を厳守して処理を終了する必要があるハードリアルタイムアプリケーションからの入出力処理と、時間制約を厳守して処理を終了する必要はないが、その処理の価値が、処理終了時間が長くなるにつれて下がるソフトリアルタイムアプリケーションからの入出力処理と、を格納し、
前記第2キューは、時間制約を厳守して処理を終了する必要が無い非リアルタイムアプリケーションからの入出力処理を格納することを特徴とする付記10に記載の入出力処理方法。
【0077】
(付記12)
前記第1キューから取り出して実行した入出力処理の状態である第1キュー実行状態を保持し、
前記入出力処理を取得して実行する処理では、前記切り替え条件と、前記第1キュー実行状態と、に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行することを特徴とする付記10または付記11に記載の入出力処理方法。
【0078】
(付記13)
連続して前記第1キューから取り出して実行した入出力処理の数である第1キュー連続処理数を前記第1キュー実行状態として保持し、
前記切り替え条件は、前記第1キュー連続処理数の上限値である閾値であり、
前記入出力処理を取得して実行する処理では、前記第1キュー連続処理数が前記閾値未満である場合には前記第1キューから入出力処理を取得して実行し、前記第1キュー連続処理数が前記閾値に達した場合には前記第2キューから入出力処理を取得して実行することを特徴とする付記12に記載の入出力処理方法。
【0079】
(付記14)
入出力処理を送信する送信装置からの切り替え条件変更要求に応じて保持する前記切り替え条件を変更することを特徴とする付記10乃至付記13のいずれか1項に記載の入出力処理方法。
【0080】
(付記15)
前記ハードリアルタイムアプリケーションからの入出力処理が前記入出力処理装置に入力されている間は、前記第1キュー連続処理数を増加させないことを特徴とする付記13または付記14に記載の入出力処理方法。
【0081】
(付記16)
前記第2キューに格納された前記複数の入出力処理を並べ替える処理では、前記第2キューに格納された前記複数の入出力処理を、処理時間が最短となるように並べ替えることを特徴とする付記10乃至付記15のいずれか1項に記載の入出力処理方法。
【符号の説明】
【0082】
1 入出力処理システム
10 二次記憶装置
101 入出力処理分別部
102 特権領域用キュー
103 非特権領域用キュー
104 オーダリング部
105 特権領域情報
106 閾値保持部
107 特権領域連続処理数保持部
108 入出力実行部
200 オペレーティングシステム
201 入出力部
202 モニタリング部
210 特権領域管理部
220 ハードリアルタイムアプリケーション
230 ソフトリアルタイムアプリケーション
240 非リアルタイムアプリケーション

【特許請求の範囲】
【請求項1】
最悪実行時間の算出が必要な入出力処理が格納され、格納された複数の入出力処理の順序が変更不能に構成された第1キューと、
最悪実行時間の算出が不要な入出力処理が格納され、格納された複数の入出力処理の順序が変更可能に構成された第2キューと、
前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替えるオーダリング部と、
入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行する実行部と、を備え、
入出力処理は優先順位に従って入力されるものである入出力制御装置。
【請求項2】
前記第1キューは、確実に時間制約を厳守して処理を終了する必要があるハードリアルタイムアプリケーションからの入出力処理と、時間制約を厳守して処理を終了する必要はないが、その処理の価値が、処理終了時間が長くなるにつれて下がるソフトリアルタイムアプリケーションからの入出力処理と、を格納し、
前記第2キューは、時間制約を厳守して処理を終了する必要が無い非リアルタイムアプリケーションからの入出力処理を格納することを特徴とする請求項1に記載の入出力制御装置。
【請求項3】
前記第1キューから取り出して実行した入出力処理の状態である第1キュー実行状態を保持する第1キュー状態保持部を備え、
前記実行部は、前記切り替え条件と、前記第1キュー実行状態と、に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行することを特徴とする請求項1または請求項2に記載の入出力制御装置。
【請求項4】
前記第1キュー状態保持部は、連続して前記第1キューから取り出して実行した入出力処理の数である第1キュー連続処理数を保持し、
前記切り替え条件は、前記第1キュー連続処理数の上限値である閾値であり、
前記実行部は、前記第1キュー連続処理数が前記閾値未満である場合には前記第1キューから入出力処理を取得して実行し、前記第1キュー連続処理数が前記閾値に達した場合には前記第2キューから入出力処理を取得して実行することを特徴とする請求項3に記載の入出力処理装置。
【請求項5】
前記切り替え条件保持部は、入出力処理を送信する送信装置からの切り替え条件変更要求に応じて保持する前記切り替え条件を変更することを特徴とする請求項1乃至請求項4のいずれか1項に記載の入出力装置。
【請求項6】
前記第1キュー状態保持部は、前記ハードリアルタイムアプリケーションからの入出力処理が前記入出力処理装置に入力されている間は、前記第1キュー連続処理数を増加させないことを特徴とする請求項4または請求項5に記載の入出力処理装置。
【請求項7】
前記オーダリング部は、前記第2キューに格納された前記複数の入出力処理を、処理時間が最短となるように並べ替えることを特徴とする請求項1乃至請求項6のいずれか1項に記載の入出力処理装置。
【請求項8】
前記入出力処理装置と、前記送信装置と、を備える情報記憶システムであって、
前記送信装置は、各アプリケーションの実行状態をモニタリングするモニタリング部を備え、
前記モニタリングの結果に応じて前記切り替え条件変更要求を送信することを特徴とする入出力処理システム。
【請求項9】
最悪実行時間の算出が必要な処理タスクが格納され、格納された複数の処理タスクの順序が変更不能に構成された第1キューと、
最悪実行時間の算出が不要な処理タスクが格納され、格納された複数の処理タスクの順序が変更可能に構成された第2キューと、
前記第2キューに格納された前記複数の処理タスクを、処理時間が短縮されるように並べ替えるオーダリング部と、
処理タスクを取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を保持する切り替え条件保持部と、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから処理タスクを取得して実行する実行部と、を備え、
処理タスクが優先順位に従って入力される情報処理装置。
【請求項10】
入出力処理が優先順位に従って入力され、
入力データの並べ替えが出来ないように構成された第1キューに最悪実行時間の算出が必要な入出力処理を格納し、
入力データの並べ替えが出来るように構成された第2キューに最悪実行時間の算出が不要な入出力処理を格納し、
入出力処理を取り出すアクセス先を前記第1のキューまたは前記第2のキューのいずれかに決定するための条件を定めた切り替え条件を記憶し、
前記第2キューに格納された前記複数の入出力処理を、処理時間が短縮されるように並べ替え、
前記切り替え条件に基づいて、前記第1キューまたは前記第2キューから入出力処理を取得して実行する入出力処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate