JPS63163640A - スケジユ−リング方式 - Google Patents

スケジユ−リング方式

Info

Publication number
JPS63163640A
JPS63163640A JP30842086A JP30842086A JPS63163640A JP S63163640 A JPS63163640 A JP S63163640A JP 30842086 A JP30842086 A JP 30842086A JP 30842086 A JP30842086 A JP 30842086A JP S63163640 A JPS63163640 A JP S63163640A
Authority
JP
Japan
Prior art keywords
task
executed
tasks
execution
priority
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
JP30842086A
Other languages
English (en)
Inventor
Ichiro Ote
大手 一郎
Tomihisa Hatano
富久 幡野
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP30842086A priority Critical patent/JPS63163640A/ja
Publication of JPS63163640A publication Critical patent/JPS63163640A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、複数のジョブ、複数のタスクの並列処理を行
なうコンピュータシステムに係シ、特に、パーソナルコ
ンピュータやワークステーションなどのマルチタスク争
オペレーティングシステムに用いて好適なスケジューリ
ング方式に関する。
〔従来の技術〕
従来、中、大型のコンピュータシステムにおいては、資
源の有効利用をはかる上から、複数のジョブ(ユーザか
らみた仕事単位)、複数のタスク(オペレーティングシ
ステムからみた仕事単位)の並列処理を行なうマルチタ
スク・オペレーティングシステム(以下、マルチタスク
O8という)を用いるのが一般的であるが、マイクロプ
ロセッサの処理能力の向上に伴なって、バーンナルコン
ピュータなどの小型コンピュータシステムにおいても、
マルチタスクO8が採用されつつある。
これによると、従来、個々の装置で使用されたワードプ
ロセッサ、代表プログラム、通信ソフトウェアなどのア
プリケーションが、同一のパーソナルコンピュータにお
いて、ジョブやタスクとして、同時に並列処理を行なう
ことが可能となシ、パーソナルコンピュータの使用効率
が飛躍的に向上することになる。
ところで、従来、ワードプロセッサや代表プログラムな
どは、夫々単一のタスクとし、シングルタスクO8上で
実行されるアプリケーションであシ、これらをほとんど
変更なしに、さらには、全く変更なしにマルチタスクO
8上で並列実行できることが互換性を保つ立場から好ま
しい。また。
このようなアプリケーションをマルチタスクO8に用い
る場合、たとえば、ワードプロセッサの実行中に通信回
線からのデータ受信要求があった場合、通信ソフトウェ
アが直ちに実行されなければならないが、このようなこ
とを可能とするために各アプリケーションに優先順位を
設け、タスクの優先処理を実現しなければならない。
一方、シングルタスクO8においては、1つのアプリケ
ーションしか実行されないために、アプリケーションを
待期状態にするWAITや待期状態にあるアプリケーシ
ョンを実行可能な状態にするPO3Tといったような、
タスク間、或いは、タスクと入出力装置との間で同期を
とる機能を備えていない。
この代シに、通常、各アプリケーションには、キー操作
による指令の入力などのキー人力や通信回線からのデー
タ受信要求といった事象の発生を検知するセンスルーズ
が設けられ、事象が発生するまでこのセンスループを実
行している。
第10図は通信ソフトウェアの受信待ちセンスループを
示すフローチャートである。通常、このセンスループは
「受信データ有シか否か」の判定処理と「キー人力布シ
か否か」の判定処理とからなるループを常時実行して受
信/キー人力待ち状態にあり、データ受信の要求あるい
はキー人力があると、そのための処理を実行する。また
、ワードプロセッサや作表などのアプリケーションにお
いては、第11図に示すようなセンスループが設けられ
、常時「キー人力有りか否か」の判定処理を含むループ
が実行されてキー人力待ち状態にある。
このようなアプリケーションに優先順位をつけてマルチ
タスクO8上で実行する場合、特定タスクの優先処理が
可能なようにスケジューリングされるため1通信ソフト
ウェアの回線処理のように。
高速応答性が要求されるリアルタイム処理には好適であ
る。
〔発明が解決しようとする問題点〕
上記従来技術におけるような優先順位によるスケジュー
リング方式では、優先順位が高いアプリケーションが実
行されると、これが終了するまで他の優先順位の低いア
プリケーションが実行できないという問題がある。特に
、ワードプロセッサ。
作表1通信ソフトウェアなどのシングルタスクO8用の
アプリケーションは、前記したように、会話形式で処理
を進めるものが多く、はとんどが内部にキー人力を検出
するためのセンスルーズの処理があるために、通信ソフ
トウェアのような優先順位の高いアプリケーションがそ
のセンスルーズの処理を開始すると、キー人力が受けつ
けられるまで(通信ソフトウェアでは、さらにデータ受
信要求があるまで)このセンスルーズの処理が実行され
、他の優先順位が低いアプリケーションの実行が待たさ
れることになる。これら優先順位が低いアプリケーショ
ンにとっては、キー人力があるまでの優先順位の高いア
プリケーションにおけるセンスルーズの処理は無駄なこ
とであシ、この間、実質的には、他の優先順位が低いア
プリケーションは実行できなくなる。
一方、優先順位が高いタスクが実行されていても、優先
順位が低いタスクの要求があると、これも実行させよう
とする技術が提案されている(たとえば、特開昭55−
52153号公報)が、これもやはシ優先順位にしたが
ったスケジューリングであシ、優先順位の低いタスクは
、このタスクに対する実行要求が所定回数以上あって始
めて実行されるものである。
したがって、上記従来技術においても、常に、優先順位
が低いタスクが実行される頻度は、低いものとなる。
本発明は、かかる問題を解消し、優先順位の高いタスク
に対する高速応答性を維持しつつ、複数のタスクの実行
頻度を均一にすることもできるようにしたスケジューリ
ング方式を提供することを目的とする。
〔問題点を解決するための手段〕
上記目的は、マルチタスクO8において、各実行可能な
タスクの実行順序を規定する専用スケジューリング処理
部を設けるとともに、各タスクが該専用スケジューリン
グ処理部に制御を渡すだめのタスク切換マクロ命令を設
け、さらに、タイマ割込によシ1つのタスクの連続実行
時間を監視する、タイマ監視処理部を設けることによっ
て達成される。
〔作用〕
マルチタスクO8下で実行される夫々のタスクは、セン
スループなどの必要な処理を行なった後、該タスク切換
マクロ命令を発行し%該スケジューリング処理部に制御
を渡す。
該専用スケジューリング処理部では、上記所定の順序に
もとづき、次に実行可能なタスクを実行させる。
したがって、現在実行中のタスクが、該タスク切換マク
ロ命令を発行することKより、実行可能なタスクは夫々
上記所定の順序で実行されていくことになシ、優先順位
の高いタスクだけが実行されることを回避することが可
能となる。
また、タイマ監視処理部は、タイマ割込により、1つの
タスクの連続実行時間を監視し、所定の時間以上連続で
実行されているタスクがあった場合、該専用スケジュー
リング処理部に制御を渡し、強制的にタスク切換を行な
う。
したがって、該タスク切換マクロ命令を発行しないタス
クが存在した場合にも、上記所定順序によるタスクのス
ケジューリングを実現し、1つのタスクが所定の時間以
上連続で実行されることを回避する。
〔実施例〕
以下、本発明の実施例を図面を用いて説明する。
第1図は本発明によるスケジューリング方式の一実施例
を示すブロック図であって、10は割込処理部、20は
マルチタスクOSマクロ命令、30は優先順位スケジュ
ーリング処理部、40はタスク切換マクロ命令、50は
タイマ監視処理部、6゜はタイマ監視カウンタ、70は
専用スケジューリング処理部、80はジョブ、90はス
ケジューリング制御ブロック、100はCPU待ち行列
、110はタスク制御ブロック、120は実行要求タス
クレベル領域、130は実行中タスクレベル領域、14
0は実行可能タスクの最高レベル領域である。
同図において、ワードプロセッサ、代表プログラム、通
信ソフトウェアなどのアプリケーションは、システムに
ジョブ80として登録され、マルチタスクO8の管理の
もとに並列に処理される。
これらアプリケーションは、シングルタスクosのため
に開発されたもの、あるいはそれを若干修正したものと
する。これらジョブ8oは、マルチタスクO8からみた
場合、単一のタスクに対応したものもあれば、複数のタ
スクからなるものもある。一般に、ワードプロセッサや
作表プログラムは前者であシ、通信ソフトウェアは後者
の例である。しかし、シングルタスクos上で動作する
従来の通信ソフトウェアは1タスクで構成され、したが
って、データ送受信、キー人力、ディスク書込み、プリ
ンタ出力などの一連の処理を1つのタスクで行なう。
ジョブ80を構成するタスクの夫々には優先レベルが与
えられておシ、これに応じてタスクの優先順位が決定さ
れる。
スケジューリング制御ブロック90は、各優先レベルに
対応するCPU待ち行列100から構成されておシ、ま
たCPU待ち行列100は、夫々にリンクされた実行可
能なタスクのタスク制御プロソり(以下、TCB)11
0からなっている。
この場合、同−CPU待ち行列をなすTCBl 1 Q
は同一優先レベルの実行可能な、タスクに対するもので
ある。
TCBlloはタスクの格納位置、冬休などを表わすも
のである。ここで、実行可能なタスクとは、いつでもC
PUで実行され得るタスクでる6 、apr、rにより
実行された後のタスクのTCBllQは、スケジューリ
ング制御ブロック90からはずされて、例えば、WAI
T状態となる。
またWAIT状態にあるタスクがPO8Tされて実行可
能となると、これと同じ優先レベルのタスクの’I’C
B110がリンクされたCPU待ち行列8゜−の最後尾
に実行可能となったTCBlloがリンクされる。すな
わち、同−CPU待ち行列をなす’I’CB110は、
タスクが実行可能となって受は付けられた順序でリンク
されている。
このようにスケジューリング制御ブロック9゜を構成す
ることにより、実行可能なタスクに対して優先順位が設
定される。この優先順位はタスクに与えられた優先レベ
ルとCPU待ち行列の受は付は順序で決t、b、優先レ
ベルが高くかつこの受は付は順序が早い程、タスクの優
先順位が高い。
マルチタスクOSマクロ命令20はディスク装置、キー
ボード、プリンタ、通信回線などの周辺装置に対する入
出力処理やタスク間の同期制御。
資源の競合管理などを行なう。また割込処理部1゜は周
辺装置からの入出力終了割込により起動され、周辺装置
に対して入出力要求を出し、入出力処理の終了を待つタ
スクを実行可能な状態にする。これらマルチタスクO8
命令20や割込処理部1゜により、実行要求されたタス
クの優先レベルが実行要求タスクレベル領域(以下、R
IUQLV’Lという)120に設定される。これらマ
ルチタスクOSマクロ命令20や割込処理部10の処理
が終了すると次に実行すべきタスクを判定するため、優
先順位スケジューリング処理部30に制御を移す。
一方、実行中タスクレベル領域(以下、CURLVT。
という)130には、現在CPUで実行中のタスクの優
先レベルが設定されておシ、優先順位スケジューリング
処理部5Gは、REQLVLlooの優先レベルLRと
(:URLT/L110の優先レベルLaとからCPU
で実行すべきタスクの優先レベルを判定し、最も優先順
位が高いタスクを実行させる。
第2図は第1図に示したスケジューリング方式が適用可
能な標準的なシステム構成を示すブロック図であって、
第1図のマルチタスクO8,タスク切換マクロ命令40
.タイマ監視処理部50゜タイマ監視カウンタ60.専
用スケジューリング処理部70は、ROM2.RAM5
上のプログラムとして、CPU(中央処理ユニット)1
により制御されるものである。なお、4はプリンタ、5
はディスプレイ、6はキーボード、7はディスクである
第3図は第1図に示した優先順位スケジューリング処理
部の処理動作を説明するフローチャートである。
第3図において、まず、第1図(7) REQILVL
l 20の優先レベルLRとCURLVL130の優先
レベルL(Hとを比較する(ステップ50A)。優先レ
ベルLC≧優先レベルLRのとき妃は、現在実行中のタ
スクを再実行させる(ステップ50E)。優先レベルL
c<優先レベルLRのときには、ステップ50Bに移る
。ステップ50Bにおいては、スケジューリング制御ブ
ロック90の中のREQLVL120の優先レベルLR
に対応するCPU待ち行列100から実行要求されたタ
スクに対するTCBlloを検索する。次に、タイマ監
視処理部50によって、1つのタスクの連続実行時間を
監視するために、タイマ監視カウンタ60をOクリアし
た(ステップ50C)後、ステップ50Bで検索したタ
スクを実行する(ステップ50D)。このようにして、
優先順位に依存したスケジューリングが可能となる。
この実施例においては、これにタスク切換マクロ命令4
0、専用スケジューリング処理部70、実行可能タスク
の最高レベル領域(以下、UPRL’/Lという)14
0が設けられておシ、これによって実行可能なタスクの
実行頻度の均一化を実現できるようにしている。
また、タイマ監視処理部50、タイマ監視力つンタ60
を設けることにより、タスク切換マクロ命令40を発行
しないタスクが、連続で長時間実行されることを回避す
る。
ワードプロセッサ、作表プログラム、通信ソフトウェア
などのシングルタスク70S用に開発されたアプリケー
ションソフトウェアには、通常、キー人力やデータ受信
要求を検出するためのセンスループが設けられ、シング
ルタスクos上では、これらセンスループが常時動作し
てキー人力やデータ受信要求をいつでも受けつけること
ができるような待期状態にある。そこで、これらアプリ
ケーションをジョブ80としてマルチタスクO8上に登
録した場合には、これらジョブ80に対するタスクのセ
ンスルーズも実行可能な状態にしておく必要がある。
しかしながら、上記のように、優先順位に依存したスケ
ジュールのみでこれらタスクを実行させようとすると、
実行可能なタスクのうちの優先順位が最も高いタスクの
センスループを実行したとき、他の実行可能なタスクの
センスルーズの処理やその他アプリケーションの処理は
いつまでたっても実行されない。
そこで、優先順位が高いタスクのセンスループが単にキ
ー人力などの実行要求があるまでの待ち動作をしている
ときには、よシ低い優先順位のタスクにCPUの制御権
を移し、それを実行させるために、タスク切換マクロ命
令40.専用スケジューリング処理部70を設けるもの
である。
タスク切換マクロ命令40は、センスループ処理のよう
な長時間CPUを占有する処理中において発行する。
第4図はタスク切換マクロ命令が通信ソフトウェアの受
信待ちセンスルーズに設けられた場合を説明するフロー
チャートであシ、第5図はタスク切換マクロ命令がワー
ドプロセッサや作表プログラムなどのキー人力センスル
ーズに設けられた場合を説明するフローチャートである
専用スケジューリング処理部7oは、タスク切換マクロ
命令40にもとづいて、スケジューリング制御ブロック
90から現在実行中のタスクよシも1つ優先順位が低い
タスクを検索して実行させる。
また、UPRLVL140には、スケジx −!J y
 り制御ブロック90において、’I’CB110がリ
ンクされ、実行可能となったタスクの優先レベルのうち
最も高い優先レベルを設定する。
いま、第4図に示した受信待ちセンスループを実行し、
このとき、データ受信要求やキー人力がない場合、この
センスルーズにおいて、タスク切換マクロ命令40を発
行する。
第6図は第1図におけるタスク切換マクロ命令を示すフ
ローチャートであって、第1図のタスク切換マクロ命令
40では、第6図のフローチャートに示すように%まず
、CURLVL130の優先レベルLu とを比較する
(ステップ60A)。
優先レベルLC≦優先レベルLuのときには、そのまま
専用スケジューリング処理部70に移るが。
優先レベルLc>優先レベルLuのときには、この優先
レベルLcをUPRLVI、140に設定して専用スケ
ジューリング処理部70に制御が移る。
第7図は第1図における専用スケジューリング処理を説
明するフローチャートであって、第1図の専用スケジュ
ーリング処理部7oでは、第7図の70−チャートに示
すように、まず、実行可能なタスクの内、現在実行中の
タスクよシも1つ優先順位が低いタスクをスケジューリ
ング制御ブロック90によって検索する(ステップ70
A)。
次に1この検索されたタスクがアイドルタスク(システ
ムにより常時、登録されている何も処理を行なわないタ
スクであシ、実行可能なタスクのうち優先順位が最も低
いタスク)か否かを判定しくステップ70B)、アイド
ルタスクでなければ、タイマ監視カウンタ60を0クリ
アした(ステップ70C)後、CPUによシ検索したタ
スクを実行する(ステップ70D)。この場合、現在実
行中のタスクよシも1つ優先順位が低いタスクとは、こ
の現在実行中のタスクの次にリンクされる同−CPU待
ち行列中のタスクであシ、また、現在実行中のタスクが
CPU待ち行列の最後にリンクされるタスクであるとき
には、次の優先レベルのCPU待ち行列の最初にリンク
されるタスクである。
ステップ70Aで検索されたタスクがアイドルタスクで
あるときには、UPULVL140の優先レベルLuを
REQLVL120に設定した後UPRI、l/L14
0にタスクに割当られる優先レベルのうち最も低い優先
レベルを設定してUPRLVL140を初期化しくステ
ップ70B)、優先順位スケジューリング処理部30に
制御を移す(ステップ70F)。
次に、第8図を用いて、上記実施例の動作を説明する。
第8図は第1図に示した構成の動作説明図であって、1
00a 〜100dはCPU待ち行列、110はタスク
制御ブロック(TCB)、140はIJPRLVLであ
る。同図において、タスクA、B、C,・・・Hが実行
可能に設定されておシ、タスクA、B、Cは優先レベル
が等しく、互いにその順でリンクされてCPU待ち行列
100aをなしているものとする。
同様にして、タスクD、Eは優先レベルが互いに等しく
CPU待ち行列100bを、タスクF、Gも優先レベル
が互いに等しくCPU待ち行列100cを夫々なしてお
シ、タスクHは1つでCPU待ち行列100dをなして
いる。また、CPU待ち行列100aの優先レベルが最
も高く、CPU待ち行列100b、100c、100d
の順に優先レベルが低くなるものとする。優先順位の最
も低いタスクHはアイドルタスクである。
なお、CPU待ち行列は、実際には、実行可能なタスク
のTCB(タスク制御ブロック)がリンクされているが
、説明を簡単にするために、ここでは、上記のように、
CPU待ち行列には実行可能なタスクがリンクされてな
るものとする。
キー人力などを検出するためのセンスループを備えたタ
スクに対しては、ワードプロセッサ、作表プログラム、
通信ソフトウェアなどのジョブから実行要求が出され、
いつでも、キー人力などの検出が行なえるようにしてい
るが、これらジョブからの実行要求に対して実行するタ
スクは、第3図に示した優先順位スケジューリング処理
部30(第1図)の処理によシ実行され、まず、実行要
求されたタスクのうちで最も優先順位の高いタスクであ
る。しかも、このようにキー人力などを検出するための
センスループを備えたタスクは、このセンスルーズの処
理中には、WAITされることがなく、常に実行可能に
設定されている。
第8図において、センスルーズをもつ最も優先順位が高
いタスクは、タスクAで、また実行可能なタスクのうち
で最も優先順位が高いタスクである。
そこで、このタスクAを優先順位スケジューリング処理
部30で実行したときからみると、タスクAは、必要な
処理を実行し終ったとき(たとえば、第4図において、
データ受信要求やキー人力がないときの「受信データ有
り」、キー人力有り」の判定処理などが終ったとき)、
タスク切換マクロ命令40を発行する。タスク切換マク
ロ命令40では、第6図のステップ60A、60Bの処
理から、UPRLVL140に、CURI、Vl、13
0に設定されているCPU待ち行列100aの優先レベ
ルを設定する。
次に%専用スケジューリング処理部70では、第7図の
処理が行なわれて、次のタスクBを検索し実行する。こ
のタスクBが所定の処理を実行して、タスク切換マクロ
命令40を発行すると、再び専用スケジューリング処理
部30により、次のタスクCを検索し実行する。
このように、センスループなどのタスクの処理の実行中
に、マルチタスクOSマクロ命令20や割込処理部10
からのタスク実行要求がない場合、各タスクが、タスク
切換マクロ命令40を発行することによシ実行可能なタ
スクA 、B 、C・・・が順番に実行されていくこと
になる。
そして、ついに検索されたタスクがアイドルタスクであ
るタスクHとなると、第7図に示したように、UPRL
VL140の優先レベルLuをR]13QLVL120
に設定し、さらに、tlPRLVL140にタスクに割
当たる優先レベルのうち最も低いレベルを設定し、初期
化した後、優先順位スケジューリング処理部30に制御
が移ることになるが、このとき優先レベルLuは、先に
説明したように、CPU待ち行列100aの優先レベル
であるから。
タスクAが実行され、これら再び下位の優先順位のタス
クへと実行が移っていく。
このようにして、優先順位の高、低にかかわらず、実行
可能なタスクは全て同程度に実行し、実行頻度のかだよ
シを解消することができる。
一方、タスク切換マクロ命令40および専用スケジュー
リング処理部70により、一連のタスクA、B、C,・
・・を順番に実行していく過程で、マルチタスクOSマ
クロ命令20や割込処理部10によってタスクの実行要
求があると、優先順位スケジューリング処理部30に入
る。この場合、タスク切換マクロ命令40と専用スケジ
ューリング処理部70とによる一連のタスクの順次実行
過程で、第8図のタスクDが実行中に、これよシ優先レ
ベルが高いタスクAの実行要求があったとすると、直ち
に優先順位スケジューリング処理部30に制御が移るが
、第5図のステップ50A 、 50Hの処理により、
タスクDを再実行する。
そして、タスクDがタスク切換マクロ命令40を発行す
ると、タスク切換マクロ命令40と専用スケジューリン
グ処理部70とにより、タスクDからタスクEに実行が
移シ、次に、タスクEがタスク切換マクロ命令40を発
行すると、専用スケジューリング処理部70によfi、
cPU待ち行列100Gでの検紫が行なわれ、実行要求
があったタスクFの実行を開始する。
このように、マルチタスクOSマクロ命令20や割込処
理部10により、現在実行しているタスクよりも優先順
位が高いタスクに対する実行要求があると、優先順位ス
ケジューリング処理部30に制御が移シ、直ちに優先順
位が高いタスクを実行させる。
なお、この実施例では、第8図で示したように、タスク
切換マクロ命令と専用スケジューリング処理部とによる
一連の実行可能なタスクの実行順序を優先順位の高いも
のからの順番としたが、実行可能なタスク間での順序が
割当られれば、これに限るものではなく、たとえば、優
先順位の低いものから順番にするなど、他の順序でもよ
い。
以上のように、タスク切換マクロ命令40と専用スケジ
ューリング処理部30により、優先順位に依存しないス
ケジューリングが可能となるが、タスク切換マクロ命令
40を発行せずに長時間連続で処理を行なうタスクがあ
ると、他のタスクが実行できなくなる場合がある。
そこで、本実施例では、タイマ監視処理部50およびタ
イマ監視カウンタ60を設けることにより、一つのタス
クが長時間連続に実行されることを回避する。
第9図は第1図におけるタイマ監視処理部の処理動作を
説明するフローチャートである。
タイマ監視処理部50は、一定時間間隔で起こるタイマ
割込によシ起動される。
タイマ監視処理部50では、まず、タイマ監視カウンタ
60をカウントアツプする(ステップ110A)。この
タイマ監視カウンタ60は、第5図や第7図のフローチ
ャートに示したように、優先順位スケジューリング処理
30や専用スケジューリング処理部70でスケジューリ
ングしたタスクを実行する前に0クリアし、初期化して
おく。
次に、タイマ監視カウンタの値が、所定値を越えていな
いか判定する(ステップ11oB)。
所定値を越えていない場合は処理を終了する。
所定値を越えている場合は、専用スケジューリング処理
部70Fc制御を渡しくステップttoc)、1つ優先
順位の低いタスクを実行する。
したがって、タスク切換マクロ命令を発行しないタスク
が存在した場合にも、1つのタスクが実行開始されて所
定時間経過し、タイマ監視カウンタ6aが所定値を越え
ると、強制的に専用スケジューリング処理部70によ)
タスク切換が行なわれ、1つのタスクが長時間連続で実
行されることを回避することが可能となる。
〔発明の効果〕
以上説明したように、本発明によれば、複数のアプリケ
ーションを、マルチタスクオペレーティングシステム上
で、公平に実行させつつ、これらに優先順位を与えてリ
アルタイムの処理を必要とするアプリケージ璽ンに対し
ては、その高速応答性を保証することができるし、また
、従来のアプリケーションに、たとえば、センスループ
などにタスク切換マクロ命令を挿入するといった若干の
簡単な変更を加えるだけで、これら従来のアプリケーシ
ョンをマルチタスクオペレーティングシステム上で上記
のように用いることが可能となる。
シタ力って、パーソナルコンピュータやワークステーシ
ョンなどの会話形式の処理が主体となるシステムにおい
て、従来のシングルタスクオペレーティングシステムの
ためのアプリケーションを採用した場合には、これらア
プリケーションの優先順位に応じた処理も可能であるが
、これとともに夫々のアプリケーションを、あたかも夫
々がシングルタスクオペレーティングシステムで用いら
れているかのように、いつでも円滑な平列処理を実行さ
せることができ、これらノく−ソナルコンピュータやワ
ークステーションなどが非常に便利なものとなる。
また、本発明は、各アプリケーションが、センスルーグ
処理等のCPUを長時間使用するような処理中で、タス
ク切換マクロ命令を発行し、積極的に他のアプリケーシ
ョンにCPUの使用権を譲シ合うことが前提となってい
るが、タスク切換マクロを発行しないようなアプリケー
ショ/に対しても、タイマ監視処理部によシ所定時間連
続実行すると強制的に他のアプリケーションに%CPU
による実行を切換えるため、1つのアプリケーションが
長時間連続で実行されることを防止し1円滑な平列処理
が保証される。したがって従来のアプリケーションを無
変更で、マルチタスクO8上で並列動作させることも可
能である。
【図面の簡単な説明】
第1図は本発明によるスケジューリング方式の一実施例
を示すブロック図、第2図は第1図に示したスケジュー
リング方式が適用可能な標準的なシステム構成を示すブ
ロック図、第3図は第1図に示した優先順位スケジュー
リング処理部の処理動作を説明するフローチャート、第
4図はタスク切換マクロ命令が通信ソフトウェアの受信
待ちセンスルーズに設けられた場合を説明する70−チ
ャート、第5図はタスク切換マクロ命令がワードプロセ
ッサや作表プログラムなどのキー人力センスルーズに設
けられた場合を説明する70−チャート、第6図は第1
図におけるタスク切換マクロ命令を示すフローチャート
、第7図は第1図における専用スケジューリング処理を
説明するフローチャート、第8図は第1図に示した構成
の動作説明図、第9図は第1図におけるタイマ監視処理
部の処理動作を説明するフローチャート、第10図は通
信ソフトウェアの受信待ちセンスループヲ示すフローチ
ャート、第11図はワードプロセッサや作表などのアプ
リケーションにおけるセンスループを示す70−チャー
トである。 10・・・割込処理部 20・・・マルチタスクOSマクロ命令30・・・優先
順位スケジューリング処理部40・・・タスク切換マク
ロ命令 50・・・タイマ監視処理部 60・・・タイマ監視カウンタ 70・・・専用スケジューリング処理部80・・・ジョ
ブ 90・・・スケジューリング処理ブロック100・・・
CPU待ち行列 110・・・タスク制御ブロック 120 ・ RBQLVL 150−CURLVL 140 ・UPRLVI、0

Claims (1)

    【特許請求の範囲】
  1. 1、優先順位にしたがって複数のタスクを実行するマル
    チタスク・オペレーティングシステムにおいて、実行可
    能なタスク群に対して予じめ設定した所定の順序にもと
    づき、現在実行中のタスクの次の実行可能なタスクを実
    行する専用スケジューリング処理部と、現在実行中のタ
    スクが該専用スケジューリング処理部に制御を渡すため
    のタスク切換マクロ命令とを設け、実行可能なタスクの
    夫々が該タスク切換マクロ命令を発行することにより、
    新たにタスクの実行要求が発生しない場合には、実行可
    能なタスクの夫夫を前記所定の順序で次々と実行してい
    くようなタスクのスケジューリングを実現するとともに
    、さらに、一定の時間間隔で起こるタイム割込により、
    1つのタスクの連続実行時間を監視し、この1つのタス
    クの連続時間が、所定時間を超えた場合には該専用スケ
    ジューリング処理部に制御を渡し、強制的に実行タスク
    を切換えるタイマ監視処理部を設け、該タスク切換マク
    ロ命令を発行しないタスクが、長時間実行され、他のタ
    スクの実行が妨げられるような状態を防止することを特
    徴とするスケジューリング方式。
JP30842086A 1986-12-26 1986-12-26 スケジユ−リング方式 Pending JPS63163640A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30842086A JPS63163640A (ja) 1986-12-26 1986-12-26 スケジユ−リング方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP30842086A JPS63163640A (ja) 1986-12-26 1986-12-26 スケジユ−リング方式

Publications (1)

Publication Number Publication Date
JPS63163640A true JPS63163640A (ja) 1988-07-07

Family

ID=17980840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30842086A Pending JPS63163640A (ja) 1986-12-26 1986-12-26 スケジユ−リング方式

Country Status (1)

Country Link
JP (1) JPS63163640A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0486923A (ja) * 1990-07-31 1992-03-19 Fuji Electric Co Ltd タスク管理制御方式
JPH0934729A (ja) * 1995-07-15 1997-02-07 Nec Corp ディスパッチャ制御方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0486923A (ja) * 1990-07-31 1992-03-19 Fuji Electric Co Ltd タスク管理制御方式
JPH0934729A (ja) * 1995-07-15 1997-02-07 Nec Corp ディスパッチャ制御方式

Similar Documents

Publication Publication Date Title
US7937706B2 (en) Method and system for performing fair-share preemption
US4495562A (en) Job execution multiplicity control method
Hui et al. Improved strategies for dynamic load balancing
US6021425A (en) System and method for optimizing dispatch latency of tasks in a data processing system
US4642756A (en) Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
CA1251868A (en) Dynamic assignment of affinity for vector tasks
JPS6140643A (ja) システムの資源割当て制御方式
JPH0756634B2 (ja) チユ−ニング可能なオペレ−テイングシステム手段を有するデ−タ処理システム
US7721035B2 (en) Multiprocessor system, processor and interrupt control method
EP1297432B1 (en) Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts
JP3717951B2 (ja) デッドロック回避システムおよび方法
JPS63163640A (ja) スケジユ−リング方式
Bunt Scheduling techniques for operating systems
Nosrati et al. Task scheduling algorithms introduction
JPS61223950A (ja) スケジユ−ラ
JPH07191863A (ja) マルチタスク実行管理方式
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JPS62279432A (ja) スケジユ−リング方式
JPH01180641A (ja) Cpuソース平均化方式
JPH08314740A (ja) プロセスディスパッチ方法
JPH06187171A (ja) 割込みにおけるスケジューリング方式
JP2591036B2 (ja) 入出力制御方法
JPS6223895B2 (ja)
Sharma et al. Real Time Computing Systems
JPH0778091A (ja) マルチタスク管理方法