JPS63208948A - マルチプロセツサシステムにおけるタスクスケジユ−リング方式 - Google Patents
マルチプロセツサシステムにおけるタスクスケジユ−リング方式Info
- Publication number
- JPS63208948A JPS63208948A JP4130187A JP4130187A JPS63208948A JP S63208948 A JPS63208948 A JP S63208948A JP 4130187 A JP4130187 A JP 4130187A JP 4130187 A JP4130187 A JP 4130187A JP S63208948 A JPS63208948 A JP S63208948A
- Authority
- JP
- Japan
- Prior art keywords
- task
- processor
- state
- ready queue
- ready
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task 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)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明は、マルチプロセッサシステムにおけるタスク
スケジューリング方式に関する。
スケジューリング方式に関する。
(従来の技術)
第3図は2台のプロセッサ10.20を備えた従来のマ
ルチプロセッサシステムを示す。今、タスクAがプロセ
ッサ10においてラン(RUN)状態S1、即ち実行中
にあり、タスクBは待ち(WAIT)状態S2にあるも
のとする。またプロセッサ20はCPUウェイト(WA
IT)状態にあるものと−する。このような状態で、プ
ロセッサ10で実行中のタスクAからタスクBに対して
起動要求が出され、タスクBの待ち状182の解除が行
なわれると、タスクBは主記憶30に置かれるタスクレ
ディキュー(TRQ)31に繋がれてレディ(READ
Y)状態$3となる・。−またプロセッサ10はCPU
ウェイト状態にあるプロセッサを調べ、この例のように
プロセッサ20がCPUウェイト状態にあれば同プロセ
ッサ20に対し、5IGP(シグナルプロセッサ)命令
を発行する。この命令は、他のプロセッサに対して各種
の情報を伝えるのに用いられる。
ルチプロセッサシステムを示す。今、タスクAがプロセ
ッサ10においてラン(RUN)状態S1、即ち実行中
にあり、タスクBは待ち(WAIT)状態S2にあるも
のとする。またプロセッサ20はCPUウェイト(WA
IT)状態にあるものと−する。このような状態で、プ
ロセッサ10で実行中のタスクAからタスクBに対して
起動要求が出され、タスクBの待ち状182の解除が行
なわれると、タスクBは主記憶30に置かれるタスクレ
ディキュー(TRQ)31に繋がれてレディ(READ
Y)状態$3となる・。−またプロセッサ10はCPU
ウェイト状態にあるプロセッサを調べ、この例のように
プロセッサ20がCPUウェイト状態にあれば同プロセ
ッサ20に対し、5IGP(シグナルプロセッサ)命令
を発行する。この命令は、他のプロセッサに対して各種
の情報を伝えるのに用いられる。
さて、CPUウェイト状態にあるプロセッサ20のファ
ームウェア機構21は、第4図のフローチャートに示す
ように、割込み(入出力割込み、タイマ割込み、5IG
P割込み)があるか否かを常時監視しており(ステップ
41)、割込みがあった時点で削込みハンドラに制御を
渡す(ステップ42)ようになっている。例えば、5I
GP命令による5IGP割込みを受付けた場合には、5
IGP割込みハンドラ22に制御が渡される。この結果
、5IGP割込みハンドラ22からタスクディスバッチ
t23に対してディスパッチング割込みが発生し、同デ
ィスパッチャ23に制御が移される。タスクディスバッ
チ1723は、この割込みに応じてタスクスケジューリ
ングを行なう。これにより、タスクレディキュー31か
らレディ状態のタスク、即ちタスクBが取出され、プロ
セッサ20においてタスクBがラン状態S4となる。
ームウェア機構21は、第4図のフローチャートに示す
ように、割込み(入出力割込み、タイマ割込み、5IG
P割込み)があるか否かを常時監視しており(ステップ
41)、割込みがあった時点で削込みハンドラに制御を
渡す(ステップ42)ようになっている。例えば、5I
GP命令による5IGP割込みを受付けた場合には、5
IGP割込みハンドラ22に制御が渡される。この結果
、5IGP割込みハンドラ22からタスクディスバッチ
t23に対してディスパッチング割込みが発生し、同デ
ィスパッチャ23に制御が移される。タスクディスバッ
チ1723は、この割込みに応じてタスクスケジューリ
ングを行なう。これにより、タスクレディキュー31か
らレディ状態のタスク、即ちタスクBが取出され、プロ
セッサ20においてタスクBがラン状態S4となる。
上記したように第3図に示す従来システムでは、タスク
がレディ状態になってからスケジューリングされるまで
に、CPtJウェイト状態プロセッサの検出、5IGP
命令によるCPLIウェイト状態プロセッサの起動、お
よび5IGP割込みハンドラの実行といった手順が必要
であった。このため、従来システムでは、高速タスクス
ケジューリングが困難であった。
がレディ状態になってからスケジューリングされるまで
に、CPtJウェイト状態プロセッサの検出、5IGP
命令によるCPLIウェイト状態プロセッサの起動、お
よび5IGP割込みハンドラの実行といった手順が必要
であった。このため、従来システムでは、高速タスクス
ケジューリングが困難であった。
(発明が解決しようとする問題点)
上記したように従来は、タスクがレディ状態となってか
らスケジューリングされるまでに煩雑な手順が不可欠で
あったため、高速タスクスケジューリングが困難である
という問題があった。
らスケジューリングされるまでに煩雑な手順が不可欠で
あったため、高速タスクスケジューリングが困難である
という問題があった。
この発明は上記事情に鑑みてなされたものでその目的は
、タスクスケジューリングの高速化が図れるマルチプロ
セッサシステムにおけるタスクスケジューリング方式を
提供することにある。
、タスクスケジューリングの高速化が図れるマルチプロ
セッサシステムにおけるタスクスケジューリング方式を
提供することにある。
[発明の構成]
(問題点を解決するための手段と作用)この発明では、
複数のプロセッサにより共有される主記憶に、レディ状
態のタスクを管理するためのタスクレディキューと、タ
スクレディキューのエントリの実アドレスを記憶するア
ドレス記憶部と、タスクレディキューの監視を行なうか
否かを指示する指示フラグとを置くと共に、上記タスク
レディキューを監視するファームウェア機構を上記各プ
ロセッサに設け、自プロセッサがCPtJウェイト状態
にあり且つ指示フラグがタスクレディキュー監視指示状
態にある場合に、アドレス記憶部に記憶されている実ア
ドレスを用いてタスクレディキューの監視を行ない、レ
ディ状態タスクの存在を検出するとタスクディスパッチ
ャにディスパッチング割込みを発生することにより、タ
スクスケジューリングを行なうようにしたちのである。
複数のプロセッサにより共有される主記憶に、レディ状
態のタスクを管理するためのタスクレディキューと、タ
スクレディキューのエントリの実アドレスを記憶するア
ドレス記憶部と、タスクレディキューの監視を行なうか
否かを指示する指示フラグとを置くと共に、上記タスク
レディキューを監視するファームウェア機構を上記各プ
ロセッサに設け、自プロセッサがCPtJウェイト状態
にあり且つ指示フラグがタスクレディキュー監視指示状
態にある場合に、アドレス記憶部に記憶されている実ア
ドレスを用いてタスクレディキューの監視を行ない、レ
ディ状態タスクの存在を検出するとタスクディスパッチ
ャにディスパッチング割込みを発生することにより、タ
スクスケジューリングを行なうようにしたちのである。
(実施例)
第1図はこの発明を適用するマルチプロセッサシステム
の一実施例を示すブロック構成図である。同図において
、50.60はプロセッサ、70はプロセッサ50.
(30により共有される主記憶である。
の一実施例を示すブロック構成図である。同図において
、50.60はプロセッサ、70はプロセッサ50.
(30により共有される主記憶である。
この上記[70には、レディ状態のタスクを管理するた
めのタスクレディキュー(TRQ)71と、タスクレデ
ィキュー71のエントリ(入口、先頭位置〉の実アドレ
スを記憶するアドレス記憶部72と、タスクレディキュ
ー71の監視を行なうか否かを指示する指示フラグ73
とが画かれる。一方、プロセッサ60には、同プロセッ
サ60が待ち状!l!(即ちCPUウェイト状態)にあ
る場合において必要に応じてタスクレディキュー71の
監視等を行なうファームウェア機構61と、タスクスケ
ジューリングを行なうタスクディスパッチャ62とが設
けられている。またプロセッサ50にも、プロセッサ6
0内のファームウェア機構61.タスクディスパッチャ
62と同様のファームウェア機構、タスクディスバッチ
ャ(図示せず)が用意される。なお、第1図において、
811はタスクAがラン(RUN)状態にあることを、
812はタスクBが待ち(WAIT)状態にあることを
、813はタスクBがレディ(READY)状態にある
ことを、そしてS14はタスクBがラン状態にあること
を、それぞれ示す。
めのタスクレディキュー(TRQ)71と、タスクレデ
ィキュー71のエントリ(入口、先頭位置〉の実アドレ
スを記憶するアドレス記憶部72と、タスクレディキュ
ー71の監視を行なうか否かを指示する指示フラグ73
とが画かれる。一方、プロセッサ60には、同プロセッ
サ60が待ち状!l!(即ちCPUウェイト状態)にあ
る場合において必要に応じてタスクレディキュー71の
監視等を行なうファームウェア機構61と、タスクスケ
ジューリングを行なうタスクディスパッチャ62とが設
けられている。またプロセッサ50にも、プロセッサ6
0内のファームウェア機構61.タスクディスパッチャ
62と同様のファームウェア機構、タスクディスバッチ
ャ(図示せず)が用意される。なお、第1図において、
811はタスクAがラン(RUN)状態にあることを、
812はタスクBが待ち(WAIT)状態にあることを
、813はタスクBがレディ(READY)状態にある
ことを、そしてS14はタスクBがラン状態にあること
を、それぞれ示す。
次に、この発明の一実施例の動作を第2図のフローチャ
ートを参照して説明する。今、タスクAがプロセッサ5
0においてラン状B811にあり(即ち実行中であり)
、タスクBは待ち状態S12にあるものとする。またプ
ロセッサ60はCPUウェイト状態にあるものとする。
ートを参照して説明する。今、タスクAがプロセッサ5
0においてラン状B811にあり(即ち実行中であり)
、タスクBは待ち状態S12にあるものとする。またプ
ロセッサ60はCPUウェイト状態にあるものとする。
このような状態で、プロセッサ50で実行中のタスクA
からタスクBに対して起動要求が出され、タスクBの持
ち状flls12の解除が行なわれると、タスクBは主
記憶70に置かれるタスクレディキュー(TRQ)71
に繋がれて(具体的にはタスクBのタスクIIJ Il
lブロックの主記憶的格納番地がタスクレディキュー7
1に繋がれて)レディ状態813となる。
からタスクBに対して起動要求が出され、タスクBの持
ち状flls12の解除が行なわれると、タスクBは主
記憶70に置かれるタスクレディキュー(TRQ)71
に繋がれて(具体的にはタスクBのタスクIIJ Il
lブロックの主記憶的格納番地がタスクレディキュー7
1に繋がれて)レディ状態813となる。
一方、プロセッサ60のファームウェアm構61は、同
プロセッサ60が上記のようにCPUウェイト状態にあ
る場合には、第2図のフローチャートに示すように、割
込み(入出力割込み、タイマ割込み、5IGP割込み)
があるか否かを調ぺ(ステップ81)、割込みがある場
合には、その割込み種別に対応する割込みハンドラに制
葬を渡す(ステップ82)、これに対して割込みがない
場合には、プロセッサ60のファームウェア機構61は
主記憶70に置かれている指示フラグ73を参照しくス
テップ83)、タスクレディキュー(TRQ)監視指示
の有無を調べる(ステップ584)。
プロセッサ60が上記のようにCPUウェイト状態にあ
る場合には、第2図のフローチャートに示すように、割
込み(入出力割込み、タイマ割込み、5IGP割込み)
があるか否かを調ぺ(ステップ81)、割込みがある場
合には、その割込み種別に対応する割込みハンドラに制
葬を渡す(ステップ82)、これに対して割込みがない
場合には、プロセッサ60のファームウェア機構61は
主記憶70に置かれている指示フラグ73を参照しくス
テップ83)、タスクレディキュー(TRQ)監視指示
の有無を調べる(ステップ584)。
指示フラグ73によってTRQ監視が指示されている場
合、ファームウェア機構61はアドレス記憶部72に記
憶されている実アドレスの指定するタスクレディキュー
(TRQ)71内エントリ(入口)を参照しくステップ
85)、レディ状態にあるタスクが存在するか否か(l
がれているか否か)を調べる(ステップ86)。もし、
レディ状態にあるタスクが存在しない場合にはステップ
81の処理に戻る。これは、指示フラグ13によってT
R0IIが指示されていない場合にも同様である。一方
、上記したようにタスクBがタスクレディキュー71に
繋がれるようになると、ファームウェア機構61はステ
ップ86.においてレディ状態タスク(タスクB)の存
在を判断し、タスクディスパッチャ62に対してディス
パッチング割込みを発生する(ステップ87)。この割
込みにより、タスクディスパッチャ23はタスクスケジ
ューリングを行ない、この結果タスクレディキュー31
からレディ状態のタスク、即ちタスクBが取出され、プ
ロセッサ20においてラン状態814となり、実行を開
始する。なお、プロセッサ50がCPUウェイト状態に
ある場合には、第2図のフローチャートで示される処理
が同プロセッサ60において実行されることは言うまで
もない。
合、ファームウェア機構61はアドレス記憶部72に記
憶されている実アドレスの指定するタスクレディキュー
(TRQ)71内エントリ(入口)を参照しくステップ
85)、レディ状態にあるタスクが存在するか否か(l
がれているか否か)を調べる(ステップ86)。もし、
レディ状態にあるタスクが存在しない場合にはステップ
81の処理に戻る。これは、指示フラグ13によってT
R0IIが指示されていない場合にも同様である。一方
、上記したようにタスクBがタスクレディキュー71に
繋がれるようになると、ファームウェア機構61はステ
ップ86.においてレディ状態タスク(タスクB)の存
在を判断し、タスクディスパッチャ62に対してディス
パッチング割込みを発生する(ステップ87)。この割
込みにより、タスクディスパッチャ23はタスクスケジ
ューリングを行ない、この結果タスクレディキュー31
からレディ状態のタスク、即ちタスクBが取出され、プ
ロセッサ20においてラン状態814となり、実行を開
始する。なお、プロセッサ50がCPUウェイト状態に
ある場合には、第2図のフローチャートで示される処理
が同プロセッサ60において実行されることは言うまで
もない。
以上は2台のプロセッサ構成のマルチプロセッサシステ
ムについて説明したが、この発明は3台以上のプロセッ
サ構成のマルチプロセッサシステムにも適用できること
は勿論である。また、この発明は、タスクスケジューリ
ングに限らず、実行優先度に関連するO8(オペレーテ
ィングシステム〉内ルーチンをスケジューリングする際
にも応用できる。
ムについて説明したが、この発明は3台以上のプロセッ
サ構成のマルチプロセッサシステムにも適用できること
は勿論である。また、この発明は、タスクスケジューリ
ングに限らず、実行優先度に関連するO8(オペレーテ
ィングシステム〉内ルーチンをスケジューリングする際
にも応用できる。
[発明の効果]
以上詳述したようにこの発明によれば、CPUウェイト
状態にあるプロセッサが、そのファームウェア機構によ
り自らタスクレディキューの監視を行ない、レディ状態
にあるタスクが存在する場合に自動的にタスクスケジュ
ーリングを行なうようにしたので、ラン状態プロセッサ
がCPtJウェイト状態プロセッサを検出し、5IGP
命令によりCPLJウェイト状態プロセッサを起動し、
5IGP割込みハンドラを実行することによりタスクス
ケジューリングを行なう従来方式に比べて、タスクスケ
ジューリングの島速化が図れる。
状態にあるプロセッサが、そのファームウェア機構によ
り自らタスクレディキューの監視を行ない、レディ状態
にあるタスクが存在する場合に自動的にタスクスケジュ
ーリングを行なうようにしたので、ラン状態プロセッサ
がCPtJウェイト状態プロセッサを検出し、5IGP
命令によりCPLJウェイト状態プロセッサを起動し、
5IGP割込みハンドラを実行することによりタスクス
ケジューリングを行なう従来方式に比べて、タスクスケ
ジューリングの島速化が図れる。
第1図はこの発明を適用するマルチプロセッサシステム
の一実施例を示すブロック構成図、第2図は第1図のシ
ステムにおいてCPtJウェイト状態にあるプロセッサ
の動作を説明するためのフローチャート、第3図は従来
のマルチプロセッサシステムを示すブロック構成図、第
゛4図は第3図のシステムにおいてCPUウェイト状態
にあるプロセッサの動作を説明するためのフローチャー
トである。 50、60・・・プロセッサ、61・・・ファームウェ
ア機構、62・・・タスクディスパッチャ、10・・・
主配憶、11・・・タスクレディキュー、12・・・ア
ドレス記憶部、13・・・指示フラグ。 出願人代理人 弁理士 鈴 江 武 彦50、 第1図 第2図 第3図 第4図
の一実施例を示すブロック構成図、第2図は第1図のシ
ステムにおいてCPtJウェイト状態にあるプロセッサ
の動作を説明するためのフローチャート、第3図は従来
のマルチプロセッサシステムを示すブロック構成図、第
゛4図は第3図のシステムにおいてCPUウェイト状態
にあるプロセッサの動作を説明するためのフローチャー
トである。 50、60・・・プロセッサ、61・・・ファームウェ
ア機構、62・・・タスクディスパッチャ、10・・・
主配憶、11・・・タスクレディキュー、12・・・ア
ドレス記憶部、13・・・指示フラグ。 出願人代理人 弁理士 鈴 江 武 彦50、 第1図 第2図 第3図 第4図
Claims (1)
- 複数のプロセッサを備えたマルチプロセッサシステムに
おいて、上記複数のプロセッサにより共有される主記憶
に置かれレディ状態のタスクを管理するためのタスクレ
ディキューと、上記主記憶に置かれ上記タスクレディキ
ューのエントリの実アドレスを記憶するアドレス記憶部
と、上記主記憶に置かれ上記タスクレディキューの監視
を行なうか否かを指示する指示フラグと、上記各プロセ
ッサに置かれるファームウェア機構であつて、自プロセ
ッサがCPUウェイト状態にあり且つ上記指示フラグが
タスクレディキュー監視指示状態にある場合に上記アド
レス記憶部に記憶されている実アドレスを用いて上記タ
スクレディキューの監視を行ない、レディ状態タスクの
存在を検出するとタスクディスパッチャにディスパッチ
ング割込みを発生するファームウェア機構とを具備し、
このファームウェア機構からのディスパッチング割込み
に応じてタスクスケジューリングを行なうようにしたこ
とを特徴とするマルチプロセッサシステムにおけるタス
クスケジューリング方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4130187A JPS63208948A (ja) | 1987-02-26 | 1987-02-26 | マルチプロセツサシステムにおけるタスクスケジユ−リング方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4130187A JPS63208948A (ja) | 1987-02-26 | 1987-02-26 | マルチプロセツサシステムにおけるタスクスケジユ−リング方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS63208948A true JPS63208948A (ja) | 1988-08-30 |
Family
ID=12604648
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4130187A Pending JPS63208948A (ja) | 1987-02-26 | 1987-02-26 | マルチプロセツサシステムにおけるタスクスケジユ−リング方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS63208948A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5465335A (en) * | 1991-10-15 | 1995-11-07 | Hewlett-Packard Company | Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor |
| KR100421797B1 (ko) * | 1994-12-09 | 2004-05-20 | 텔레폰아크티에볼라게트 엘엠 에릭슨 | 내부실행스레드관리시스템및그의방법 |
-
1987
- 1987-02-26 JP JP4130187A patent/JPS63208948A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5465335A (en) * | 1991-10-15 | 1995-11-07 | Hewlett-Packard Company | Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor |
| KR100421797B1 (ko) * | 1994-12-09 | 2004-05-20 | 텔레폰아크티에볼라게트 엘엠 에릭슨 | 내부실행스레드관리시스템및그의방법 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2514299B2 (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
| TW490638B (en) | Computer for executing plural operating systems | |
| JPH0814795B2 (ja) | マルチプロセッサ仮想計算機システム | |
| JPS63310051A (ja) | プログラム入出力命令を含む入出力プロセスの実行方法および装置 | |
| JPS62184544A (ja) | 仮想計算機システム | |
| JP2636722B2 (ja) | マルチタスク実行管理方式 | |
| DE3687159D1 (de) | Multiprozessor-datenverarbeitungssystem. | |
| US20240231867A9 (en) | Paravirtual pause loops in guest user space | |
| JPS6336023B2 (ja) | ||
| JP2553526B2 (ja) | マルチタスク処理装置 | |
| JPS594743B2 (ja) | マルチプロセツサシステムノセイギヨホウシキ | |
| JPH06214811A (ja) | スケジューリング方式 | |
| JPH01137359A (ja) | プロセッサの制御方法 | |
| JPH01217636A (ja) | タスク制御方式 | |
| JPS6223895B2 (ja) | ||
| JPH03116335A (ja) | 非特権cpuから特権cpuヘの乗り移り方式 | |
| JPH01288954A (ja) | マルチプロセッサシステムにおけるサービスプログラム実行方式 | |
| JPH0457022B2 (ja) | ||
| JPS6136850A (ja) | 入出力割込通知方式 | |
| JPH04157534A (ja) | タスクグループ単位のサスペンド/リスタート方式 | |
| JPS6084659A (ja) | デ−タ処理装置 | |
| JPS63308661A (ja) | マルチプロセツサシステム | |
| JPS63296162A (ja) | マルチプロセッサシステムのタスクスケジュ−ル方式 | |
| JPS6120903B2 (ja) | ||
| JPS62237560A (ja) | マルチプロセツサシステム |