JPS6339042A - マルチタスクのタスク間同期方式 - Google Patents

マルチタスクのタスク間同期方式

Info

Publication number
JPS6339042A
JPS6339042A JP18361986A JP18361986A JPS6339042A JP S6339042 A JPS6339042 A JP S6339042A JP 18361986 A JP18361986 A JP 18361986A JP 18361986 A JP18361986 A JP 18361986A JP S6339042 A JPS6339042 A JP S6339042A
Authority
JP
Japan
Prior art keywords
task
semaphore
priority
processing
tasks
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
JP18361986A
Other languages
English (en)
Inventor
Hajime Sakuma
肇 佐久間
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP18361986A priority Critical patent/JPS6339042A/ja
Publication of JPS6339042A publication Critical patent/JPS6339042A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、プログラムを細かい処理単位のタスクに分割
してCPU (中央処理装置)を時分割に割当てて動作
される処理方式のマルチタスキングを支援する処理装置
におけるタスク間同期方式に関するものである。
〔従来の技術〕
一般に、マルチタスキングにおいては、複数のタスクが
各々の優先順位に応じてCPUを時分割に専有して動作
する。通常、このようなマルチタスキングを実現するた
めには、オペレーティングシステム、またはモニタなど
と呼ばれる基本ソフトウェアが介在し、このオペレーテ
ィングシステム(以下O8)が各々のタスクからの処理
要求(以下システムコール)や割込の管理を行ないなが
ら複数のタスクが矛盾なく動作するように全体の制御を
行なっている。この制御は、普通ソフトウェア若しくは
マイクロプログラムなどのファームウェアで実現されて
いる。このマルチタスキングにおいて、複数のタスクが
矛盾なく動作するためにタスクには幾つかのタスク状態
というものがある。
ある−瞬の時刻をとってみると、CPUを専有して走行
しているタスクは唯一で、これをラン状態と呼び、この
ラン状態に遷移することは可能であるが優先順位の関係
でラン状態に移れないで待機している状態をレディ状態
と呼び、またO8に対しシステムコールを発行したが要
求が満足されない状態はウェイト状態となる。これらの
状態遷移は、O8が管理し適宜各タスクの状態を変化さ
せシステム全体が正常に稼働する様に制御している。
従来の単一プログラムとは異なるマルチタスキングにお
いては、数々の注意を要する現象が存在する。例えば、
複数のタスクが同一のメモリや入出力装置(以下I10
という)を共有している場合、あるタスクが共有のメモ
リまたはIloを利用中に制御が他のタスクに移り、そ
のタスクが共有メモリまたはIloを使用したとすると
、以前に動作していたタスクにより操作されていたメモ
リのデータやIloの状態が破壊される可能性が出てく
る。
この場合、また元のタスクに制御が移った時、正常に動
作することが出来ない。この様な現象を回避するための
手段として、一般的にO8はタスク間同期機構を有して
いる。
このタスク間同期機構には数々の方式があるが、ここで
はタスク閏同期用フラグ(以下セマフォという)につい
て説明する。
第4図は一般のセマフォを用いたタスク間の同期方式の
一例を示す構成図である。本例では、読出しIloを含
むタスクA、書込みIloを含むタスクBの2個のタス
ク21.22がI 、1020を共有し、優先順位はタ
スクBの方が高いとする。図中、P (S)はシステム
コールの1つでセマフォに対してセマフォの専有を要求
するものであり、V(S)はセマフォに対してセマフォ
の解放を要求するものである。
第5図はこのシステムコールP (S)の処理を説明す
る流れ図である。ステップ31でO8はセマフォがON
が否かを判定検知し、このセマフォがONでなくOFF
状態であれば、ステップ32でセマフォをONにする。
この場合、このシステムコールを発行したタスクは要求
を満足したことになる。また、セマフォが既にONであ
れば、ステップ33でシステムコールを発行したタスク
はこの時点の状態を一旦退避し、ステップ34でラン状
態からウェイト状態へ遷移する。このようにタスクは、
しばしばある時点の状態を保持し実行を中断する場合が
ある。
この状態を退避するための空間を、タスクコントロール
ブロック(以下TCB)と呼び、このTCB構成は、第
3図の一部、に示される。通常、TCBIo、11はメ
モリ上に確保され、タスク毎にTCBも1つずつ存在す
る。このT(、BIOは制御部12と、退避エリア13
とがらなり、制御部12はO8がタスクを管理するため
に予約している空間、退避エリア13はタスクが中断す
る際走行中のプログラムの状態、Iloの状態を退避す
るため空間である。
O8はシステムコール発行タスクを中断させ、ステップ
34でウェイト状態に遷移させた後、次にステップ35
でラン状態にすべきタスクを選択し、そのタスクに制御
を渡すことによりP(S)の処理を終了する。
第6図は同様にもう一方のシステムコール■(S)の処
理を示す流れ図である。まず、O8はステップ36でセ
マフォに対して待っているタスクが在るか否かを判定し
、この待ちタスクがなければ、ステップ37でセマフォ
をOFFして処理を終了する。もし、待ちタスクが存在
していればステップ38で待ちタスク内の1つのタスク
を選択し、タスク状態をウェイト状態からレディ状態に
遷移させ、次に、ステップ39でラン状態にするタスク
を選択して処理を終る。
第4図におけるタスクAは、I 1020からの読出し
処理21を行ない、タスクBはIloへの書込み処理2
2を行なう。先ず、タスクAが走行し、セマフォの専有
要求システムコールP(S>を発行し、I 1020か
らの読出し処理21に入る。この読出し処理21中に割
込みが入り、タスクBが起動されたとすると、タスクB
は書込み処理22を実行しようとしてP (S)を発行
する。
この場合、セマフォは既にタスクAにより専有されてい
るため、タスクBはウェイト状態に遷移し、O8は再び
タスクAを選択し、タスクAは読出し処理21を継続す
る。この読出し処理21の終了後システムコールV(S
)を発行すると、セマフォは解放され、セマフォに対し
て待っているタスクBがセマフォを専有し、ウェイト状
態からレディ状態へ遷移する。O8は、次にタスクBを
選択しラン状態にすることでタスクBに制御が移り、タ
スクBは書込み処理22に移ることができる。このタス
クBは書込み処理22の終了後、システムコールV (
S)を発行してセマフォを解放し他のタスクが新たにセ
マフォを専有することを可能とする。
第7図(a)は以上のプロセスの説明をしたタイムチャ
ートで、横軸を時間、縦軸はタスクA。
タスクB、I10の各処理を示している。横軸の点線は
起動を受けていない状態か、又はウェイト状態を表わし
、縦軸の点線は処理の流れの対応を表わし、実線はCP
U又はIloの処理を表わしている。
以上説明したように同期機構を利用することで読出し処
理21の動作中に書込み処理22の動作を実行したり、
又その逆の動作を行なったりすることにより生じる誤動
作を防ぐことが出来る。一般に、この種のマルチタスキ
ングを支援しているO8には同期機構が備えられている
。マニュアルriRMX86  NUCLEUS  R
EFERENCE  MANUA’L、参照。
〔発明が解決しようとする問題点〕
上述したようにタスク間の同期をとるためにセマフォを
利用するわけであるが、一度セマフォが専有されると、
そのセマフォが解放されるまでいかなるタスクもシステ
ムコールP (S>を使用することにより、ウェイト状
態となり動作することが出来ない、マルチタスキングに
おいて、タスクには優先順位があり、優先順位の高いタ
スクが先に実行権を得て動作することを期待してプログ
ラムを組む、しかし、マルチタスキングシステムにおい
て、各タスクの実行順序を細部までおさえることは困難
であり、優先順位の高いタスクの処理がシステムコール
P(S)を発行することで保留され、優先順位の低いタ
スクの処理に左右され、結果的に処理の順番が遅れると
いう欠点を有している。
本発明の目的は、このような欠点を除き、優先度の高い
タスクの処理を優先して行い、処理の順番の遅れをなく
したマルチタスクのタスク間同期方式を提供することに
ある。
〔問題点を解決するための手段〕
本発明の構成は、プログラムを各処理単位のタスクに分
割して中央処理装置を時分割に割当てて処理するマルチ
タスク処理がタスク間同期フラグを管理するフラグ管理
手段により各タスク間の同期をとりながら行われるタス
ク間同期方式において、前記フラグ管理手段を専有して
いるタスクに関する情報を保持する専有タスク管理手段
と、前記フラグ管理手段への専有要求がタスクから出さ
れた時、そのタスクの優先順位と前記専有タスク管理手
段に含まれる前記フラグ管理手段を専有しているタスク
の優先順位とを比較する比較手段と、前記専有要求を行
ったタスクの優先順位が前記専有タスクの優先順位より
も高い場合前記中央処理装置に割込信号を出力する割込
制御手段とを含むことを特徴とする。
〔実施例〕
次に、本発明について図面により詳細に説明する。
第1図は本発明の一実施例のブロック図である。図にお
いて、lは中央処理装置(CPU)、2はセマフォ専有
タスク管理部、3はセマフォ部、4はアドレス生成部、
5はフラグ部、6はセマフォ管理部、7は比較器、8は
割込管理部を示す。セマフォ部3はセマフォを8個備え
ており、セマフォ専有タスク管理部2はセマフォ部3の
各セマフォに対応し、各セマフォを専有しているタスク
の優先順位とTCBへのポインタとを備えている。アド
レス生成部4はセマフォ専有タスク管理部2の内1つを
選択するためのアドレスを発生する。セマフォ管理部6
はCPUIからの指令でセマフォ部3を管理し、アドレ
ス生成部4を制御しアドレスを発生させ、フラグ部5に
フラグをセットする機能を有している。比較器7はCP
U1から与えられたタスクの優先順位情報とセマフォ専
有タスク管理部2の優先順位情報を比較し、比較結果の
信号を発生させる。割込管理部8は前記信号を受けて、
CPUIに対し割込信号を発生させる。
第2図は本実施例を動作させるための処理アルゴリズム
のタスクがO8に対しシステムコールP(S)を発行し
た場合の流れ図を示している。P(S)の処理に入ると
、CPUIはセマフォ管理部6へ指令を出す。セマフォ
管理部6はステップ41でセマフォ部3の指定されたセ
マフォを判定し、OFF状態であればステップ42で指
定されたセマフォをONとし、フラグ部5のフラグをO
Nとして処理を終了する。CPUIはフラグ部5のフラ
グ状態を判定することでセマフォに対する専有要求が満
足されたか否かを判断し、フラグ部5がONであればO
FF状態とする。
セマフォ部3の指定されたセマフォがONであれば、セ
マフォ管理部6はアドレス生成部4に対しアドレスを発
生する様に指令を送る。アドレス発生部4は指令に応じ
てセマフォ部3の情報を元にセマフォ専有タスク管理部
2の内対応するタスク情報を選択するためのアドレスを
発生する。比較器7はセマフォ専有タスク管理部2から
出力される優先順位情報とCPUIから発生するシステ
ムコールP (S)を発行したタスクの優先順位とをス
テップ44で比較し、システムコールP(S)を発行し
たタスクの優先順位の方が高い場合、その旨を割込管理
部8に通知するための信号を発生し、割込管理部8はC
PUIに対して割込信号を発生する。CPUIが割込を
発生した場合には、ステップ45でシステムコールP 
(S)を発行したタスクをラン状態からウェイト状態に
遷移させ、次に、ステップ46でラン状態にするタスク
を選択する。
割込処理に入った場合、CPUIはステップ47でセマ
フォ専有タスク管理部2中のTCBポインタからTCB
のアドレスを得て、I10処理を中断し、その時点のプ
ログラム状態と、I10処理を中断したことを記憶して
いるための情報をTCBの退避エリアに退避する。
第3図は第1図のセマフォ専有タスク管理部2とTCB
Io、11との関係を表わした図である。セマフォ専有
タスク管理部2のTCBポインタはメモリ上の対応する
TCBを指し示している。CPU1は、TCBポインタ
によりメモリ上に存在するTCBIOの位置を知ること
ができる。CPUIはセマフォを専有していたタスクを
中断させ、中断時の状態をTCBの退避エリアに退避し
た後、ステップ48でもしそのタスクがレディ状態であ
るならばウェイト状態に遷移させた後、次にステップ4
9でラン状態にするタスクを選択する。
本実施例は、セマフォが8個の場合で説明したが、シス
テムの規模に応じて数を増やすことも可能であり、また
セマフォ専有タスク管理部2の情報としてTCBポイン
タではなく、タスクを識別するための識別子を用いても
よい。
第7図(b)は本実施例の各タスク及びIloの処理を
時間の流れで表したタイムチャートであり、第7図(a
)と同様の条件で比較をしている。先ず、タスクAがシ
ステムコールP (S)を発行することでIloを専有
し、I10処理中タスクBに制御が移り、タスクBがシ
ステムコールP(S)を発行すると、タスクBの方が優
先順位が高いためタスクAのI10処理が中断され、タ
スクBがセマフォを専有し、I10処理を行なう。この
I10処理の終了後、タスクBがシステムコールV(S
)を発行することでタスクAは再びセマフォを専有し、
I /’○処理を再実行することができるようになる。
これら第7図(a)。
(b)を比較すれば理解できるように、優先順位の高い
タスクBの処理を優先させ、しかも同期機構を壊さず動
作させることで、優先順位の高いタスクが目的の処理を
早く行なうことが可能となる。なお、図中のΔはタスク
の終了を表わしている。
以上のことを優先順位の低いタスクAの読出し処理が優
先順位の高いタスクBの書込み処理に先行した場合を想
定すると、従来の方式では本来優先順位の高いタスクB
により書き込まれていなければならない情報は保留され
、先行した読出し処理により、一度は旧I10情報が読
み出される無駄な読み出し処理が1凹入ることになり、
読出し処理を行うタスクAljlで読み出し情報の新旧
を判定する操作を場合によっては付加しなければならな
い。これに対し、本発明による方式においては、タスク
Aの読出し処理を一時中断させ、タスクBの書込み処理
実行後にタスクAの読出し処理を再実行することになる
。従って、処理が重なった場合、優先順位の高い処理が
必らず優先され、書込み処理は既に書き込まれ、?:最
新情報を読み出すことができる。
〔発明の効果〕
以上説明したように本発明のタスク間同期方式によれば
、マルチタスキングシステムを組む場合、各タスクの処
理順位を細部に渡り把握する必要がなく、タスクの優先
順位を管理するだけでI10処理が絡む場合でも優先順
位の高いタスクの処理を優先させることができ、プログ
ラムの組み易さは格段に向上する。また、セマフォ専有
タスク管理部や比較手段などを備えることにより、タス
ク間の同期機構を実行するO8の構造が簡略になり、O
8設計に対しても非常に大きな効果がある。
以上説明したように、本発明は、セマフォに対する専有
システムコールがO8に対し発行された場合、発行した
タスクの優先順位とセマフォ専有タスクの優先順位を比
較することにより、システムコール発行タスクの優先順
位の方が高かった場合にはセマフォ専有タスクを中断さ
せ、中断時の状態を退避させ、システムコール発行タス
クがセマフォ専有することを可能にすることで優先順位
の高いタスクがより早くセマフォを専有しI10処理を
行なえるようにできる。すなわち、同期機構を壊さずに
動作できると共に優先順位の高いタスクが目的の処理を
早く行うことができる。
【図面の簡単な説明】
第1図は本発明の一実施例のブロック図、第2図は本実
施例のシステムコールP(S>の処理を説明する流れ図
、第3図は第1図のセマフォ専有タスク管理部2とタス
クコントロールブロック(TCB)との関係を示すメモ
リ配置図、第4図は従来のタスク間の同期の一例を示す
構成図、第5図、第6図は第4図のシステムコールp 
(s)およびV(S)の処理を示す流れ図、第7図(a
)、(b)は従来例および本実施例のタスク間同期を表
したタイムチャートである。 1・・・CPU、2・・・セマフォ専有タスク管理部、
3・・・セマフォ部、4・・・アドレス生成部、5・・
・フラグ部、6・・・セマフォ管理部、7・・・比較器
、8・・・割込管理部、10.11・・・タスクコント
ロールブロック(TCB)、12・・・制御部、13・
・・退避エリア、20・・・l101,21.22・・
・タスクA。 B、31〜38.41〜49・・・ステップ。 。2o  δ

Claims (1)

    【特許請求の範囲】
  1. プログラムを各処理単位のタスクに分割して中央処理装
    置を時分割に割当てて処理するマルチタスク処理がタス
    ク間同期フラグを管理するフラグ管理手段により各タス
    ク間の同期をとりながら行われるタスク間同期方式にお
    いて、前記フラグ管理手段を専有しているタスクに関す
    る情報を保持する専有タスク管理手段と、前記フラグ管
    理手段への専有要求がタスクから出された時、そのタス
    クの優先順位と前記専有タスク管理手段に含まれる前記
    フラグ管理手段を専有しているタスクの優先順位とを比
    較する比較手段と、前記専有要求を行ってタスクの優先
    順位が前記専有タスクの優先順位よりも高い場合前記中
    央処理装置に割込信号を出力する割込制御手段とを含む
    ことを特徴とするマルチタスクのタスク間同期方式。
JP18361986A 1986-08-04 1986-08-04 マルチタスクのタスク間同期方式 Pending JPS6339042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18361986A JPS6339042A (ja) 1986-08-04 1986-08-04 マルチタスクのタスク間同期方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18361986A JPS6339042A (ja) 1986-08-04 1986-08-04 マルチタスクのタスク間同期方式

Publications (1)

Publication Number Publication Date
JPS6339042A true JPS6339042A (ja) 1988-02-19

Family

ID=16138944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18361986A Pending JPS6339042A (ja) 1986-08-04 1986-08-04 マルチタスクのタスク間同期方式

Country Status (1)

Country Link
JP (1) JPS6339042A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247652A (en) * 1975-10-15 1977-04-15 Toshiba Corp Control method of data transmission
JPS5999553A (ja) * 1982-11-29 1984-06-08 Nec Corp 割込制御方式
JPS59218531A (ja) * 1983-05-27 1984-12-08 Hitachi Ltd 情報処理装置
JPS60557A (ja) * 1983-06-17 1985-01-05 Fujitsu Ltd Dma制御方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5247652A (en) * 1975-10-15 1977-04-15 Toshiba Corp Control method of data transmission
JPS5999553A (ja) * 1982-11-29 1984-06-08 Nec Corp 割込制御方式
JPS59218531A (ja) * 1983-05-27 1984-12-08 Hitachi Ltd 情報処理装置
JPS60557A (ja) * 1983-06-17 1985-01-05 Fujitsu Ltd Dma制御方式

Similar Documents

Publication Publication Date Title
JP3557947B2 (ja) 複数のプロセッサで同時にスレッドの実行を開始させる方法及びその装置並びにコンピュータ可読記録媒体
CN103729480B (zh) 一种多核实时操作系统多个就绪任务快速查找及调度方法
JPH0640324B2 (ja) マルチプロセッサ・システムおよびそのプロセス同期方法
US20010034751A1 (en) Real-time OS simulator
US6769121B1 (en) Program execution device and process migrating method thereof and storage medium which stores process migration control program
JP5131269B2 (ja) マルチプロセッシングシステム
JP2006146758A (ja) コンピュータシステム
JPS6339042A (ja) マルチタスクのタスク間同期方式
JP2693916B2 (ja) タスクスケジュール方法
JPH10289114A (ja) マルチタスク制御方法、マルチタスク制御プログラムを記録した記録媒体、およびマルチタスク制御プログラムを組み込んだ電子機器
JP2001154872A (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JPH08249269A (ja) Dma転送制御方法及びdma転送制御装置
JPH1185673A (ja) 共有バスの制御方法とその装置
JPH10111857A (ja) マルチプロセッサ
JP2010026575A (ja) スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム
JPH11306149A (ja) 並列演算処理装置およびその方法
JP2571260B2 (ja) 論理時計による動作環境選択処理方式
JPS60252977A (ja) 情報処理装置
JPH08297585A (ja) オペレーティングシステムによるデータ転送方法
JPS62221041A (ja) 仮想計算機システムにおけるデイスパツチ制御装置
JPH11306037A (ja) 並列演算処理装置およびその方法
JPH0348538B2 (ja)
JPH09265446A (ja) バス制御装置
JPH0820962B2 (ja) 高級言語処理方法
JPH0376497B2 (ja)