JP2016192012A - 電子機器および情報処理プログラム - Google Patents

電子機器および情報処理プログラム Download PDF

Info

Publication number
JP2016192012A
JP2016192012A JP2015070633A JP2015070633A JP2016192012A JP 2016192012 A JP2016192012 A JP 2016192012A JP 2015070633 A JP2015070633 A JP 2015070633A JP 2015070633 A JP2015070633 A JP 2015070633A JP 2016192012 A JP2016192012 A JP 2016192012A
Authority
JP
Japan
Prior art keywords
access
priority task
counter
value
access counter
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
JP2015070633A
Other languages
English (en)
Other versions
JP6295990B2 (ja
Inventor
祐矢 前園
Yuya Maezono
祐矢 前園
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.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
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 Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2015070633A priority Critical patent/JP6295990B2/ja
Priority to US15/051,152 priority patent/US20160292010A1/en
Priority to CN201610140298.5A priority patent/CN106020965B/zh
Publication of JP2016192012A publication Critical patent/JP2016192012A/ja
Application granted granted Critical
Publication of JP6295990B2 publication Critical patent/JP6295990B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】簡単な方法で競合回避制御を行うことが出来る電子機器および情報処理プログラムを提供する。【解決手段】複数のタスクからアクセスされるアクセス対象と、特定の初期値を持ち、前記アクセス対象へのアクセスの競合を回避するためのアクセスカウンターと、前記アクセス対象へのアクセスを開始するとき前記アクセスカウンターをインクリメントし、前記アクセス対象へのアクセスが完了したとき前記アクセスカウンターをデクリメントする高優先度タスクと、前記アクセスカウンターが前記特定の初期値であるとき前記アクセス対象にアクセスする低優先度タスクとを備える。【選択図】図3

Description

本発明は、アクセス対象への複数アクセスの競合を制御する電子機器および情報処理プログラムに関する。
従来、アクセス対象、例えばメモリー上の特定領域などに、複数のプロセスが同時にアクセスして競合が発生することを避けるために、様々な工夫が行われてきた。なお、以下ではこれらの工夫のことを競合回避制御と呼ぶ。
例えば、特許文献1の技術では、プリンター機能と複写機能を持つ画像形成装置において、両方の機能が同時に利用される場合、両方の機能で共有して利用される画像形成手段へのアクセスが競合しないように、複写機能に、プリンター機能よりも高い、画像形成手段への優先度を設定している。
また、例えば、特許文献2の技術では、複数の入力ポートに予め優先度を定めておき、出力ポートへの競合が発生すると、最高の優先度を持つ入力ポートからの入力に、最初に出力ポートへのアクセスが許可される。
なお、アクセス数を用いた制御として、例えば特許文献3の技術では、ファイルやフォルダーへのアクセス数をカウントして、アクセス数の多寡に応じて、画面上に各フォルダーを表示する順序を調整している。
特開2000−134391号公報 特表2002−502070号公報 特開2006−318310号公報
例えば、特許文献1の技術では、競合する機能間での優先度を判断するための競合回避制御に、フラグが用いられている。
しかし、フラグを用いる場合、競合する機能の数が増えると、競合回避制御のためのフラグの数も増やさなければならず、また、競合する機能1つにつき1つのフラグを用いなければならず、競合しないことを確認するためには全てのフラグをチェックしなければならないなど、判断のための処理が複雑になるという問題点があった。
以上のような事情に鑑み、本発明の目的は、簡単な方法で競合回避制御を行うことが出来る電子機器および情報処理プログラムを提供することにある。
上記目的を達成するため、本発明の一形態に係る電子機器は、複数のタスクからアクセスされるアクセス対象と、特定の初期値を持ち、前記アクセス対象へのアクセスの競合を回避するためのアクセスカウンターと、前記アクセス対象へのアクセスを開始するとき前記アクセスカウンターをインクリメントし、前記アクセス対象へのアクセスが完了したとき前記アクセスカウンターをデクリメントする高優先度タスクと、前記アクセスカウンターが前記特定の初期値であるとき前記アクセス対象にアクセスする低優先度タスクとを備える。そのため、簡単な方法で競合回避制御を行うことが出来る。
上記目的を達成するため、本発明の一形態に係る電子機器では、前記低優先度タスクは、前記アクセスカウンターの値が前記特定の初期値ではないとき、特定の時間ごとに、前記アクセスカウンターをポーリングして前記アクセスカウンターの値を確認する構成でもよい。
上記目的を達成するため、本発明の一形態に係る電子機器では、前記低優先度タスクがイベントセマフォを待つ状態に入ったとき、前記低優先度タスクの処理を一時停止させ、前記イベントセマフォがフラッシュされたとき、一時停止されていた前記低優先度タスクの処理を再開させるオペレーティングシステムをさらに備え、前記低優先度タスクは、前記アクセス対象にアクセスする前に前記アクセスカウンターの値を確認し、前記アクセスカウンターの値が前記特定の初期値ではないとき、イベントセマフォを待つ状態に入り、前記イベントセマフォがフラッシュされたとき、前記アクセス対象にアクセスし、前記高優先度タスクは、前記アクセス対象へのアクセスを完了して前記アクセスカウンターをデクリメントしたとき、前記アクセスカウンターの値を確認し、前記アクセスカウンターの値が前記特定の初期値であるとき、前記イベントセマフォをフラッシュする構成でもよい。
上記目的を達成するため、本発明の一形態に係る電子機器では、前記低優先度タスクは、前記イベントセマフォを待つ状態に入るとき、特定のタイムアウト時間を指定し、前記オペレーティングシステムは、前記特定のタイムアウト時間が経過したとき、前記低優先度タスクに前記特定のタイムアウト時間が経過したことを通知し、前記低優先度タスクは、前記イベントセマフォを待つ状態にあり前記特定のタイムアウト時間が経過したことを通知されたとき、前記アクセスカウンターの値を確認する構成でもよい。
上記目的を達成するため、本発明の一形態に係る情報処理プログラムは、特定の初期値を持ち、複数のタスクからアクセスされるアクセス対象へのアクセスの競合を回避するためのアクセスカウンターを前記アクセス対象へのアクセスを開始するときインクリメントし、前記アクセス対象へのアクセスが完了したとき前記アクセスカウンターをデクリメントする高優先度タスクとしての手順および前記アクセスカウンターが前記特定の初期値であるとき前記アクセス対象にアクセスする低優先度タスクとしての手順をコンピューターに実行させる。
以上のように、本発明によれば、簡単な方法で競合回避制御を行うことが出来る。
本発明の一実施形態に係る電子機器10の構成図である。 ポーリングを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明するためのシーケンス図である。 イベントセマフォを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明するためのシーケンス図である。 イベントセマフォを用いて競合回避制御を行う場合の注意点について説明するためのシーケンス図である。
以下、図面を参照しながら、本発明の実施形態を説明する。
なお、以下の説明では、複数のアクセスが競合するアクセス対象の例として、ハードディスクドライブ(HDD)などの記憶装置に記憶されたファイルを挙げて説明する。なお、アクセス対象は、ファイルに限らず、電子機器の有するリソースであればどのようなものでもよい。
また、以下の説明では、優先度の低いタスクおよび優先度の高いタスクに関するアクセス競合の回避について説明するが、優先度の高いタスクとは、例えば、画像形成装置(MFP、Multifunction Peripheral)では、ファクシミリ機能が挙げられる。ファクシミリ機能では、一定時間以内に相手に応答を返さなければならないという制約がある為である。また、優先度の低いタスクとは、例えば、画像形成装置では、コピー機能、印刷機能が挙げられる。このように、各タスクは、対応する機能についての制約などの特性に応じて優先度が予め決められている。
[概要]
最初に、本発明の概要について説明する。
本発明では、上述したように、複数のアクセスによる競合を避けるためのアクセス制御を行う為に複数のフラグを用いる代わりに、優先度が高い処理、すなわち他の優先度の低い処理からのアクセスにより邪魔されて遅延を発生させたくない処理による、アクセス対象へのアクセス数をカウントするためのアクセスカウンターを用いる。
アクセスカウンターは、初期状態では"0"(特定の初期値)に設定されている。これは、アクセス対象にアクセスしている優先度の高い処理が無いことを意味している。
このアクセスカウンターでは、優先度の高い処理がアクセス対象にアクセスする際に、アクセスカウンターをインクリメントしてからアクセスを開始し、アクセスが終了した時点で、アクセスカウンターをデクリメントする。
優先度の高い処理が複数ある場合でも、1つのアクセスカウンターに対して、カウンターのインクリメントおよびデクリメントを行う。
そして、優先度の低い処理は、アクセス対象へのアクセスを開始する前に、アクセスカウンターを参照し、アクセスカウンターの値が正数(特定の初期値ではない)であれば、優先度の高い処理によるアクセス対象へのアクセスが行われていると判断し、アクセス対象へのアクセスは行わない。
また、優先度の低い処理は、アクセス対象へのアクセスを開始する前にアクセスカウンターを参照した時にアクセスカウンターの値が"0"であれば、優先度の高い処理によるアクセス対象へのアクセスは行われていないと判断し、アクセス対象へのアクセスを行う。
このように、優先度の低い処理は、自身がアクセス対象にアクセスすることが許されるか否かを判断するために、現在アクセス対象にアクセス中の優先度の高い処理の数は考慮せず、アクセスカウンターの値が正数であるか否かのみを判断すれば良いので、数多くのフラグを全て確認する場合に較べ、簡単に競合回避制御を行うことが出来る。
なお、優先度の低い処理がアクセス対象にアクセスするために、アクセスカウンターの値が"0"になったことを確認する方法として、例えば、ポーリングを用いる方法、またはイベントセマフォを用いる方法が挙げられる。
ポーリングを用いる方法およびイベントセマフォを用いる方法の詳細については後述する。また、通常の一般的なセマフォとイベントセマフォの相違についても後述する。
以上、本発明の概要について説明した。
[セマフォとイベントセマフォについて]
次に、一般的にセマフォと呼ばれるアクセス制御方法と、上述したイベントセマフォの違いについて説明する。
アクセス制御にセマフォを用いる場合、例えば、タスクAが最初にセマフォを取り、次にタスクBがセマフォを取り、次にタスクCがセマフォを取ったとすると、最初にタスクAがアクセス対象に対する処理を開始し、タスクBおよびタスクCはセマフォ待ちに入る。
タスクAの処理が完了しセマフォを解放すると、セマフォ待ちに入っているタスクBおよびタスクCのうち、早い時期にセマフォを取ったタスクBの、アクセス対象に対する処理が開始され、タスクCはセマフォ待ちのままである。
タスクBのアクセス対象に対する処理が完了しセマフォを解放すると、セマフォ待ちであったタスクCの、アクセス対象に対する処理が実行される。
これに対し、アクセス制御にイベントセマフォを用いる場合、例えば、タスクAが最初にイベントセマフォを取り、次にタスクBがイベントセマフォを取り、次にタスクCがイベントセマフォを取ったとすると、最初にタスクAがアクセス対象に対する処理を開始し、タスクBおよびタスクCはイベントセマフォ待ちに入る。
タスクAの、アクセス対象に対する処理が完了し、イベントセマフォを解放(フラッシュ)すると、イベントセマフォ待ちであった全てのタスク、すなわちタスクBおよびタスクCの、アクセス対象に対する処理が一度に開始される。
以上、一般的にセマフォと呼ばれるアクセス制御方法と、上述したイベントセマフォの違いについて説明した。なお、イベントセマフォの機能は、OS(Operating System)により実現されてもよい。
[構成]
次に、本発明の一実施形態に係る電子機器の構成を説明する。図1は、本発明の一実施形態に係る電子機器10の構成図である。なお、以下の説明では、電子機器10が一般的なコンピューターとして構成される場合の具体例を説明している。
図1に示すように、電子機器10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、操作入力部14、ネットワークインターフェイス部15、表示部16、および記憶部17を有し、これら各ブロックがバス18を介して接続されている。
ROM12は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。
RAM13は、CPU11の作業用領域として用いられ、OS、実行中の各種アプリケーション、処理中の各種データ、およびアクセスカウンター13aを一時的に保持する。アクセスカウンター13aは、複数のタスクによるアクセスの競合を防止するためのアクセス制御に用いられる。
記憶部17は、例えばHDD(Hard Disk Drive)や、フラッシュメモリー、その他の不揮発性メモリーである。記憶部17には、OSや各種アプリケーション、各種データに加え、複数のタスクによりアクセスされるファイル17aが記憶される。
ネットワークインターフェイス部15は、画像形成装置20と情報のやりとりを行う為のネットワーク30と結ばれており、画像形成装置20から情報を収集したり、画像形成装置20に収集した情報を提供したりする。
CPU11は、ROM12や記憶部17に格納された複数のプログラムのうち、操作入力部14から与えられる命令に対応するプログラムをRAM13に展開し、この展開されたプログラムにしたがって、表示部16及び記憶部17を適宜制御する制御部である。
CPU11においてプログラムが実行されることにより、高優先度タスクH1、高優先度タスクH2、および低優先度タスクL1などの機能ブロックが実現される。なお、高優先度タスクおよび低優先度タスクは、幾つあってもよい。
高優先度タスクH1、高優先度タスクH2、および低優先度タスクL1などは、RAM13上のアクセスカウンター13aを参照してアクセス制御を行いつつ、記憶部17内のファイル17aにアクセスして処理を行う。
操作入力部14は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
表示部16は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ、プラズマディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等である。表示部16は、電子機器10に内蔵されていてもよいし、外部接続されていてもよい。
以上、電子機器10の構成について説明した。
[ポーイングを用いた処理について]
次に、上述したポーリングを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明する。図2は、ポーリングを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明するためのシーケンス図である。
まず、高優先度タスクH1が、記憶部17内のファイル17aにアクセスするとする。その場合、高優先度タスクH1は、アクセスカウンター13aをインクリメントする(ステップS21)。
次に、高優先度タスクH1が、記憶部17内のファイル17aにアクセスする(ステップS22)。
次に、低優先度タスクL1がファイル17aにアクセスするために、アクセスカウンター13aの値を取得するとする(ステップS23)。この時点では、既に高優先度タスクH1によりアクセスカウンター13aがインクリメントされているので、アクセスカンター13aの値として"1"が返される。
低優先度タスクL1は、アクセスカウンター13aの値として正数が返ってきたので、ファイル17aへのアクセスを待つ。
アクセスカウンター13aの値を取得してから一定時間経過後、低優先度タスクL1は、再度、アクセスカウンター13aの値を取得する(ステップS24)。この時点でも、高優先度タスクH1によりアクセスカウンター13aがインクリメントされたままなので、アクセスカンター13aの値として"1"が返される。
次に、高優先度タスクH1におけるファイル17aへのアクセス処理が完了したとする。高優先度タスクH1は、アクセスカウンター13aをデクリメントする(ステップS25)。
次に、高優先度タスクH2が、記憶部17内のファイル17aにアクセスするとする。その場合、高優先度タスクH2は、アクセスカウンター13aをインクリメントする(ステップS26)。
このように、ステップS25とステップS26の間では、アクセスカウンター13aの値は"0"である。そのため、低優先度タスクL1が、ステップS25とステップS26の間のタイミングでアクセスカウンター13aの値を取得すれば、値が"0"であることを検知できるので、ファイル17aにアクセスすることが出来る。
しかし、図2に示す例では、ステップS25とステップS26の間では、低優先度タスクL1は、次のポーリングのタイミングを待っている状態なので、アクセスカウンター13aの値が"0"になったことを知ることは出来ず、ファイル17aにアクセスすることは出来ない。
次に、低優先度タスクL1が、アクセスカウンター13aの値を取得したとする(ステップS27)。この時点では、高優先度タスクH1によりデクリメントされたアクセスカウンター13aが、高優先度タスクH2により再度インクリメントされ、値が"1"になっているので、低優先度タスクL1は、ファイル17aにアクセスすることを待たなければならない。
次に、高優先度タスクH2が、記憶部17内のファイル17aにアクセスする(ステップS28)。
アクセスカウンター13aの値を取得してから一定時間経過後、低優先度タスクL1は、再度、アクセスカウンター13aの値を取得する(ステップS29)。この時点でも、高優先度タスクH2によりアクセスカウンター13aがインクリメントされているので、アクセスカンター13aの値として"1"が返される。
次に、高優先度タスクH2が、ファイル17aへのアクセスを完了したとする。高優先度タスクH2は、アクセスカウンター13aをデクリメントする(ステップS30)。
アクセスカウンター13aの値を取得してから一定時間経過後、低優先度タスクL1は、再度、アクセスカウンター13aの値を取得する(ステップS31)。この時点では、高優先度タスクH2によりアクセスカウンター13aがデクリメントされているので、アクセスカンター13aの値として"0"が返される。
低優先度タスクL1は、アクセスカウンター13aの値として"0"が返されたので、ファイル17aにアクセスする(ステップS32)。
以上のように、低優先度タスクL1は、ステップS25とステップS26の間でアクセスカウンター13aの値が"0"になったことを検知出来なかったので、ステップS32の時点までファイル17aへのアクセスを待たなければならなかった。
もし、ステップS30において高優先度タスクH2がアクセスカウンター13aをデクリメントしてから、低優先度タスクL1がアクセスカウンター13aの値を取得するまでに、他の高優先度タスクがアクセスカウンター13aをインクリメントしてしまった場合、低優先度タスクL1は、更に長い時間、ファイル17aへのアクセスを待たなければならなくなる。
以上、ポーリングを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明した。
[イベントセマフォを用いた処理について]
次に、上述したイベントセマフォを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明する。図3は、イベントセマフォを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明するためのシーケンス図である。
まず、高優先度タスクH1が、記憶部17内のファイル17aにアクセスするとする。その場合、高優先度タスクH1は、アクセスカウンター13aをインクリメントする(ステップS1)。
次に、高優先度タスクH1が、記憶部17内のファイル17aにアクセスする(ステップS2)。
次に、高優先度タスクH2が、記憶部17内のファイル17aにアクセスするとする。その場合、高優先度タスクH2は、アクセスカウンター13aをインクリメントする(ステップS3)。
次に、高優先度タスクH2が、記憶部17内のファイル17aにアクセスする(ステップS4)。
次に、低優先度タスクL1が、記憶部17内のファイル17aにアクセスするとする。その場合、低優先度タスクL1は、アクセスカウンター13aの値を取得する(ステップS5)。低優先度タスクL1がアクセスカウンター13aの値を取得した時点では、2つの高優先度タスクH1およびH2がファイル17aにアクセスしているので、アクセスカウンター13aの値として"2"が返される。
アクセスカウンター13aの値として正数が返された場合、低優先度タスクL1は、タイムアウトの時間、たとえば100msを指定して、イベントセマフォ待ちに入る(ステップS6)。
低優先度タスクL1がイベントセマフォのフラッシュを待っている間に、高優先度タスクH1のファイル17aへのアクセスが完了したとすると、高優先度タスクH1は、アクセスカウンター13aをデクリメントする(ステップS7)。
デクリメント後、高優先度タスクH1は、デクリメントの結果としてアクセスカウンター13aの値が"0"になったか否かを判断する。ここでは、アクセスカウンター13aの値は"1"なので、高優先度タスクH1に関する競合回避制御は完了する。
低優先度タスクL1がイベントセマフォのフラッシュを待っている間に、高優先度タスクH2のファイル17aへのアクセスが完了したとすると、高優先度タスクH2は、アクセスカウンター13aをデクリメントする(ステップS8)。
デクリメント後、高優先度タスクH2は、デクリメントの結果としてアクセスカウンター13aの値が"0"になったか否かを判断する。ここでは、アクセスカウンター13aの値は"0"なので、高優先度タスクH2は、イベントセマフォをフラッシュする(ステップS8.1)。
イベントセマフォがフラッシュされると、イベントセマフォ待ちであった全ての体優先度タスク(ここでは低優先度タスクL1)の処理が再開され、ファイル17aへのアクセスが行われる(ステップS9)。
以上、イベントセマフォを用いてアクセスカウンターの値を確認し、競合回避制御を行う処理について説明した。
上述したように、イベントセマフォを用いる場合、ポーリングを用いる場合と比較し、アクセスカウンター13aの値が"0"になった時点で、すぐにイベントセマフォのフラッシュが行われるので、イベントセマフォ待ちに入っていた低優先度タスクは、すぐにファイル17aへのアクセスを開始することが出来る。
[イベントセマフォを用いる場合の注意点について]
次に、イベントセマフォを用いて競合回避制御を行う場合の注意点について説明する。図4は、イベントセマフォを用いて競合回避制御を行う場合の注意点について説明するためのシーケンス図である。
まず、高優先度タスクH1が、記憶部17内のファイル17aにアクセスするとする。その場合、高優先度タスクH1は、アクセスカウンター13aをインクリメントする(ステップS11)。
次に、高優先度タスクH1が、記憶部17内のファイル17aにアクセスする(ステップS12)。
次に、低優先度タスクL1が、記憶部17内のファイル17aにアクセスするとする。その場合、低優先度タスクL1は、アクセスカウンター13aの値を取得する(ステップS13)。低優先度タスクL1がアクセスカウンター13aの値を取得した時点では、1つの高優先度タスクH1がファイル17aにアクセスしているので、アクセスカウンター13aの値として"1"が返される。
次に、高優先度タスクH1におけるファイル17aへのアクセス処理が完了したとする。その場合、高優先度タスクH1は、アクセスカウンター13aをデクリメントする(ステップS14)。
デクリメント後、高優先度タスクH1は、デクリメントの結果としてアクセスカウンター13aの値が"0"になったか否かを判断する。ここでは、アクセスカウンター13aの値は"0"なので、高優先度タスクH1は、イベントセマフォをフラッシュする(ステップS14.1)。
しかし、低優先度タスクL1はまだイベントセマフォ待ちに入っていないので、ステップS14.1において行われたフラッシュは低優先度タスクL1に対して何の効果ももたらさず、低優先度タスクL1はイベントセマフォがフラッシュされた事を検知することが出来ない。
そして、低優先度タスクL1は、ステップS13において取得した値が正数であった為、タイムアウト時間を指定してイベントセマフォ待ちの状態に入ってしまう(ステップS15)。
タイムアウト時間経過後、低優先度タスクL1は、再度、アクセスカウンター13aの値を取得する(ステップS16)。高優先度タスクH1のよるファイル17aへのアクセスは完了しているので、アクセスカウンター13aの値として"0"が返される。
アクセスカウンター13aの値が"0"なので、低優先度タスクL1は、ファイル17aへのアクセスを行う(ステップS17)。
以上のように、低優先度タスクL1がアクセスカウンター13aの値を確認してからイベントセマフォ待ちに入るまでの間に、イベントセマフォのフラッシュが行われると、その後イベントセマフォ待ちに入った低優先度タスクL1の処理は、次にフラッシュが行われるまで再開されないことになる。
しかし、高優先度タスクによるアクセスカウンター13aのインクリメントとデクリメントが行われるまで、次のフラッシュは行われない。
そのため、低優先度タスクL1では、イベントセマフォ待ちに入る際に、イベントセマフォ待ちのタイムアウト時間を指定し、タイムアウト時間が到来する度にアクセスカウンター13aの値を確認しなければならない。
なお、低優先度タスクL1がタイムアウト時間が到来したことを検知する方法としては、OSからタイムアウト時間が到来した旨の通知を受ける構成でもよい。
以上、イベントセマフォを用いて競合回避制御を行う場合の注意点について説明した。
[補足事項]
その他、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
10 … 電子機器
11 … CPU
12 … ROM
13 … RAM
13a… アクセスカウンター
14 … 操作入力部
15 … ネットワークインターフェイス部
16 … 表示部
17 … 記憶部
17a… ファイル
18 … バス
H1、H2… 高優先度タスク
L1 … 低優先度タスク

Claims (5)

  1. 複数のタスクからアクセスされるアクセス対象と、
    特定の初期値を持ち、前記アクセス対象へのアクセスの競合を回避するためのアクセスカウンターと、
    前記アクセス対象へのアクセスを開始するとき前記アクセスカウンターをインクリメントし、
    前記アクセス対象へのアクセスが完了したとき前記アクセスカウンターをデクリメントする高優先度タスクと、
    前記アクセスカウンターが前記特定の初期値であるとき前記アクセス対象にアクセスする低優先度タスクと
    を備えた
    電子機器。
  2. 請求項1に記載の電子機器であって、
    前記低優先度タスクは、
    前記アクセスカウンターの値が前記特定の初期値ではないとき、
    特定の時間ごとに、前記アクセスカウンターをポーリングして前記アクセスカウンターの値を確認する
    電子機器。
  3. 請求項1に記載の電子機器であって、
    前記低優先度タスクがイベントセマフォを待つ状態に入ったとき、前記低優先度タスクの処理を一時停止させ、
    前記イベントセマフォがフラッシュされたとき、一時停止されていた前記低優先度タスクの処理を再開させるオペレーティングシステムをさらに備え、
    前記低優先度タスクは、
    前記アクセス対象にアクセスする前に前記アクセスカウンターの値を確認し、
    前記アクセスカウンターの値が前記特定の初期値ではないとき、イベントセマフォを待つ状態に入り、
    前記イベントセマフォがフラッシュされたとき、前記アクセス対象にアクセスし、
    前記高優先度タスクは、
    前記アクセス対象へのアクセスを完了して前記アクセスカウンターをデクリメントしたとき、前記アクセスカウンターの値を確認し、
    前記アクセスカウンターの値が前記特定の初期値であるとき、前記イベントセマフォをフラッシュする
    電子機器。
  4. 請求項3に記載の電子機器であって、
    前記低優先度タスクは、
    前記イベントセマフォを待つ状態に入るとき、特定のタイムアウト時間を指定し、
    前記オペレーティングシステムは、
    前記特定のタイムアウト時間が経過したとき、前記低優先度タスクに前記特定のタイムアウト時間が経過したことを通知し、
    前記低優先度タスクは、
    前記イベントセマフォを待つ状態にあり前記特定のタイムアウト時間が経過したことを通知されたとき、前記アクセスカウンターの値を確認する
    電子機器。
  5. 特定の初期値を持ち、複数のタスクからアクセスされるアクセス対象へのアクセスの競合を回避するためのアクセスカウンターを前記アクセス対象へのアクセスを開始するときインクリメントし、前記アクセス対象へのアクセスが完了したとき前記アクセスカウンターをデクリメントする高優先度タスクとしての手順および
    前記アクセスカウンターが前記特定の初期値であるとき前記アクセス対象にアクセスする低優先度タスクとしての手順
    をコンピューターに実行させる情報処理プログラム。
JP2015070633A 2015-03-31 2015-03-31 電子機器および情報処理プログラム Expired - Fee Related JP6295990B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2015070633A JP6295990B2 (ja) 2015-03-31 2015-03-31 電子機器および情報処理プログラム
US15/051,152 US20160292010A1 (en) 2015-03-31 2016-02-23 Electronic device that ensures simplified competition avoiding control, method and recording medium
CN201610140298.5A CN106020965B (zh) 2015-03-31 2016-03-11 电子设备以及信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015070633A JP6295990B2 (ja) 2015-03-31 2015-03-31 電子機器および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2016192012A true JP2016192012A (ja) 2016-11-10
JP6295990B2 JP6295990B2 (ja) 2018-03-20

Family

ID=57017540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015070633A Expired - Fee Related JP6295990B2 (ja) 2015-03-31 2015-03-31 電子機器および情報処理プログラム

Country Status (3)

Country Link
US (1) US20160292010A1 (ja)
JP (1) JP6295990B2 (ja)
CN (1) CN106020965B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230306404A1 (en) * 2022-03-23 2023-09-28 Bank Of America Corporation Dynamic Selection of Processing Devices in a Multi-Device Network

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57207957A (en) * 1981-06-16 1982-12-20 Ibm Resource control system
JPS62182950A (ja) * 1986-02-07 1987-08-11 Nec Corp バツフア管理方式
JPH05233561A (ja) * 1992-02-19 1993-09-10 Mitsubishi Electric Corp 共有資源管理方式
WO2010095198A1 (ja) * 2009-02-17 2010-08-26 パナソニック株式会社 資源排他制御方法および資源排他制御装置
JP2014241124A (ja) * 2013-01-25 2014-12-25 株式会社リコー 排他制御システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152585A (ja) * 1993-11-30 1995-06-16 Nec Corp 優先順位制御モニタシステム
US6792601B1 (en) * 2000-05-18 2004-09-14 International Business Machines Corporation Multiple mode object locking method and system
US6834315B2 (en) * 2001-03-26 2004-12-21 International Business Machines Corporation Method, system, and program for prioritizing input/output (I/O) requests submitted to a device driver
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
JP2004213414A (ja) * 2003-01-06 2004-07-29 Matsushita Electric Ind Co Ltd 記憶デバイス制御装置
US20050071529A1 (en) * 2003-09-30 2005-03-31 Intel Corporation, A Delaware Corporation Counting semaphores for network processing engines
US20060195847A1 (en) * 2003-12-04 2006-08-31 Katsushige Amano Task scheduling device, method, program, recording medium, and transmission medium for priority-driven periodic process scheduling
US7490224B2 (en) * 2005-10-07 2009-02-10 International Business Machines Corporation Time-of-life counter design for handling instruction flushes from a queue
US20070156955A1 (en) * 2005-12-30 2007-07-05 Royer Robert J Jr Method and apparatus for queuing disk drive access requests
KR100763200B1 (ko) * 2006-02-24 2007-10-04 삼성전자주식회사 인터럽트 가능한 스레드 동기화 방법 및 장치
US7644213B2 (en) * 2007-06-05 2010-01-05 Verigy (Singapore) Pte. Ltd. Resource access manager for controlling access to a limited-access resource
US20100100889A1 (en) * 2008-10-16 2010-04-22 International Business Machines Corporation Accelerating mutual exclusion locking function and condition signaling while maintaining priority wait queues
CN101499041B (zh) * 2009-03-17 2010-07-28 成都优博创技术有限公司 一种避免主机在访问共享设备造成异常死锁的方法
US8392925B2 (en) * 2009-03-26 2013-03-05 Apple Inc. Synchronization mechanisms based on counters
US9183048B2 (en) * 2012-12-20 2015-11-10 Oracle International Corporation System and method for implementing scalable contention-adaptive statistics counters
CN105022717B (zh) * 2015-06-04 2018-11-27 中国航空无线电电子研究所 附加请求数优先级的片上网络资源仲裁方法及仲裁单元

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57207957A (en) * 1981-06-16 1982-12-20 Ibm Resource control system
JPS62182950A (ja) * 1986-02-07 1987-08-11 Nec Corp バツフア管理方式
JPH05233561A (ja) * 1992-02-19 1993-09-10 Mitsubishi Electric Corp 共有資源管理方式
WO2010095198A1 (ja) * 2009-02-17 2010-08-26 パナソニック株式会社 資源排他制御方法および資源排他制御装置
JP2014241124A (ja) * 2013-01-25 2014-12-25 株式会社リコー 排他制御システム

Also Published As

Publication number Publication date
CN106020965A (zh) 2016-10-12
CN106020965B (zh) 2020-08-04
JP6295990B2 (ja) 2018-03-20
US20160292010A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
JP2009294712A (ja) 優先度制御装置及び優先度制御方法
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP2008123157A (ja) プロセッサ及び割込み制御方法
EP2811406A1 (en) Dependent applications monitoring
JP2005190207A (ja) 割り込み制御装置、制御方法
US20200278817A1 (en) Image forming system, image forming apparatus, output method, and storage medium
US10062021B2 (en) Image processing apparatus, information processing method and storage medium
EP2996028A1 (en) Information processing apparatus, control method for controlling the same, and program
US10069993B2 (en) Resource management apparatus, resource management method and image forming apparatus
JP6295990B2 (ja) 電子機器および情報処理プログラム
US9025184B2 (en) Information processing apparatus, control method thereof, and computer-readable recording medium for displaying live tile contents while performing switching thereof
US20150234622A1 (en) Information processing apparatus, control method, and storage medium
US10791227B2 (en) Image forming apparatus that carries out communication with multiple external apparatuses, control method for the image forming apparatus, and storage medium
US9838397B2 (en) Information processing apparatus and control method thereof
JP2005149312A (ja) タスク管理システム
US11303765B2 (en) Image reading system, image reading apparatus, information processing apparatus, method for controlling them, and storage medium
US20150169028A1 (en) Device and control method
US11301291B2 (en) Information processing apparatus, management system, and control method thereof
US11416190B2 (en) Information processing apparatus, control method, and non-transitory computer-readable storage medium storing program
JP2008269113A (ja) アプリケーション実行環境構築システム、装置及びそれに用いる方法並びにそのプログラム
JP2005084707A (ja) 情報処理装置および情報処理プログラム
US10567341B2 (en) Information processing apparatus capable of receiving event, method of controlling the same, and storage medium
JP6435911B2 (ja) 情報処理装置、起動処理方法、及び起動処理プログラム
JP6204313B2 (ja) 電子機器
JP2015027760A (ja) 画像形成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180105

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: 20180123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180205

R150 Certificate of patent or registration of utility model

Ref document number: 6295990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees