JPH0612263A - 入出力スケジュール方式 - Google Patents
入出力スケジュール方式Info
- Publication number
- JPH0612263A JPH0612263A JP16727692A JP16727692A JPH0612263A JP H0612263 A JPH0612263 A JP H0612263A JP 16727692 A JP16727692 A JP 16727692A JP 16727692 A JP16727692 A JP 16727692A JP H0612263 A JPH0612263 A JP H0612263A
- Authority
- JP
- Japan
- Prior art keywords
- task
- cpu
- bound
- state
- queue
- 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.)
- Pending
Links
Abstract
(57)【要約】
【目的】CPUバウンド系タスクとI/Oバウンド系タ
スクとに分けて管理し、CPUとI/Oの状態(フリー
状態/ビジー状態)によりI/Oの優先順位を決定する
ことにより、トータルスループットの向上を図る。 【構成】タスク制御ブロック11に当該タスクがCPU
バウンド系タスクであるかI/Oバウンド系タスクであ
るかを示す属性情報12を保持し、I/O空き待ち行列
作成処理で属性情報12によりCPUバウンド系タスク
用キュー13と、I/Oバウンド系タスク用キュー14
とを別々に作成する。タスクスケジュール処理では、C
PUとI/Oの使用頻度(フリー状態/ビジー状態)に
よりI/O空き待ち状態からレディーにするタスクをキ
ュー13とキュー14から選択する。
スクとに分けて管理し、CPUとI/Oの状態(フリー
状態/ビジー状態)によりI/Oの優先順位を決定する
ことにより、トータルスループットの向上を図る。 【構成】タスク制御ブロック11に当該タスクがCPU
バウンド系タスクであるかI/Oバウンド系タスクであ
るかを示す属性情報12を保持し、I/O空き待ち行列
作成処理で属性情報12によりCPUバウンド系タスク
用キュー13と、I/Oバウンド系タスク用キュー14
とを別々に作成する。タスクスケジュール処理では、C
PUとI/Oの使用頻度(フリー状態/ビジー状態)に
よりI/O空き待ち状態からレディーにするタスクをキ
ュー13とキュー14から選択する。
Description
【0001】
【産業上の利用分野】本発明はマルチタスクシステムの
タスクスケジュール方式について、特にI/O空き待ち
をしているタスクの優先順位を動的に変更するスケジュ
ール方式に関する。
タスクスケジュール方式について、特にI/O空き待ち
をしているタスクの優先順位を動的に変更するスケジュ
ール方式に関する。
【0002】
【従来の技術】システム全体のスループットを向上する
ために、スーパバイザのタスクスケジュール処理では、
タスクの実行時に動的に、タスクの動作に応じて当タス
クがCPUを頻繁に使用するタスク(これをCPUバウ
ンド系タスクと呼ぶ)かI/Oを頻繁に使用するタスク
(これをI/Oバウンド系タスクと呼ぶ)かを認識し、
I/Oバウンド系タスクをCPUバウンド系タスクより
も待ち行列の前部にチェインすることにより、I/Oバ
ウンド系タスクを優先的にスケジュールするというダイ
ナミックディスパッチング方式が一般的に使用されてい
る。従来の方式では、特開平2―156337号公報の
記載のようにプログラム(タスク)ごとのCPUの使用
時間とI/Oの使用度を基に特定の評価を行い優先順位
を決定していた。このため、実際のCPUやI/Oその
ものの状態、つまりCPUやI/Oの使用率が一定値よ
り低い状態(これをフリー状態と呼ぶ)、CPUやI/
Oの使用率が一定値を超えている状態(これをビジー状
態と呼ぶ)までは考慮されていなかったために、I/O
がビジー状態のときにCPUが空いてしまい、スループ
ットが低下してしまうことがあった。
ために、スーパバイザのタスクスケジュール処理では、
タスクの実行時に動的に、タスクの動作に応じて当タス
クがCPUを頻繁に使用するタスク(これをCPUバウ
ンド系タスクと呼ぶ)かI/Oを頻繁に使用するタスク
(これをI/Oバウンド系タスクと呼ぶ)かを認識し、
I/Oバウンド系タスクをCPUバウンド系タスクより
も待ち行列の前部にチェインすることにより、I/Oバ
ウンド系タスクを優先的にスケジュールするというダイ
ナミックディスパッチング方式が一般的に使用されてい
る。従来の方式では、特開平2―156337号公報の
記載のようにプログラム(タスク)ごとのCPUの使用
時間とI/Oの使用度を基に特定の評価を行い優先順位
を決定していた。このため、実際のCPUやI/Oその
ものの状態、つまりCPUやI/Oの使用率が一定値よ
り低い状態(これをフリー状態と呼ぶ)、CPUやI/
Oの使用率が一定値を超えている状態(これをビジー状
態と呼ぶ)までは考慮されていなかったために、I/O
がビジー状態のときにCPUが空いてしまい、スループ
ットが低下してしまうことがあった。
【0003】
【発明が解決しようとする課題】上記の従来技術では、
ダイナミックディスパッチング処理に於いて、タスクご
とにCPUとI/Oの使用頻度を評価して優先順位を決
定していたために、実際のCPUやI/Oそのものの状
態(フリー状態/ビジー状態)については配慮されてお
らず、I/Oがビジー状態のときにCPUが空いてしま
うという課題があった。
ダイナミックディスパッチング処理に於いて、タスクご
とにCPUとI/Oの使用頻度を評価して優先順位を決
定していたために、実際のCPUやI/Oそのものの状
態(フリー状態/ビジー状態)については配慮されてお
らず、I/Oがビジー状態のときにCPUが空いてしま
うという課題があった。
【0004】本発明の目的は、CPUとI/Oの状態
(フリー状態/ビジー状態)によりダイナミックディス
パッチングを行っているタスクの優先順位を変更するこ
とにより上記課題を解消し、スループット低下を抑止す
ることにある。
(フリー状態/ビジー状態)によりダイナミックディス
パッチングを行っているタスクの優先順位を変更するこ
とにより上記課題を解消し、スループット低下を抑止す
ることにある。
【0005】
【課題を解決するための手段】上記の目的は、I/Oバ
ウンド系タスクであるのかCPUバウンド系タスクであ
るのかを区別するための情報をタスク単位に持ち、I/
OとCPUのフリー/ビジー状態を監視し、I/O空き
待ちしているタスクをレディーにする処理で、I/Oと
CPUのフリー/ビジー状態により、レディーにするタ
スクを随時選択することにより達成される。
ウンド系タスクであるのかCPUバウンド系タスクであ
るのかを区別するための情報をタスク単位に持ち、I/
OとCPUのフリー/ビジー状態を監視し、I/O空き
待ちしているタスクをレディーにする処理で、I/Oと
CPUのフリー/ビジー状態により、レディーにするタ
スクを随時選択することにより達成される。
【0006】
【作用】I/O空き待ちしているタスクをCPUバウン
ド系タスクと、I/Oバウンド系タスクと分類して管理
し、I/O使用中のタスクがI/Oを解放して空き状態
になったときにI/O空き待ちタスクのレディー対象タ
スクをCPUとI/Oの状態(フリー状態/ビジー状
態)によりI/Oバウンド系タスクをレディーにする
か、CPUバウンド系タスクをレディーにするか選択す
る。これによって、CPUとI/Oを無駄なく使用する
ことができ、CPUとI/Oの使用状態のアンバランス
によるスループット低下を抑止することができる。
ド系タスクと、I/Oバウンド系タスクと分類して管理
し、I/O使用中のタスクがI/Oを解放して空き状態
になったときにI/O空き待ちタスクのレディー対象タ
スクをCPUとI/Oの状態(フリー状態/ビジー状
態)によりI/Oバウンド系タスクをレディーにする
か、CPUバウンド系タスクをレディーにするか選択す
る。これによって、CPUとI/Oを無駄なく使用する
ことができ、CPUとI/Oの使用状態のアンバランス
によるスループット低下を抑止することができる。
【0007】
【実施例】次に、本発明の一実施例を図を用いて説明す
る。
る。
【0008】図1は本発明によるCPUバウンド系タス
クとI/Oバウンド系タスクを区別するための構成例で
ある。スーパバイザがタスクを管理するのに必要な情報
を保持しているタスク単位に存在するテーブル(タスク
制御ブロック11)には、当該タスクがCPUバウンド
系タスクであるかI/Oバウンド系タスクであるかを判
断する属性情報12が設定されている。I/O空き待ち
行列用のキューは、本タスク制御ブロック11をチェイ
ンした構造となっている。このI/O空き待ち行列用の
キューは、タスクディスパッチ処理オーバヘッドを削減
する目的で、CPUバウンド系タスクキュー13とI/
Oバウンド系タスクキュー14の2種類を設ける。
クとI/Oバウンド系タスクを区別するための構成例で
ある。スーパバイザがタスクを管理するのに必要な情報
を保持しているタスク単位に存在するテーブル(タスク
制御ブロック11)には、当該タスクがCPUバウンド
系タスクであるかI/Oバウンド系タスクであるかを判
断する属性情報12が設定されている。I/O空き待ち
行列用のキューは、本タスク制御ブロック11をチェイ
ンした構造となっている。このI/O空き待ち行列用の
キューは、タスクディスパッチ処理オーバヘッドを削減
する目的で、CPUバウンド系タスクキュー13とI/
Oバウンド系タスクキュー14の2種類を設ける。
【0009】図2は、図1に示すI/O空き待ち行列を
持つ場合のタスクスケジュール動作を示すフローチャー
トである。図2は大きく三つに分かれている。一つは、
当該タスクの属性情報12(CPUバウンド系タスクで
あるかI/Oバウンド系タスクであるかという情報)を
決定する属性決定処理2である。属性決定処理2はタス
クスイッチが発生したときに行われる処理である。判定
文21でタスクの属性を判定し、処理文22及び23で
属性情報12をタスク制御ブロック11の中に設定す
る。判定文21におけるタスクの属性の判定は、当タス
クがスケジュールされてからI/O要求によるタスクス
イッチが発生するまでの時間で判断することができる。
また、タイムスライスによるタスクスケジュールを実現
しているシステムでは、当タスクのタスクスイッチ要因
がタイムスライスによるものであれば、CPUバウンド
系タスクと判断することができる。
持つ場合のタスクスケジュール動作を示すフローチャー
トである。図2は大きく三つに分かれている。一つは、
当該タスクの属性情報12(CPUバウンド系タスクで
あるかI/Oバウンド系タスクであるかという情報)を
決定する属性決定処理2である。属性決定処理2はタス
クスイッチが発生したときに行われる処理である。判定
文21でタスクの属性を判定し、処理文22及び23で
属性情報12をタスク制御ブロック11の中に設定す
る。判定文21におけるタスクの属性の判定は、当タス
クがスケジュールされてからI/O要求によるタスクス
イッチが発生するまでの時間で判断することができる。
また、タイムスライスによるタスクスケジュールを実現
しているシステムでは、当タスクのタスクスイッチ要因
がタイムスライスによるものであれば、CPUバウンド
系タスクと判断することができる。
【0010】二つめは、キューイング処理3である。こ
れは、スーパバイザが入出力処理を行う際、I/Oが空
いていないために当タスクをI/O空き待ち状態にする
処理を示している。つまりI/O空き待ちとは、入出力
動作の完了を待っているI/O待ちとは意味が異なる。
判定文31では、タスク制御ブロック11内の属性情報
12によりタスク属性を判断する。I/Oバウンド系タ
スクの場合はI/Oバウンド系タスクキューにタスク制
御ブロック11をチェインする(処理文32)。CPU
バウンド系タスクの場合はCPUバウンド系タスクキュ
ーにタスク制御ブロック11をチェインする(処理文3
3)。その後、当タスクはI/O空き待ちでWAITす
る。
れは、スーパバイザが入出力処理を行う際、I/Oが空
いていないために当タスクをI/O空き待ち状態にする
処理を示している。つまりI/O空き待ちとは、入出力
動作の完了を待っているI/O待ちとは意味が異なる。
判定文31では、タスク制御ブロック11内の属性情報
12によりタスク属性を判断する。I/Oバウンド系タ
スクの場合はI/Oバウンド系タスクキューにタスク制
御ブロック11をチェインする(処理文32)。CPU
バウンド系タスクの場合はCPUバウンド系タスクキュ
ーにタスク制御ブロック11をチェインする(処理文3
3)。その後、当タスクはI/O空き待ちでWAITす
る。
【0011】もう一つは、I/O処理関連のタスクスケ
ジュールを行うタスク選択処理4である。これは、I/
Oが解放されたらI/O空き待ち行列内のタスクから入
出力処理を行うタスクを選択する処理を示している。先
行している入出力処理中のタスクがI/Oを完了したと
きに発生するI/O割込みを起因に、判定文41によっ
てCPUとI/Oのフリー/ビジー状態を判定する。フ
リー状態/ビジー状態の判断は、使用率が特定の値より
大きいか小さいかによって行う。CPUがフリー状態
で、I/Oがビジー状態のときに限り、CPUバウンド
系タスクキューのタスクをスケジュールする(処理文4
3)。それ以外(I/Oがフリー状態、またはCPU、
I/Oともにビジー状態)の時は、I/Oバウンド系タ
スクキューのタスクをスケジュールする(処理文4
2)。但し本処理方式では、CPUバウンド系タスクキ
ュー内にチェインしているタスクが沈み込むことがない
ように特別な機構が必要になる。
ジュールを行うタスク選択処理4である。これは、I/
Oが解放されたらI/O空き待ち行列内のタスクから入
出力処理を行うタスクを選択する処理を示している。先
行している入出力処理中のタスクがI/Oを完了したと
きに発生するI/O割込みを起因に、判定文41によっ
てCPUとI/Oのフリー/ビジー状態を判定する。フ
リー状態/ビジー状態の判断は、使用率が特定の値より
大きいか小さいかによって行う。CPUがフリー状態
で、I/Oがビジー状態のときに限り、CPUバウンド
系タスクキューのタスクをスケジュールする(処理文4
3)。それ以外(I/Oがフリー状態、またはCPU、
I/Oともにビジー状態)の時は、I/Oバウンド系タ
スクキューのタスクをスケジュールする(処理文4
2)。但し本処理方式では、CPUバウンド系タスクキ
ュー内にチェインしているタスクが沈み込むことがない
ように特別な機構が必要になる。
【0012】本実施例によれば、I/O空き待ち状態か
らレディー状態にするI/O処理タスクを、CPUとI
/Oの状態によって選択することができるために、I/
Oのビジー状態が原因でCPUの使用率が低下すること
を抑止することができる。
らレディー状態にするI/O処理タスクを、CPUとI
/Oの状態によって選択することができるために、I/
Oのビジー状態が原因でCPUの使用率が低下すること
を抑止することができる。
【0013】尚、I/Oバウンド系タスクキューをI/
O装置ごとに、あるいはI/O装置の種類ごとに作成す
れば、より細かい制御が可能となる。但しこの場合は、
タスク制御ブロック11内の属性情報12も作成するキ
ューに対応する情報を判定/設定する必要がある。
O装置ごとに、あるいはI/O装置の種類ごとに作成す
れば、より細かい制御が可能となる。但しこの場合は、
タスク制御ブロック11内の属性情報12も作成するキ
ューに対応する情報を判定/設定する必要がある。
【0014】
【発明の効果】以上説明したように、本発明によれば、
I/O空き待ち行列をI/Oバウンド系タスクと、CP
Uバウンド系タスクとを分類し、レディーにするI/O
処理タスクをCPUとI/Oの状態によって選択するこ
とができるために、I/Oのビジー状態が原因でCPU
の使用率が低下することがなくなる。その結果、CPU
とI/Oの使用状態に関係なく、常に適切なタスクスケ
ジュールを実現でき、スループット低下を抑止する効果
がある。
I/O空き待ち行列をI/Oバウンド系タスクと、CP
Uバウンド系タスクとを分類し、レディーにするI/O
処理タスクをCPUとI/Oの状態によって選択するこ
とができるために、I/Oのビジー状態が原因でCPU
の使用率が低下することがなくなる。その結果、CPU
とI/Oの使用状態に関係なく、常に適切なタスクスケ
ジュールを実現でき、スループット低下を抑止する効果
がある。
【図1】本発明によるCPUバウンド系タスクとI/O
バウンド系タスクを区別するための構成例を示す図であ
る。
バウンド系タスクを区別するための構成例を示す図であ
る。
【図2】本発明によるディスパッチャ処理のフローチャ
ート例を示す図である。
ート例を示す図である。
13…CPUバウンド系タスクの待ち行列、 14…I/Oバウンド系タスクの待ち行列、 21…タスク属性の判定、 41…CPUとI/Oのフリー/ビジー状態の判定。
Claims (1)
- 【請求項1】I/Oバウンド系タスクの優先順位を高く
し、CPUバウンド系タスクの優先順位を低くするダイ
ナミックディスパッチング処理に於いて、I/Oバウン
ド系タスクとCPUバウンド系タスクを分類して管理
し、I/Oがビジー状態でCPU使用率が一定値を超え
ない(CPUがフリー状態)のときはI/Oバウンド系
タスクのI/O優先順位を低くし、CPUバウンド系タ
スクのI/O優先順位を高くすることを特徴とする入出
力スケジュール方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16727692A JPH0612263A (ja) | 1992-06-25 | 1992-06-25 | 入出力スケジュール方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP16727692A JPH0612263A (ja) | 1992-06-25 | 1992-06-25 | 入出力スケジュール方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0612263A true JPH0612263A (ja) | 1994-01-21 |
Family
ID=15846747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16727692A Pending JPH0612263A (ja) | 1992-06-25 | 1992-06-25 | 入出力スケジュール方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0612263A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6176342B1 (en) | 1998-06-19 | 2001-01-23 | Trw Inc. | Vehicle steering apparatus |
JP2005527875A (ja) * | 2001-09-28 | 2005-09-15 | インテル コーポレイション | 処理の性能を監視する方法及び装置 |
US9323475B2 (en) | 2013-10-30 | 2016-04-26 | Fujitsu Limited | Control method and information processing system |
-
1992
- 1992-06-25 JP JP16727692A patent/JPH0612263A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6176342B1 (en) | 1998-06-19 | 2001-01-23 | Trw Inc. | Vehicle steering apparatus |
JP2005527875A (ja) * | 2001-09-28 | 2005-09-15 | インテル コーポレイション | 処理の性能を監視する方法及び装置 |
US9323475B2 (en) | 2013-10-30 | 2016-04-26 | Fujitsu Limited | Control method and information processing system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3037182B2 (ja) | タスク管理方式 | |
KR950002713B1 (ko) | 인터페이스 시스템 및 데이타 전송 제어방법 | |
US7962913B2 (en) | Scheduling threads in a multiprocessor computer | |
US6006247A (en) | Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
GB2519080A (en) | Scheduling function calls | |
Bernstein et al. | A policy-driven scheduler for a time-sharing system | |
CN100383743C (zh) | Java操作系统中实时任务调度方法 | |
JPH0612263A (ja) | 入出力スケジュール方式 | |
CN105677487B (zh) | 一种控制资源占用的方法及装置 | |
JPH02311932A (ja) | 優先制御方式 | |
JPH07230387A (ja) | 排他制御方法 | |
JPH01258135A (ja) | トランザクション実行制御方式 | |
JPH0266640A (ja) | デバッガタスクスケジューリング方式 | |
JPH08180007A (ja) | 入出力処理システム | |
JPH08314740A (ja) | プロセスディスパッチ方法 | |
CN118193143A (zh) | 基于微内核架构的任务执行系统 | |
JPH03255519A (ja) | プリンタ管理装置 | |
JPH08272728A (ja) | 中央処理装置の使用権配分最適化方法及び中央処理装置の使用権配分最適化システム | |
JPS60181934A (ja) | タスク優先度制御方式 | |
JPH0612394A (ja) | プロセススケジュール方式 | |
JPH0778091A (ja) | マルチタスク管理方法 | |
JPH07152685A (ja) | 分散編集制御方式 | |
JPH0730946A (ja) | 移動通信サービス制御装置 | |
CN118034934A (zh) | 一种数据处理请求的处理方法和装置 |