JPH04101233A - Task controlling method by two-hierarchy queue structure - Google Patents
Task controlling method by two-hierarchy queue structureInfo
- Publication number
- JPH04101233A JPH04101233A JP21922990A JP21922990A JPH04101233A JP H04101233 A JPH04101233 A JP H04101233A JP 21922990 A JP21922990 A JP 21922990A JP 21922990 A JP21922990 A JP 21922990A JP H04101233 A JPH04101233 A JP H04101233A
- Authority
- JP
- Japan
- Prior art keywords
- task
- queue
- priority
- tasks
- control block
- 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
- 238000000034 method Methods 0.000 title description 17
- 238000007726 management method Methods 0.000 claims description 14
- 238000003780 insertion Methods 0.000 abstract description 8
- 230000037431 insertion Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 1
- 244000144992 flock Species 0.000 description 1
Abstract
Description
【発明の詳細な説明】
産業上の利用分野
本発明は、マルチタスクオペレーティングシステム等に
使用する2階層キュー構造によるタスク管理方法に関す
る。DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to a task management method using a two-layer queue structure used in multitasking operating systems and the like.
従来の技術
従来のタスク管理方法は、例えば特開昭6319123
6号公報記載の構成が知られている。Conventional technology A conventional task management method is disclosed in Japanese Patent Application Laid-Open No. 6319123, for example.
The configuration described in Publication No. 6 is known.
第5図は、この公報に示された従来のタスク管理方法を
説明するためのオペレーティングシステムの管理項目と
、スタック制御ブロックおよび疑似のスタック制御ブロ
ックを示すブロック図である。FIG. 5 is a block diagram showing operating system management items, a stack control block, and a pseudo stack control block for explaining the conventional task management method disclosed in this publication.
第5図において、10はオペレーティングシステムの管
理項目、101は実行可能キュー 51はタスク制御ブ
ロック、511は優先度キュー512はタスクの優先度
、52は疑似制御ブロック、521は優先度、522は
同一優先度キュー523はタスクの優先度である。In FIG. 5, 10 is an operating system management item, 101 is an executable queue, 51 is a task control block, 511 is a priority queue 512 is a task priority, 52 is a pseudo control block, 521 is a priority, and 522 is the same The priority queue 523 is the priority of tasks.
次に上記従来例の動作について説明する。実行可能状態
にあるタスクを優先度順にスケジューリングする際には
、タスクの制御情報を管理する個々のタスク制御ブロッ
ク51をタスクの優先度順に実行可能キュー101に接
続する。Next, the operation of the above conventional example will be explained. When scheduling executable tasks in priority order, individual task control blocks 51 that manage task control information are connected to executable queue 101 in order of task priority.
このとき、同一優先度のタスク制御ブロックが複数個実
行可能状態になった場合には、疑似制御ブロック52を
設け、同一優先度の複数個のタスク制御ブロック51は
この疑似制御ブロック52に接続し、この疑似制御ブロ
ック52を該当優先度の代表ブロックとして接続する。At this time, if a plurality of task control blocks with the same priority become executable, a pseudo control block 52 is provided, and the plurality of task control blocks 51 with the same priority are connected to this pseudo control block 52. , this pseudo control block 52 is connected as a representative block of the corresponding priority.
実行可能キュー101の検索時に、疑似制御ブロック5
2に接続されている同一優先度のタスク制御ブロック5
1を検索する必要のない場合には、スキップ信号を出す
ことにより、高速の検索を行なっていた。When searching the executable queue 101, the pseudo control block 5
Task control block 5 with the same priority connected to 2
When there is no need to search for 1, a skip signal is issued to perform a high-speed search.
発明が解決しようとする課題
しかしながら、上記従来のタスク管理方法では、タスク
制御ブロック51をキューから取り外すことにより、同
一優先度のタスク制御ブロックが複数個から1個になる
場合、あるいはタスク制御ブロックを挿入することによ
り、同一優先度のタスク制御ブロックが1個から複数個
になる場合に、疑似制御ブロック52の生成・削除を行
なう必要があり、処理に時間がかかるという問題があっ
た。Problems to be Solved by the Invention However, in the conventional task management method described above, when the number of task control blocks with the same priority decreases from a plurality to one by removing the task control block 51 from the queue, or when a task control block is When the number of task control blocks with the same priority increases from one to a plurality of task control blocks due to insertion, it is necessary to generate and delete the pseudo control block 52, which poses a problem in that the processing takes time.
本発明はこのような従来の問題を解決するものであり、
簡易な構成で容易にかつ高速の検索が可能な2階層キュ
ー構造によるタスク管理方法を提供することを目的とす
るものである。The present invention solves these conventional problems,
It is an object of the present invention to provide a task management method using a two-layer queue structure that has a simple configuration and allows easy and high-speed searching.
課題を解決するための手段
本発明は上記目的を達成するために、実行可能状態にあ
る各タスクの制卸情報を管理する制御ブロックを、この
制御ブロックによって管理されているタスクの優先度順
に実行可能キューに接続し、このタスクの制御ブロック
に同一優先度のタスクを先着順に接続するキューと同一
優先度のタスクが存在した場合には該当優先度の先頭の
タスクのみを接続するキューとを設けて2階層のキュー
構造とし、2個以上の同一優先度のタスクが存在すると
きには優先度順のキューのみに挿入してスケジューリン
グを行なうようにした。Means for Solving the Problems In order to achieve the above object, the present invention executes a control block that manages control information of each task in an executable state in order of priority of the tasks managed by this control block. A queue that connects tasks with the same priority to the control block of this task on a first-come, first-served basis, and a queue that connects only the first task with the corresponding priority if there is a task with the same priority are established. A two-layer queue structure is adopted, and when two or more tasks with the same priority exist, scheduling is performed by inserting them only into the queue in order of priority.
作用
従って、本発明によれば、2個以上の同一優先度のタス
クが存在するときには、優先度順のキューのみに挿入す
ることによって、専用のキュー上には、常に1個のタス
クしか存在せず、高速のキューの検索ができるとともに
、そのキューへの挿入・取り外しが著しく簡単になると
いう効果を有する。Therefore, according to the present invention, when there are two or more tasks with the same priority, only one task is always present on the dedicated queue by inserting them only into the queue in order of priority. First, it has the effect that it is possible to search a queue at high speed, and insertion and removal from the queue are extremely easy.
実施例
第1図は本発明の一実施例を説明するためのオペレーテ
ィングシステム管理項目とタスク制御ブロックのブロッ
ク図である。第1図において、10はオペレーティング
システムの管理項目、12はタスクの制御ブロックであ
る。Embodiment FIG. 1 is a block diagram of operating system management items and task control blocks for explaining one embodiment of the present invention. In FIG. 1, 10 is an operating system management item, and 12 is a task control block.
オペレーティングシステムの管理項目10は実行可能キ
ュー101により、実行可能状態にある最も優先度の高
いタスクの制御ブロック12をポイントしている。The management item 10 of the operating system points to the control block 12 of the highest priority task in the executable state using the executable queue 101.
タスクの制御ブロック12は優先度順でかつ同一優先度
の複数のタスクが存在する場合に先頭タスクのみを接続
する専用キューを構成するポインタ121と、優先度順
でかつ同一優先度の複数のタスクは先着順に専用キュー
を構成するポインタ122およびタスクの優先度の値1
23を格納している。The task control block 12 includes a pointer 121 that configures a dedicated queue to which only the first task is connected when there are multiple tasks in priority order and with the same priority, and a pointer 121 that configures a dedicated queue to which only the first task is connected when there are multiple tasks in priority order and with the same priority. is a pointer 122 that configures a dedicated queue on a first-come, first-served basis and a task priority value of 1
23 is stored.
次に上記実施例の動作について、第2図および第3図を
参照しながら説明する。第2図は上記実施例において、
新たなタスクを2階層キューに挿入する際に挿入位置を
検索するフローチャートである。Next, the operation of the above embodiment will be explained with reference to FIGS. 2 and 3. FIG. 2 shows the above example.
12 is a flowchart for searching for an insertion position when inserting a new task into a two-layer queue.
まず、第2図において、ステップ21でキューに新たな
タスクを挿入する必要か生じると、オペレーティングシ
ステムは変数Xに挿入するタスクの優先度を設定する。First, in FIG. 2, when it becomes necessary to insert a new task into the queue in step 21, the operating system sets the priority of the task to be inserted into a variable X.
次に、ステップ22でタスクの挿入位置を決定するため
の検索位置を先頭に設定し、ステップ23でこの検索位
置での優先度をYに設定する。Next, in step 22, a search position for determining the task insertion position is set to the beginning, and in step 23, the priority at this search position is set to Y.
次に、ステップ24で、変数Xに挿入したタスクの優先
度と、Yに設定した検索位置での優先度と比較し、Xが
Yよりも小さければ(X(Y)、検索位置のタスクの優
先度よりも挿入するタスクの優先度の方が高いため、ス
テップ24のYES側からステップ25に移り、設定し
た検索位置の直前にタスクを挿入する。Next, in step 24, the priority of the task inserted into the variable X is compared with the priority at the search position set to Y, and if Since the priority of the task to be inserted is higher than the priority, the process moves from the YES side of step 24 to step 25, and the task is inserted immediately before the set search position.
また、ステップ24において、XがYよりも大きい場合
(X>Y)には、ステップ24において、No側からス
テップ26に移り、現在の検索位置が最後尾であるかを
チエツクし、最後尾でなければ、ステップ26のNo側
からステップ28に移り、検索位置を優先度順のキュー
の次のシフトして、以下ステップ23から28の処理を
繰り返す。In addition, in step 24, if X is larger than Y (X>Y), in step 24, the process moves from the No side to step 26, where it is checked whether the current search position is at the end, and if it is at the end. If not, the process moves to step 28 from the No side of step 26, the search position is shifted to the next position in the priority queue, and the processes from steps 23 to 28 are repeated.
また、ステップ26において、現在の検索位置が最後尾
であれば、ステップ26のYES側からステップ27に
移り、タスクは最も優先度が低いため、最後尾に挿入し
て実行処理がステップ29で終了する。In addition, in step 26, if the current search position is the end, the process moves from the YES side of step 26 to step 27, and since the task has the lowest priority, it is inserted at the end, and the execution process ends in step 29. do.
第3図は第2図のステップ25を詳細に示したフローチ
ャートである。タスクの挿入位置が検索できると、ステ
ップ31で前のタスクの制御ブロック内の優先度キュー
を、挿入するタスクの制御ブロックをポイントするよう
に更新する。FIG. 3 is a flowchart showing step 25 of FIG. 2 in detail. When the insertion position of the task can be found, in step 31 the priority queue in the control block of the previous task is updated to point to the control block of the task to be inserted.
次に、ステップ32で挿入するタスクの制御ブロック内
の優先度キューと、専用キューを検索位置のタスクの制
卸ブロックをポイントするように更新する。Next, in step 32, the priority queue in the control block of the task to be inserted and the dedicated queue are updated to point to the control block of the task at the search position.
さらに、オペレーティングシステムはステップ33で変
数Zに検索位置の前のタスクの優先度を設定し、ステッ
プ34に移り、このステップ34で変数Xと2が等しい
か否かを判定し、その判定の結果、変数XとZが同じで
あれば、ステップ34のYES側からステップ36に移
り、挿入処理を終了し、第2図のステップ24にリター
ンする。Furthermore, the operating system sets the priority of the task before the search position in the variable Z in step 33, moves to step 34, determines whether the variables X and 2 are equal or not, and determines the result of the determination. , if variables X and Z are the same, the process moves to step 36 from the YES side of step 34, ends the insertion process, and returns to step 24 in FIG.
また、ステップ34において、変数Xと2が等しくなけ
れば、ステップ34のNo側からステップ35に移り、
前のタスクの専用キューを挿入タスクの制御ブロックを
ポイントするように更新し、ステップ36で処理を終了
する。Further, in step 34, if the variables X and 2 are not equal, the process moves from the No side of step 34 to step 35,
The previous task's private queue is updated to point to the inserting task's control block, and the process ends at step 36.
第4図はキューからタスクを削除する場合のフローチャ
ートを示したものである。オペレーティングシステムは
ステップ41で変数Xに削除するタスクの優先度を設定
し、ステップ42で変数Yに優先度キューの前のタスク
の優先度を設定する。FIG. 4 shows a flowchart for deleting tasks from the queue. In step 41, the operating system sets the priority of the task to be deleted in variable X, and in step 42 sets the priority of the previous task in the priority queue in variable Y.
次に、ステップ43で変数XとYを比較し、XとYが異
なれば、ステップ43のYES側からステップ44に移
り、優先度キューの前のタスクの制御ブロック内の専用
キューに、削除するタスクの制卸ブロックの優先度キュ
ーの内容を代入する。Next, in step 43, variables X and Y are compared, and if X and Y are different, the process moves from the YES side of step 43 to step 44, and the task is deleted from the priority queue in the dedicated queue in the control block of the previous task. Assigns the contents of the priority queue of the task's control block.
次に、オペレーティングシステムは、ステップ45で変
数2に優先度キューの後ろのタスクの優先度を設定する
。The operating system then sets variable 2 at step 45 to the priority of the task at the back of the priority queue.
次に、ステップ46で変数XとZが等しいか否かの判定
を行ない、変数XとYが等しいならば、ステップ46の
YES側からステップ47に移り、優先度キューの後ろ
のタスクの専用キューに、削除するタスクの制御ブロッ
クの専用キューの内容を代入する。Next, in step 46, it is determined whether the variables X and Z are equal or not. If the variables Assign the contents of the private queue of the control block of the task to be deleted to .
ステップ46において、変数XとZが等しくなければ、
ステップ46のNo側からステップ48に移り、ステッ
プ47をスキップする。In step 46, if variables X and Z are not equal,
If the result of step 46 is No, the process moves to step 48 and step 47 is skipped.
また、上記ステップ43において、変数XとYが等しい
ならば、ステップ43のNo側からステップ48に移り
、ステップ44から47までスキップする。If the variables X and Y are equal in step 43, the process moves to step 48 from the No side of step 43, and steps 44 to 47 are skipped.
最後に、ステップ48において、優先度キューの前のタ
スクの制御ブロック内の優先度キューに、削除するタス
クの優先度キューの内容を代入して、ステップ4って処
理を終了する。Finally, in step 48, the contents of the priority queue of the task to be deleted are substituted into the priority queue in the control block of the task before the priority queue, and the process ends in step 4.
このように、上記実施例によれば、タスクの制御フロッ
クに専用のキューを持たせることにより、同一優先度の
複数のタスクを疑似の制御フロックを用いずに、本来の
制御ブロックのみでキューに挿入することができる。In this way, according to the above embodiment, by providing a dedicated queue for the control block of a task, multiple tasks with the same priority can be queued using only the original control block, without using a pseudo control block. can be inserted.
また、同時に、同一優先度のタスクの検索を行なわない
ため、高速の検索を行なうことができる。Furthermore, since tasks with the same priority are not searched at the same time, high-speed searches can be performed.
発明の効果
本発明は上記実施例から明らかなように、実行可能状態
にある各タスクの制御情報を管理する制御ブロックを、
この制御ブロックによって管理されているタスクの優先
度順に実行可能キューに接続し、二のタスクの側部ブロ
ックに同一優先度のタスクを先着順に接続するキューと
同一優先度のタスクが存在した場合には該当優先度の先
頭のタスクのみを接続するキューとを設けて2階層のキ
ュー構造とし、2個以上の同一優先度のタスクが存在す
るときには優先度順のキューのみに挿入してスケジュー
リングを行なうようにしたので、2個以上の同一優先度
のタスクが存在するときには、優先度順のキューのみに
挿入することによって、専用のキュー上には、常に1個
のタスクしか存在せず、高速のキューの検索ができると
ともに、そのキューへの挿入・取り外しが著しく簡単に
なるという効果を有する。Effects of the Invention As is clear from the above embodiments, the present invention includes a control block that manages control information of each task in an executable state.
The tasks managed by this control block are connected to the executable queue in priority order, and tasks with the same priority are connected to the side block of the second task on a first-come, first-served basis.If there is a task with the same priority as the queue, creates a two-layered queue structure by creating a queue that connects only the first task with the corresponding priority, and when there are two or more tasks with the same priority, scheduling is performed by inserting them only into the queue in order of priority. Therefore, when two or more tasks with the same priority exist, by inserting them only into the priority queue, only one task always exists on the dedicated queue, resulting in high-speed processing. This has the effect of not only making it possible to search for a queue, but also making insertion and removal from the queue extremely easy.
第1図は、本発明の一実施例における2階層キュー構造
によるタスク管理方法のブロック図、第2図は、同方法
を説明するための2階層キュー上に新しいタスクを挿入
する位置を決める際のフローチャート、第3図は、同方
法を説明するための2階層キューに新しいタスクを挿入
する際のフローチャート、第4図は、同方法を説明する
ための2階層キューからタスクを削除する際のフローチ
ャート、第5図は、従来のタスク管理方法のフロック図
である。
10・・・オペレーティングシステム管理項目、1o1
・・・実行可能キュー 12・・・タスクの制御ブロッ
ク、121・・・専用キューを構成するポインタ、12
2・・・先着順にキューを構成するポインタ、123・
・・タスクの優先度の値。
代理人の氏名 弁理士 粟 野 重 孝はか1名調 1
図
タスクの市11砒フロック
専用キューを構成するポインタ
優先度キューを構成するポインタ
タスクの学先度の値
第2図
第
図
第4図FIG. 1 is a block diagram of a task management method using a two-layer queue structure according to an embodiment of the present invention, and FIG. Figure 3 is a flowchart for inserting a new task into a two-layer queue to explain the method, and Figure 4 is a flowchart for deleting a task from a two-layer queue to explain the method. Flowchart FIG. 5 is a flowchart of a conventional task management method. 10...Operating system management items, 1o1
...Executable queue 12...Task control block, 121...Pointer configuring dedicated queue, 12
2... Pointer configuring a queue on a first-come, first-served basis, 123.
...Task priority value. Name of agent: Patent attorney Shige Awano Takahaka 1
Figure 11 Pointers configuring the flock-only queue for tasks Priority values of pointer tasks configuring the priority queue Figure 2 Figure 4
Claims (1)
ブロックを、この制御ブロックによって管理されている
タスクの優先度順に実行可能キューに接続し、このタス
クの制御ブロックに同一優先度のタスクを先着順に接続
するキューと同一優先度のタスクが存在した場合には該
当優先度の先頭のタスクのみを接続するキューとを設け
て2階層のキュー構造とし、2個以上の同一優先度のタ
スクが存在するときには優先度順のキューのみに挿入し
てスケジューリングを行なうようにした2階層キュー構
造によるタスク管理方法。A control block that manages the control information of each task in the executable state is connected to an executable queue in order of the priority of the tasks managed by this control block, and tasks with the same priority are placed in the control block of this task first. If there are queues that are connected in order and tasks with the same priority, a queue that connects only the first task with the corresponding priority is created, creating a two-layer queue structure, and two or more tasks with the same priority exist. A task management method using a two-layer queue structure in which when a task is scheduled, it is inserted only into a queue in order of priority and scheduling is performed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21922990A JPH04101233A (en) | 1990-08-20 | 1990-08-20 | Task controlling method by two-hierarchy queue structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21922990A JPH04101233A (en) | 1990-08-20 | 1990-08-20 | Task controlling method by two-hierarchy queue structure |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04101233A true JPH04101233A (en) | 1992-04-02 |
Family
ID=16732227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21922990A Pending JPH04101233A (en) | 1990-08-20 | 1990-08-20 | Task controlling method by two-hierarchy queue structure |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04101233A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271613A (en) * | 1994-03-29 | 1995-10-20 | Kofu Nippon Denki Kk | Process management method |
US5687390A (en) * | 1995-11-14 | 1997-11-11 | Eccs, Inc. | Hierarchical queues within a storage array (RAID) controller |
US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
US7921281B2 (en) | 2002-01-09 | 2011-04-05 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
-
1990
- 1990-08-20 JP JP21922990A patent/JPH04101233A/en active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07271613A (en) * | 1994-03-29 | 1995-10-20 | Kofu Nippon Denki Kk | Process management method |
US5687390A (en) * | 1995-11-14 | 1997-11-11 | Eccs, Inc. | Hierarchical queues within a storage array (RAID) controller |
US7921281B2 (en) | 2002-01-09 | 2011-04-05 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
US7930520B2 (en) | 2002-01-09 | 2011-04-19 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
US8006076B2 (en) | 2002-01-09 | 2011-08-23 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
US8719827B2 (en) | 2002-01-09 | 2014-05-06 | Panasonic Corporation | Processor and program execution method capable of efficient program execution |
US9823946B2 (en) | 2002-01-09 | 2017-11-21 | Socionext Inc. | Processor and program execution method capable of efficient program execution |
US7735087B2 (en) | 2003-03-13 | 2010-06-08 | Panasonic Corporation | Task switching apparatus, method and program |
US7950016B2 (en) | 2003-03-13 | 2011-05-24 | Panasonic Corporation | Apparatus for switching the task to be completed in a processor by switching to the task assigned time slot |
US8276156B2 (en) | 2003-03-13 | 2012-09-25 | Panasonic Corporation | Task switching based on assigned time slot |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09293006A (en) | Method for dividing parallel database and control system thereof | |
JPH04101233A (en) | Task controlling method by two-hierarchy queue structure | |
US5430874A (en) | Control method and system for managing memory control blocks of programmed tasks in a multi-processing system | |
JPH0324629A (en) | Method for controlling task | |
JP3231101B2 (en) | Task queue management method | |
US7234142B1 (en) | Task processing system | |
JPH0365732A (en) | Resource managing method | |
JP3763452B2 (en) | Information processing system, object priority management method, operating system, and recording medium | |
US20240118879A1 (en) | Method for implementing a software module defined by a non-interleaved directed acyclic graph in a multicore environment | |
JP3823497B2 (en) | Resource priority management system | |
JPH10171666A (en) | Task control block management mechanism and its managing method | |
JP2633918B2 (en) | Method search method and method search procedure generation method | |
GB2236880A (en) | Controlling the operation of a computer to handle interrupts | |
JPH04101234A (en) | Queue inserting method | |
JPH0324630A (en) | Method for inserting queue | |
JPH05241924A (en) | Record storage control system | |
JPH05274453A (en) | Device and method for program conversion | |
JPH02127732A (en) | Job control system | |
JPH021056A (en) | Data base processing system | |
EP0828221A2 (en) | Network data access method | |
JPH04205150A (en) | File updata method by plural tasks | |
JPH09190356A (en) | Job scheduling class management system and method | |
JPH0764961A (en) | Discrete event-type simulator event controller | |
JPS63298543A (en) | Access control system for file with key | |
JPS61275934A (en) | Disc sort system |