JPH0378034A - プログラム並行実行装置 - Google Patents
プログラム並行実行装置Info
- Publication number
- JPH0378034A JPH0378034A JP21466789A JP21466789A JPH0378034A JP H0378034 A JPH0378034 A JP H0378034A JP 21466789 A JP21466789 A JP 21466789A JP 21466789 A JP21466789 A JP 21466789A JP H0378034 A JPH0378034 A JP H0378034A
- Authority
- JP
- Japan
- Prior art keywords
- task
- program
- executed
- stack
- control table
- 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
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
[発明の技術分野J
この発明は一般的にシングルタスクO3(オペレーティ
ングシステム)といわれているプログラムのもとで実行
するコンピュータ装置にお1)で、するものである、ま
た、本方式によるマルチタスクO8の構築に関するもの
である。 [発明の背景] 現在シングルタスクO8が広汎に使用されているが、そ
こで作成されるプログラムはその名の通り、直列に実行
されるものである。また、見かけは並列であるが一方は
他方が終了するまで実行できないものである。さらに、
本O8を用いて並行的に動作させるものもあるが、ジョ
ブ単位での切り替わりであり、限定されたイベントしか
取り扱えない、これらは何れも、本発明のようにリアル
タイムモニタの思想を組み込み、全イベントを有機的に
組み合わせ並行に、かつ効率よくプログラムを動作させ
るものではない。 また、本発明より動車的なリアルタイム性を備えたモニ
タプログラムは数多くあるが独自の環境下に入るなど、
リアルタイム性をそれほど必要としないプログラム開発
には使いにくいものである。 [発明の目的] それ故、この発明の目的は、ユーザの使いなれたシング
ルタスクOSコンピュータ装置内で、それほどリアルタ
イム性を必要としないが並行動作をさせたいときに、簡
単に並行処理−マルチタスク処理−を構成できる装置を
提供することにある。 [発明の構成および効果] 本発明は従来のリアルタイム型モニタの基本機能−プロ
グラムの中断、イベントの検出、タスクスケジュール、
プログラムの実行再開など−を有しているが、そのイベ
ントの検出をシングルタスクO8下でも可能なように走
査ループとしたものである。 実行中のプログラムの中断は、本モニタに関する部分に
ついてはタスクからの要求にもとづいて行われ、そのタ
スクの状態、つまりレジスターをそのタスクの専用エリ
アに退避することにより行われる。再開はそのタスクの
専用エリアのデータを復元することにより行う、タスク
の最初の実行開始はタスクの開始点を中断点とみなして
行うのが簡単である。イベントの検出はデータが入力さ
れたか、又出力されたかなど、各イベントに対応した調
査を全イベントについて走査ループで調べて、タスクが
次の処理を再開するための条件が発生していれば、その
タスクを実行可能状態とする。 タスクスケジュールはタスクの管理テーブルを調べて、
実行可能であるタスクを選択する。実行可能のタスクが
いくつかある時は通常優先レベルの高いものを選択する
。 また、あるタスクの処理が長くなる場合はタスクからの
要求により、あるいはある一定時間の処理をした後に、
本タスクの実行を中断して、池の優先度の高いタスクの
処理を行わせることが出来る。 さらに、緊急を要するときは従来のリアルタイム方式、
つまり、割り込み発生でイベントを検出して、割り込み
処理で問題となる資源の排他制御を行った後に、処理が
可能であれば、その割り込み処理を行うことによりリア
ルタイムでの応答も可能となる。なお、排他制御を必要
としないときは、リアルタイム方式と同様に直ちに応答
が出来る。 また、これにプログラムのローディング機能とジョブス
ケジュール機能を付加すればマルチジョブ・マルチタス
クのシステムが構成できる。 効果としては (1) 簡単にシングルタスクO8下で並行処理が構
築できる。並行処理により効率のよいプログラムとなる
。また、並行処理でないと使いものにならないときもあ
る。 (2) 通常の割り込み処理はシングルタスクO8が管
理しているので並行処理にともなうプログラムバグが発
生しにくい。 (3) 使いなれたO5環境下なので、プログラム開発
の向上がはかれる。
ングシステム)といわれているプログラムのもとで実行
するコンピュータ装置にお1)で、するものである、ま
た、本方式によるマルチタスクO8の構築に関するもの
である。 [発明の背景] 現在シングルタスクO8が広汎に使用されているが、そ
こで作成されるプログラムはその名の通り、直列に実行
されるものである。また、見かけは並列であるが一方は
他方が終了するまで実行できないものである。さらに、
本O8を用いて並行的に動作させるものもあるが、ジョ
ブ単位での切り替わりであり、限定されたイベントしか
取り扱えない、これらは何れも、本発明のようにリアル
タイムモニタの思想を組み込み、全イベントを有機的に
組み合わせ並行に、かつ効率よくプログラムを動作させ
るものではない。 また、本発明より動車的なリアルタイム性を備えたモニ
タプログラムは数多くあるが独自の環境下に入るなど、
リアルタイム性をそれほど必要としないプログラム開発
には使いにくいものである。 [発明の目的] それ故、この発明の目的は、ユーザの使いなれたシング
ルタスクOSコンピュータ装置内で、それほどリアルタ
イム性を必要としないが並行動作をさせたいときに、簡
単に並行処理−マルチタスク処理−を構成できる装置を
提供することにある。 [発明の構成および効果] 本発明は従来のリアルタイム型モニタの基本機能−プロ
グラムの中断、イベントの検出、タスクスケジュール、
プログラムの実行再開など−を有しているが、そのイベ
ントの検出をシングルタスクO8下でも可能なように走
査ループとしたものである。 実行中のプログラムの中断は、本モニタに関する部分に
ついてはタスクからの要求にもとづいて行われ、そのタ
スクの状態、つまりレジスターをそのタスクの専用エリ
アに退避することにより行われる。再開はそのタスクの
専用エリアのデータを復元することにより行う、タスク
の最初の実行開始はタスクの開始点を中断点とみなして
行うのが簡単である。イベントの検出はデータが入力さ
れたか、又出力されたかなど、各イベントに対応した調
査を全イベントについて走査ループで調べて、タスクが
次の処理を再開するための条件が発生していれば、その
タスクを実行可能状態とする。 タスクスケジュールはタスクの管理テーブルを調べて、
実行可能であるタスクを選択する。実行可能のタスクが
いくつかある時は通常優先レベルの高いものを選択する
。 また、あるタスクの処理が長くなる場合はタスクからの
要求により、あるいはある一定時間の処理をした後に、
本タスクの実行を中断して、池の優先度の高いタスクの
処理を行わせることが出来る。 さらに、緊急を要するときは従来のリアルタイム方式、
つまり、割り込み発生でイベントを検出して、割り込み
処理で問題となる資源の排他制御を行った後に、処理が
可能であれば、その割り込み処理を行うことによりリア
ルタイムでの応答も可能となる。なお、排他制御を必要
としないときは、リアルタイム方式と同様に直ちに応答
が出来る。 また、これにプログラムのローディング機能とジョブス
ケジュール機能を付加すればマルチジョブ・マルチタス
クのシステムが構成できる。 効果としては (1) 簡単にシングルタスクO8下で並行処理が構
築できる。並行処理により効率のよいプログラムとなる
。また、並行処理でないと使いものにならないときもあ
る。 (2) 通常の割り込み処理はシングルタスクO8が管
理しているので並行処理にともなうプログラムバグが発
生しにくい。 (3) 使いなれたO5環境下なので、プログラム開発
の向上がはかれる。
この発明の一実施例を図面に基づいて説明する。
説明は、まず第3図、4図のデータから行い、その後第
1図、2図のプログラムについて行う、ここでは、並行
処理を行うプログラムをすべてタスクと記述している。 第3図はタスク管理テーブルであり、1つのタスクにつ
いてタスクステータス13とスタックポインタ14及び
その他各種データ15があり、タスク単位に用意されて
いる。ここではn個のタスクがあるものとする。なお本
チーグルは優先レベルの高いものから順番に並べられて
いる。タスクステータス13はタスクの実行の可否の状
態を記憶している。′0′は実行不可をあられし、′1
′は実行可とする。スタックポインタ14はタスクの中
断が発生したとき、レジスタ値をスタックにしまいこん
だ後のスタックポインタの値を保存したものである。そ
の池各種データ15はタスクがタイムアツプ侍で中断し
たときのタイムカウント値、入出力完了待の時の入出カ
イベントとタスクの対応データやタスクの実行経過時間
などがある。 第4図はスタックであり、各タスクに個別に割り当てら
れている0個数はタスク数と同様にn個である。なおこ
の図ではスタックの成長方向は上方としてしする。既使
用エリア18は中断が発生する直前までタスクで使用さ
れていたエリアである。 レジスタ退避エリア17は中断が発生したときに同タス
クのスタックポインタを除く全レジスタを退避するエリ
アである。未使用エリア16は、スタックの残りの未使
用エリアである。 第1図と第2図はプログラムのフローチャートである。 第1図の処理1.2は次に実行すべきタスクを選択する
部分である。ここでは、タスク管理テーブルのタスク1
からタスクnまで順にタスクステータスを調べて、実行
可であれば処理8へ分岐する。すべて実行不可であれば
処理3へ移る。 処理3〜7がイベントを走査により検出して対応するイ
ベントの処理を行う部分である。イベント数はm個ある
ものとする。イベント1(1≦1≦m)に対して、イベ
ント1の発生処理ではタスクj(1≦j≦n)を実行可
とする処理を含んでいる。実行可とはすなわち該当タス
クのタスク管理テーブルのタスクステータス1を′1′
にすることである。タスクjの選択は明示的に行うこと
もできるし、中断処理11で間接的に示されることもあ
る。この情報はその他各種データ15に記憶されている
。処理7は、イベントの発生処理でタスクを実行可とし
た場合は処理1へ分岐し、そうでないときは再び走査を
行うために処理3へ分岐するための判断を行う部分であ
る。処理8はタスクの中断点からの再開部分である。実
行に移すタスクのタスク管理テーブルのスタックポイン
タ値をスタックポインタレジスタに復旧した後、スタッ
クエリアから他のレジスタをプログラムカウンタを最後
にして復旧する。この時点でタスクの実行が再開される
。 第2図は中断をした時のフローチャートである。 処理9ではスタックポインタを除く全レジスタをスタッ
クエリアに退避する。再開にあわせて、プログラムカウ
ンタを最初に退避しておく。処理10ではこの時点のス
タックポインタレジスタをタスク管理テーブルの対応す
るタスクのスタックポインタ2へ退避する。処理11の
中断処理はタスクからの要求によりさまざまであるが、
時間待ち、入出力待ちや他のタスクの起動などがある。 このとき、該当タスクがイベント待になるときは、対応
するタスク管理テーブルのタスクステータス1を′o′
にする。そして、必要なデータをその池各種データ3に
セットする。この後、処理12により、第1図の処理を
行うことになる。
1図、2図のプログラムについて行う、ここでは、並行
処理を行うプログラムをすべてタスクと記述している。 第3図はタスク管理テーブルであり、1つのタスクにつ
いてタスクステータス13とスタックポインタ14及び
その他各種データ15があり、タスク単位に用意されて
いる。ここではn個のタスクがあるものとする。なお本
チーグルは優先レベルの高いものから順番に並べられて
いる。タスクステータス13はタスクの実行の可否の状
態を記憶している。′0′は実行不可をあられし、′1
′は実行可とする。スタックポインタ14はタスクの中
断が発生したとき、レジスタ値をスタックにしまいこん
だ後のスタックポインタの値を保存したものである。そ
の池各種データ15はタスクがタイムアツプ侍で中断し
たときのタイムカウント値、入出力完了待の時の入出カ
イベントとタスクの対応データやタスクの実行経過時間
などがある。 第4図はスタックであり、各タスクに個別に割り当てら
れている0個数はタスク数と同様にn個である。なおこ
の図ではスタックの成長方向は上方としてしする。既使
用エリア18は中断が発生する直前までタスクで使用さ
れていたエリアである。 レジスタ退避エリア17は中断が発生したときに同タス
クのスタックポインタを除く全レジスタを退避するエリ
アである。未使用エリア16は、スタックの残りの未使
用エリアである。 第1図と第2図はプログラムのフローチャートである。 第1図の処理1.2は次に実行すべきタスクを選択する
部分である。ここでは、タスク管理テーブルのタスク1
からタスクnまで順にタスクステータスを調べて、実行
可であれば処理8へ分岐する。すべて実行不可であれば
処理3へ移る。 処理3〜7がイベントを走査により検出して対応するイ
ベントの処理を行う部分である。イベント数はm個ある
ものとする。イベント1(1≦1≦m)に対して、イベ
ント1の発生処理ではタスクj(1≦j≦n)を実行可
とする処理を含んでいる。実行可とはすなわち該当タス
クのタスク管理テーブルのタスクステータス1を′1′
にすることである。タスクjの選択は明示的に行うこと
もできるし、中断処理11で間接的に示されることもあ
る。この情報はその他各種データ15に記憶されている
。処理7は、イベントの発生処理でタスクを実行可とし
た場合は処理1へ分岐し、そうでないときは再び走査を
行うために処理3へ分岐するための判断を行う部分であ
る。処理8はタスクの中断点からの再開部分である。実
行に移すタスクのタスク管理テーブルのスタックポイン
タ値をスタックポインタレジスタに復旧した後、スタッ
クエリアから他のレジスタをプログラムカウンタを最後
にして復旧する。この時点でタスクの実行が再開される
。 第2図は中断をした時のフローチャートである。 処理9ではスタックポインタを除く全レジスタをスタッ
クエリアに退避する。再開にあわせて、プログラムカウ
ンタを最初に退避しておく。処理10ではこの時点のス
タックポインタレジスタをタスク管理テーブルの対応す
るタスクのスタックポインタ2へ退避する。処理11の
中断処理はタスクからの要求によりさまざまであるが、
時間待ち、入出力待ちや他のタスクの起動などがある。 このとき、該当タスクがイベント待になるときは、対応
するタスク管理テーブルのタスクステータス1を′o′
にする。そして、必要なデータをその池各種データ3に
セットする。この後、処理12により、第1図の処理を
行うことになる。
【図面の簡単な説明】
第1図は実行可能タスクの選択、イベントを検出するた
めの走査部及び実行の再開部分のフローチャートである
。 第2図は中断するときのフローチャートである。 第3図はタスク管理テーブルである。 第4図はスタックエリアの構成を示したものである。 「
めの走査部及び実行の再開部分のフローチャートである
。 第2図は中断するときのフローチャートである。 第3図はタスク管理テーブルである。 第4図はスタックエリアの構成を示したものである。 「
Claims (1)
- 【特許請求の範囲】 コンピュータ装置において、 実行中のプログラムを中断する手段、 コンピュータ装置の内部または外部から自動的または手
動により発生するイベントを走査により検出する手段、 検出したイベントから、対応するプログラムを実行可能
とする手段、 次に実行すべきプログラムを選択する手段、中断したプ
ログラムの中断点からの実行再開手段とを備えて、プロ
グラムの並行実行を行うことを特徴とするプログラム並
行実行装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21466789A JPH0378034A (ja) | 1989-08-21 | 1989-08-21 | プログラム並行実行装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP21466789A JPH0378034A (ja) | 1989-08-21 | 1989-08-21 | プログラム並行実行装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0378034A true JPH0378034A (ja) | 1991-04-03 |
Family
ID=16659574
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP21466789A Pending JPH0378034A (ja) | 1989-08-21 | 1989-08-21 | プログラム並行実行装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0378034A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6968552B2 (en) | 2000-12-20 | 2005-11-22 | Denso Corporation | Processor unit for executing event process in real time in response to occurrence of event |
| JP2006155225A (ja) * | 2004-11-29 | 2006-06-15 | Kyocera Corp | 携帯電話端末及びタスク管理方法並びにそのコンピュータプログラム |
-
1989
- 1989-08-21 JP JP21466789A patent/JPH0378034A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6968552B2 (en) | 2000-12-20 | 2005-11-22 | Denso Corporation | Processor unit for executing event process in real time in response to occurrence of event |
| JP2006155225A (ja) * | 2004-11-29 | 2006-06-15 | Kyocera Corp | 携帯電話端末及びタスク管理方法並びにそのコンピュータプログラム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6330583B1 (en) | Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks | |
| EP2431876B1 (en) | Method and device for exception handling in embedded system | |
| EP1031924B1 (en) | Computer executing multiple operating system | |
| KR950009688B1 (ko) | 배터리 동작형 컴퓨터 및 그의 초기화 방법 | |
| US5257372A (en) | Methods for efficient distribution of parallel tasks to slave processes in a multiprocessing system | |
| US20010034751A1 (en) | Real-time OS simulator | |
| US6324684B1 (en) | Processor having real-time execution control for debug functions without a debug monitor | |
| US4660144A (en) | Adjunct machine | |
| JP2561801B2 (ja) | プロセス・スケジューリングの管理方法およびシステム | |
| JP5678347B2 (ja) | Itシステムの構成方法、そのコンピュータプログラムおよびitシステム | |
| JPH0378034A (ja) | プログラム並行実行装置 | |
| US20100107169A1 (en) | Periodical task execution apparatus, periodical task execution method, and storage medium | |
| JPH11184828A (ja) | マルチプロセッサシステムのテスト方式 | |
| JPH064318A (ja) | エラー検出方式 | |
| JP2008204013A (ja) | スレッド動作異常検知方法、マルチスレッドシステム | |
| JP7665495B2 (ja) | プロセススケジュール方法 | |
| JPH04314141A (ja) | マルチタスク制御方法とその機構 | |
| JPH06149615A (ja) | イベント記録方式 | |
| KR100455623B1 (ko) | 멀티태스킹 운영체계에서 무한 루프 타스크 처리 방법 | |
| JP3075359B2 (ja) | プログラムデバッグ開始処理方式 | |
| TW202546636A (zh) | 超執行緒處於不同狀態下之運行信息收集系統及方法 | |
| CN121704967A (zh) | 一种中断处理方法及其装置 | |
| JPS62113238A (ja) | 電子計算機システムにおけるプログラム修正装置 | |
| JP2012043148A (ja) | 監視装置及び監視プログラム | |
| JPH0589049A (ja) | コマンド実行装置 |