[go: up one dir, main page]

JP2001117786A - プロセススケジューリング装置およびプロセススケジューリング方法 - Google Patents

プロセススケジューリング装置およびプロセススケジューリング方法

Info

Publication number
JP2001117786A
JP2001117786A JP29713499A JP29713499A JP2001117786A JP 2001117786 A JP2001117786 A JP 2001117786A JP 29713499 A JP29713499 A JP 29713499A JP 29713499 A JP29713499 A JP 29713499A JP 2001117786 A JP2001117786 A JP 2001117786A
Authority
JP
Japan
Prior art keywords
scheduler
user
unit
process scheduler
schedulers
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
JP29713499A
Other languages
English (en)
Inventor
Noriaki Takakura
規彰 高倉
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 JP29713499A priority Critical patent/JP2001117786A/ja
Priority to US09/691,838 priority patent/US6981258B1/en
Publication of JP2001117786A publication Critical patent/JP2001117786A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(57)【要約】 【課題】 複数のプロセススケジューラを少ないオーバ
ヘッドで選択・実行することができるプロセススケジュ
ーリング装置を得る。 【解決手段】 プロセススケジューラ管理部104が管
理している複数のプロセススケジューラの内の1つを、
プロセススケジューラ選択部105が選出し、この選出
されたプロセススケジューラにおいて次に動くべきユー
ザプロセスを1つ選出し、選出されたユーザプロセスを
実行する。プロセススケジューラ部101、102は、
複数のユーザプロセスの中から次に動かすべきユーザプ
ロセスを1つ選出してプロセススケジューラ選択部10
5に通知する。また、プロセススケジューラ部101、
102によってスケジューリングされるプロセスをプロ
セス管理部107、108が管理する。よって、プロセ
ス切り替え処理の際に、オーバヘッドとなるシステムコ
ールを発行することなく実現することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ装置
等を用いて構成されるプロセススケジューリング装置お
よびプロセススケジューリング方法に関する。
【0002】
【従来の技術】従来、プロセススケジューリング装置お
よびプロセススケジューリング方法は一般に、コンピュ
ータ装置を用いて構成される。このコンピュータ装置上
で動作するオペレーティングシステムにおいて複数のス
ケジューリングポリシを提供するために、従来例1の
『特開平09−054699号公報/計算機のプロセス
スケジューラ』や従来例2の『UNIXカーネルの魔法
/SystemVリリース4のアーキテクチャ(発行:
株式会社プレンティスホール出版)』の4.6プロセス
・スケジューリングに記載されている方式がとられてき
た。
【0003】複数のスケジューリングポリシは、緊急性
に応じた優先度でもって処理を行う優先度方式で、1つ
のシステム上でスケジュールする必要が生じた場合等
に、提供・使用されてきた。上記の複数のスケジューリ
ングポリシとは、決まった時間間隔で一定の確実な処理
を欲するプロセスであり、例えば、マルチメディア処理
等を時分割方式で行ってきた。また、緊急性があり応答
性を要求される処理を行うプロセスにおいて、例えば、
他システムとの通信処理を行ってきた。
【0004】上記従来例2の4.6プロセス・スケジュ
ーリングに記載されている方式は、すでにオペレーティ
ングシステム内に、実時間処理を行うユーザプロセスを
スケジューリングする実時間クラスと、従来のUNIX
システムで採用されていた時分割クラスを持っているプ
ロセススケジューラの説明がされている。この二つのク
ラスは優先度によって分けられており、ある優先度を境
に高い優先度を持つユーザプロセスは実時間クラスでス
ケジューリングされ、境界となっている優先度より低い
優先度を持つものは時分割クラスでスケジューリングさ
れる。
【0005】上記従来例2の4.6プロセス・スケジュ
ーリングに記載されている方法では、マルチメディアシ
ステムが必要としているユーザプロセスでのCPU利用
を保証できず、その問題点を解決すべく従来例1が考案
されている。
【0006】図8は、従来例1の構成例を示すブロック
図である。また、図9は、図8に適用されるプロセスの
実行と停止処理例を示したフローチャートである。従来
例1では、ユーザレベルプロセススケジューラ810を
オペレーティングシステムが本来持っているユーザレベ
ルプロセススケジューラ810によりスケジューリング
されるプロセスとしてシステム上に構築し、ユーザレベ
ルプロセススケジューラ810によってスケジューリン
グされるプロセスよりも優先的に動くようにユーザレベ
ルプロセススケジューラ810の優先度を調節してお
く。そして、実行可能なプロセスの内の優先度の高いプ
ロセスからCPUを割り当てて、動作させる計算機のプ
ロセススケジューラを利用してプロセスのスケジューリ
ングを行う。
【0007】ユーザレベルプロセススケジューラ810
よりも優先度の高いプロセスから、ユーザレベルプロセ
ススケジューラ810でスケジューリングされるプロセ
スへ切り替える場合は、以下の手順をとる。または、ユ
ーザレベルプロセススケジューラ810でスケジューリ
ングされるプロセスから、同じくユーザレベルプロセス
スケジューラ810でスケジューリングされるプロセス
へ切り替える場合にも、以下の手順をとる。
【0008】従来例1の公開公報中の、段落番号004
7等の記述に基づくと、処理手順は以下となる。 1.ユーザプロセスのコンテキスト保存処理;現在動作
しているユーザプロセスのコンテキストを保存する。
【0009】2.オペレーティングシステムのプロセス
スケジューラの実行;オペレーティングシステム(O
S)814のプロセススケジューラによって、次に優先
度の高いユーザプロセスを選出する。ユーザレベルプロ
セススケジューラ810が次に優先度の高いユーザプロ
セスであるので、このユーザレベルプロセススケジュー
ラ810が選出される。
【0010】3.ユーザレベルプロセススケジューラの
コンテキスト復帰処理;次に動かすべきプロセスの処理
を再開するために、オペレーティングシステムのプロセ
ススケジューラは、以前保存しておいたコンテキストを
復帰させる。
【0011】4.ユーザレベルプロセススケジューラの
実行;ユーザレベルプロセススケジューラ810は、次
に動かすべきユーザプロセスを選出する処理を行う(ス
テップS901〜ステップS902)。
【0012】5.ユーザプロセスの優先度変更依頼処理
(システムコールの発行);次に動かすべきユーザプロ
セスが選出できたら、他のプロセスが動作しないよう選
出したユーザプロセスの優先度を、他のユーザプロセス
よりも高くユーザレベルプロセススケジューラ810よ
りも低い優先度に変更する(ステップS903)。この
とき、プロセス優先度制御部826により、オペレーテ
ィングシステムが提供している優先度変更のためのシス
テムコールが発行される。
【0013】6.ユーザレベルプロセススケジューラの
中断処理(システムコールの発行);次に、ユーザレベ
ルプロセススケジューラ810が選出したユーザプロセ
スに切り替えるため、現在もっとも優先度が高いユーザ
レベルプロセススケジューラ810はスリープする(ス
テップS904)。このときプロセス実行制御部824
によりオペレーティングシステムが提供しているスリー
プのためのシステムコールが発行される。
【0014】7.ユーザレベルプロセススケジューラの
コンテキスト保存処理;スリープのためのシステムコー
ルを受けたオペレーティングシステムは、ユーザレベル
プロセススケジューラ810のコンテキスト保存を行
う。
【0015】8.オペレーティングシステム814のプ
ロセススケジューラ実行;そして、オペレーティングシ
ステムのプロセススケジューラは、次に優先度の高いユ
ーザプロセスを選出する。この場合、ユーザレベルプロ
セススケジューラ810の選出したユーザプロセスが、
次に優先度の高いユーザプロセスとして存在しているの
で、そのユーザプロセスが選出される。
【0016】9.次に動かすべきユーザプロセスのコン
テキスト復帰処理;そして、ユーザレベルプロセススケ
ジューラ810によって選出されたユーザプロセスのコ
ンテキストを復帰し、ユーザプロセスに切り替える。
【0017】一定時間が経過した後、スリープしていた
ユーザレベルプロセススケジューラ810が起床し、ス
テップS905から処理を再開する。
【0018】
【発明が解決しようとする課題】しかしながら、上記従
来例1には、以下の問題点がある。第1に、ユーザプロ
セスの切り替えの際にオーバヘッドが大きいということ
である。第2に、メモリの使用量が増えることである。
【0019】上記問題点を生じる理由を以下に示す。問
題点第1の、オーバヘッドが大きい理由は、プロセスと
して存在しているプロセススケジューラがユーザプロセ
スをスケジューリング・実行するために、システムコー
ルを利用しているからである。第2の、メモリの使用量
が増える理由は、、プロセススケジューラが、オペレー
ティングシステムのプロセスとして存在しているからで
ある。
【0020】本発明は、複数のユーザプロセスを管理・
実行するオペレーティングシステムにおいて、複数のプ
ロセススケジューラを少ないオーバヘッドで選択・実行
することができるプロセススケジューリング装置および
プロセススケジューリング方法を提供することを目的と
する。
【0021】
【課題を解決するための手段】かかる目的を達成するた
め、請求項1記載の発明のプロセススケジューリング装
置は、複数のプロセススケジューラを管理するプロセス
スケジューラ管理部と、プロセススケジューラ管理部で
管理している複数のプロセススケジューラの内の1つを
選出し、この選出されたプロセススケジューラにおいて
次に動くべきユーザプロセスを1つ選出し、選出された
ユーザプロセスを実行するプロセススケジューラ選択部
と、複数のユーザプロセスの中から次に動かすべきユー
ザプロセスを1つ選出し、この選出したユーザプロセス
をプロセススケジューラ選択部に通知するプロセススケ
ジューラ部と、プロセススケジューラ部によってスケジ
ューリングされるプロセスを管理するプロセス管理部と
を有して構成され、複数のプロセススケジューラを少な
いオーバヘッドで選択・実行可能としたことを特徴とし
ている。
【0022】さらに、上記のプロセススケジューラ選択
部から通知されたユーザプロセスに切り替える処理を行
うプロセス切り替え部を有するとよい。
【0023】また、プロセススケジューラ管理部は、複
数のプロセススケジューラ毎にユニークな情報、例えば
プロセススケジューラプログラムの実行アドレスを保持
することにより、この複数のプロセススケジューラを管
理するとよい。
【0024】なお、上記のプロセス管理部は、プロセス
スケジューラ部によってスケジューリングされるプロセ
スを、プロセス毎にユニークな情報を保持することによ
り管理するとよい。
【0025】請求項5記載の発明のプロセススケジュー
リング方法は、現在動作しているユーザプロセスのコン
テキストを保存するプロセスコンテキスト保存工程(S
201)と、プロセススケジューラ選択部(105)を
呼び出すプロセススケジューラ選択部呼び出し工程(S
202)と、プロセススケジューラ選択部呼び出し工程
で選出したプロセススケジューラ(A101、B10
2)を呼び出し実行するプロセススケジューラの実行工
程とを有することを特徴としている。
【0026】また、上記のプロセススケジューラ選択部
(105)に戻ると、プロセススケジューラによって次
に動かすべきユーザプロセスが通知されているので、プ
ロセス切り替え部(106)に戻り(S305)、次に
動かすユーザプロセスのコンテキスト復帰工程をさらに
有するとよい。
【0027】
【発明の実施の形態】次に、添付図面を参照して本発明
によるプロセススケジューリング装置およびプロセスス
ケジューリング方法の実施の形態を詳細に説明する。図
1から図7を参照すると、本発明のプロセススケジュー
リング装置およびプロセススケジューリング方法の一実
施形態が示されている。
【0028】図1は、本発明の構成例を示している。図
1において、本実施形態のプロセススケジューリング装
置は、プロセススケジューラ部A101、プロセススケ
ジューラ部B102、プロセススケジューラ管理部10
4とプロセススケジューラ選択部105とを有するプロ
セス切り替え部106、プロセス管理部A107、プロ
セス管理部B108、ユーザプロセスA120、ユーザ
プロセスB121、ユーザプロセスC122、を具備し
て構成される。
【0029】プロセススケジューラ管理部104は、プ
ロセススケジューラ毎にユニークな情報、例えばプロセ
ススケジューラプログラムの実行アドレスを保持するこ
とにより、複数のプロセススケジューラを管理する。こ
の管理の対象になるのは、プロセススケジューラ部A1
01とプロセススケジューラ部B102である。プロセ
スの切り替えの際には、プロセススケジューラ選択部1
05において、プロセススケジューラ管理部104で管
理している複数のプロセススケジューラの内の1つを選
出し、選出されたプロセススケジューラにおいて次に動
くべきユーザプロセスを1つ選出して、ユーザプロセス
を実行する。
【0030】プロセス管理部A107は、プロセススケ
ジューラ部A101によってスケジューリングされるプ
ロセスを、プロセス毎にユニークな情報を保持すること
により管理している。また、プロセス管理部B108
は、プロセススケジューラ部B102でスケジューリン
グされるプロセスを、プロセス毎にユニークな情報を保
持することにより管理している。
【0031】プロセススケジューラ部A101は、プロ
セス管理部A107で管理されているユーザプロセスの
中から次に動かすべきユーザプロセスを1つ選出し、選
出したユーザプロセスをプロセススケジューラ選択部1
05に通知する。また、プロセススケジューラ部B10
2は、プロセス管理部B108で管理されているユーザ
プロセスの中から次に動かすべきユーザプロセスを1つ
選出し、選出したユーザプロセスをプロセススケジュー
ラ選択部105に通知する。
【0032】プロセススケジューラ管理部104は、プ
ロセススケジューラ毎にユニークな情報、例えばプロセ
ススケジューラプログラムの実行アドレスを保持するこ
とにより、複数のプロセススケジューラを管理する。こ
の管理の対象になるのは、プロセススケジューラ部A1
01とプロセススケジューラ部B102である。本実施
例の説明では、プロセススケジューラ管理部104にお
いて、図4に示すようなプロセススケジューラ管理表を
持っている。図4のプロセススケジューラ管理表では、
プロセススケジューラのプログラム実行アドレスを保持
しているプロセススケジューラプログラム実行アドレス
保持領域があり、その保持領域にそれぞれINDEX番
号がついている。また、プロセススケジューラプログラ
ム実行アドレスを保持していない領域には、未使用を示
すデータが入っている。
【0033】プロセススケジューラ選択部105では、
プロセススケジューラ管理部104で管理している複数
のプロセススケジューラの内の1つを選出し、選出した
プロセススケジューラを呼び出す。またプロセススケジ
ューラから通知されたユーザプロセスをプロセス切り替
え部106に通知する。プロセス切り替え部106で
は、現在動作しているプロセスから、プロセススケジュ
ーラ選択部105より通知されたユーザプロセスに切り
替える処理を行う。
【0034】ユーザプロセスA120、ユーザプロセス
B121、ユーザプロセスC122は、本システム上で
動作するプロセスである。ユーザプロセスA120は、
プロセス管理部A107によって管理される。ユーザプ
ロセスB121、C122は、プロセス管理部B108
により管理されている。
【0035】(実施例の動作)次に、本発明の動作例に
ついて詳細に説明する。図2および図3のフローチャー
トは、プロセス切り替え部106の処理ステップ、およ
びプロセススケジューラ選択部105の処理ステップを
示している。また、図4は、プロセススケジューラのプ
ログラム実行アドレスを保持しているプロセススケジュ
ーラ管理表である。
【0036】プロセススケジューラ部A101(又は、
B102)は、プロセス管理部A107(又は、B10
8)にて管理されていて、実行可能状態にあるユーザプ
ロセスをスケジューリングし、次に動かすべきユーザプ
ロセスを1つ選出し、プロセススケジューラ選択部10
5に選出したユーザプロセスを通知する。プロセス管理
部A(又は、B)で管理されているユーザプロセスで実
行可能状態にあるユーザプロセスが存在しない場合は、
次に動かすべきユーザプロセスが無いことを通知する。
【0037】プロセススケジューラ選択部105では、
図3のフローチャートに従って処理を行う。まず図3の
ステップS301において図4のプロセススケジューラ
管理表のINDEX番号を先頭にする。そして、ステッ
プS302においてINDEX番号の指し示すプロセス
管理表のプロセススケジューラのプログラム実行アドレ
スを取得する。続いてステップS303において、ステ
ップS302にて取得した内容が未使用を示しているか
を判断する。未使用でなくプロセススケジューラのプロ
グラム先頭アドレスを示していればステップS304に
進み、未使用であればプロセススケジューラ選択部10
5の処理を終えてプロセス切り替え部106に戻る。
【0038】ステップS304では、ステップS302
で得たプロセススケジューラのプログラム実行アドレス
を基にプロセススケジューラを呼び出す。プロセススケ
ジューラの処理が完了し、プロセススケジューラ選択部
105に戻ってくると、ステップS305の処理を行
う。ステップS305では、プロセススケジューラ部1
01、102から通知されたユーザプロセスがあった否
かを調べる。ユーザプロセスが通知されている場合に
は、プロセススケジューラ選択部105の処理を終え
て、プロセス切り替え部106へと戻る。
【0039】ステップS305でプロセススケジューラ
部101、102から次に動かすべきユーザプロセスが
無いと通知されている場合には、ステップS306に移
りユーザプロセス管理部107、108で管理している
INDEX番号を1つ進める。ステップS306の処理
が終わると、S302に戻りINDEX番号の指し示す
プロセススケジューラのプログラム実行アドレスを獲得
する。プロセススケジューラ選択部105では、このよ
うにして次に動かすユーザプロセスが見つかるか、次に
動かすユーザプロセスが存在しないことを調べ終わるま
で、処理を続ける。
【0040】プロセス切り替え部106では、図2の処
理ステップに従って処理を行う。まず図2のステップS
201において、現在動いているユーザプロセスのコン
テキストを保存する。次にステップS202において、
プロセススケジューラ選択部105の呼び出しを行う。
プロセススケジューラ選択部105の処理が完了し戻っ
てくると、ステップS203において、プロセススケジ
ューラ選択部105から通知されたプロセスが有るか調
べる。プロセススケジューラ選択部105から通知され
たプロセスがある場合、ステップS204において次に
動かすべきユーザプロセスのコンテキストを復帰し、ス
テップS205においてプロセス処理を実行する。通知
されたプロセスがなく、ステップS203において次に
動かすべきユーザプロセスがない場合には、アイドル状
態に移行する。
【0041】次に、具体例を用いて動作の説明を行う。
ユーザプロセスを切り替える際には以下に示す手順をと
る。
【0042】1.ユーザプロセスのコンテキスト保存処
理;現在動作しているユーザプロセスのコンテキストを
保存する(ステップS201)。
【0043】2.プロセススケジューラの選出処理;次
にプロセススケジューラ選択部105を呼び出す(ステ
ップS202)。プロセススケジューラ選択部105で
は、プロセススケジューラ管理部104で管理されてい
るプロセススケジューラから1つを選出する(ステップ
S301〜ステップS303)。このときINDEX番
号は、“1”で、プロセススケジューラ部A101が選
出される。
【0044】3.選出したプロセススケジューラの実
行;次に、ステップS304で選出したプロセススケジ
ューラ部A101を呼び出し、実行する。呼び出された
プロセススケジューラ部A101では、そのプロセス管
理部A107で管理されているユーザプロセスの中から
1つを選出する。本実施例では、プロセス管理部A10
7で管理しているユーザプロセスは、ユーザプロセスA
120だけなのでユーザプロセスA120が選出され
る。選出されたユーザプロセスA120の情報をプロセ
ススケジューラ選択部105に通知して、プロセススケ
ジューラ選択部105に戻る。
【0045】4.次に動かすユーザプロセスのコンテキ
スト復帰処理;プロセススケジューラ選択部105に戻
ってくると、プロセススケジューラによって次に動かす
べきユーザプロセスが通知されているので、プロセス切
り替え部106に戻る(ステップS305)。プロセス
切り替え部106では、プロセススケジューラ部A10
1によって選出されたユーザプロセスA120のコンテ
キストを復帰し、ユーザプロセスA120にプロセスを
切り替える(ステップS204〜ステップS205)。
【0046】上記手順の内(3)の選出したプロセスス
ケジューラの実行において、次に動かすべきプロセスが
選出できなかった(当該プロセススケジューラでスケジ
ューリングされるプロセスが存在しない)場合には
(2)に戻り、次のプロセススケジューラを選出する。
そして次のプロセススケジューラでスケジューリングさ
れるプロセスの中から1つ選出するという手順を繰り返
す。その際の具体的な説明を、現在動作しているユーザ
プロセスA120が何らかの要因(資源獲得待ち等)に
より処理を継続できなくなり実行可能状態で無くなる場
合を例に、以下に行う。
【0047】1.ユーザプロセスのコンテキスト保存処
理;動作していたユーザプロセスA120のコンテキス
トを保存する(ステップS202)。
【0048】2.プロセススケジューラの選出処理;次
にプロセススケジューラ選択部105を呼び出す(ステ
ップS203)。プロセススケジューラ選択部105で
は、プロセススケジューラ管理部104で管理されてい
るプロセススケジューラから1つを選出する(ステップ
S301〜ステップS303)。このときINDEX番
号は“1”で、プロセススケジューラA101が選出さ
れる。
【0049】3.選出したプロセススケジューラの実行
・処理;次にステップS304で選出したプロセススケ
ジューラAを呼び出し、実行する。呼び出されたプロセ
ススケジューラ部A101では、そのプロセス管理部A
107で管理されているユーザプロセスの中からユーザ
プロセス1つを選出する。
【0050】本実施例では、プロセス管理部A107で
管理しているユーザプロセスはユーザプロセスA120
のみであるが、ユーザプロセスA120は実行可能状態
にはない。よってプロセス管理部A107で管理されて
いるユーザプロセスの内の実行可能状態にあるユーザプ
ロセスは存在しない。よって、次に動かすべきユーザプ
ロセスが無いことをプロセススケジューラ選択部105
に渡して、プロセススケジューラAからプロセススケジ
ューラ選択部105に戻る。
【0051】1.プロセススケジューラの選出処理;プ
ロセススケジューラ部Aで次に動かすべきユーザプロセ
スが選出できなかったことを受けて、INDEX番号が
1つ進められ、INDEX番号は“2”となる。(ステ
ップS305)プロセススケジューラ選択部105で
は、プロセススケジューラ管理部104で管理されてい
るプロセススケジューラから次のプロセススケジューラ
を1つ選出する(ステップS301〜ステップS30
3)。このときINDEX番号は“2”で、プロセスス
ケジューラ部B102が選出される。
【0052】2.選出したプロセススケジューラの実
行;次にステップS304で選出したプロセススケジュ
ーラ部B102を呼び出し実行する。呼び出されたプロ
セススケジューラ部B102では、そのプロセス管理部
B108で管理されているユーザプロセスの中から1つ
を選出する(ステップS501〜S504)。
【0053】本実施例では、プロセス管理部B108で
管理しているユーザプロセスはユーザプロセスB121
とユーザプロセスC122で、プロセススケジューラ部
BによってユーザプロセスB121が選出されるものと
する。
【0054】3.次に動かすユーザプロセスのコンテキ
スト復帰処理;プロセススケジューラ選択部105に戻
ってくると、プロセススケジューラ部Bによって次に動
かすべきユーザプロセスが通知されているので、プロセ
ス切り替え部106に戻る(ステップS305)。プロ
セススケジューラ部Bによって選出されたユーザプロセ
スB121のコンテキストを復帰し、ユーザプロセスB
121にプロセスを切り替える(ステップS204から
ステップS205)。
【0055】(効果の説明)これにより、従来プロセス
の優先度変更依頼、およびプロセスの実行停止・再開依
頼をシステムコールの発行によって行う。このプロセス
スケジューラを、オペレーティングシステムのプロセス
として構築する。このことにより、複数のプロセススケ
ジューラを実現していた方式に対し、プロセス切り替え
処理の際に、オーバヘッドとなるシステムコールを発行
することなく実現することができ、オーバヘッドを削減
することができる。
【0056】ユーザプロセスを切り替える際に、従来の
オペレーティングシステムのユーザプロセスとしてプロ
セススケジューラを実現する方法で行っていた。これに
対する上記実施例では以下となる。 1.ユーザプロセスのコンテキスト保存処理; 2.プロセススケジューラの選出処理; 3.選出したプロセススケジューラの実行・処理; 4.次に動かすユーザプロセスのコンテキスト復帰処
理;
【0057】よって、プロセス切り替え処理の際に、オ
ーバヘッドとなるシステムコールを発行することなく実
現することができる。このためオーバヘッドを削減する
ことができる。またプロセススケジューラがプロセスと
して存在していない。このために、プロセスの管理領域
やスタック領域等を必要とせずメモリ使用量の増加を抑
えることができる。
【0058】(他の実施例)図5は他の実施例の説明で
用いる構成図であり、図6は同じく他の実施例の説明で
用いるプロセススケジューラ管理表である。また、図7
は、他の実施例の説明で用いるプロセススケジューラ選
択部のフローチャートである。
【0059】前述のプロセススケジューラ管理部104
に、プロセス管理部A107で管理しているユーザプロ
セス中に実行可能状態のユーザプロセスが存在するか否
かを示すユーザプロセスフラグA509(実行可能状態
のユーザプロセスが存在する場合には“1”となり、存
在しない場合には“0”となる)と、プロセス管理部B
108で管理しているユーザプロセス中に実行可能状態
のユーザプロセスが存在するか否かを示すユーザプロセ
スフラグB510を設け、プロセススケジューラ選出の
際に、ユーザプロセスフラグが“1”であるプロセスス
ケジューラの内の最も若いINDEX番号を持つものを
選出するようにする。この場合のフローチャートを図7
が示している。
【0060】プロセス切り替え部106からプロセスス
ケジューラ選択部105が呼び出されると、ステップS
701では、プロセススケジューラ管理表のINDEX
番号を先頭にする。
【0061】ステップS702では、INDEX番号の
指し示すユーザプロセスフラグの内容を取得する。
【0062】ステップS703では、取得したユーザプ
ロセスフラグの内容を判断する。ユーザプロセスフラグ
の内容が“1”であれば、ステップS704に進む。ユ
ーザプロセスフラグの内容が“0”であれば、ステップ
S706に進む。ユーザプロセスフラグの内容が未使用
であれば、プロセススケジューラ選択部105の処理を
終えて、プロセス切り替え部106に戻る。
【0063】ステップS704では、INDEX番号の
指し示すプロセススケジューラ部101、102のプロ
グラム実行アドレスを取得する。
【0064】ステップS705では、ステップS704
で取得したプロセススケジューラ部101、102のプ
ログラム実行アドレスを基にプロセススケジューラ部1
01、102を呼び出す。プロセススケジューラ部10
1、102の処理が完了すると、プロセススケジューラ
選択部105に戻ってくる。
【0065】プロセススケジューラ部101、102か
ら戻る際にユーザプロセスが通知されるので、そのユー
ザプロセスをプロセス切り替え部106に通知し、プロ
セス切り替え部106に戻る。
【0066】ステップS706では、INDEX番号を
1つ進めて、ステップS702に戻る。
【0067】具体的な説明を、現在動作しているユーザ
プロセスA120が何らかの要因(資源獲得待ち等)に
より処理を継続できなくなり実行可能状態で無くなる場
合を例に行う。
【0068】1.ユーザプロセスのコンテキスト保存処
理;動作していたユーザプロセスA120のコンテキス
トを保存する(ステップS202)。
【0069】2.プロセススケジューラの選出処理;次
にプロセススケジューラ選択部105を呼び出す(ステ
ップS203)。プロセススケジューラ選択部105で
は、ユーザプロセスフラグの内容を調べ(ステップS7
02、ステップS703、ステップS706)、ユーザ
プロセスフラグの内容が1であるプロセススケジューラ
を選出する。
【0070】3.選出したプロセススケジューラの実行
・処理;次にステップS304で選出したプロセススケ
ジューラ部B102を呼び出し実行する。呼び出された
プロセススケジューラ部B102では、そのプロセス管
理部B108で管理されているユーザプロセスの中から
1つを選出する(ステップS501〜S504)。
【0071】本実施例では、プロセス管理部B108で
管理しているユーザプロセスはユーザプロセスB121
とユーザプロセスC122で、プロセススケジューラ部
B102によってユーザプロセスB121が選出される
ものとする。
【0072】4.次に動かすユーザプロセスのコンテキ
スト復帰処理;プロセススケジューラ選択部105に戻
ってくると、プロセススケジューラ部B102によって
次に動かすべきユーザプロセスが通知されているので、
プロセス切り替え部106に戻る(ステップS305)
プロセススケジューラ部B102によって選出されたユ
ーザプロセスB121のコンテキストを復帰し、ユーザ
プロセスB121にプロセスを切り替える(ステップS
204〜ステップS205)。
【0073】尚、上述の実施形態は本発明の好適な実施
の一例である。但し、これに限定されるものではなく、
本発明の要旨を逸脱しない範囲内において種々変形実施
が可能である。例えば、上記の実施例では、プロセスス
ケジューラが2つの場合を説明したが、プロセススケジ
ューラの数に制限はない。
【0074】
【発明の効果】以上の説明より明らかなように、請求項
1記載の発明のプロセススケジューリング装置は、複数
のプロセススケジューラを管理し、この管理している複
数のプロセススケジューラの内の1つを選出し、選出さ
れたプロセススケジューラにおいて次に動くべきユーザ
プロセスを1つ選出し、選出されたユーザプロセスを実
行する。また、複数のユーザプロセスの中から次に動か
すべきユーザプロセスを1つ選出し、選出したユーザプ
ロセスをプロセススケジューラ選択部に通知し、プロセ
ススケジューラ部によってスケジューリングされるプロ
セスを管理する。よって、複数のプロセススケジューラ
を少ないオーバヘッドで選択・実行可能となる。
【0075】請求項5記載の発明のプロセススケジュー
リング方法は、現在動作しているユーザプロセスのコン
テキストを保存し、プロセススケジューラ選択部(10
5)を呼び出し、選出したプロセススケジューラを呼び
出し実行する。このため、オーバヘッドを削減すること
ができる。
【図面の簡単な説明】
【図1】本発明のプロセススケジューリング装置の実施
形態のブロック構成例を示す。
【図2】プロセス切り替え部106の処理ステップを示
すフローチャートである。
【図3】プロセススケジューラ選択部105の処理ステ
ップを示すフローチャートである。
【図4】プロセススケジューラのプログラム実行アドレ
スを保持しているプロセススケジューラ管理表である。
【図5】他の実施例の説明で用いる構成図である。
【図6】他の実施例の説明で用いるプロセススケジュー
ラ管理表を示す。
【図7】他の実施例の説明で用いるプロセススケジュー
ラ選択部のフローチャートである。
【図8】従来例1の構成を示すブロック図である。
【図9】従来例2のプロセスの実行と停止の処理を示す
フローチャートである。
【符号の説明】
101 プロセススケジューラ部A 102 プロセススケジューラ部B 104 プロセススケジューラ管理部 105 プロセススケジューラ選択部 106 プロセス切り替え部 107 プロセス管理部A 108 プロセス管理部B 120 ユーザプロセスA 121 ユーザプロセスB 122 ユーザプロセスC

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセススケジューラを管理する
    プロセススケジューラ管理部と、 前記プロセススケジューラ管理部で管理している複数の
    プロセススケジューラの内の1つを選出し、該選出され
    たプロセススケジューラにおいて次に動くべきユーザプ
    ロセスを1つ選出し、該選出されたユーザプロセスを実
    行するプロセススケジューラ選択部と、 複数のユーザプロセスの中から次に動かすべきユーザプ
    ロセスを1つ選出し、該選出したユーザプロセスを前記
    プロセススケジューラ選択部に通知するプロセススケジ
    ューラ部と、 前記プロセススケジューラ部によってスケジューリング
    されるプロセスを管理するプロセス管理部とを有して構
    成され、 複数のプロセススケジューラを少ないオーバヘッドで選
    択・実行可能としたこと、 を特徴とするプロセススケジューリング装置。
  2. 【請求項2】 前記プロセススケジューラ選択部から通
    知されたユーザプロセスに切り替える処理を行うプロセ
    ス切り替え部を、さらに有することを特徴とする請求項
    1に記載のプロセススケジューリング装置。
  3. 【請求項3】 前記プロセススケジューラ管理部は、前
    記複数のプロセススケジューラ毎にユニークな情報、例
    えばプロセススケジューラプログラムの実行アドレスを
    保持することにより、該複数のプロセススケジューラを
    管理することを特徴とする請求項1または2に記載のプ
    ロセススケジューリング装置。
  4. 【請求項4】 前記プロセス管理部は、前記プロセスス
    ケジューラ部によってスケジューリングされるプロセス
    を、プロセス毎にユニークな情報を保持することにより
    管理することを特徴とする請求項1から3の何れかに記
    載のプロセススケジューリング装置。
  5. 【請求項5】 現在動作しているユーザプロセスのコン
    テキストを保存するプロセスコンテキスト保存工程(S
    201)と、 プロセススケジューラ選択部(105)を呼び出すプロ
    セススケジューラ選択部呼び出し工程(S202)と、 前記プロセススケジューラ選択部呼び出し工程で選出し
    たプロセススケジューラ(A101、B102)を呼び
    出し実行するプロセススケジューラの実行工程と、 を有することを特徴とするプロセススケジューリング方
    法。
  6. 【請求項6】 前記プロセススケジューラ選択部(10
    5)に戻ると、プロセススケジューラによって次に動か
    すべきユーザプロセスが通知されているので、プロセス
    切り替え部(106)に戻り(S305)、次に動かす
    ユーザプロセスのコンテキスト復帰工程をさらに有する
    ことを特徴とする請求項5記載のプロセススケジューリ
    ング方法。
JP29713499A 1999-10-19 1999-10-19 プロセススケジューリング装置およびプロセススケジューリング方法 Pending JP2001117786A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29713499A JP2001117786A (ja) 1999-10-19 1999-10-19 プロセススケジューリング装置およびプロセススケジューリング方法
US09/691,838 US6981258B1 (en) 1999-10-19 2000-10-18 Process scheduler without long overhead and large memory and scheduling method used therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29713499A JP2001117786A (ja) 1999-10-19 1999-10-19 プロセススケジューリング装置およびプロセススケジューリング方法

Publications (1)

Publication Number Publication Date
JP2001117786A true JP2001117786A (ja) 2001-04-27

Family

ID=17842659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29713499A Pending JP2001117786A (ja) 1999-10-19 1999-10-19 プロセススケジューリング装置およびプロセススケジューリング方法

Country Status (2)

Country Link
US (1) US6981258B1 (ja)
JP (1) JP2001117786A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007133858A (ja) * 2005-09-30 2007-05-31 Coware Inc マルチコアアーキテクチャにおけるスケジューリング
WO2010082244A1 (ja) * 2009-01-16 2010-07-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2011192281A (ja) * 2010-03-12 2011-09-29 Samsung Electronics Co Ltd 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法
WO2011117987A1 (ja) 2010-03-24 2011-09-29 富士通株式会社 マルチコアシステムおよび起動方法
JP2012146157A (ja) * 2011-01-13 2012-08-02 Hitachi Systems Ltd スケジューリング方法およびスケジューリングシステム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337443B2 (en) * 2003-06-30 2008-02-26 Microsoft Corporation Method and apparatus for processing program threads
US8276145B2 (en) * 2008-06-27 2012-09-25 Microsoft Corporation Protected mode scheduling of operations
US8650538B2 (en) 2012-05-01 2014-02-11 Concurix Corporation Meta garbage collection for functional code
US8726255B2 (en) 2012-05-01 2014-05-13 Concurix Corporation Recompiling with generic to specific replacement
US8793669B2 (en) 2012-07-17 2014-07-29 Concurix Corporation Pattern extraction from executable code in message passing environments
US9575813B2 (en) 2012-07-17 2017-02-21 Microsoft Technology Licensing, Llc Pattern matching process scheduler with upstream optimization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2590872B2 (ja) 1987-04-17 1997-03-12 松下電器産業株式会社 タスクスケジュール方法
JP3144842B2 (ja) 1991-08-09 2001-03-12 株式会社東芝 マイクロプロセッサ
US5379428A (en) * 1993-02-01 1995-01-03 Belobox Systems, Inc. Hardware process scheduler and processor interrupter for parallel processing computer systems
JPH06309290A (ja) 1993-04-23 1994-11-04 Fuji Electric Co Ltd 並列処理方式
US6148325A (en) 1994-06-30 2000-11-14 Microsoft Corporation Method and system for protecting shared code and data in a multitasking operating system
JPH0954699A (ja) * 1995-08-11 1997-02-25 Fujitsu Ltd 計算機のプロセススケジューラ
US6742111B2 (en) * 1998-08-31 2004-05-25 Stmicroelectronics, Inc. Reservation stations to increase instruction level parallelism

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751773B2 (en) 2005-09-30 2014-06-10 Synopsys, Inc. Scheduling in a multicore architecture
JP2007133858A (ja) * 2005-09-30 2007-05-31 Coware Inc マルチコアアーキテクチャにおけるスケジューリング
JP2012089154A (ja) * 2005-09-30 2012-05-10 Coware Inc マルチコアアーキテクチャにおけるスケジューリング
US9442886B2 (en) 2005-09-30 2016-09-13 Synopsys, Inc. Scheduling in a multicore architecture
US8533503B2 (en) 2005-09-30 2013-09-10 Synopsys, Inc. Managing power consumption in a multicore processor
US8732439B2 (en) 2005-09-30 2014-05-20 Synopsys, Inc. Scheduling in a multicore processor
US9286262B2 (en) 2005-09-30 2016-03-15 Synopsys, Inc. Scheduling in a multicore architecture
US9164953B2 (en) 2005-09-30 2015-10-20 Synopsys, Inc. Scheduling in a multicore architecture
WO2010082244A1 (ja) * 2009-01-16 2010-07-22 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2010165259A (ja) * 2009-01-16 2010-07-29 Sony Computer Entertainment Inc 情報処理装置および情報処理方法
US8793695B2 (en) 2009-01-16 2014-07-29 Sony Corporation Information processing device and information processing method
JP2011192281A (ja) * 2010-03-12 2011-09-29 Samsung Electronics Co Ltd 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法
US9417912B2 (en) 2010-03-12 2016-08-16 Samsung Electronics Co., Ltd. Ordering tasks scheduled for execution based on priority and event type triggering the task, selecting schedulers for tasks using a weight table and scheduler priority
WO2011117987A1 (ja) 2010-03-24 2011-09-29 富士通株式会社 マルチコアシステムおよび起動方法
US9218201B2 (en) 2010-03-24 2015-12-22 Fujitsu Limited Multicore system and activating method
JP2012146157A (ja) * 2011-01-13 2012-08-02 Hitachi Systems Ltd スケジューリング方法およびスケジューリングシステム

Also Published As

Publication number Publication date
US6981258B1 (en) 2005-12-27

Similar Documents

Publication Publication Date Title
US5613114A (en) System and method for custom context switching
KR100628492B1 (ko) 실시간 동작 수행방법 및 시스템
JP3776449B2 (ja) マルチタスク低電力制御装置
US6006247A (en) Method and system for scheduling threads and handling exceptions within a multiprocessor data processing system
US7810096B2 (en) Computer executing multiple operating systems
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
US9274832B2 (en) Method and electronic device for thread scheduling
KR20050016170A (ko) 실시간 동작 수행방법 및 시스템
WO2006117950A1 (ja) 情報処理装置における電力制御装置
JP2000330806A (ja) 計算機システム
KR20070083460A (ko) 다중 커널을 동시에 실행하는 방법 및 시스템
JPWO2008023427A1 (ja) タスク処理装置
JP2001117786A (ja) プロセススケジューリング装置およびプロセススケジューリング方法
US7822952B2 (en) Context switching device
CN101221515A (zh) 用于调度执行单元的方法和系统
CN109766168B (zh) 任务调度方法和装置、存储介质以及计算设备
JP2005092780A (ja) リアルタイムプロセッサシステム及び制御方法
JP2008225641A (ja) コンピュータシステム、割り込み制御方法及びプログラム
JP2006243864A (ja) プロセッサおよび情報処理方法
CN114691376A (zh) 一种线程执行方法、装置、电子设备和存储介质
JPWO2018211865A1 (ja) 車両制御装置
JP2006004092A (ja) コンピュータシステム
JPH11184828A (ja) マルチプロセッサシステムのテスト方式
JPH04283849A (ja) マルチプロセッサシステム
CN119690615A (zh) 一种任务调度方法以及电子设备

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040823

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040928