JPH04367035A - Real time processor for plural tasks - Google Patents
Real time processor for plural tasksInfo
- 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
Links
- 230000013016 learning Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 abstract description 11
- 230000008859 change Effects 0.000 abstract description 8
- 238000000034 method Methods 0.000 abstract description 5
- 230000004043 responsiveness Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 abstract description 3
- 230000004044 response Effects 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000008521 reorganization Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012913 prioritisation Methods 0.000 description 2
- 238000007616 round robin method Methods 0.000 description 2
- 230000035045 associative learning Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
Abstract
Description
【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.
【図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.
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)
れた優先順位を記憶するタスク優先順位記憶手段と、タ
スク優先順位記憶手段の記憶内容を参照して優先順位の
高いタスクを優先順位の低いタスクよりも先に実行し、
同一優先順位のタスクは所定の順序で循環的に実行する
実行タスク切換手段とを備える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.
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)
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 |
-
1991
- 1991-06-14 JP JP14361191A patent/JPH04367035A/en active Pending
Cited By (3)
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 |