JPH04367035A - Real time processor for plural tasks - Google Patents

Real time processor for plural tasks

Info

Publication number
JPH04367035A
JPH04367035A JP14361191A JP14361191A JPH04367035A JP H04367035 A JPH04367035 A JP H04367035A JP 14361191 A JP14361191 A JP 14361191A JP 14361191 A JP14361191 A JP 14361191A JP H04367035 A JPH04367035 A JP H04367035A
Authority
JP
Japan
Prior art keywords
task
tasks
priority
priority order
real
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
JP14361191A
Other languages
Japanese (ja)
Inventor
Naohisa Morimoto
直久 森本
Toshiro Mise
敏朗 三瀬
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works 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 Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP14361191A priority Critical patent/JPH04367035A/en
Publication of JPH04367035A publication Critical patent/JPH04367035A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To change the priority order of a prescribed task when the prescribed conditions are satisfied and also to optimize the priority order changing conditions by a learning function in response to the working environment, in regard of a real-time multi-task OS which processes plural tasks in real time. CONSTITUTION:An executing task switch means 2 switches the executing tasks based on their priority order stored in a task priority order storage means 1. When the conditions of a condition deciding means 3 are satisfied, the task priority order is changed by a priority order changing means 4. The changing state of the priority order is leant by a condition learning means 5 so that the priority order changing conditions are optimized in accordance with the working environment. Thus the executing order of tasks is optimized in accordance with the working environment and the real-time responsiveness is improved.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、複数タスクの実時間処
理装置に関するものであり、さらに詳しくは、コンピュ
ータのリアルタイム・マルチタスクオペレーティングシ
ステムの改良に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to real-time multi-task processing apparatus, and more particularly to improvements in real-time multi-tasking operating systems for computers.

【0002】0002

【従来の技術】従来、コンピュータの運用効率並びに操
作性を向上させるためにオペレーティングシステム(O
S)が広く用いられている。このうち、リアルタイム・
マルチタスクOSは、複数のタスク(マルチタスク)を
実時間(リアルタイム)で処理する機能を備えたOSで
あり、工場のプロセス制御やビル管理システムに利用さ
れている。リアルタイム・マルチタスクOSにおいて、
各タスクの実行順序を決めるアルゴリズムには、優先順
位方式とラウンドロビン方式のいずれか一方、あるいは
両方の組合せが一般的に用いられている。優先順位方式
では、予め設定した優先順位の高いタスクを先に実行し
、優先順位の低いタスクを後に実行する。また、ラウン
ドロビン方式では、並列実行させたいタスクに平等にC
PU時間を割り当てて、その時間内に終わらないタスク
は強制終了して実行待ち状態とし、次のタスクを実行す
る。
[Prior Art] Conventionally, operating systems (O
S) is widely used. Of these, real-time
A multitasking OS is an OS that has a function of processing multiple tasks (multitasking) in real time, and is used in factory process control and building management systems. In real-time multitasking OS,
As an algorithm for determining the execution order of each task, either a priority method or a round robin method, or a combination of both are generally used. In the priority system, tasks with preset higher priorities are executed first, and tasks with lower priorities are executed later. In addition, in the round-robin method, tasks that are to be executed in parallel are given equal C
A PU time is allocated, and any task that does not finish within that time is forcibly terminated and placed in a waiting state for execution, and the next task is executed.

【0003】従来の標準的なリアルタイム・マルチタス
クOSにおけるタスク処理順序の決定アルゴリズムを図
4に例示する。今、複数のタスクT1,T2,T3,T
4,T5,T6,…のプライオリティ(優先順位)が、
図4に示す通りであるとする。すなわち、タスクT1,
T2,T3が同一順位で第1順位、タスクT4が第2順
位、タスクT5,T6が同一順位で第3順位とする。第
1順位のタスクT1,T2,T3は、矢印Aに示すよう
に、時分割的に順次実行される。そして、第1順位のタ
スクT1,T2,T3の実行が終了すれば、次に、矢印
Bに示すように、第2順位のタスクT4が実行される。 そして、第2順位のタスクT4の実行が終了すれば、次
に、矢印Cに示すように、第3順位のタスクT5,T6
が時分割的に順次実行される。
FIG. 4 illustrates an algorithm for determining the task processing order in a conventional standard real-time multitasking OS. Now, multiple tasks T1, T2, T3, T
The priorities of 4, T5, T6,...
Assume that it is as shown in FIG. That is, task T1,
Tasks T2 and T3 have the same rank and are ranked first, task T4 has the second rank, and tasks T5 and T6 have the same rank and have the third rank. The tasks T1, T2, and T3 in the first order are sequentially executed in a time-sharing manner as shown by arrow A. Then, when the execution of the tasks T1, T2, and T3 in the first order is completed, the task T4 in the second order is executed next, as shown by arrow B. When the execution of the task T4 in the second order is completed, the tasks T5 and T6 in the third order are then executed as shown by the arrow C.
are executed sequentially in a time-sharing manner.

【0004】このように、従来のリアルタイム・マルチ
タスクOSでは、複数のタスクを実時間処理しようとす
るとき、その実行順序は各タスクに予めジェネレーショ
ン時に割り当てられたプライオリティによって決定され
、そのプライオリティが高いものから順次処理される。 さらに、同一プライオリティのタスク間では、FIFO
(First  In  First  Out)のア
ルゴリズムに従い、先に入力されたタスクが先に実行さ
れるように、順次処理される。なお、タスクの処理待ち
順序は、システムコールあるいは割り込み処理の発生時
に決定される。
[0004] In this way, in a conventional real-time multitasking OS, when attempting to process multiple tasks in real time, the execution order is determined by the priority assigned to each task in advance at the time of generation. Things are processed sequentially. Furthermore, between tasks with the same priority, FIFO
According to the (First In First Out) algorithm, tasks are sequentially processed so that the task input first is executed first. Note that the processing wait order of tasks is determined when a system call or interrupt processing occurs.

【0005】[0005]

【発明が解決しようとする課題】従来のリアルタイム・
マルチタスクOSでは、複数のタスクが同時に動作要求
を出しているとき、その処理は一貫して上述の手順で実
行される。しかし、実際には或る条件が成立したとき、
その次に行われる処理は経験的に予想できる。例えば、
ビル管理のシステムでは、警報が発生したときにユーザ
ーが行う処理としては、まず、その警報の箇所を調べて
、処理対策のマニュアルを見た後、その処理対策を実行
することが予想できる。このような場合、警報の箇所を
調べるための処理タスクや、処理対策のマニュアルを見
るための処理タスク、並びに処理対策の実行タスクが、
通常時よりも高いレベルのプライオリティで待ちの状態
にあることが望ましい。しかるに、従来のOSでは、ジ
ェネレーション時のプライオリティに従ってタスクの実
行順序が決定されるため、見た目の反応が遅いように感
じられることがある。
[Problem to be solved by the invention] Conventional real-time
In a multitasking OS, when a plurality of tasks issue operation requests at the same time, the processing is consistently executed according to the above-described procedure. However, in reality, when certain conditions are met,
The subsequent processing can be predicted empirically. for example,
In a building management system, when an alarm occurs, the user should first investigate the location of the alarm, read a manual for countermeasures, and then take the appropriate countermeasures. In such a case, a processing task to check the location of the alarm, a processing task to view the countermeasure manual, and a processing task to execute the countermeasure are
It is desirable to be in a waiting state with a higher level of priority than normal. However, in the conventional OS, the execution order of tasks is determined according to the priority at the time of generation, so the response may seem slow.

【0006】本発明はこのような点に鑑みてなされたも
のであり、その目的とするところは、複数のタスクを実
時間で処理するリアルタイム・マルチタスクOSにおい
て、所定の条件が満たされる場合には所定のタスクの優
先順位を変更することにより、実時間応答性を高めるこ
とにある。
[0006] The present invention has been made in view of the above points, and its purpose is to provide a real-time multitasking OS that processes multiple tasks in real time, when predetermined conditions are met. The objective is to improve real-time responsiveness by changing the priority of certain tasks.

【0007】[0007]

【課題を解決するための手段】本発明に係る複数タスク
の実時間処理装置にあっては、上記の課題を解決するた
めに、図1に示すように、複数のタスクの各々に割り当
てられた優先順位を記憶するタスク優先順位記憶手段1
と、タスク優先順位記憶手段1の記憶内容を参照して優
先順位の高いタスクを優先順位の低いタスクよりも先に
実行し、同一優先順位のタスクは所定の順序で循環的に
実行する実行タスク切換手段2とを備えるCPU制御装
置において、所定の条件を判定する条件判定手段3と、
条件判定手段3により所定の条件が判定されたときにタ
スク優先順位記憶手段1に記憶された優先順位を変更す
る優先順位変更手段4と、優先順位を変更する条件を学
習する条件学習手段5とを備えることを特徴とするもの
である。
[Means for Solving the Problems] In order to solve the above problems, in the real-time processing device for multiple tasks according to the present invention, as shown in FIG. Task priority storage means 1 for storing priorities
and an execution task that refers to the memory contents of the task priority storage means 1, executes tasks with higher priorities before tasks with lower priorities, and executes tasks with the same priority cyclically in a predetermined order. In a CPU control device comprising a switching means 2, a condition determining means 3 for determining a predetermined condition;
a priority changing means 4 for changing the priority stored in the task priority storing means 1 when a predetermined condition is determined by the condition determining means 3; and a condition learning means 5 for learning the conditions for changing the priority. It is characterized by having the following.

【0008】[0008]

【作用】本発明では、複数のタスクを実時間で処理する
に際して、タスク優先順位記憶手段1に記憶された各タ
スクの優先順位に基づいて、優先順位の高いタスクを先
に実行し、優先順位の低いタスクを後に実行するように
、実行タスク切換手段2により実行タスクを切り換える
。この実行タスク切換手段2では、同一優先順位のタス
クについては、所定の順序で循環的に各タスクを実行す
るように、実行タスクを切り換えて行く。
[Operation] In the present invention, when processing a plurality of tasks in real time, based on the priority of each task stored in the task priority storage means 1, a task with a high priority is executed first, and The execution task is switched by the execution task switching means 2 so that the task with a lower value is executed later. The execution task switching means 2 switches execution tasks so that tasks with the same priority are executed cyclically in a predetermined order.

【0009】条件判定手段3では、所定の条件が満たさ
れるか否かを判定する。そして、所定の条件が満たされ
る場合には、タスク優先順位記憶手段1に記憶された所
定のタスクの優先順位を優先順位変更手段4により変更
する。このようにすれば、所定の条件の下で優先的に処
理されるべきタスクが先に実行されるように実行順序が
変更され、実時間応答性を高めることができる。また、
条件学習手段5では、優先順位の変更状況を学習するこ
とにより、優先順位の変更のための条件を使用環境に応
じて最適化する。
The condition determining means 3 determines whether a predetermined condition is satisfied. If a predetermined condition is satisfied, the priority order of the predetermined task stored in the task priority order storage means 1 is changed by the priority order change means 4. In this way, the execution order is changed so that tasks that should be processed preferentially under predetermined conditions are executed first, and real-time responsiveness can be improved. Also,
The condition learning means 5 optimizes the conditions for changing the priority order according to the usage environment by learning the change status of the priority order.

【0010】0010

【実施例】図2は本発明の一実施例のハードウェア構成
を示すブロック図である。図中、10はバスラインであ
り、アドレスバスとデータバス及び制御バスを含んでい
る。11はCPUであり、いわゆるノイマン型のプログ
ラム実行機能を備えている。12は外部I/O装置であ
り、外部からデータを入力したり、外部にデータを出力
する機能を有する。13はキーボード、14はCRTデ
ィスプレイであり、オペレータ(操作者)とコンピュー
タとの間のマン−マシン・インターフェイスとして利用
される。15はROMであり、オペレーティングシステ
ム(OS)や必要なプログラムが格納されている。16
はRAMであり、各種の変数やフラグ、テーブル等が格
納されている。なお、本実施例では、CPU11は内蔵
タイマ20を備えているものとする。内蔵タイマ20は
一定時間又はプログラムされた時間毎に割り込みを発生
させて、タスクの切り換えを行うために利用される。
Embodiment FIG. 2 is a block diagram showing the hardware configuration of an embodiment of the present invention. In the figure, 10 is a bus line, which includes an address bus, a data bus, and a control bus. Reference numeral 11 denotes a CPU, which has a so-called Neumann type program execution function. Reference numeral 12 denotes an external I/O device, which has a function of inputting data from the outside and outputting data to the outside. A keyboard 13 and a CRT display 14 are used as a man-machine interface between an operator and a computer. 15 is a ROM, which stores an operating system (OS) and necessary programs. 16
is a RAM in which various variables, flags, tables, etc. are stored. In this embodiment, it is assumed that the CPU 11 includes a built-in timer 20. The built-in timer 20 is used to generate an interrupt at fixed or programmed intervals to switch tasks.

【0011】図3は本実施例のリアルタイムOSの構成
を更に具体的に示すブロック図である。図中、#1はデ
ィスパッチャであり、本システムの特徴となる部分であ
る。これは以下に述べる各管理ブロック#2〜#5から
の情報と#7の基本ルールから、#6のタスク処理順序
を決定するブロックである。#2は現在発生中の割り込
みの種類とその処理状況を管理する割り込み管理ブロッ
クであり、割り込みが発生する度にディスパッチャに相
関推測と動的プライオリティ変化を要求する再編成シグ
ナルを発生する。#3は各メモリプールの使用状況を管
理するプール使用状況管理ブロックである。メモリプー
ルの使用状況としては、各メモリプールの空きとフリー
ブロックの所有タスクが管理対象となり、各空きブロッ
クが設定された値を下回ると、再編成シグナルを発生す
る。#4は各キューの待ち状況を管理するキュー管理ブ
ロックであり、各キューの待ちブロック数が設定値を上
回ると再編成シグナルを発生する。#5は現在の各レベ
ルでの処理待ちの対象となっているタスクの状況を管理
するタスク状況管理ブロックであり、設定個数以上にな
ると、再編成シグナルを発生する。このように、本発明
のOSでは、複数の管理ブロック#2〜#5を備えてお
り、タスクの処理順序を決定する際に、従来のタスク単
位のプライオリティだけでなく、メモリープールの使用
状況、各キューの待ち状況、実メモリー内及び実メモリ
ー外のタスクの状況、実行中タスク、停止中タスク、割
り込みの状況等の各種のパラメータに応じて、動的にプ
ライオリティを変化させながら、最適なタスクの処理順
序を決定するものである。つまり、メモリープールの空
き量や、キューの待ちブロック量や、タスクの待ち数等
の各種のパラメータが設定された範囲を逸脱する場合に
は、タスクのプライオリティが適切でないということで
あるから、タスクのプライオリティを増減させて、最適
化を図る。そして、このプライオリティを変化させる前
の全てのパラメータの状態と、変化させた後の全てのパ
ラメータの状態を対応付けて記憶し、変化前後の相関関
係を推測することにより、次回に同じパラメータの状態
が現れたときには、前回と同様にタスクのプライオリテ
ィを増減させることにより、メモリープールの空き量や
、キューの待ちブロック量や、タスクの待ち数等の各種
のパラメータが設定された範囲を逸脱することを防止で
きるものである。
FIG. 3 is a block diagram showing more specifically the configuration of the real-time OS of this embodiment. In the figure, #1 is a dispatcher, which is a feature of this system. This is a block that determines the task processing order of #6 from the information from each management block #2 to #5 described below and the basic rule of #7. #2 is an interrupt management block that manages the type of interrupt currently occurring and its processing status, and generates a reorganization signal requesting the dispatcher to estimate the correlation and dynamically change the priority every time an interrupt occurs. #3 is a pool usage status management block that manages the usage status of each memory pool. The usage status of memory pools is managed based on the free space in each memory pool and the task that owns free blocks, and when the free block count falls below a set value, a reorganization signal is generated. #4 is a queue management block that manages the waiting status of each queue, and generates a reorganization signal when the number of waiting blocks of each queue exceeds a set value. #5 is a task status management block that manages the status of tasks that are currently waiting for processing at each level, and when the number exceeds a set number, it generates a reorganization signal. In this way, the OS of the present invention is equipped with a plurality of management blocks #2 to #5, and when determining the processing order of tasks, not only the conventional priority of each task but also the usage status of the memory pool, The optimal task is selected by dynamically changing the priority according to various parameters such as the waiting status of each queue, the status of tasks in and outside real memory, running tasks, stopped tasks, and interrupt status. This determines the processing order. In other words, if various parameters such as the amount of free space in the memory pool, the amount of waiting blocks in the queue, or the number of waiting tasks exceed the set ranges, it means that the priority of the task is not appropriate. Optimize by increasing or decreasing the priority of Then, by storing the states of all parameters before changing the priority and the states of all parameters after changing the priority in association with each other, and estimating the correlation before and after the change, the state of the same parameter will be changed next time. When this occurs, increase or decrease the priority of the task in the same way as before to ensure that various parameters such as the amount of free space in the memory pool, the amount of waiting blocks in the queue, the number of waiting tasks, etc. deviate from the set range. can be prevented.

【0012】次に、#7の基本ルールについて詳述する
。これは、ターゲットシステムの作成時にユーザーが作
成する動的なタスクプライオリティの変更のためのルー
ルである。ここで、このルールの表記法はC言語に準拠
するものとするが、使用可能な関数は以下に定義された
ものだけとする。以下、#7の基本ルールで使用する関
数について説明する。
Next, the basic rule #7 will be explained in detail. This is a rule for dynamic task priority changes created by the user when creating the target system. Here, it is assumed that the notation of this rule conforms to the C language, but the only functions that can be used are those defined below. The functions used in the basic rule #7 will be explained below.

【0013】(1)Pool これは、指定されたプールの空き領域に関する情報を得
るための関数であり、その書式は次の通りとする。re
t=Pool(Poolname,PoolLevel
);ここで、Poolnameはプール名、PoolL
evelは空きプール量であり、返却値は、指定のプー
ルが存在しなかった場合には、ret=−1となり、設
定された空きプール量を上回っている場合には、ret
=0となり、設定された空きプール量を下回っている場
合には、ret=1となる。また、Poolnameが
省略された場合には、全プール名に対して空き領域に関
する情報を得るものとし、その結果の論理和を取る。
(1) Pool This is a function for obtaining information regarding free space in a specified pool, and its format is as follows. re
t=Pool(Poolname, PoolLevel
); Here, Poolname is the pool name, PoolL
evel is the free pool amount, and the return value is ret = -1 if the specified pool does not exist, and ret if it exceeds the set free pool amount.
= 0, and if it is less than the set free pool amount, ret = 1. Furthermore, if Poolname is omitted, information regarding free space is obtained for all pool names, and the logical sum of the results is calculated.

【0014】(2)Que これは、指定されたキューの待ちブロック量に対する情
報を得るための関数であり、その書式は次の通りとする
。 ret=Que(Quename,QueLevel)
; ここで、Quenameはキュー名、QueLevel
は待ちブロック量であり、返却値は、指定のキューが存
在しなかった場合には、ret=−1となり、設定され
た待ちブロック量を上回っている場合には、ret=0
となり、設定された待ちブロック量を下回っている場合
には、ret=1となる。また、Quenameが省略
された場合には、全キュー名に対して待ちブロック量に
対する情報を得るものとし、その結果の論理和を取る。
(2) Que This is a function for obtaining information about the amount of waiting blocks in a specified queue, and its format is as follows. ret=Que(Quename, QueLevel)
; Here, Quename is the queue name, QueLevel
is the waiting block amount, and the return value is ret=-1 if the specified queue does not exist, and ret=0 if it exceeds the set waiting block amount.
If the amount of waiting blocks is less than the set amount of waiting blocks, ret=1. Furthermore, if Quename is omitted, information on the amount of waiting blocks is obtained for all queue names, and the logical sum of the results is calculated.

【0015】(3)IntI これは、指定された割り込みに関する情報を得るための
関数であり、その書式は次の通りとする。 ret=IntI(IntIname);ここで、In
tInameは割り込み種類名であり、返却値は、設定
された割り込みが無かった場合には、ret=0となり
、設定された割り込みがあり未処理である場合には、r
et=1となる。また、IntInameが省略された
場合には、全割り込み名に対して情報を得るものとし、
その結果の論理和を取る。
(3) IntI This is a function for obtaining information regarding a specified interrupt, and its format is as follows. ret=IntI(IntIname); where, In
tIname is the interrupt type name, and the return value is ret = 0 if there is no set interrupt, and r if there is a set interrupt and it is unprocessed.
et=1. Also, if IntIname is omitted, information will be obtained for all interrupt names,
Take the logical OR of the results.

【0016】(4)Task これは、指定されたレベルのタスクに関する情報を得る
ための関数であり、その書式は次の通りとする。 ret=Task(TaskPri,TaskLeve
l); ここで、TaskPriはタスクのプライオリティレベ
ル、TaskLevelは待ちタスク数であり、返却値
は、指定されたプライオリティのタスクの待ち数が設定
された量を越えていない場合には、ret=0となり、
指定されたプライオリティのタスクの待ち数が設定され
た量を越えている場合には、ret=1となる。また、
TaskPriが省略された場合には、全レベルに対し
て判定を行うものとし、その結果の論理和を取る。
(4) Task This is a function for obtaining information regarding a task at a specified level, and its format is as follows. ret=Task(TaskPri, TaskLevel
l); Here, TaskPri is the priority level of the task, TaskLevel is the number of waiting tasks, and the return value is ret=0 if the number of waiting tasks of the specified priority does not exceed the set amount. Then,
If the number of waiting tasks of the designated priority exceeds the set amount, ret=1. Also,
If TaskPri is omitted, determination is made for all levels, and the results are logically summed.

【0017】以上のような関数を用いて表記された#7
の基本ルールを、#1のディスパッチャはシステム起動
直後に内部テーブルに登録し、実行時に参照しながら#
6の動的プライオリティを最適な状態で生み出して行く
ものである。
#7 expressed using the above functions
The #1 dispatcher registers the basic rules of #1 in the internal table immediately after system startup, and references them during execution.
6 dynamic priorities are created in an optimal state.

【0018】次に、#1のディスパッチャがどのように
して動的プライオリティ付けを行うかを説明する。まず
、管理ブロックのいずれかから再編成シグナルが入ると
、この信号を合図に、パラメータ状態テーブルの現状態
(Now−State)の内容を前状態(Old−St
ate)に移し、次状態(Next−State)の内
容を現状態に移す。そして、全パラメータの状態を次状
態に保存する。その後、次状態、現状態、前状態のパタ
ーンに対して基本ルールにより、次回にこのパターンの
現状態と前状態が現れたときに行う動的プライオリティ
付けの評価値を付けて、テーブルに登録する。最後に、
現状態と前状態のパターンがテーブルに存在し、且つ設
定値以上の評価値であれば、動的にプライオリティを変
化させ、次に再編成シグナルが入るのを待つ。
Next, a description will be given of how the #1 dispatcher performs dynamic prioritization. First, when a reorganization signal is received from one of the management blocks, this signal is used as a signal to change the contents of the current state (Now-State) of the parameter state table to the previous state (Old-State).
ate), and the contents of the next state (Next-State) are moved to the current state. Then, the states of all parameters are saved in the next state. Then, according to the basic rules, the next state, current state, and previous state patterns are given evaluation values for dynamic prioritization that will be performed the next time the current state and previous state of this pattern appear, and are registered in the table. . lastly,
If the current state and previous state patterns exist in the table and the evaluation value is greater than or equal to the set value, the priority is dynamically changed and the next reorganization signal is waited for.

【0019】[0019]

【発明の効果】本発明では、優先順位の高いタスクを優
先順位の低いタスクよりも先に実行し、同一優先順位の
タスクは所定の順序で循環的に実行する複数タスクの実
時間処理装置において、所定の条件を判定する条件判定
手段と、条件判定手段により所定の条件が判定されたと
きにタスク優先順位記憶手段に記憶された優先順位を変
更する優先順位変更手段とを設けたものであるから、所
定の条件が満たされる場合には所定のタスクの優先順位
を変更することができ、これにより、実時間応答性を高
めることができ、自由度の高い最適制御が可能となると
いう効果がある。さらにまた、本発明では、条件学習手
段を設けて、優先順位の変更状況を学習するようにした
ので、優先順位の変更のための条件を使用環境に応じて
最適化することができるという効果がある。
Effects of the Invention The present invention provides a real-time processing device for multiple tasks in which a task with a higher priority is executed before a task with a lower priority, and tasks with the same priority are executed cyclically in a predetermined order. , a condition determining means for determining a predetermined condition, and a priority changing means for changing the priority stored in the task priority storage means when the predetermined condition is determined by the condition determining means. Therefore, if a predetermined condition is met, the priority of a predetermined task can be changed, which has the effect of increasing real-time responsiveness and enabling optimal control with a high degree of freedom. be. Furthermore, in the present invention, since a condition learning means is provided to learn the change status of the priority order, it is possible to optimize the conditions for changing the priority order according to the usage environment. be.

【図面の簡単な説明】[Brief explanation of drawings]

【図1】本発明の基本構成を示すクレーム対応ブロック
図である。
FIG. 1 is a claim-compatible block diagram showing the basic configuration of the present invention.

【図2】本発明の一実施例のハードウェア構成を示すブ
ロック図である。
FIG. 2 is a block diagram showing the hardware configuration of an embodiment of the present invention.

【図3】本発明のシステム構成を示すブロック図である
FIG. 3 is a block diagram showing the system configuration of the present invention.

【図4】従来例の動作説明図である。FIG. 4 is an explanatory diagram of the operation of a conventional example.

【符号の説明】[Explanation of symbols]

1    タスク優先順位記憶手段 2    実行タスク切換手段 3    条件判定手段 4    優先順位変更手段 5    条件学習手段 1. Task priority storage means 2 Execution task switching means 3 Condition determination means 4. Priority change means 5 Conditional learning means

Claims (1)

【特許請求の範囲】[Claims] 【請求項1】    複数のタスクの各々に割り当てら
れた優先順位を記憶するタスク優先順位記憶手段と、タ
スク優先順位記憶手段の記憶内容を参照して優先順位の
高いタスクを優先順位の低いタスクよりも先に実行し、
同一優先順位のタスクは所定の順序で循環的に実行する
実行タスク切換手段とを備えるCPU制御装置において
、所定の条件を判定する条件判定手段と、条件判定手段
により所定の条件が判定されたときにタスク優先順位記
憶手段に記憶された優先順位を変更する優先順位変更手
段と、優先順位を変更する条件を学習する条件学習手段
とを備えることを特徴とする複数タスクの実時間処理装
置。
1. Task priority storage means for storing priorities assigned to each of a plurality of tasks, and tasks with higher priority than tasks with lower priority by referring to the stored contents of the task priority storage means. Also run first,
In a CPU control device comprising an execution task switching means for cyclically executing tasks of the same priority in a predetermined order, a condition determining means for determining a predetermined condition; and when the predetermined condition is determined by the condition determining means. 1. A real-time processing device for a plurality of tasks, comprising: priority order changing means for changing the priority order stored in the task priority order storage means; and condition learning means for learning conditions for changing the priority order.
JP14361191A 1991-06-14 1991-06-14 Real time processor for plural tasks Pending JPH04367035A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14361191A JPH04367035A (en) 1991-06-14 1991-06-14 Real time processor for plural tasks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14361191A JPH04367035A (en) 1991-06-14 1991-06-14 Real time processor for plural tasks

Publications (1)

Publication Number Publication Date
JPH04367035A true JPH04367035A (en) 1992-12-18

Family

ID=15342765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14361191A Pending JPH04367035A (en) 1991-06-14 1991-06-14 Real time processor for plural tasks

Country Status (1)

Country Link
JP (1) JPH04367035A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010160713A (en) * 2009-01-09 2010-07-22 Yokogawa Electric Corp Field control device and field control method
US8612805B2 (en) 2007-03-20 2013-12-17 Spansion Llc Processor system optimization supporting apparatus and supporting method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612805B2 (en) 2007-03-20 2013-12-17 Spansion Llc Processor system optimization supporting apparatus and supporting method
US8972795B2 (en) 2007-03-20 2015-03-03 Spansion Llc Processor system optimization
JP2010160713A (en) * 2009-01-09 2010-07-22 Yokogawa Electric Corp Field control device and field control method

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
US6658448B1 (en) System and method for assigning processes to specific CPU's to increase scalability and performance of operating systems
US5469571A (en) Operating system architecture using multiple priority light weight kernel task based interrupt handling
US8006247B2 (en) Multi-tasking real-time operating system for microprocessors with limited memory
US5333319A (en) Virtual storage data processor with enhanced dispatching priority allocation of CPU resources
US7810096B2 (en) Computer executing multiple operating systems
US5517643A (en) Method of allocating memory among a plurality of processes of a computer system
CN1328677C (en) Apparatus and method for initiating hardware priority managment by software controlled register access
US6473780B1 (en) Scheduling of direct memory access
US7590990B2 (en) Computer system
JP4241462B2 (en) Control unit and microcomputer
US20120226842A1 (en) Enhanced prioritising and unifying interrupt controller
CN111597044A (en) Task scheduling method and device, storage medium and electronic equipment
CA2769899C (en) Enhanced prioritising and unifying interrupt controller
JPH04367035A (en) Real time processor for plural tasks
Aburas et al. Fuzzy logic based algorithm for uniprocessor scheduling
AL-Bakhrani et al. Comparative analysis of cpu scheduling algorithms: Simulation and its applications
JPH05324569A (en) Interruption control system
JPH04367057A (en) Real-time processor for plural tasks
KR100506254B1 (en) Apparatus and method for handling interrupt in non-privileged of embedded system
JPH08329022A (en) Input/output process load decentralization control system for multiprocessor system
JPH06324888A (en) Scheduling system
CA1341568C (en) Method of memory and cpu time allocation for a multi-user computer system
JPH08314740A (en) Process dispatch method
JP2001229038A (en) Multi-operating computer system