JPH0447336A - Task synchronization controlling method for multi-task system - Google Patents
Task synchronization controlling method for multi-task systemInfo
- Publication number
- JPH0447336A JPH0447336A JP15327990A JP15327990A JPH0447336A JP H0447336 A JPH0447336 A JP H0447336A JP 15327990 A JP15327990 A JP 15327990A JP 15327990 A JP15327990 A JP 15327990A JP H0447336 A JPH0447336 A JP H0447336A
- Authority
- JP
- Japan
- Prior art keywords
- task
- event
- event flag
- flag
- state
- 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 claims description 32
- 230000005764 inhibitory process Effects 0.000 abstract 1
- 230000001360 synchronised effect Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Abstract
Description
この発明は1つのCPUが同時に並行して発生し得る複
数のタスクを実行するマルチタスクシステムにおけるタ
スクの同期を制御する方法に関する。
なお以下各図において同一の符号は同一もしくは相当部
分を示す。The present invention relates to a method for controlling task synchronization in a multitasking system in which one CPU executes multiple tasks that may occur in parallel at the same time. Note that in the following figures, the same reference numerals indicate the same or corresponding parts.
1つのCPUが同時に並行して発生し得る複数のタスク
を実行するマルチタスクシステムでは、複数タスク間の
同期制御を行うために、イベントフラグが用いられる。
第2図は従来のマルチタスクシステムにおける前記の同
期制御方法の例を示すパッドチャートである。同図にお
いては自タスク1は同図(A]のように、イベント待ち
31.イベントフラグリセット32自タスク1の処理4
の各処理の順に、かつこの順次の処理が永久に循環(ル
ープ)する形で実行されるものとする。また同図[Bl
は割込ハンドラ(または自タスク1より高いレベルの他
タスク)5の自タスク1に関わる処理を示す。
即ち自タスク1はイベント待ち処理(状B)31の時、
割込ハンドラ(または他タスク)5がイベントフラグの
セット処理6を行うヶするとタスク1は、前記のように
セットされたイベントフラグが条件を満たせば実行を開
始し、次の32の処理でイベントフラグのリセットを行
い、4の処理で自タスク1の実行を行った後、再びイベ
ント待ちの処理(状態)31へ戻る。この時、イベント
フラグはすでにリセットされた後なので、自タスク1は
そのままイベント待ち状態となる。In a multitasking system in which one CPU executes a plurality of tasks that may occur in parallel at the same time, event flags are used to perform synchronization control between the plurality of tasks. FIG. 2 is a pad chart showing an example of the above-mentioned synchronous control method in a conventional multitasking system. In the figure, the self-task 1 waits for an event 31, resets the event flag 32, processes the self-task 1, as shown in FIG.
It is assumed that each process is executed in this order, and this sequential process is executed in a perpetual cycle (loop). Also in the same figure [Bl
indicates processing related to the self-task 1 of the interrupt handler (or another task at a higher level than the self-task 1) 5. That is, when the invoking task 1 is in the event waiting process (condition B) 31,
When the interrupt handler (or other task) 5 performs the event flag setting process 6, task 1 starts execution if the event flag set as described above satisfies the conditions, and in the next 32 processes, the event flag is set. After resetting the flag and executing the own task 1 in the process 4, the process returns to the event waiting process (state) 31 again. At this time, since the event flag has already been reset, the self-task 1 remains in the event waiting state.
ところが第2図における割込ハンドラ(または他タスク
)5がたてつづけに2回実行され、イベントフラグのセ
ット6を行ったと考える。するとタスク1は1回目のイ
ベントフラグのセットでイベント待ち処理(状態)31
を解除されるので、この処理31を抜ける。そして次の
処理32でイベントフラグリセットを実行する前に2回
目のイベントフラグのセットが行われたとすると、2回
目にセットされたイベントフラグも32の処理でリセッ
トされてしまう。このため、タスク1は自タスク1の処
理4の後、イベント待ち処理31へ来た時、イベントフ
ラグがリセットされているので、そのままイベント待ち
状態となる。
このように、起動する側(割込ハンドラ(または他タス
ク)5)が2回実行されたのに、起動される側(自タス
ク1)は1回しか実行されず、両者の間で同期がとれな
いという問題があった。
そこで本発明はこの問題を解消できるタスクの同期制御
方法を提供することを課題とする。However, it is assumed that the interrupt handler (or other task) 5 in FIG. 2 is executed twice in succession, and the event flag is set 6. Then, task 1 sets the event flag for the first time and performs event waiting processing (state) 31.
Since this is canceled, this process 31 is exited. If the event flag is set for the second time before executing the event flag reset in the next process 32, the event flag that was set for the second time will also be reset in the process 32. Therefore, when the task 1 reaches the event waiting process 31 after the process 4 of its own task 1, since the event flag has been reset, the task 1 remains in the event waiting state. In this way, although the side that is activated (interrupt handler (or other task) 5) is executed twice, the side that is activated (self-task 1) is executed only once, and there is no synchronization between the two. There was a problem that I couldn't get it. Therefore, it is an object of the present invention to provide a task synchronization control method that can solve this problem.
前記の課題を解決するために本発明の方法は、r割込ハ
ンドラまたは他の高レベルタスク(5など)による、自
タスク(1など)を起動すべき旨のイベントフラグのセ
ットに基づいて、イベント待ちの状態(3など)から抜
け出し自タスクの処理(4など)を行うマルチタスクシ
ステムにおいて、
前記イベント待ちの状態から抜け出す際、割込禁止状態
のまま直ちに前記イベントフラグをリセットするように
1するものとする。In order to solve the above problems, the method of the present invention is based on the setting of an event flag by an r interrupt handler or other high-level task (such as 5) indicating that the self-task (such as 1) should be activated. In a multitasking system that exits from an event waiting state (such as 3) and processes its own task (such as 4), when exiting from the event waiting state, the event flag is immediately reset while interrupts are disabled. It shall be.
割込ハンドラまたはO3による高レベルタスクの割込に
基づくイベントフラグセットに基づき、イベント待ちの
状態から当該タスクの処理を開始しようとするとき、ま
ず割込禁止状態のままイベントフラグをリセットして当
該タスクの処理に入ることで、たて続けにイベントフラ
グが2回セットされても2回目のイベントフラグまで1
回目のイベントフラグと共にリセットしてしまうことが
ないようにしたものである。Based on the event flag set based on the interrupt of a high-level task by the interrupt handler or O3, when attempting to start processing of the task from the state of waiting for an event, first reset the event flag while the interrupt is disabled and wait for the corresponding task. By entering task processing, even if the event flag is set twice in succession, the event flag will be set to 1 until the second event flag.
This prevents the event flag from being reset together with the second event flag.
第1図は本発明の実施例としてのパッドチャートで、第
2図に対応するものである。第1図においては第2図に
おける処理31.32がイベントフラグリセット付のイ
ベント待ちの処理3に置換わっている。
即ちイベント待ち処理(状態)のタスク1は、割込ハン
ドラ(または他の高レベルタスク)5のイベントフラグ
のセットによって条件が成立すると、割込禁止状態のま
まで条件にあてはまるイベントフラグのビットをオフ(
1→O)にしてから、このイベント待ち処理3を抜ける
ようにする。そうすれば、割込ハンドラ(または他のタ
スク)5がたてつづけに6の処理でイベントフラグのセ
ットを行っても、タスク1は1回目のイベントフラグの
セットでイベント待ち処理3を抜けると同時にイベント
フラグをリセットし、次に2回目イベントフラグをセッ
トされても、該イベントフラグのリセット処理がないの
で、リセットしない。そしてタスク1は自タスク1の処
理4を実行後、再びイベント待ち処理3のところへ来る
が、このとき2回目のイベントフラグがすでにセットさ
れており、自タスク1の変行開始条件が成立するので、
すぐにイベント待ち処理3をぬけると同時に割込禁止状
態のままイベントフラグのリセットを行う。
2回目の自タスク1の処理4の後、再びイベント待ち処
理3のところへ来た時は、イベントフラグはリセットさ
れているので、タスク1はそのままイベント待ち状態と
なる。
このように起動する側(割込ハンドラ(またはタスク)
5)が2回実行されたのに対し、起動される側(タスク
1)も2回実行されるので、両者の間の同期がとれる。FIG. 1 is a pad chart as an embodiment of the present invention, and corresponds to FIG. 2. In FIG. 1, processes 31 and 32 in FIG. 2 are replaced with process 3 of waiting for an event with event flag reset. In other words, when a condition is met by setting the event flag of the interrupt handler (or other high-level task) 5, task 1 in the event wait processing (state) will remain in the interrupt disabled state and select the bit of the event flag that meets the condition. off(
1→O), and then exits from this event waiting process 3. That way, even if interrupt handler (or other task) 5 successively sets the event flag in process 6, task 1 will exit event waiting process 3 by setting the event flag the first time. Even if the event flag is reset at the same time and then set for the second time, it will not be reset because there is no reset processing for the event flag. After executing process 4 of self-task 1, task 1 returns to event waiting process 3, but at this time, the second event flag has already been set, and the abnormal behavior start condition for self-task 1 is satisfied. So,
Immediately exits the event waiting process 3 and at the same time resets the event flag while maintaining the interrupt disabled state. When the task 1 returns to the event wait process 3 after the second process 4 of its own task 1, the event flag has been reset, so the task 1 remains in the event wait state. The side that starts like this (interrupt handler (or task)
5) is executed twice, while the activated side (task 1) is also executed twice, so the two can be synchronized.
本発明によれば、イベント待ち状態のタスクが、イベン
トフラグをセットされて起動を開始すると同時に割込禁
止状態のままイベントフラグのリセット行うようにした
ので、
イベントフラグのセットがたてつづけに2回行われても
、タスク間の同期がとれる。According to the present invention, when a task in the event waiting state starts activation with the event flag set, the event flag is reset while the interrupt is disabled, so that the event flag is set twice in succession. Synchronization between tasks can be achieved even if the tasks are performed multiple times.
第1図は本発明の実施例としてのパッドチャート、
第2図は第1図に対応する従来のパッドチャートである
。
1:自タスク、2:永久ループ処理、3:イベントフラ
グリセット付のイベント待ち処理、4:自タスクの処理
、5:割込ハンドラまたは他タスク、6:イベントフラ
グセット処理。
第
図FIG. 1 is a pad chart as an embodiment of the present invention, and FIG. 2 is a conventional pad chart corresponding to FIG. 1. 1: Invoking task, 2: Eternal loop processing, 3: Event wait processing with event flag reset, 4: Invoking task processing, 5: Interrupt handler or other task, 6: Event flag setting processing. Diagram
Claims (1)
タスクを起動すべき旨のイベントフラグのセットに基づ
いて、イベント待ちの状態から抜け出し自タスクの処理
を行うマルチタスクシステムにおいて、 前記イベント待ちの状態から抜け出す際、割込禁止状態
のまま直ちに前記イベントフラグをリセットするように
したことを特徴とするマルチタスクシステムのタスク同
期制御方法。[Scope of Claims] 1) A multitasking system in which an interrupt handler or other high-level task sets an event flag indicating that the task should be started, and exits from a state of waiting for an event and processes the task. A task synchronization control method for a multitasking system, characterized in that when exiting from the event waiting state, the event flag is immediately reset while interrupts are disabled.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15327990A JPH0447336A (en) | 1990-06-12 | 1990-06-12 | Task synchronization controlling method for multi-task system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15327990A JPH0447336A (en) | 1990-06-12 | 1990-06-12 | Task synchronization controlling method for multi-task system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0447336A true JPH0447336A (en) | 1992-02-17 |
Family
ID=15558998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15327990A Pending JPH0447336A (en) | 1990-06-12 | 1990-06-12 | Task synchronization controlling method for multi-task system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0447336A (en) |
-
1990
- 1990-06-12 JP JP15327990A patent/JPH0447336A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0447336A (en) | Task synchronization controlling method for multi-task system | |
JPH07191863A (en) | Multitask execution managing system | |
JPH0381859A (en) | Multiprocessor system | |
JPH0683652A (en) | Microcomputer system | |
JPH1124944A (en) | Process synchronization method | |
JPH03172937A (en) | Asynchronous event processing handling device | |
JP2581327B2 (en) | Virtual machine I / O interrupt handling method | |
JPS6136850A (en) | Input and output interruption information system | |
JPH01288954A (en) | Service program execution program for multi-processor system | |
JPH02113363A (en) | Time slice controlling system for multiprocessor system | |
JPS6121532A (en) | Scheduling method | |
JPH0433105A (en) | Program supervisory device for programmable controller | |
JPS6273335A (en) | Stack control system | |
JPS63311442A (en) | Multiple operating system | |
JPH03164940A (en) | Computer having plural interruption periods | |
JPH02146657A (en) | Data transfer method | |
JPH0778091A (en) | Multitask managing method | |
JPH03116335A (en) | System for transferring from non-privileged cpu to privileged cpu | |
JPH01193948A (en) | System for controlling data transfer | |
JPH01216432A (en) | Multitask system | |
JPH061466B2 (en) | Lock exclusive control method | |
JPS6242240A (en) | Information processor | |
JPS62174865A (en) | Plural cpu systems | |
JPH0934729A (en) | Dispatcher control system | |
JPS61173367A (en) | Microcomputer switching circuit |