JPS63636A - タスク制御方式 - Google Patents

タスク制御方式

Info

Publication number
JPS63636A
JPS63636A JP14361086A JP14361086A JPS63636A JP S63636 A JPS63636 A JP S63636A JP 14361086 A JP14361086 A JP 14361086A JP 14361086 A JP14361086 A JP 14361086A JP S63636 A JPS63636 A JP S63636A
Authority
JP
Japan
Prior art keywords
priority
task
execution
queue
value
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
JP14361086A
Other languages
English (en)
Inventor
Shoji Nagata
永田 昭二
Rikio Sato
佐藤 力夫
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP14361086A priority Critical patent/JPS63636A/ja
Publication of JPS63636A publication Critical patent/JPS63636A/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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic

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

【発明の詳細な説明】 〔概 要〕 計算機のタスクを優先度に応じて配分する時間で切り換
え、順次実行させる制御の改良方式。
優先度順のタスク実行待ち行列の先頭の優先度が、実行
中のタスクの優先度より大きくなれば切り換えるものと
し、実行中のタスクの優先度を一定時間ごとに、例えば
lづつ減少する。
この方式により、優先度値による比例配分に近い実行時
間の割当制御が、比較的少ない処理時間で可能になる。
〔産業上の利用分野〕
本発明は、計算機における、複数のタスクを順次切り換
えて実行するためのタスク;Ir1J 御方式に関する
計算機において、適当な実行時間ごとにタスクを切り換
えて、複数のタスクを順次実行することにより、各タス
クに平等なサービスを与える場合に、タスクに適当な方
法で優先度を指定し、優先度の大きいタスクに、より多
くの実行時間を割り当てる制御は広く利用されている。
〔従来の技術〕
第3図は、計算機の一構成例を示すブロック図である。
処理装置1は、主記憶装置2にロードされている管理プ
ログラム等を実行することにより、端末装置3等とのデ
ータ人出力を制御し、例えば端末装置3から入力される
指令に従って、各種のプログラムを例えば外部記憶装置
4がら主記憶装置2にロードして実行することができる
公知のように、プログラムの実行を制御するために、各
実行の主体としてタスク5が生成される。
タスク5は、例えば主記憶装置2上のタスク制御ブロッ
ク(TCB)、及びTCBで指定される該タスクに割り
当てられた主記憶令■域及び実行すべきプログラム等か
らなる。
タスク管理プログラムの、例えばディスパッチャ等と呼
ばれる制御プログラムの実行によって、適当に選択され
たあるタスク5に処理装置1を使用する時間を割り当て
ることにより、そのタスク5のTCBに指定されている
プログラムが、TCBに保持されている指定のプログラ
ム番地から実行される。
計算機には、−般に複数のタスクが同時に存在すること
ができるが、同時には処理装置の数(本例では1)だけ
のタスクしか実行できないから、所要の条件が整って実
行可能な状態にあるタスクは、実行待ち行列6につなが
れて管理される。
実行待ち行列6は、相互にチエインされる所定の行列エ
レメント7からなり、各行列エレメント7はそれぞれ1
つのタスク5のTCBへのポインタと、所要の制御情報
を保持する。
ディスパッチャは処理装置1が空くと、実行待ち行列6
につながるタスクの、例えば行列先頭のタスクに処理装
置1の実行時間を割り当て\、実行を開始するように制
?ffUする。
公知のように、このようなタスクへの実行時間割当にお
いて、適当な実行時間ごとにタスクを切り換えて、複数
のタスクを順次実行することにより、各タスクに平等な
サービスを与える場合がある。更に、その場合にタスク
に優先度を指定できるようにして、価先度値の大きさに
応じて実行時間を配分することがある。
そのような場合には、例えば指定された優先度は各タス
クのTCBに保持され、実行待ち行列6における、各行
列エレメントの接続を、優先度の大きさ順、優先度の同
じタスク間では先着順(行列につながれる時刻順)にし
て管理される。
時間割当管理のために、ディスパッチャは例えば所定の
割当単位時間ごとに、公知のタイマ割込が発生ずるよう
に設定して、タスクの実行を開始する。
タイマ割込によりディスパッチャが動作すると、第4図
の処理の流れに示すように、以下に説明する処理を行う
即ち、第4図の処理ステップ19.20.21のループ
を行列エレメント7の数だけ繰り返して、各行列エレメ
ント7に保持する優先度8を、すべてのエレメントにつ
いて1増加する、但し処理ステップ19の判定により、
上限値に達しているときはそのま−とする。
優先度8には、該当タスクが実行出来ない状態から実行
可能状態になり、実行待ち行列に接続されるとき、TC
Bにある優先度を複写する。
行列エレメント7の優先度8を+1した後、処理ステッ
プ22で先頭の行列エレメント7の優先度8の値と、現
優先度レジスタ9に保持する値とを比較する。現優先度
レジスタ9には、実行中のタスクが実行待ち行列6から
外されるとき、その行列エレメント7の優先度8にあっ
た値が現優先度として設定されている。
比較の結果、現優先度の値の方が小さくなければ、実行
中であったタスクに引き続き実行時間を割り当てるーこ
ととしこの処理を終了する。
現優先度の値が小さければ、実行中タスクの実行を中止
するために、処理ステップ23においてそのタスクをポ
イントする行列エレメント7を設定して、優先度8をそ
のTCBに保持する初期の優先度とし、処理ステップ2
4で実行待ち行列6のその優先度により定まる位置に該
行列エレメント7をつなぐ。
処理ステップ25において、実行待ち行列6の先頭の行
列エレメント7の指すタスクの実行を開始するために、
該行列エレメント7を実行待ち行列6から外し、それに
よってポイントされるTCBによりタスクを実行状態に
し、現優先度レジスタ9には優先度8に設定されていた
値を設定して、そのタスクの実行を開始する。
〔発明が解決しようとする問題点〕
前記のようにして、タスクの実行時間割当を制御するこ
とによって、はぼ優先度の値に比例した時間配分が得ら
れることが知られている。
しかし前記のように、割当単位時間ごとの割込処理にお
いて、実行待ち行列6につながる全行列エレメント7の
優先度8に+1する必要があるので、制御オーバヘッド
が比較的大きいという問題がある。
〔問題点を解決するための手段〕
第1図は、本発明の構成を示す処理の流れ図である。
図はタスク管理のディスパッチャにおける、実行時間割
当処理の流れを示し、30は実行中タスクの現優先度を
所定時間ごとに減少する制御手段、31は待ち行列のタ
スクの最大優先度と現優先度を比較し、所定の条件によ
りタスクを切り換える制御手段である。
0作 用〕 制御手段30と31は従来のように、適当な時間ごとに
割込を発生するように設定されるタイマ割込によって起
動される。
制御手段30では、処理ステップ33で現優先度を所定
値源する。
その後、制御手段3工により実行待ち行列中の最大の優
先度と現優先度が比較され、その結果例えば現優先度が
減少して、行列の値より小さくなっていれば、タスクを
切り換える。
以上の方式により、タイマ割込ごとの優先度更新を、1
個の現優先度の更新のみにして、制御オーバヘッドを減
少できる。
〔実施例〕
以下において、第1図の処理の流れと第3図のブロック
図を参照して説明する。
従来のように、タスクに指定された優先度は各TCBに
保持され、実行待ち行列6において各行列エレメント7
は、優先度の大きさ順、優先度の同じタスク間では先着
順にチエインされる。
各タスクの実行開始においてディスパッチャは、時間割
当管理のために、例えば所定の割当単位時間ごとに、タ
イマ割込が発生するように設定する。
タイマ割込によりデイスパンチャが動作すると、処理ス
テップ32で現優先度レジスタ9の値が下限値(例えば
O)か検査し、Oであればそのま\とじ、0になってい
なければ、処理ステップ33で現優先度を−1する。
現優先度レジスタ9には、タスクが実行待ち行列6から
取り出されて実行開始するときに、そのTCBにある優
先度の初期値が設定されている(処理ステップ38)。
現優先度レジスタ9の現優先度を−1した後、処理ステ
ップ34で、実行待ち行列6に行列エレメントがあれば
、その先頭の行列エレメント7の優先度8の値と、現優
先度とを比較する。
各行列エレメント7の優先度8には、該当タスクが実行
出来ない状態から実行可能状態になって実行待ち行列に
接続されるとき、TCBにある優先度が設定され、実行
が中断されて実行待ち行列6に接続されるとき、現優先
度レジスタ9にある現優先度値が設定される(処理ステ
ップ35)。
比較の結果、現優先度の値の方が小さくなければ、実行
中であったタスクに引き続き実行時間を割り当てるので
この処理を終了する。
現優先度の値が小さければ、実行中タスクの実行を中止
するために、処理ステップ35において、そのタスクを
ポイントする行列エレメント7を設定して、優先度8に
現優先度を設定する。但し現優先度が下限値0のときは
1を設定する。
処理ステップ36で実行待ち行列6のその優先度により
定まる位置に、生成した行列エレメント7をつなぐ。
処理ステップ37において、実行待ち行列6の先頭の行
列エレメント7の指すタスクの実行を開始するために、
該行列エレメント7を実行待ち行列6から外し、それに
よってポイントされるTCBによりタスクを実行状態に
し、現優先度レジスタ9にはTCBに保持する初期の優
先度を設定して、そのタスクの実行を開始する。
第2図は、説明のためのMHLな一例により、タスクの
切換状況を説明する図である。
図において、A、B、Cはタスクの識別名、添字の数字
はそれらのタスクに指定されている優先度の初期値、そ
れらの下のカッコを付した数字は各状態における優先度
の値を示すものとする。
即ち、初期値優先度7のAタスク、優先度6のBタスク
、優先度5のCタスクがあり、それらがすべて実行可能
状態であれば、第2図の(a)のように実行待ち行列を
構成する。
先頭のAタスクが取り出されて実行状態にされることに
より、(blの状態になる。(bl以下で太線で示すタ
スクが実行時間を割り当゛ζられたタスクであり、その
優先度は現優先度レジスタに保持される現優先度を示す
所定時間後タイマ割込が発生してディスパッチャが起動
すると、(C)のように現優先度が−1されて6になる
が、実行待ち行列の先頭Cタスクと同じ値なのでタスク
切換は起こらない。
更に所定時間経過後のタイマ割込において、現優先度が
5に減じられて、Bタスクの値より小さくなることによ
り、(d)のように、Aタスクは現優先度値のま\実行
待ち行列につながれ、Bタスクが実行状態にされる。こ
のとき現優先度はBタスクの初期値である6に設定され
る。
次の制御では、(elとなってタスク切換はなく、その
次の制御で、Cタスクが実行状態となって(f)の状態
になる。
次の制御で(g+のように、現優先度が4になるのでC
タスクは実行待ち行列に入り、Aタスクが実行状態にな
る。このとき現優先度はAタスクの持つ初期値である7
にされる。
そこで、fh)〜U)に示すように、3周期にわたって
Aタスクの実行状態が継続され、その次の制御で現優先
度が3になることにより、(k)のようにBタスクが実
行状態にされる。
このようにして、以後(1)〜(Q)のように制御が進
行する。
(発明の効果〕 以上の説明から明らかなように、本発明によれば、計算
機におけるタスクの実行時間割当を、各タスクに指定す
る優先度に応じた時間配分によって行う場合の、制御オ
ーバヘッドが減少されるので、計算機の処理効率を改善
するという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示す処理の流れ図、第2図はタ
スク切換の説明図、 第3図は計算機の一構成例ブロック図、第4図は従来の
処理の流れ図 である。 図において、 1は処理装置、     2は主記憶装置、3は端末装
置、     4は外部記憶装置、5はタスク、   
   6は実行待ち行列、7は行列エレメント、  8
は優先度、9は現優先度レジスタ、

Claims (1)

  1. 【特許請求の範囲】 複数のタスクを実行待ち行列に配列し、該待ち行列にあ
    るタスクを、該タスクごとに設定されている優先度に応
    じて配分する実行時間ごとに切り換えて、順次実行させ
    る計算機において、 実行中のタスクの現優先度の値を、所定の実行時間ごと
    に所定値減少する手段(30)、 及び、該現優先度が、前記待ち行列中のタスクの最大の
    優先度に対して所定の状態になった場合に、該実行中の
    タスクの実行を中止して該待ち行列に配列し、該現優先
    度を所定の値に設定し、該最大優先度のタスクの実行を
    開始させる手段(31)を有することを特徴とするタス
    ク制御方式。
JP14361086A 1986-06-19 1986-06-19 タスク制御方式 Pending JPS63636A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14361086A JPS63636A (ja) 1986-06-19 1986-06-19 タスク制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14361086A JPS63636A (ja) 1986-06-19 1986-06-19 タスク制御方式

Publications (1)

Publication Number Publication Date
JPS63636A true JPS63636A (ja) 1988-01-05

Family

ID=15342734

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14361086A Pending JPS63636A (ja) 1986-06-19 1986-06-19 タスク制御方式

Country Status (1)

Country Link
JP (1) JPS63636A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200318A (ja) * 1993-12-16 1995-08-04 Internatl Business Mach Corp <Ibm> 動的優先タスク・スケジューラを有するデータ処理システム
JP2002306705A (ja) * 2001-04-11 2002-10-22 Heiwa Corp 遊技機および遊技機の動作制御方法
JP2015184791A (ja) * 2014-03-20 2015-10-22 富士通株式会社 情報処理装置、アクション切替方法、及びアクション切替プログラム
CN112150029A (zh) * 2020-10-09 2020-12-29 浙江专线宝网阔物联科技有限公司 一种支持动态与分散任务分配的区块链弹性架构设计方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200318A (ja) * 1993-12-16 1995-08-04 Internatl Business Mach Corp <Ibm> 動的優先タスク・スケジューラを有するデータ処理システム
JP2002306705A (ja) * 2001-04-11 2002-10-22 Heiwa Corp 遊技機および遊技機の動作制御方法
JP2015184791A (ja) * 2014-03-20 2015-10-22 富士通株式会社 情報処理装置、アクション切替方法、及びアクション切替プログラム
CN112150029A (zh) * 2020-10-09 2020-12-29 浙江专线宝网阔物联科技有限公司 一种支持动态与分散任务分配的区块链弹性架构设计方法

Similar Documents

Publication Publication Date Title
US8612986B2 (en) Computer program product for scheduling ready threads in a multiprocessor computer based on an interrupt mask flag value associated with a thread and a current processor priority register value
US6148322A (en) Processing unit with an improved ability to coordinate the execution of multiple tasks with varying priorities
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
US8006247B2 (en) Multi-tasking real-time operating system for microprocessors with limited memory
WO2004063879A2 (en) Context switching for partial and start-over threads in embedded real-time kernel
JPS5833586B2 (ja) 情報処理システム
JPS63636A (ja) タスク制御方式
JPH05250188A (ja) プロセスのプライオリティ制御方式
JPH07191863A (ja) マルチタスク実行管理方式
JPH0644234B2 (ja) タスク管理装置
JPS63300326A (ja) トランザクション実行スケジュ−ル方式
JPH0836553A (ja) マルチプロセッサシステムおよび同システムにおけるタスクスケジューリング方法
JPS6152761A (ja) 演算装置
JPH07114518A (ja) マルチプロセッサシステムにおけるタスクスケジューリング方式
JPH11249917A (ja) 並列型計算機及びそのバッチ処理方法及び記録媒体
JP2570198B2 (ja) タイムスライスディスパッチングシステム
US20210141661A1 (en) Lightweight Context For CPU Idling Using A Real Time Kernel
JPS63124138A (ja) 共有資源の占有競合管理方法
JPH02113363A (ja) マルチプロセッサシステムにおけるタイムスライス制御方式
JP2000132409A (ja) 待ち状態のないタスクのスタック共有方式
JPH0344742A (ja) マルチプロセッサにおけるタスク割り当て制御方法
JPH0198047A (ja) 割込み処理方式
JPH03116335A (ja) 非特権cpuから特権cpuヘの乗り移り方式
JPH0462093B2 (ja)
JPH0778091A (ja) マルチタスク管理方法