JP2001195265A - ジョブスケジューリング方法及び記録媒体 - Google Patents

ジョブスケジューリング方法及び記録媒体

Info

Publication number
JP2001195265A
JP2001195265A JP2000000707A JP2000000707A JP2001195265A JP 2001195265 A JP2001195265 A JP 2001195265A JP 2000000707 A JP2000000707 A JP 2000000707A JP 2000000707 A JP2000000707 A JP 2000000707A JP 2001195265 A JP2001195265 A JP 2001195265A
Authority
JP
Japan
Prior art keywords
job
executed
interrupt
time
interval
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
Application number
JP2000000707A
Other languages
English (en)
Inventor
Yoichi Shoji
洋一 庄司
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.)
Nippon Avionics Co Ltd
Original Assignee
Nippon Avionics Co Ltd
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 Nippon Avionics Co Ltd filed Critical Nippon Avionics Co Ltd
Priority to JP2000000707A priority Critical patent/JP2001195265A/ja
Publication of JP2001195265A publication Critical patent/JP2001195265A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ジョブの処理集中を回避し、CPUの処理負
荷の増大を抑える。 【解決手段】 ジョブスケジューラ21は、CPU1が
実行すべきジョブが新たに発生する度に、このジョブの
登録処理として、基本周期を全てのジョブの処理間隔時
間の最小公倍数とし、基本周期内の実行回数を各ジョブ
毎に求め、割込クロックの周期を求めて割込発生装置3
に登録し、同一のジョブが実行される最小間隔を各ジョ
ブ毎に求める。ジョブスケジューラ21は、割込クロッ
クが出力される度に、実行すべきジョブを決定するスケ
ジューリング処理として、最小間隔を1減算して、減算
後の最小間隔が0となる1つのジョブを現在の割込処理
で実行すべきジョブとして決定し、実行すべきジョブを
CPU1に通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、インターバルジョ
ブの処理集中を回避することができるジョブスケジュー
リング方法及びジョブスケジューリングプログラムを記
録した記録媒体に関するものである。
【0002】
【従来の技術】従来より、コンピュータシステムの中央
処理装置で実行するインターバルジョブ(周期的処理、
以下、単にジョブと呼ぶ)をスケジューリングするため
に、ジョブスケジューラが使用される。図5はジョブス
ケジューラを用いた従来のコンピュータシステムのブロ
ック図である。
【0003】図5に示すコンピュータシステムには、中
央処理装置(以下、CPUとする)31と、記憶装置3
2と、割込発生装置33と、入出力インタフェース装置
34とが含まれる。記憶装置32には、ソフトウェアプ
ログラムによって実現されるジョブスケジューラ41が
常駐している。割込発生装置33は、基本周期時間例え
ば1秒間にm(mは全てのジョブが基本周期時間内に実
行される回数で、1以上の整数)回の割込クロックを発
生する。入出力インタフェース装置34は、キーボード
等の入力装置(不図示)とのインタフェース、表示装置
等の出力装置(不図示)とのインタフェース、通信ネッ
トワーク(不図示)とのインタフェース等を含む。
【0004】ジョブスケジューラ41はカウンタを用い
てジョブをスケジューリングする。例えば、ジョブαを
1秒間に2回実行されるものとし、ジョブβを1秒間に
6回実行されるものとすると、ジョブスケジューラ41
は、ジョブαについてのカウンタの初期値をm/2と定
義し、ジョブβについてのカウンタの初期値をm/6と
定義する。そして、ジョブスケジューラ41は、割込ク
ロックが入力される度に、全てのジョブのカウンタの値
を1減らし(ただし、カウンタ値≧0)、最初にカウン
タの値が0になったジョブを実行するようCPU1に通
知する。
【0005】
【発明が解決しようとする課題】以上のように、従来の
ジョブスケジューラ41はカウンタを用いてジョブをス
ケジューリングする。しかしながら、このようなジョブ
スケジューリング方法では、図6に示すように、ジョブ
αとジョブβの実行が重なる処理集中が発生し、CPU
1の処理負荷が増大するという問題点があった。本発明
は、上記課題を解決するためになされたもので、ジョブ
の実行が重なる処理集中を回避し、CPUの処理負荷の
増大を抑えることができるジョブスケジューリング方法
及びジョブスケジューリングプログラムを記録した記録
媒体を提供することを目的とする。
【0006】
【課題を解決するための手段】本発明のジョブスケジュ
ーリング方法は、中央処理装置が実行すべきジョブが新
たに発生する度に、この新たなジョブの登録処理とし
て、ジョブスケジューリングの基本周期を全てのジョブ
の処理間隔時間の最小公倍数とし、基本周期内の実行回
数を各ジョブ毎に求め、基本周期と実行回数の合計値か
ら割込クロックの周期を求めて割込発生装置に登録し、
同一のジョブが実行される最小間隔を各ジョブ毎に求め
る手順を実行し、割込発生装置から割込クロックが出力
される度に、中央処理装置が実行すべきジョブを決定す
るスケジューリング処理として、最小間隔を1減算し
て、減算後の最小間隔が0となる1つのジョブを現在の
割込処理で実行すべきジョブとして決定し、このジョブ
の最小間隔を登録処理時に求めた値に戻し、実行すべき
ジョブを中央処理装置に通知する手順を実行するように
したものである。これにより、中央処理装置は、通知さ
れたジョブを実行する。
【0007】また、本発明のジョブスケジューリング方
法は、中央処理装置が実行すべきジョブが新たに発生し
たとき、この新たなジョブの登録処理として、ジョブス
ケジューリングの基本周期を全てのジョブの処理間隔時
間の最小公倍数とする手順と、基本周期を各ジョブの処
理間隔時間で割った値を基本周期内の実行回数として、
この実行回数を各ジョブ毎に求める手順と、全てのジョ
ブの実行回数を加算した合計値を求める手順と、基本周
期を合計値で割った値を割込クロックの周期として割込
発生装置に登録する手順と、合計値を各ジョブの実行回
数で割った値を同一のジョブが実行される最小間隔とし
て、この最小間隔を各ジョブ毎に求める手順とを実行
し、割込発生装置から割込クロックが出力されたとき、
中央処理装置が実行すべきジョブを決定するスケジュー
リング処理として、最小間隔を1減算する手順と、減算
後の最小間隔が0で、かつ実行回数が0より大きい1つ
のジョブを現在の割込処理で実行すべきジョブとして決
定する手順とを処理間隔時間が大きい順に各ジョブ毎に
実行した後、実行すべきジョブの最小間隔を登録処理時
に求めた値に戻し、実行すべきジョブの実行回数を1減
算する手順と、実行すべきジョブを中央処理装置に通知
する手順とを実行するようにしたものである。
【0008】また、本発明の記録媒体は、中央処理装置
が実行すべきジョブが新たに発生する度に、この新たな
ジョブの登録処理として、ジョブスケジューリングの基
本周期を全てのジョブの処理間隔時間の最小公倍数と
し、基本周期内の実行回数を各ジョブ毎に求め、基本周
期と実行回数の合計値から割込クロックの周期を求めて
割込発生装置に登録し、同一のジョブが実行される最小
間隔を各ジョブ毎に求める手順をコンピュータに実行さ
せ、割込発生装置から割込クロックが出力される度に、
中央処理装置が実行すべきジョブを決定するスケジュー
リング処理として、最小間隔を1減算して、減算後の最
小間隔が0となる1つのジョブを現在の割込処理で実行
すべきジョブとして決定し、このジョブの最小間隔を登
録処理時に求めた値に戻し、実行すべきジョブを中央処
理装置に通知する手順をコンピュータに実行させるジョ
ブスケジューリングプログラムを記録したものである。
【0009】また、本発明の記録媒体は、中央処理装置
が実行すべきジョブが新たに発生したとき、この新たな
ジョブの登録処理として、ジョブスケジューリングの基
本周期を全てのジョブの処理間隔時間の最小公倍数とす
る手順と、基本周期を各ジョブの処理間隔時間で割った
値を基本周期内の実行回数として、この実行回数を各ジ
ョブ毎に求める手順と、全てのジョブの実行回数を加算
した合計値を求める手順と、基本周期を合計値で割った
値を割込クロックの周期として割込発生装置に登録する
手順と、合計値を各ジョブの実行回数で割った値を同一
のジョブが実行される最小間隔として、この最小間隔を
各ジョブ毎に求める手順とをコンピュータに実行させ、
割込発生装置から割込クロックが出力されたとき、中央
処理装置が実行すべきジョブを決定するスケジューリン
グ処理として、最小間隔を1減算する手順と、減算後の
最小間隔が0で、かつ実行回数が0より大きい1つのジ
ョブを現在の割込処理で実行すべきジョブとして決定す
る手順とを処理間隔時間が大きい順に各ジョブ毎にコン
ピュータに実行させた後、実行すべきジョブの最小間隔
を登録処理時に求めた値に戻し、実行すべきジョブの実
行回数を1減算する手順と、実行すべきジョブを中央処
理装置に通知する手順とをコンピュータに実行させるジ
ョブスケジューリングプログラムを記録したものであ
る。
【0010】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1は本発明の実施
の形態となるジョブスケジューリング方法を適用したコ
ンピュータシステムの構成を示すブロック図である。図
1に示すコンピュータシステムには、中央処理装置(以
下、CPUとする)1と、記憶装置2と、割込発生装置
3と、入出力インタフェース装置4とが含まれる。
【0011】記憶装置2は、図1では一体となった実体
として図示されているが、周知のように、リードオンリ
メモリ(ROM)、ランダムアクセスメモリ(RA
M)、磁気ディスク装置などの大容量の記憶装置を含ん
でいる。図1に示すように、記憶装置2には、ソフトウ
ェアプログラムによって実現されるオペレーティングシ
ステム20が常駐している。オペレーティングシステム
20は、コンピュータオペレーティングシステムに典型
的な、当技術分野で既知の機能を実行する。
【0012】さらに、記憶装置2には、ソフトウェアプ
ログラムによって実現されるジョブスケジューラ21が
常駐している。なお、本実施の形態では、オペレーティ
ングシステム20とジョブスケジューラ21とを別体と
しているが、ジョブスケジューラ21をオペレーティン
グシステム20に含めてもよい。
【0013】割込発生装置3は、発振器や分周器等から
なり、所定の時間間隔で割込クロックを定期的に発生す
る。入出力インタフェース装置4は、キーボード等の入
力装置とのインタフェース、表示装置等の出力装置との
インタフェース、通信ネットワークとのインタフェース
等を含む。
【0014】次に、以上のようなコンピュータシステム
に本発明のジョブスケジューリング方法を適用した場合
の動作を説明する。図2、図3は本発明のジョブスケジ
ューリング方法を説明するためのフローチャート図であ
る。図2は、CPU1が実行すべきインターバルジョブ
(周期的処理、以下、単にジョブと呼ぶ)が新たに生じ
たときに、このジョブを登録する登録処理を示し、図3
は、割り込みが発生したときに、CPU1が実行すべき
ジョブを決定するスケジューリング処理を示している。
なお、以下で用いる全ての変数は整数値である。
【0015】まず、ジョブスケジューラ21は、CPU
1が実行すべきジョブが新たに発生した場合、このジョ
ブの望ましい実行周期を示す処理間隔時間PT、実行す
べきジョブが格納された記憶装置2上の位置(アドレ
ス)を示す処理ポインタPPの登録を行う(図2ステッ
プ101)。
【0016】すなわち、ジョブスケジューラ21は、登
録済みのジョブ数をproc_max、ジョブn(nは
0以上の整数)の処理間隔時間をproc_time
[n]、ジョブnの処理ポインタをproc_poin
ter[n]としたとき、新たに発生したジョブの処理
間隔時間PTを処理間隔時間proc_time[pr
oc_max]として登録すると共に、新たに発生した
ジョブの処理ポインタPPを処理ポインタproc_p
ointer[proc_max]として登録した後、
登録済みのジョブ数proc_maxを1増やす。
【0017】なお、ここでは、ジョブα(α=0)が既
に登録されており、登録済みのジョブ数proc_ma
xが1であるとする。このため、新たに発生したジョブ
β(β=1)の処理間隔時間PTを処理間隔時間pro
c_time[1]として登録すると共に、ジョブβの
処理ポインタPPを処理ポインタproc_point
er[1]として登録した後、登録済みのジョブ数pr
oc_maxを1増やして2とする。なお、本発明で
は、各ジョブの実行周期が処理間隔時間PTより長くな
ってもよい。
【0018】次に、ジョブスケジューラ21は、各ジョ
ブに対応した処理間隔時間proc_time[n]と
処理ポインタproc_pointer[n]との組
(nは0〜proc_max−1)を処理間隔時間pr
oc_time[n]の値を基に降順にソートする(ス
テップ102)。
【0019】例えば、ジョブαの処理間隔時間proc
_time[0]よりもジョブβの処理間隔時間pro
c_time[1]の方が大であれば、ジョブαの処理
間隔時間proc_time[0]とジョブβの処理間
隔時間proc_time[1]とを入れ替えると同時
に、ジョブαの処理ポインタproc_pointer
[0]とジョブβの処理ポインタproc_point
er[1]とを入れ替える。以後、ジョブαがジョブβ
に、ジョブβがジョブαとなる。
【0020】そして、ジョブスケジューラ21は、ジョ
ブスケジューリングの基本周期basic_timeを
全てのジョブn(ここでは、n=0,1)の処理間隔時
間proc_time[n]の最小公倍数とする(ステ
ップ103)。図1のステップ103において、LCM
は最小公倍数を意味する。
【0021】続いて、ジョブスケジューラ21は、各ジ
ョブnが基本周期basic_time内に実行される
回数proc_cnt[n]を各ジョブn毎に次式のよ
うに算出する(ステップ104)。 proc_cnt[n]=basic_time/proc_time[n] ・・・(1)
【0022】なお、実行回数proc_cnt[n]
は、式(1)の算出結果の小数点以下を切り捨てた整数
値である。ジョブスケジューラ21は、算出した各ジョ
ブnの実行回数proc_cnt[n]をそのバックア
ップ値proc_cnt_save[n]としても記憶
しておく。
【0023】次に、ジョブスケジューラ21は、算出し
た各ジョブnの実行回数proc_cnt[n]を全ジ
ョブnについて加算した実行回数の合計値proc_c
nt_sumを算出する(ステップ105)。
【0024】そして、ジョブスケジューラ21は、同一
のジョブnが実行される最小間隔cycle_cnt
[n]を各ジョブn毎に次式のように算出する(ステッ
プ106)。 cycle_cnt[n] =proc_cnt_sum/proc_cnt[n] ・・・(2)
【0025】実行最小間隔cycle_cnt[n]
は、式(2)の算出結果の小数点以下を切り捨てた整数
値であり、割込クロックの周期である割込発生間隔Δt
を1としたとき、この割込発生間隔Δtの整数倍の値と
なる。また、実行最小間隔cycle_cnt[n]
は、あるジョブが実行されてから同一のジョブが再び実
行されるまでの間に、他のジョブが実行される回数+1
の値となる。
【0026】例えば、全ジョブの実行回数の合計値pr
oc_cnt_sumが6で、ジョブαの実行回数pr
oc_cnt[0]が2であるとすれば、ジョブαの実
行最小間隔cycle_cnt[0]は3であり、ジョ
ブβの実行回数proc_cnt[1]が4であるとす
れば、ジョブβの実行最小間隔cycle_cnt
[1]は1である。
【0027】ジョブスケジューラ21は、算出した各ジ
ョブnの実行最小間隔cycle_cnt[n]をその
バックアップ値cycle_cnt_save[n]と
しても記憶しておく。
【0028】次に、ジョブスケジューラ21は、割込発
生間隔Δtを次式のように算出し、算出した割込発生間
隔Δtを割込発生装置3に登録する。これにより、割込
発生装置3は、割込発生間隔Δtが示す周期で割込クロ
ックを発生する。 Δt=basic_time/proc_cnt_sum ・・・(3)
【0029】最後に、ジョブスケジューラ21は、基本
周期basic_time内に実行すべきジョブが何回
分残っているかを示す実行残回数basic_cntを
最大値、すなわち実行回数の合計値proc_cnt_
sumの値に初期化する(ステップ108)。こうし
て、ジョブの登録処理が終了する。
【0030】次に、割込発生装置3が出力する割込クロ
ックにより割り込みが発生したときにジョブスケジュー
ラ21がジョブをスケジューリングする動作を図3、図
4を用いて説明する。図4はスケジューリング処理の様
子を示す図である。前述のように、割込発生装置3は、
割込発生間隔Δtの周期で割込クロックを発生する。
【0031】ジョブスケジューラ21は、割込発生装置
3より割込クロックが出力されたとき、実行残回数ba
sic_cntを1減らす(図3ステップ201)。こ
こでは、基本周期basic_time内において最初
の割込クロックが発生した時点(図4の時刻t0)と
し、実行残回数basic_cntの初期値が6で、1
減らされたことにより5になったとする。
【0032】次に、ジョブスケジューラ21は、実行残
回数basic_cntが0より小さいか否か、すなわ
ち基本周期basic_time内の全ジョブを実行し
終わっているか否かを判定する(ステップ202)。こ
こでは、実行残回数basic_cntが5なので、基
本周期basic_time内の全ジョブを実行し終わ
っていないと判断して、ステップ206に進む。
【0033】ステップ206において、ジョブスケジュ
ーラ21は、ジョブ番号nを0に初期化すると共に、今
回の割り込みで実行すべきジョブの番号を示すrun_
cntを−1に初期化する(ステップ206)。続い
て、ジョブスケジューラ21は、ジョブ番号nが登録済
みのジョブ数proc_maxより小さいか否か、すな
わち各ジョブnについてスケジューリングが終了したか
否かを判定する(ステップ207)。
【0034】ここでは、ジョブ番号nが0なので、スケ
ジューリングが終了していないと判断して、ステッ20
8に進む。次に、ジョブスケジューラ21は、ジョブn
の実行最小間隔cycle_cnt[n]が0より大き
いか否かを判定する(ステップ208)。
【0035】ここでは、基本周期basic_time
内において最初の割込クロックが発生した時点なので、
ジョブn(n=α=0)の実行最小間隔cycle_c
nt[0]は3である。よって、ジョブスケジューラ2
1は、ステップ209に進み、ジョブnの実行間隔cy
cle_cnt[n]を1減らす。これにより、ジョブ
αの実行最小間隔cycle_cnt[0]は2とな
る。
【0036】そして、ジョブスケジューラ21は、実行
すべきジョブ番号run_cntが−1で、かつジョブ
nの実行最小間隔cycle_cnt[n]が0で、か
つジョブnの実行回数proc_cnt[n]が0より
大きいか否かを判定する(ステップ210)。ここで
は、ジョブn(n=α=0)の実行最小間隔cycle
_cnt[0]が2なので、ステップ212に進み、ジ
ョブ番号nを1増やす。これにより、ジョブ番号nは1
となる。
【0037】次に、ジョブスケジューラ21は、ステッ
プ207に戻り、ジョブ番号nが登録済みのジョブ数p
roc_maxより小さいか否かを判定する。ここで
は、ジョブ番号nが1なので、スケジューリングが終了
していないと判断し、ステッ208に進む。
【0038】続いて、ジョブスケジューラ21は、ジョ
ブnの実行最小間隔cycle_cnt[n]が0より
大きいか否かを判定する(ステップ208)。ここで
は、ジョブn(n=β=1)の実行最小間隔cycle
_cnt[1]は1である。よって、ジョブスケジュー
ラ21は、ステップ209に進み、ジョブnの実行最小
間隔cycle_cnt[n]を1減らす。これによ
り、ジョブβの実行最小間隔cycle_cnt[1]
は0となる。
【0039】次いで、ジョブスケジューラ21は、実行
すべきジョブ番号run_cntが−1で、かつジョブ
nの実行最小間隔cycle_cnt[n]が0で、か
つジョブnの実行回数proc_cnt[n]が0より
大きいか否かを判定する(ステップ210)。
【0040】ここでは、実行すべきジョブ番号run_
cntが−1、すなわち実行すべきジョブが決定してお
らず、かつジョブn(n=β=1)の実行最小間隔cy
cle_cnt[1]が0で、かつジョブn(n=β=
1)の実行回数proc_cnt[1]が4なので、判
定YESとなり、ステップ211に進む。
【0041】ジョブスケジューラ21は、実行すべきジ
ョブ番号run_cntを現在のジョブ番号n(n=β
=1)とし、このジョブnの実行最小間隔cycle_
cnt[n]をバックアップ値cycle_cnt_s
ave[n]とすることで、実行最小間隔cycle_
cnt[n]を元の値に戻し、さらにジョブnの実行回
数proc_cnt[n]を1減らす(ステップ21
1)。
【0042】続いて、ジョブスケジューラ21は、ジョ
ブ番号nを1増やす(ステップ212)。これにより、
ジョブ番号nは2となる。次に、ジョブスケジューラ2
1は、ステップ207に戻り、ジョブ番号nが登録済み
のジョブ数proc_maxより小さいか否かを判定す
る。ここでは、ジョブ番号nが2なので、n=proc
_maxが成立して、判定NOとなり、今回の割り込み
についてのスケジューリングが終了したと判断して、ス
テップ213に進む。
【0043】そして、ジョブスケジューラ21は、実行
すべきのジョブの処理ポインタとして、proc_po
inter[run_cnt]をCPU1に渡す。こう
して、CPU1は、処理ポインタproc_point
er[run_cnt]で記憶装置2上の位置が示され
るジョブn(ここではn=β=1)を実行する。次の割
込クロックの発生時(図4の時刻t1)にも全く同様に
ステップ201,202,206〜213の処理が行わ
れ、ジョブn(n=β=1)が実行される。
【0044】さらに、その次の割込クロックの発生時
(図4の時刻t2)には、ジョブ番号n=0のとき、ス
テップ208の時点でジョブn(n=α=0)の実行最
小間隔cycle_cnt[0]は1である。よって、
ステップ209の処理により、ジョブn(n=α=0)
の実行最小間隔cycle_cnt[0]は0となる。
【0045】これにより、ステップ210において、実
行すべきジョブ番号run_cntが−1、すなわち実
行すべきジョブが決定しておらず、かつジョブn(n=
α=0)の実行最小間隔cycle_cnt[0]が0
で、かつジョブn(n=α=0)の実行回数proc_
cnt[0]が2なので、判定YESとなり、ステップ
211に進む。
【0046】ジョブスケジューラ21は、実行すべきジ
ョブ番号run_cntを現在のジョブ番号n(n=α
=0)とし、このジョブnの実行最小間隔cycle_
cnt[n]をバックアップ値cycle_cnt_s
ave[n]とすることで、実行最小間隔cycle_
cnt[n]を元の値に戻し、さらにジョブnの実行回
数proc_cnt[n]を1減らす(ステップ21
1)。なお、実行すべきジョブ番号run_cntが−
1以外の値に設定されると、ジョブ番号n=1以降の処
理では、ステップ210が必ず不成立となる。したがっ
て、1回の割込処理において実行すべきジョブとして決
定されるのは、登録済みのジョブのうちの1つだけであ
る。
【0047】続いて、ジョブスケジューラ21は、ジョ
ブ番号nを1増やす(ステップ212)。これにより、
ジョブ番号nは1となる。ジョブ番号n=1のとき、r
un_cnt=0となっているので、ステップ210は
不成立となる。
【0048】したがって、ジョブスケジューラ21は、
ジョブ番号nを1増やす(ステップ212)。これによ
り、ジョブ番号nは2となる。次に、ジョブスケジュー
ラ21は、ステップ207に戻り、ジョブ番号nが登録
済みのジョブ数proc_maxより小さいか否かを判
定する。ここでは、ジョブ番号nが2なので、n=pr
oc_maxが成立して、判定NOとなり、今回の割り
込みについてのスケジューリングが終了したと判断し
て、ステップ213に進む。
【0049】そして、ジョブスケジューラ21は、実行
すべきのジョブの処理ポインタとして、proc_po
inter[run_cnt]をCPU1に渡す。こう
して、CPU1は、処理ポインタproc_point
er[run_cnt]で記憶装置2上の位置が示され
るジョブn(ここではn=α=0)を実行する。
【0050】以上のような動作が繰り返されることによ
り、図4に示すように、ジョブβ,β,α,β,β,α
が順次実行される。図4の時刻t6の時点では、実行残
回数basic_cntが−1である。よって、ステッ
プ202において判定YESとなり、ジョブスケジュー
ラ21は、基本周期basic_time内の全ジョブ
を実行し終わったと判断して、ステップ203に進む。
【0051】ジョブスケジューラ21は、実行残回数b
asic_cntを実行回数の合計値proc_cnt
_sumの値に初期化すると共に、ジョブ番号nを0に
初期化する(ステップ203)。続いて、ジョブスケジ
ューラ21は、ジョブ番号nが登録済みのジョブ数pr
oc_maxより小さいか否か、すなわち各ジョブnに
ついて実行回数proc_cnt[n]の初期化が終了
したか否かを判定する(ステップ204)。
【0052】ここでは、ジョブ番号nが0なので、初期
化が終了していないと判断して、ステップ205に進
む。ステップ205において、ジョブスケジューラ21
は、実行回数proc_cnt[n]をバックアップ値
proc_cnt_save[n]とすることで、実行
回数proc_cnt[n]を元の値に戻し、ジョブ番
号nを1増やす。
【0053】こうして、各ジョブnについて実行回数p
roc_cnt[n]の初期化が終了するまで、ステッ
プ204,205の処理が繰り返される。ステップ20
6以降の処理は、次の基本周期、すなわち時刻t6以降
の基本周期basic_timeについての処理であ
る。本発明では、新たなジョブが発生しない限り、次の
基本周期basic_timeにおいても、直前の基本
周期と同じスケジューリング結果が繰り返される。
【0054】なお、本発明のジョブスケジューリング方
法(ジョブスケジューラ21)を実現させるためのジョ
ブスケジューリングプログラムは、フロッピィディス
ク、CD−ROM、メモリカード等の記録媒体に記録さ
れた状態で提供される。この記録媒体を入出力インタフ
ェース装置4に接続された補助記憶装置(不図示)に挿
入すると、記録媒体に記録されたプログラムが読み取ら
れる。そして、CPU1は、読み込んだプログラムを記
憶装置2に書き込み、このプログラムに従って図2、図
3で説明したような処理を実行する。
【0055】
【発明の効果】本発明によれば、中央処理装置が実行す
べきジョブが新たに発生する度に、この新たなジョブの
登録処理として、ジョブスケジューリングの基本周期を
全てのジョブの処理間隔時間の最小公倍数とし、基本周
期内の実行回数を各ジョブ毎に求め、基本周期と実行回
数の合計値から割込クロックの周期を求めて割込発生装
置に登録し、同一のジョブが実行される最小間隔を各ジ
ョブ毎に求める手順を実行し、割込発生装置から割込ク
ロックが出力される度に、中央処理装置が実行すべきジ
ョブを決定するスケジューリング処理として、最小間隔
を1減算して、減算後の最小間隔が0となる1つのジョ
ブを現在の割込処理で実行すべきジョブとして決定し、
このジョブの最小間隔を登録処理時に求めた値に戻し、
実行すべきジョブを中央処理装置に通知する手順を実行
することにより、同一のジョブが実行される最小間隔に
基づいて実行すべきジョブを決定し、1つの割込クロッ
クで実行されるジョブを登録済みのジョブのうちの1つ
だけとしている。したがって、ジョブの実行が重なる処
理集中を回避し、中央処理装置の処理負荷の増大を抑え
ることができる。また、割込発生装置から割込クロック
が出力されたときにスケジューリング処理を行うので、
予めスケジューリング処理を行ってスケジュールを保持
しておく必要がなく、スケジュールを保持するための記
憶容量を確保する必要がなくなる。
【図面の簡単な説明】
【図1】 本発明の実施の形態となるジョブスケジュー
リング方法を適用したコンピュータシステムの構成を示
すブロック図である。
【図2】 本発明のジョブスケジューリング方法を説明
するためのフローチャート図である。
【図3】 本発明のジョブスケジューリング方法を説明
するためのフローチャート図である。
【図4】 スケジューリング処理の様子を示す図であ
る。
【図5】 従来のジョブスケジューラを用いたコンピュ
ータシステムのブロック図である。
【図6】 図5のコンピュータシステムにおいてインタ
ーバルジョブの処理集中が発生する様子を示す図であ
る。
【符号の説明】
1…中央処理装置、2…記憶装置、3…割込発生装置、
4…入出力インタフェース装置、20…オペレーティン
グシステム、21…ジョブスケジューラ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置が実行すべきジョブが新た
    に発生する度に、この新たなジョブの登録処理として、
    ジョブスケジューリングの基本周期を全てのジョブの処
    理間隔時間の最小公倍数とし、前記基本周期内の実行回
    数を各ジョブ毎に求め、前記基本周期と実行回数の合計
    値から割込クロックの周期を求めて割込発生装置に登録
    し、同一のジョブが実行される最小間隔を各ジョブ毎に
    求める手順を実行し、 前記割込発生装置から割込クロックが出力される度に、
    前記中央処理装置が実行すべきジョブを決定するスケジ
    ューリング処理として、前記最小間隔を1減算して、減
    算後の前記最小間隔が0となる1つのジョブを現在の割
    込処理で実行すべきジョブとして決定し、このジョブの
    前記最小間隔を前記登録処理時に求めた値に戻し、前記
    実行すべきジョブを前記中央処理装置に通知する手順を
    実行することを特徴とするジョブスケジューリング方
    法。
  2. 【請求項2】 中央処理装置が実行すべきジョブが新た
    に発生したとき、この新たなジョブの登録処理として、 ジョブスケジューリングの基本周期を全てのジョブの処
    理間隔時間の最小公倍数とする手順と、 前記基本周期を各ジョブの処理間隔時間で割った値を前
    記基本周期内の実行回数として、この実行回数を各ジョ
    ブ毎に求める手順と、 全てのジョブの前記実行回数を加算した合計値を求める
    手順と、 前記基本周期を前記合計値で割った値を割込クロックの
    周期として割込発生装置に登録する手順と、 前記合計値を各ジョブの前記実行回数で割った値を同一
    のジョブが実行される最小間隔として、この最小間隔を
    各ジョブ毎に求める手順とを実行し、 前記割込発生装置から割込クロックが出力されたとき、
    前記中央処理装置が実行すべきジョブを決定するスケジ
    ューリング処理として、 前記最小間隔を1減算する手順と、 減算後の前記最小間隔が0で、かつ前記実行回数が0よ
    り大きい1つのジョブを現在の割込処理で実行すべきジ
    ョブとして決定する手順とを前記処理間隔時間が大きい
    順に各ジョブ毎に実行した後、 前記実行すべきジョブの前記最小間隔を前記登録処理時
    に求めた値に戻し、前記実行すべきジョブの前記実行回
    数を1減算する手順と、 前記実行すべきジョブを前記中央処理装置に通知する手
    順とを実行することを特徴とするジョブスケジューリン
    グ方法。
  3. 【請求項3】 中央処理装置が実行すべきジョブが新た
    に発生する度に、この新たなジョブの登録処理として、
    ジョブスケジューリングの基本周期を全てのジョブの処
    理間隔時間の最小公倍数とし、前記基本周期内の実行回
    数を各ジョブ毎に求め、前記基本周期と実行回数の合計
    値から割込クロックの周期を求めて割込発生装置に登録
    し、同一のジョブが実行される最小間隔を各ジョブ毎に
    求める手順をコンピュータに実行させ、 前記割込発生装置から割込クロックが出力される度に、
    前記中央処理装置が実行すべきジョブを決定するスケジ
    ューリング処理として、前記最小間隔を1減算して、減
    算後の前記最小間隔が0となる1つのジョブを現在の割
    込処理で実行すべきジョブとして決定し、このジョブの
    前記最小間隔を前記登録処理時に求めた値に戻し、前記
    実行すべきジョブを前記中央処理装置に通知する手順を
    コンピュータに実行させるジョブスケジューリングプロ
    グラムを記録した記録媒体。
  4. 【請求項4】 中央処理装置が実行すべきジョブが新た
    に発生したとき、この新たなジョブの登録処理として、 ジョブスケジューリングの基本周期を全てのジョブの処
    理間隔時間の最小公倍数とする手順と、 前記基本周期を各ジョブの処理間隔時間で割った値を前
    記基本周期内の実行回数として、この実行回数を各ジョ
    ブ毎に求める手順と、 全てのジョブの前記実行回数を加算した合計値を求める
    手順と、 前記基本周期を前記合計値で割った値を割込クロックの
    周期として割込発生装置に登録する手順と、 前記合計値を各ジョブの前記実行回数で割った値を同一
    のジョブが実行される最小間隔として、この最小間隔を
    各ジョブ毎に求める手順とをコンピュータに実行させ、 前記割込発生装置から割込クロックが出力されたとき、
    前記中央処理装置が実行すべきジョブを決定するスケジ
    ューリング処理として、 前記最小間隔を1減算する手順と、 減算後の前記最小間隔が0で、かつ前記実行回数が0よ
    り大きい1つのジョブを現在の割込処理で実行すべきジ
    ョブとして決定する手順とを前記処理間隔時間が大きい
    順に各ジョブ毎にコンピュータに実行させた後、 前記実行すべきジョブの前記最小間隔を前記登録処理時
    に求めた値に戻し、前記実行すべきジョブの前記実行回
    数を1減算する手順と、 前記実行すべきジョブを前記中央処理装置に通知する手
    順とをコンピュータに実行させるジョブスケジューリン
    グプログラムを記録した記録媒体。
JP2000000707A 2000-01-06 2000-01-06 ジョブスケジューリング方法及び記録媒体 Pending JP2001195265A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000000707A JP2001195265A (ja) 2000-01-06 2000-01-06 ジョブスケジューリング方法及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000000707A JP2001195265A (ja) 2000-01-06 2000-01-06 ジョブスケジューリング方法及び記録媒体

Publications (1)

Publication Number Publication Date
JP2001195265A true JP2001195265A (ja) 2001-07-19

Family

ID=18530019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000000707A Pending JP2001195265A (ja) 2000-01-06 2000-01-06 ジョブスケジューリング方法及び記録媒体

Country Status (1)

Country Link
JP (1) JP2001195265A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033192A (ja) * 2008-07-25 2010-02-12 Canon Inc 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010033192A (ja) * 2008-07-25 2010-02-12 Canon Inc 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
WO2010055719A1 (ja) * 2008-11-14 2010-05-20 日本電気株式会社 スケジュール決定装置、並列実行装置、スケジュール決定方法、及びプログラム
JP5464146B2 (ja) * 2008-11-14 2014-04-09 日本電気株式会社 スケジュール決定装置

Similar Documents

Publication Publication Date Title
CN110032438B (zh) 延时任务执行方法、装置及电子设备
EP0892335B1 (en) System and method for mapping processor clock values in a multiprocessor system
US20040181791A1 (en) Task switching apparatus, method and program
US6681242B1 (en) Method and apparatus for detecting dependency cycles between resources in a computer system
Audsley et al. Incorporating unbounded algorithms into predictable real-time systems
US6718479B1 (en) Method, system, program, and data structures for managing hierarchical timing wheels
JP2017151656A (ja) 並列処理装置、電力係数算出プログラムおよび電力係数算出方法
JP2001195265A (ja) ジョブスケジューリング方法及び記録媒体
Daley et al. Exploiting Markov chains to infer queue length from transactional data
Bakshi et al. A scheduling and pipelining algorithm for hardware/software systems
Schneidewind An integrated failure detection and fault correction model
JP2000056989A (ja) タスク設計方法
Hamann et al. Response time analysis for fixed priority servers
JP6627475B2 (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
JP3528890B2 (ja) パルス信号発生方法及びパルス信号発生装置
JP2021193504A (ja) リソース管理装置およびリソース管理プログラム
Nasri et al. A new approach for limited preemptive scheduling in systems with preemption overhead
JP3998686B2 (ja) Cpu使用時間カウント方法及びこのcpu使用時間を用いるジョブ制御装置
JP2004070579A (ja) タスクスケジューリング装置、タスクスケジューリング方法、プログラム
JP2990140B2 (ja) 割り込み制御回路
Siemers et al. Reliable event-triggered systems for mechatronic applications
CN112463125B (zh) 一种虚拟定时器的定时方法及设备
Auna et al. A New Modified Max-min Workflow Scheduling Algorithm for Cloud Environment
JP2006502500A (ja) 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法
JP3795055B1 (ja) 値予測装置、マルチプロセッサシステムおよび値予測方法