JP2932832B2 - 優先順位検索装置 - Google Patents

優先順位検索装置

Info

Publication number
JP2932832B2
JP2932832B2 JP14765792A JP14765792A JP2932832B2 JP 2932832 B2 JP2932832 B2 JP 2932832B2 JP 14765792 A JP14765792 A JP 14765792A JP 14765792 A JP14765792 A JP 14765792A JP 2932832 B2 JP2932832 B2 JP 2932832B2
Authority
JP
Japan
Prior art keywords
priority
bit
task
value
word
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.)
Expired - Lifetime
Application number
JP14765792A
Other languages
English (en)
Other versions
JPH05342022A (ja
Inventor
隆司 横溝
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
Nippon Electric 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 Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP14765792A priority Critical patent/JP2932832B2/ja
Publication of JPH05342022A publication Critical patent/JPH05342022A/ja
Application granted granted Critical
Publication of JP2932832B2 publication Critical patent/JP2932832B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、タスクの動作を優先順
位で管理するオペレーティング・システム(以降OSと
略す)における優先順位の検索に利用する。本発明は、
優先順位検索の処理時間を高速化することができる優先
順位検索装置に関する。
【0002】
【従来の技術】従来、この種のOSにおいては、タスク
それぞれに優先順位と呼ばれる正の整数を付け、その値
が小さい(優先順位が高い)ほど処理を優先させるとい
う処理方式になっていた。この優先順位を管理するため
に、タスク優先順位1つに対し、メモリ上の1ビットを
割り当て、このビットのセット/リセットによって当該
優先順位タスクがレディ・キューにつながれているか否
かを判定を行うためのビット・マップ(優先順位管理テ
ーブル)を用意し、このビットを検索することによっ
て、タスク・ディスパッチの際に次に動作させるタスク
の検索処理を行っていた。
【0003】このビット・マップ・テーブルは、図3お
よび図4に示されるもので、優先順位数だけのビット数
を持つ領域であり、この領域の0バイト目のLSBよ
り、優先順位の高い順にレディ状態のタスクが存在すれ
ば、そのビットを立てる構造になっている。
【0004】ここで、優先順位が0から63まであるO
Sにおいて、優先順位50のタスクA、優先順位30の
タスクB、優先順位10のタスクCが存在していると
き、タスクCが待ち状態に入った場合、OSがタスク・
ディスパッチを行うために最も優先順位の高いタスクを
検索する際の処理について説明する。図1は従来例の構
成を示すブロック図、図3はタスクA、タスクB、タス
クCが存在している場合の優先順位管理テーブルの内容
を示す図である。また、図4はタスクCが待ちに入った
場合の優先順位管理テーブルの内容を示す図、図9は従
来例における最優先順位検索の際の処理動作の流れを示
すフローチャートである。
【0005】図3に示すように、タスクA、タスクB、
タスクCが存在し、タスクCが実行中であるとし、優先
順位の高いタスクCが待ち状態に入ったとすると、OS
は次の実行のためにタスクCの次に高い優先順位のタス
クを検索する。
【0006】図4に示す8バイトある優先順位管理テー
ブルを1バイト単位で参照すると、直前の最優先順位
は、管理テーブルの1バイト目に存在しており、これよ
り高い優先順位で、かつ実行可能状態のタスクは存在し
えないので以下の処理はテーブルの1バイト目より実行
される。
【0007】まず、優先順位管理テーブルの1バイト目
(1)の中に立っているビットがあるか否かを判定し、
図9に示すS11において(1)を右に1ビット論理シ
フトする。処理はS12に移り、ビット・サーチが9ビ
ット目に及んだか否かを判定する。9ビット目のサーチ
であればS13にて次のバイト(2)に移り再度S11
へと処理を移す。9ビット目のサーチでなければ、S1
4へ処理は移り、S11の結果キャリーが1になったか
否かを判定する。ここでは、キャリーは0なので、再び
S11に処理を戻し、再度右に1ビット論理シフトさせ
S12へ処理を移す。これらの処理をキャリーが1にな
るまで繰り返す。
【0008】この例の場合はこれを繰り返し、3バイト
目(3)の6ビット目に立っているビットが存在するこ
とを発見する。
【0009】これらの処理によって、テーブルの3バイ
ト目の6ビット目が最も高い優先順位であることがわか
る。これによりS15において優先順位を算出する。こ
の場合、 6+3×8=30 で、次の最優先順位は30であることがわかる。
【0010】このようにして、OSは次に実行させるタ
スクを検索し、ディスパッチ処理を行う。
【0011】
【発明が解決しようとする課題】前述した従来の最優先
順位検索方式では、あるタスクが待ち状態になり次に高
い優先順位のタスクを検索する際の処理で、例えば優先
順位が0のタスクから優先順位が63のタスクへのタス
ク・スイッチを例にとると、検索処理はアドレスのシフ
トを7回、ビット・シフトを56回も繰り返し行ってい
るために、処理時間が非常に多くかかり、また、優先順
位の設定によっては検索処理時間が大幅に変動してしま
うので、検索処理時間の最悪値の保証ができず、最長割
り込み禁止時間が保証できない問題がある。
【0012】最長割り込み禁止時間の保証は、リアルタ
イム・システムにおいては重要なことであり、この時間
が保証できないということは致命的な欠点である。
【0013】本発明はこのような問題を解決するもの
で、優先順位の検索処理時間を短縮することができ、検
索処理時間の最悪値を保証して最長割り込み禁止時間を
保証することができる装置を提供することを目的とす
る。
【0014】
【課題を解決するための手段】本発明は、タスクの処理
順序となる優先順位毎にビットを割り当てたビット列に
対して、前記タスクのレディ状態を識別するビット値を
記憶する記憶手段と、前記ビット列を予め定めたビット
長のワード毎に分けて、前記ワードの中でレディ状態の
ビットの有無をビット値に表して前記ワード毎にビット
マップとして記憶する情報記憶手段と、前記ビットマッ
プを数値として扱った値を前記ワードに分けたビット列
の中でのワード位置識別情報へ変換する手段と、識別し
たワード位置にあるワードを数値として扱った値をワー
ドの中でのレディ状態のビット位置識別情報へ変換する
手段と、前記両変換する手段より求めた前記ワード位置
識別情報と前記ビット位置識別情報とを用いて次に処理
すべきタスクを検索する手段とを備えたことを特徴とす
る。
【0015】
【作用】タスクの動作を優先順位で管理するときに、
モリ上に格納されたタスクの優先順位1つに対しメモリ
中の1ビットが割り当てられ、このビット列をワード単
位とし、ワードごとにレディ状態のビット有無とワード
を識別する情報とを対応付けて次に処理すべきタスクを
検索する。このように優先順位付けされたタスクをビッ
トマップとして扱うのではなく、レディ状態のビットの
有無とワードを識別する情報とが対応付けされた検索可
能な情報に変換して優先順位を算出する。
【0016】これにより、最優先順位の検索処理の際に
数多くのループ処理を行うことなく、最優先順位の検索
時間を短縮することができ、また、優先順位に依存して
の処理時間の変動を押え、処理時間の最悪値を保証して
OSにおける最長割り込み禁止時間を保証することがで
きる。
【0017】
【実施例】次に、本発明実施例を図面に基づいて説明す
る。図1は本発明第一実施例および本発明第二実施例の
構成を示すブロック図である。
【0018】(第一実施例)本発明第一実施例は、一つ
のバス1を介して中央処理装置2、メモリ3、シリアル
コントローラ4、割込みコントローラ5、およびタイマ
コントローラ6が接続され、中央処理装置2に、タスク
の動作を優先順位で管理する手段を備え、さらに、本発
明の特徴としてメモリ3に、レディ状態のタスクの優先
順位と1対1に対応するビット情報を保持する手段と、
前記ビット情報に対応する検索情報を保持する手段とを
備え、中央処理装置2に、前記検索情報を優先順位に変
換する手段と、前記検索情報をもとに前記ビット情報の
優先順位を算出する手段とを備え、タイマコントローラ
4に最長割込禁止時間に対応する値が設定される。
【0019】次に、このように構成された本発明第一実
施例の処理動作について図面を用いて説明する。図2は
本発明第一実施例における最優先順位検索処理の流れを
示すフローチャート、図3はタスクAと、タスクB、タ
スクCが存在している際の優先順位管理テーブルの内容
を示す図、図4はタスクCが待ちに入った場合の優先順
位管理テーブルの内容を示す図である。図3および図4
に示す優先順位管理テーブルは、OSにおいて優先順位
を管理するためにレディ・キューにつながれているタス
クの優先順位と1対1に対応するビット・マップであ
る。また、図5は本発明第一実施例で優先順位値を検索
するために用いる変換テーブルの内容を示す図で、この
変換テーブルの構造は、ビットの立っているバイトの優
先順位管理テーブルの値をオフセットとして値を参照で
きるようにされている。さらに、図6は図4に示す状態
において優先順位管理テーブルをバイト単位に検索する
ために『1バイト=1ビット』で表したビット・マップ
である。これは、優先順位管理テーブルを1バイト単位
にみてビットの立っているバイトに対応するビットを立
てたビット・マップである。
【0020】ここで、優先順位が0から63まであるO
Sの管理下において、優先順位50のタスクA、優先順
位30のタスクB、優先順位10のタスクCが存在し、
優先順位10のタスクCが実行中のときに、待ち状態に
入ったとすると、OSはタスク・ディスパッチを行うた
めに最も優先順位の高いタスクを検索する。
【0021】まず、図2に示すS1にて図6に示すビッ
ト・マップの値をもとに図5に示す変換テーブルを参照
する。この図5に示す値は優先順位管理テーブルにおい
て何バイト目に最初のビットが立っているかというオフ
セットを示している。この第一実施例の場合、ビット・
マップの値は72であり、変換テーブルより参照した値
は3であり、したがってオフセット値は3である。
【0022】次に、S2に処理は移り、優先順位管理テ
ーブルの先に求めたオフセットに該当する1バイトの値
をもとに図5に示す変換テーブルから値を参照する。こ
の場合、先に求めたオフセット値は3であり、優先順位
管理テーブルの3バイト目(3)の値は64である。こ
の64を元に変換テーブルより引いた値は6となる。最
後にS3にて以下の計算式に従い優先順位を求める。S
2で変換テーブルより参照した値をA、S6で求めた優
先順位管理テーブルのオフセット値をBとすると、 優先順位=A+B×8 であり、これにより優先順位が求められる。本第一実施
例の場合は、A=6、B=3であるから、 優先順位=3×8+6=30 となり、最優先順位値は30として求められる。
【0023】このようにしてOSは次に実行させるタス
クを高速に検索し、ディスパッチ処理を迅速に行うこと
ができる。
【0024】(第二実施例)本発明第二実施例の動作環
境は図1に示す第一実施例同様に構成される。以下本発
明第二実施例の処理動作について説明する。
【0025】優先順位50のタスクA、優先順位30の
タスクB、優先順位10のタスクCが存在し、優先順位
10のタスクCが実行中で待ち状態に入ったとすると、
OSはここでタスク・ディスパッチを行うために最も優
先順位の高いタスクを検索する。
【0026】図7は本発明第二実施例の優先順位検索処
理の流れを示すフローチャート、図3は第一実施例同様
にタスクAと、タスクB、タスクCが存在している際の
優先順位管理テーブルの内容を示す図、図4は同じくタ
スクCが待ち状態に入った場合の優先順位管理テーブル
の内容を示す図、図6はこの図4に示す状態において、
優先順位管理テーブルをバイト単位に検索するために
『1バイト=1ビット』で表されているビット・マップ
の内容を示す図で、これは、優先順位管理テーブルを1
バイト単位にみて、ビットの立っているバイトに対応す
るビットが立てられている。また、図8は本第二実施例
で優先順位値を検索するために用いられる変換テーブル
を示す図である。この変換テーブルの構造は、ビットの
立っているバイトの優先順位管理テーブルの値をオフセ
ットとして値を参照できるようにしてある。
【0027】まず、図6に示すビット・マップの値をも
とに図4に示す優先順位管理テーブルにおけるオフセッ
トをもとめる。
【0028】ここでは最初に、図7に示すS4にてビッ
トの立っているビット・マップの下位4ビットが0であ
るか否かを判定し、0であれば上位4ビットの値をもと
に図8(a)に示す変換テーブルより値を参照し、0で
なければ下位4ビットの値をもとに図8(b)に示す変
換テーブルより値を参照する。この例ではビット・マッ
プ4の値は72であり、下位4ビットは0でないので、
下位4ビットの値である8をもとに図8(b)の変換テ
ーブルのオフセット+8(6)より値を参照する。図8
(b)より参照した値は3であるので、この場合のオフ
セット値は3である。
【0029】次に、S7にて、優先順位管理テーブルで
先に求めたオフセットに該当する1バイトの下位4ビッ
トが0であるか否かを判定する。0であればこの1バイ
トの上位4ビットの値をもとにS8にて図8(a)の変
換テーブルより値を引く。0でなければ下位4ビットの
値をもとにS9にて図8(b)の変換テーブルより値を
参照する。この場合、下位4ビットは0であるので上位
4ビットだけに注目し、図8(a)の変換テーブルより
値を参照する。優先順位管理テーブルの3バイト目
(3)の上位4ビットの値は4であるので、この4を元
に優先順位変換テーブル(a)のオフセット+4(5)
より引いた値は6である。
【0030】最後に、S10にて以下の計算式に従い優
先順位を求める。S8あるいはS9にて変換テーブルよ
り参照した値をA、S5あるいはS6で求めた優先順位
管理テーブルのオフセット値をBとすると、 優先順位=A+B×8 となり、優先順位が求められる。
【0031】本実施例の場合は、A=6、B=3 優先順位=3×8+6=30 となり、最優先順位値は30として求められる。
【0032】以上のようにして、OSは次に実行させる
タスクを高速に検索し、ディスパッチ処理を迅速に行う
ことができ、最優先順位の検索処理を高速に行うことが
できる。
【0033】
【発明の効果】以上説明したように本発明によれば、最
優先順位の検索処理の際に数多くのループ処理を行うこ
となく、最優先順位の検索処理時間を短縮することがで
き、また、優先順位に依存しての処理時間の変動を押
え、処理時間の最悪値を保証し、OSにおける最長割り
込み禁止時間を保証することができる効果がある。
【図面の簡単な説明】
【図1】本発明第一実施例、本発明第二実施例、および
従来例の構成を示すブロック図。
【図2】本発明第一実施例における処理動作の流れを示
すフローチャート。
【図3】本発明第一実施例、本発明第二実施例、および
従来例におけるタスクA、タスクB、およびタスクCが
存在している場合の優先順位管理テーブルの内容を示す
図。
【図4】本発明第一実施例、本発明第二実施例、および
従来例におけるタスクCが待ち状態に入った場合の優先
順位管理テーブルの内容を示す図。
【図5】本発明第一実施例における変換テーブルの内容
を示す図。
【図6】本発明第一実施例および本発明第二実施例にお
ける優先順位管理テーブルのオフセット検索に用いるビ
ットマップの内容を示す図。
【図7】本発明第二実施例における処理動作の流れを示
すフローチャート。
【図8】(a)および(b)は本発明第二実施例におけ
る変換テーブルの内容を示す図。
【図9】従来例における処理動作の流れを示すフローチ
ャート。
【符号の説明】
1 バス 2 中央処理装置 3 メモリ 4 シリアルコントローラ 5 割り込みコントローラ 6 タイマコントローラ

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 タスクの処理順序となる優先順位毎にビ
    ットを割り当てたビット列に対して、前記タスクのレデ
    ィ状態を識別するビット値を記憶する記憶手段と、前記
    ビット列を予め定めたビット長のワード毎に分けて、前
    記ワードの中でレディ状態のビットの有無を前記ワード
    毎にビット値に表してビットマップとして記憶する情報
    記憶手段と、前記ビットマップを数値として扱った値を
    前記ワードに分けたビット列の中でのワード位置識別情
    報へ変換する手段と、識別したワード位置にあるワード
    を数値として扱った値をワードの中でのレディ状態のビ
    ット位置識別情報へ変換する手段と、前記両変換する手
    段より求めた前記ワード位置識別情報と前記ビット位置
    識別情報とを用いて次に処理すべきタスクを検索する手
    段とを備えたことを特徴とする優先順位検索装置。
JP14765792A 1992-06-08 1992-06-08 優先順位検索装置 Expired - Lifetime JP2932832B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14765792A JP2932832B2 (ja) 1992-06-08 1992-06-08 優先順位検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14765792A JP2932832B2 (ja) 1992-06-08 1992-06-08 優先順位検索装置

Publications (2)

Publication Number Publication Date
JPH05342022A JPH05342022A (ja) 1993-12-24
JP2932832B2 true JP2932832B2 (ja) 1999-08-09

Family

ID=15435317

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14765792A Expired - Lifetime JP2932832B2 (ja) 1992-06-08 1992-06-08 優先順位検索装置

Country Status (1)

Country Link
JP (1) JP2932832B2 (ja)

Also Published As

Publication number Publication date
JPH05342022A (ja) 1993-12-24

Similar Documents

Publication Publication Date Title
US6360243B1 (en) Method, device and article of manufacture for implementing a real-time task scheduling accelerator
US6128672A (en) Data transfer using software interrupt service routine between host processor and external device with queue of host processor and hardware queue pointers on external device
US6553487B1 (en) Device and method for performing high-speed low overhead context switch
JPS6015771A (ja) ベクトルプロセッサ
JP2002533807A (ja) 割込み/ソフトウエア制御スレッド処理
JPH05250305A (ja) データ転送制御方式
JPS6235949A (ja) メモリ−装置
JPH07117898B2 (ja) 多数の割込みサービスを行うマイクロプロセッサシステム
JP2932832B2 (ja) 優先順位検索装置
JPH08297581A (ja) リアルタイム・オペレーティングシステムにおける割り込み管理方式
JPS6115260A (ja) デ−タ処理装置
JP3096382B2 (ja) Dma回路
KR100654477B1 (ko) 프로세서 동작 방법
US5687380A (en) Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions
GB2030331A (en) Real-time Data Processing System for Processing Time Period Commands
KR100257923B1 (ko) 통신제어 시스템 및 정보처리 시스템
CA1217566A (en) Real-time data processing system for processing time period commands
JP2021174367A (ja) リアルタイム演算処理装置
JPS59144955A (ja) 情報処理装置
JP2021174368A (ja) リアルタイム演算処理装置
JP2021174365A (ja) リアルタイム演算処理装置
JPH0491519A (ja) プライオリティーエンコーダ及びこれを用いた半導体集積回路
JPS61214032A (ja) 割込み制御方式
JPS63108448A (ja) 入出力要求制御方式
JPH01281553A (ja) チャンネル制御方式

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19980714

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990427