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
Application number
JP10287508A
Other languages
English (en)
Other versions
JP3764282B2 (ja
Inventor
Hiroyuki Takizawa
弘幸 滝沢
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.)
Toshiba TEC Corp
Original Assignee
Toshiba TEC 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 Toshiba TEC Corp filed Critical Toshiba TEC Corp
Priority to JP28750898A priority Critical patent/JP3764282B2/ja
Publication of JP2000112774A publication Critical patent/JP2000112774A/ja
Application granted granted Critical
Publication of JP3764282B2 publication Critical patent/JP3764282B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 マルチスレッド機能を利用する場合に、スレ
ッドの受付順にその処理を実行する。 【解決手段】 少なくともスレッドのオペレーティング
システムによる受付時間を記憶する管理テーブルを設
け、スレッドを実行するのに先立って、管理テーブルに
アクセスする第1の同期オブジェクトを取得して少なく
ともスレッド受付時間を管理テーブルに書込んで第1の
同期オブジェクトを開放し、そのスレッドの処理を実行
するための第2の同期オブジェクトを取得し、管理テー
ブルを参照することにより、そのスレッドが最早受付時
間のものか否かを判断し、最早受付時間のものでないと
判断した場合は第2の同期オブジェクトを開放し、最早
受付時間のものであると判断した場合はそのスレッドの
処理を実行してから第2の同期オブジェクトを開放す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マルチスレッド機
能を備えたプログラム制御システムの制御装置に関す
る。
【0002】
【従来の技術】この種の制御装置は、CPU(中央処理
装置)、このCPUが各部を制御するためのプログラム
データなどを記憶したROM(リード・オンリ・メモ
リ)、CPUが行う各種データ処理のために使用される
メモリエリア等を設けたRAM(ランダム・アクセス・
メモリ)、アプリケーションプログラムなどを記憶した
ハードディスク装置等を備え、オペレーティングシステ
ム(OS)、その上で稼働するアプリケーションプログ
ラム、これらオペレーティングシステムとアプリケーシ
ョンプログラムとのインタフェースであるアプリケーシ
ョンプログラムインタフェース(API)によりプログ
ラム制御システムを構成する。
【0003】上記オペレーティングシステムには、複数
のタスクを同時に処理実行可能なマルチタスク機能、こ
のマルチタスク機能を実行するときに1つのプログラム
を個々のタスクを表す単位(スレッド)に細分化して複
数のスレッドを同時に実行させるマルチスレッド機能を
備えるものがある。
【0004】但し、「複数のタスクを同時に処理実行可
能である」とはいっても、1つのCPUが実行できる命
令は1個だけである。つまり、マルチスレッドというの
は、タイマ割込を使ってCPUに割込みをかけて他のル
ーチンへ実行を移している。これを定期的に行えば、ユ
ーザー側から見れば、複数のルーチンが並行して走って
いるかのように見える。
【0005】このようなオペレーティングシステムのマ
ルチタスク機能、マルチスレッド機能をアプリケーショ
ンからの要求によって実行させる場合において、ログ書
込みなどのように1つのスレッドが処理中の際に複数の
スレッドがオペレーティングシステムに受付けられて
(CPU時間を割当てられて)ウエイトした場合、次に
実行権限が与えられるスレッドの選択はオペレーティン
グシステムの判断に依存していた。つまり、オペレーテ
ィングシステムが自動的にスレッドの実行を次々に切替
えるようになっていた。
【0006】
【発明が解決しようとする課題】しかし、このようなプ
ログラム制御システムの制御装置においては、1つのス
レッドが処理中の際に他の複数のスレッドがウエイトし
た場合、オペレーティングシステムによって次の実行権
限が与えられるので、一番早く要求を出したものが先に
処理されるとは限られず、大きなタイムラグが発生する
おそれがあるという問題があった。
【0007】そこで、本発明は、アプリケーションによ
って実行要求が発生した順番通りにその処理を実行でき
るプログラム制御システムの制御装置を提供しようとす
るものである。
【0008】
【課題を解決するための手段】請求項1の本発明は、少
なくともマルチスレッド機能及びあるスレッドによって
ある範囲のコードを実行中に他のスレッドがアクセスで
きないようにする同期オブジェクトに対応する機能を有
するオペレーティングシステムを備えたプログラム制御
システムの制御装置において、少なくともスレッドがオ
ペレーティングシステムから受付けられた時間を記憶す
る管理テーブルを設け、スレッドを実行するのに先立っ
て、管理テーブルにアクセスする第1の同期オブジェク
トを取得して少なくともスレッドの受付時間を管理テー
ブルに書込んで第1の同期オブジェクトを開放し、その
スレッドの処理を実行するための第2の同期オブジェク
トを取得し、管理テーブルを参照することにより、その
スレッドが最早受付時間のものか否かを判断し、最早受
付時間のものでないと判断した場合は第2の同期オブジ
ェクトを開放し、最早受付時間のものであると判断した
場合はそのスレッドの処理を実行してから第2の同期オ
ブジェクトを開放することを特徴とするプログラム制御
システムの制御装置である。
【0009】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。図1は、本実施の形態にかかる制
御装置の構成を示すブロック図で、1は制御部本体を構
成するCPU(中央処理装置)、2は上記CPU1が各
部を制御するためのプログラムデータなどを記憶したR
OM(リード・オンリ・メモリ)、3は上記CPU1が
行う各種データ処理のために使用されるメモリエリア等
を設けたRAM(ランダム・アクセス・メモリ)、4は
アプリケーションプログラムなどを記憶したハードディ
スク装置(HDD)、5は所望の情報を表示するディス
プレイ、6はユーザーが各種のキー操作を行うためのキ
ーボードである。
【0010】図2は、本実施の形態にかかる制御装置に
おけるプログラム制御システムの構成を示す図で、11
はオペレーティングシステム(OS)、12はアプリケ
ーションプログラム本体13とそれに付属する複数のフ
レーム14からなるアプリケーションプログラム、15
はオペレーティングシステム11とその上で稼働するア
プリケーションプログラム12とのインタフェースとし
て機能するアプリケーションプログラムインタフェース
(API)である。
【0011】上記フレーム14としては、例えばマルチ
プロセス、マルチスレッドアプリケーション間において
グローバルな共有メモリを提供するメモリマネージャ1
4a、レジストリにアクセスする際に使用するレジスト
リアクセスクラス14b、ログに対する管理と制御を行
うログマネージャ14c、その他メッセージのやり取り
を行うメッセージハンドラなどがある。
【0012】ところで、アプリケーションを開発する場
合において、通常アプリケーションに付随する部分であ
るフレーム14は開発時に同時に行うのではなく、予め
再利用性を考慮してアプリケーション12から切離せる
部分だけを切出してアプリケーション本体13に先行し
て又は並行して開発する。本実施の形態では、特にこの
アプリケーション開発時には必要不可欠なログに対する
管理と制御を取りまとめるログマネージャ14cについ
て本発明を適用した場合について説明する。
【0013】このログマネージャ14cは、アプリケー
ション本体13に対し、ログ書込みを行う関数を提供
し、アプリケーション本体13はこの関数によってのみ
ログを出力することができる。
【0014】上記CPU11は、アプリケーション本体
13によってログ書込み要求が発生した場合、ログマネ
ージャ14cに基づいて図3に示すような処理を行うよ
うになっている。なお、この処理は、メモリマネージャ
14a、レジストリアクセスクラス14bなどのフレー
ムをも利用しながら実行するものでもよく、またログマ
ネージャ14cのみに基づいて実行するものでもよい。
【0015】上記処理は、先ずST(ステップ)1にて
システムタイムを取得し、ST2にて後述の管理テーブ
ルを排他的に実行する権限である第1の同期オブジェク
トとしての第1のミューテックス(Mutex ;MUTually E
Xclusiveの略)の取得待ちとなる。ここでいう管理テー
ブルは、図4に示すように発生したログ書込み要求のス
レッドごとにそのスレッドの状態を示すチェックフラ
グ、スレッドのID、スレッドがオペレーティングシス
テム11から受付けられたとき(オペレーティングシス
テム11からCPU時間を割当てられたとき)のシステ
ムタイムを記憶したものである。このチェックフラグと
しては、「00」はテーブルエントリなしであることを
意味し、「01」はテーブルエントリ中であることを意
味し、「02」はテーブル内最早要求であることを意味
する。なお、上記管理テーブルは、例えばRAM3など
のメモリやHDD4などに記憶する。
【0016】また、ここでいうミューテックスとは、同
期オブジェクトと呼ばれるものの1つで、あるスレッド
によってある範囲のコードを実行中に他のスレッドがア
クセスできないようにするオペレーティングシステム1
1のもつ機能の1つである。システムの相互排他という
こともある。このミューテックスはアプリケーションプ
ログラムインタフェース15で作成することができる。
なお、ミューテックスを使用する場合は、予めその旨を
宣言しておく必要がある。このような機能を利用する場
合は、先ずミューテックスを取得し、処理が終了したら
ミューテックスを開放する。そうしなければ、他のスレ
ッドが永遠に止ってしまうおそれがあるからである。
【0017】ST2にて第1のミューテックスを取得し
たと判断した場合は、ST3にてチェックフラグはテー
ブルエントリ中の「01」に変更し、そのスレッドのI
D及びST1で取得したシステムタイムを管理テーブル
に書込んで、ST4にて管理テーブルの第1のミューテ
ックスを開放する。
【0018】次に、ST5にてログマネージャ14cの
第2の同期オブジェクトとしての第2のミューテックス
(ログをファイルに書込む処理を排他的に実行する権
限)の取得待ちとなる。ST5にて第2のミューテック
スを取得したと判断した場合は、ST6にて管理テーブ
ルのシステムタイムにより最早受付時間をチェックす
る。
【0019】そして、ST7にて次に実行しようとする
スレッドが最早受付時間のIDと一致するか否かを判断
する。ST7にてIDが一致しないと判断した場合は、
ST8にて第2のミューテックスを開放してST5の処
理に戻り、IDが一致したと判断した場合は、ST9に
てログ出力を行う。具体的には、例えばメモリマネージ
ャなどを利用してログをRAM3又はHDD4のファイ
ルに書込む。次に、ST10にて第2のミューテックス
を開放し、実行したスレッドのチェックフラグを「0
0」にセットしてこの処理を終了する。
【0020】このように、本発明の実施の形態では、ロ
グ出力の要求があった場合に、ミューテックスの機能を
利用してスレッドの実行状況やスレッドがオペレーティ
ングシステム11から受付けられたときのシステムタイ
ムを管理テーブルに記憶しておき、そのスレッドを実行
するときに上記管理テーブルを参照することにより、最
も早く受付けられたスレッドから順にログ書込みの処理
を行うことができる。これにより、いわゆる先入れ先出
し方式によるログ書込みを行うことができるため、単一
のログファイルへの書込みが競合することを防止できる
とともに、複数のプロセスやスレッドによるログ書込み
要求に対応できる。従って、本実施の形態によれば、ア
プリケーション本体13によって実行要求が発生した順
番通りにその処理を実行できる。
【0021】また、上述したような処理をログマネージ
ャ14cのプログラムによってオペレーティングシステ
ム11の機能を利用して実行するので、アプリケーショ
ン本体とログマネージャ14cとを切離して開発するこ
とができるため、近年におけるアプリケーション開発に
おけるコンポーネント化、共通化、再利用性などの要求
に対応することができる。
【0022】なお、本発明の実施の形態においては、ロ
グ出力要求によるスレッドについてオペレーティングシ
ステム11から受付けられた順番に処理を実行できる場
合について述べたが、必ずしもこれに限定されるもので
はなく、他の要求によるスレッドについて受付られた順
番に処理を実行する場合に適用してもよい。
【0023】
【発明の効果】以上詳述したように本発明によれば、マ
ルチスレッド機能を利用する場合に、スレッドがオペレ
ーティングシステムから受付けられると、第1の同期オ
ブジェクトを利用しながらスレッド受付時間を管理テー
ブルに書込み、そのスレッドを実行する第2の同期オブ
ジェクトを取得したときは、管理テーブルを参照するこ
とにより、そのスレッドが最早受付時間のものか否かを
判断し、最早受付時間のものでないと判断した場合は第
2の同期オブジェクトを開放し、最早受付時間のもので
あると判断した場合はそのスレッドの処理を実行してか
ら第2の同期オブジェクトを開放するようにしたので、
最も早く受付けられたスレッドから順に実行できる。従
って、アプリケーションによって実行要求が発生した順
番通りにその処理を実行できる。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる制御装置の構成を
示すブロック図。
【図2】同実施の形態にかかるプログラム制御システム
の構成を説明する図。
【図3】同実施の形態においてマルチスレッド機能を利
用する場合のスレッド受付時の処理を示す図。
【図4】同実施の形態における管理テーブルの例を示す
図。
【符号の説明】
1…CPU 3…RAM 4…HDD 11…オペレーティングシステム 12…アプリケーションプログラム 13…アプリケーションプログラム本体 14…フレーム 15…アプリケーションプログラムインタフェース 14c…ログマネージャ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 少なくともマルチスレッド機能及びある
    スレッドによってある範囲のコードを実行中に他のスレ
    ッドがアクセスできないようにする同期オブジェクトに
    対応する機能を有するオペレーティングシステムを備え
    たプログラム制御システムの制御装置において、少なく
    ともスレッドがオペレーティングシステムから受付けら
    れた時間を記憶する管理テーブルを設け、スレッドを実
    行するのに先立って、前記管理テーブルにアクセスする
    第1の同期オブジェクトを取得して少なくともスレッド
    の受付時間を前記管理テーブルに書込んで第1の同期オ
    ブジェクトを開放し、そのスレッドの処理を実行するた
    めの第2の同期オブジェクトを取得し、前記管理テーブ
    ルを参照することにより、そのスレッドが最早受付時間
    のものか否かを判断し、最早受付時間のものでないと判
    断した場合は第2の同期オブジェクトを開放し、最早受
    付時間のものであると判断した場合はそのスレッドの処
    理を実行してから第2の同期オブジェクトを開放するこ
    とを特徴とするプログラム制御システムの制御装置。
JP28750898A 1998-10-09 1998-10-09 プログラム制御システムの制御装置 Expired - Fee Related JP3764282B2 (ja)

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)

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