JP2000112774A - プログラム制御システムの制御装置 - Google Patents
プログラム制御システムの制御装置Info
- Publication number
- JP2000112774A JP2000112774A JP10287508A JP28750898A JP2000112774A JP 2000112774 A JP2000112774 A JP 2000112774A JP 10287508 A JP10287508 A JP 10287508A JP 28750898 A JP28750898 A JP 28750898A JP 2000112774 A JP2000112774 A JP 2000112774A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- management table
- mutex
- time
- synchronization object
- 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.)
- Granted
Links
Abstract
ッドの受付順にその処理を実行する。 【解決手段】 少なくともスレッドのオペレーティング
システムによる受付時間を記憶する管理テーブルを設
け、スレッドを実行するのに先立って、管理テーブルに
アクセスする第1の同期オブジェクトを取得して少なく
ともスレッド受付時間を管理テーブルに書込んで第1の
同期オブジェクトを開放し、そのスレッドの処理を実行
するための第2の同期オブジェクトを取得し、管理テー
ブルを参照することにより、そのスレッドが最早受付時
間のものか否かを判断し、最早受付時間のものでないと
判断した場合は第2の同期オブジェクトを開放し、最早
受付時間のものであると判断した場合はそのスレッドの
処理を実行してから第2の同期オブジェクトを開放す
る。
Description
能を備えたプログラム制御システムの制御装置に関す
る。
装置)、このCPUが各部を制御するためのプログラム
データなどを記憶したROM(リード・オンリ・メモ
リ)、CPUが行う各種データ処理のために使用される
メモリエリア等を設けたRAM(ランダム・アクセス・
メモリ)、アプリケーションプログラムなどを記憶した
ハードディスク装置等を備え、オペレーティングシステ
ム(OS)、その上で稼働するアプリケーションプログ
ラム、これらオペレーティングシステムとアプリケーシ
ョンプログラムとのインタフェースであるアプリケーシ
ョンプログラムインタフェース(API)によりプログ
ラム制御システムを構成する。
のタスクを同時に処理実行可能なマルチタスク機能、こ
のマルチタスク機能を実行するときに1つのプログラム
を個々のタスクを表す単位(スレッド)に細分化して複
数のスレッドを同時に実行させるマルチスレッド機能を
備えるものがある。
能である」とはいっても、1つのCPUが実行できる命
令は1個だけである。つまり、マルチスレッドというの
は、タイマ割込を使ってCPUに割込みをかけて他のル
ーチンへ実行を移している。これを定期的に行えば、ユ
ーザー側から見れば、複数のルーチンが並行して走って
いるかのように見える。
ルチタスク機能、マルチスレッド機能をアプリケーショ
ンからの要求によって実行させる場合において、ログ書
込みなどのように1つのスレッドが処理中の際に複数の
スレッドがオペレーティングシステムに受付けられて
(CPU時間を割当てられて)ウエイトした場合、次に
実行権限が与えられるスレッドの選択はオペレーティン
グシステムの判断に依存していた。つまり、オペレーテ
ィングシステムが自動的にスレッドの実行を次々に切替
えるようになっていた。
ログラム制御システムの制御装置においては、1つのス
レッドが処理中の際に他の複数のスレッドがウエイトし
た場合、オペレーティングシステムによって次の実行権
限が与えられるので、一番早く要求を出したものが先に
処理されるとは限られず、大きなタイムラグが発生する
おそれがあるという問題があった。
って実行要求が発生した順番通りにその処理を実行でき
るプログラム制御システムの制御装置を提供しようとす
るものである。
なくともマルチスレッド機能及びあるスレッドによって
ある範囲のコードを実行中に他のスレッドがアクセスで
きないようにする同期オブジェクトに対応する機能を有
するオペレーティングシステムを備えたプログラム制御
システムの制御装置において、少なくともスレッドがオ
ペレーティングシステムから受付けられた時間を記憶す
る管理テーブルを設け、スレッドを実行するのに先立っ
て、管理テーブルにアクセスする第1の同期オブジェク
トを取得して少なくともスレッドの受付時間を管理テー
ブルに書込んで第1の同期オブジェクトを開放し、その
スレッドの処理を実行するための第2の同期オブジェク
トを取得し、管理テーブルを参照することにより、その
スレッドが最早受付時間のものか否かを判断し、最早受
付時間のものでないと判断した場合は第2の同期オブジ
ェクトを開放し、最早受付時間のものであると判断した
場合はそのスレッドの処理を実行してから第2の同期オ
ブジェクトを開放することを特徴とするプログラム制御
システムの制御装置である。
を参照して説明する。図1は、本実施の形態にかかる制
御装置の構成を示すブロック図で、1は制御部本体を構
成するCPU(中央処理装置)、2は上記CPU1が各
部を制御するためのプログラムデータなどを記憶したR
OM(リード・オンリ・メモリ)、3は上記CPU1が
行う各種データ処理のために使用されるメモリエリア等
を設けたRAM(ランダム・アクセス・メモリ)、4は
アプリケーションプログラムなどを記憶したハードディ
スク装置(HDD)、5は所望の情報を表示するディス
プレイ、6はユーザーが各種のキー操作を行うためのキ
ーボードである。
おけるプログラム制御システムの構成を示す図で、11
はオペレーティングシステム(OS)、12はアプリケ
ーションプログラム本体13とそれに付属する複数のフ
レーム14からなるアプリケーションプログラム、15
はオペレーティングシステム11とその上で稼働するア
プリケーションプログラム12とのインタフェースとし
て機能するアプリケーションプログラムインタフェース
(API)である。
プロセス、マルチスレッドアプリケーション間において
グローバルな共有メモリを提供するメモリマネージャ1
4a、レジストリにアクセスする際に使用するレジスト
リアクセスクラス14b、ログに対する管理と制御を行
うログマネージャ14c、その他メッセージのやり取り
を行うメッセージハンドラなどがある。
合において、通常アプリケーションに付随する部分であ
るフレーム14は開発時に同時に行うのではなく、予め
再利用性を考慮してアプリケーション12から切離せる
部分だけを切出してアプリケーション本体13に先行し
て又は並行して開発する。本実施の形態では、特にこの
アプリケーション開発時には必要不可欠なログに対する
管理と制御を取りまとめるログマネージャ14cについ
て本発明を適用した場合について説明する。
ション本体13に対し、ログ書込みを行う関数を提供
し、アプリケーション本体13はこの関数によってのみ
ログを出力することができる。
13によってログ書込み要求が発生した場合、ログマネ
ージャ14cに基づいて図3に示すような処理を行うよ
うになっている。なお、この処理は、メモリマネージャ
14a、レジストリアクセスクラス14bなどのフレー
ムをも利用しながら実行するものでもよく、またログマ
ネージャ14cのみに基づいて実行するものでもよい。
システムタイムを取得し、ST2にて後述の管理テーブ
ルを排他的に実行する権限である第1の同期オブジェク
トとしての第1のミューテックス(Mutex ;MUTually E
Xclusiveの略)の取得待ちとなる。ここでいう管理テー
ブルは、図4に示すように発生したログ書込み要求のス
レッドごとにそのスレッドの状態を示すチェックフラ
グ、スレッドのID、スレッドがオペレーティングシス
テム11から受付けられたとき(オペレーティングシス
テム11からCPU時間を割当てられたとき)のシステ
ムタイムを記憶したものである。このチェックフラグと
しては、「00」はテーブルエントリなしであることを
意味し、「01」はテーブルエントリ中であることを意
味し、「02」はテーブル内最早要求であることを意味
する。なお、上記管理テーブルは、例えばRAM3など
のメモリやHDD4などに記憶する。
期オブジェクトと呼ばれるものの1つで、あるスレッド
によってある範囲のコードを実行中に他のスレッドがア
クセスできないようにするオペレーティングシステム1
1のもつ機能の1つである。システムの相互排他という
こともある。このミューテックスはアプリケーションプ
ログラムインタフェース15で作成することができる。
なお、ミューテックスを使用する場合は、予めその旨を
宣言しておく必要がある。このような機能を利用する場
合は、先ずミューテックスを取得し、処理が終了したら
ミューテックスを開放する。そうしなければ、他のスレ
ッドが永遠に止ってしまうおそれがあるからである。
たと判断した場合は、ST3にてチェックフラグはテー
ブルエントリ中の「01」に変更し、そのスレッドのI
D及びST1で取得したシステムタイムを管理テーブル
に書込んで、ST4にて管理テーブルの第1のミューテ
ックスを開放する。
第2の同期オブジェクトとしての第2のミューテックス
(ログをファイルに書込む処理を排他的に実行する権
限)の取得待ちとなる。ST5にて第2のミューテック
スを取得したと判断した場合は、ST6にて管理テーブ
ルのシステムタイムにより最早受付時間をチェックす
る。
スレッドが最早受付時間のIDと一致するか否かを判断
する。ST7にてIDが一致しないと判断した場合は、
ST8にて第2のミューテックスを開放してST5の処
理に戻り、IDが一致したと判断した場合は、ST9に
てログ出力を行う。具体的には、例えばメモリマネージ
ャなどを利用してログをRAM3又はHDD4のファイ
ルに書込む。次に、ST10にて第2のミューテックス
を開放し、実行したスレッドのチェックフラグを「0
0」にセットしてこの処理を終了する。
グ出力の要求があった場合に、ミューテックスの機能を
利用してスレッドの実行状況やスレッドがオペレーティ
ングシステム11から受付けられたときのシステムタイ
ムを管理テーブルに記憶しておき、そのスレッドを実行
するときに上記管理テーブルを参照することにより、最
も早く受付けられたスレッドから順にログ書込みの処理
を行うことができる。これにより、いわゆる先入れ先出
し方式によるログ書込みを行うことができるため、単一
のログファイルへの書込みが競合することを防止できる
とともに、複数のプロセスやスレッドによるログ書込み
要求に対応できる。従って、本実施の形態によれば、ア
プリケーション本体13によって実行要求が発生した順
番通りにその処理を実行できる。
ャ14cのプログラムによってオペレーティングシステ
ム11の機能を利用して実行するので、アプリケーショ
ン本体とログマネージャ14cとを切離して開発するこ
とができるため、近年におけるアプリケーション開発に
おけるコンポーネント化、共通化、再利用性などの要求
に対応することができる。
グ出力要求によるスレッドについてオペレーティングシ
ステム11から受付けられた順番に処理を実行できる場
合について述べたが、必ずしもこれに限定されるもので
はなく、他の要求によるスレッドについて受付られた順
番に処理を実行する場合に適用してもよい。
ルチスレッド機能を利用する場合に、スレッドがオペレ
ーティングシステムから受付けられると、第1の同期オ
ブジェクトを利用しながらスレッド受付時間を管理テー
ブルに書込み、そのスレッドを実行する第2の同期オブ
ジェクトを取得したときは、管理テーブルを参照するこ
とにより、そのスレッドが最早受付時間のものか否かを
判断し、最早受付時間のものでないと判断した場合は第
2の同期オブジェクトを開放し、最早受付時間のもので
あると判断した場合はそのスレッドの処理を実行してか
ら第2の同期オブジェクトを開放するようにしたので、
最も早く受付けられたスレッドから順に実行できる。従
って、アプリケーションによって実行要求が発生した順
番通りにその処理を実行できる。
示すブロック図。
の構成を説明する図。
用する場合のスレッド受付時の処理を示す図。
図。
Claims (1)
- 【請求項1】 少なくともマルチスレッド機能及びある
スレッドによってある範囲のコードを実行中に他のスレ
ッドがアクセスできないようにする同期オブジェクトに
対応する機能を有するオペレーティングシステムを備え
たプログラム制御システムの制御装置において、少なく
ともスレッドがオペレーティングシステムから受付けら
れた時間を記憶する管理テーブルを設け、スレッドを実
行するのに先立って、前記管理テーブルにアクセスする
第1の同期オブジェクトを取得して少なくともスレッド
の受付時間を前記管理テーブルに書込んで第1の同期オ
ブジェクトを開放し、そのスレッドの処理を実行するた
めの第2の同期オブジェクトを取得し、前記管理テーブ
ルを参照することにより、そのスレッドが最早受付時間
のものか否かを判断し、最早受付時間のものでないと判
断した場合は第2の同期オブジェクトを開放し、最早受
付時間のものであると判断した場合はそのスレッドの処
理を実行してから第2の同期オブジェクトを開放するこ
とを特徴とするプログラム制御システムの制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28750898A JP3764282B2 (ja) | 1998-10-09 | 1998-10-09 | プログラム制御システムの制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28750898A JP3764282B2 (ja) | 1998-10-09 | 1998-10-09 | プログラム制御システムの制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000112774A true JP2000112774A (ja) | 2000-04-21 |
JP3764282B2 JP3764282B2 (ja) | 2006-04-05 |
Family
ID=17718257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28750898A Expired - Fee Related JP3764282B2 (ja) | 1998-10-09 | 1998-10-09 | プログラム制御システムの制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3764282B2 (ja) |
-
1998
- 1998-10-09 JP JP28750898A patent/JP3764282B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP3764282B2 (ja) | 2006-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10261813B2 (en) | Data processing system for dispatching tasks from a plurality of applications to a shared resource provided by an accelerator | |
JP4709469B2 (ja) | スレッドを明示的に中断することなく整合状態とする方法及び装置 | |
TWI267782B (en) | Deallocation of computer data in a multithreaded computer | |
JP2005516281A (ja) | 多重処理環境における処理の実行 | |
TWI493466B (zh) | 控制硬體裝置的方法及其裝置 | |
US20060277551A1 (en) | Administration of locks for critical sections of computer programs in a computer that supports a multiplicity of logical partitions | |
US20110126208A1 (en) | Processing Architecture Having Passive Threads and Active Semaphores | |
JPH0628053B2 (ja) | マルチプロセッサシステムの資源の割当制御方法 | |
US5893157A (en) | Blocking symbol control in a computer system to serialize accessing a data resource by simultaneous processor requests | |
JP2004522234A (ja) | 仮想スレッドを介したコンピューター多重タスク | |
JP2004288162A (ja) | 同期タスクを利用したオペレーティングシステムアーキテクチャ | |
US6662364B1 (en) | System and method for reducing synchronization overhead in multithreaded code | |
US6795873B1 (en) | Method and apparatus for a scheduling driver to implement a protocol utilizing time estimates for use with a device that does not generate interrupts | |
EP1191439A1 (en) | Computer system and computer-readable record medium | |
US20040039884A1 (en) | System and method for managing the memory in a computer system | |
JPH06259266A (ja) | デッドロック回避システムおよび方法 | |
US9274819B2 (en) | Performing garbage collection using a virtual thread in operating system without kernel thread support | |
US20070120865A1 (en) | Applying rendering context in a multi-threaded environment | |
JP2000112774A (ja) | プログラム制御システムの制御装置 | |
JP2005327007A (ja) | 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JP4179110B2 (ja) | 情報処理装置、情報処理プログラムおよび情報処理方法 | |
JP2021060707A (ja) | 同期制御システムおよび同期制御方法 | |
Mejia-Alvarez et al. | Interrupt handling in classic operating systems | |
JPH04314141A (ja) | マルチタスク制御方法とその機構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050713 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050922 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060119 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |