JP4179110B2 - 情報処理装置、情報処理プログラムおよび情報処理方法 - Google Patents
情報処理装置、情報処理プログラムおよび情報処理方法 Download PDFInfo
- Publication number
- JP4179110B2 JP4179110B2 JP2003312511A JP2003312511A JP4179110B2 JP 4179110 B2 JP4179110 B2 JP 4179110B2 JP 2003312511 A JP2003312511 A JP 2003312511A JP 2003312511 A JP2003312511 A JP 2003312511A JP 4179110 B2 JP4179110 B2 JP 4179110B2
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- priority
- information processing
- comparison
- notification
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Facsimiles In General (AREA)
Description
また、タスクの実装規約として、異なる優先順位のタスクとは同期オブジェクトを共有しないように定めることも考えられるが、アプリケーションタスク等の場合には、アプリケーションタスクの実装者に、自タスクの優先順位や同期オブジェクトを共有する相手側のタスクの優先順位のことまで把握させるのは、現実的に非常に難しいという問題点もある。つまり、優先順位の逆転現象の発生を把握すること自体が容易ではない。
これらのことから、優先順位の継承による優先順位の逆転現象の防止は、必ずしも容易に実現し得るとは言えないのである。
さらに、本発明は、上記目的を達成するために案出された情報処理方法で、複数の処理単位を略同時に処理するマルチタスク機能を有した情報処理装置で用いられる情報処理方法あって、前記複数の処理単位のそれぞれの間で資源の共有部分が存在すると各処理単位間で同期を取るための制御を行う同期ステップと、前記同期ステップが同期を取ろうとする処理単位について設定されている優先順位を取得する取得ステップと、前記取得ステップが取得した優先順位を保持しておく保持ステップと、前記保持ステップが保持している先行処理単位についての優先順位と前記取得ステップが新たに取得する後続処理単位についての優先順位とを比較する比較ステップと、前記比較ステップでの比較結果を基に前記同期ステップの動作制御を行うとともに、当該比較ステップでの比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、前記後続処理単位に対して同期を取るための制御を行わせないように前記同期ステップの動作制御を行う制御ステップと、前記比較ステップでの比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、その旨を当該情報処理装置外部の上位アプリケーションに通知するための通知ステップとを備えることを特徴とする。
ただし、このときに、比較手段での比較の結果、先行処理単位についての優先順位のランクと後続処理単位についての優先順位のランクとの差が2段階以上あると、通知手段は、その旨を外部に通知する。ここで、優先順位のランク差が2段階以上としたのは、ランク差が1段階であれば優先順位の逆転現象が発生することはなく、ランク差が2段階以上である場合にのみ、優先順位の逆転現象が発生し得るからである。つまり、通知手段は、優先順位の逆転現象が発生し得る状況になると、その旨を外部に通知する。したがって、通知手段からの通知は、優先順位の逆転現象の発生を未然に防止するための情報として活用し得るものとなる。
ただし、本発明は、必ずしも複合機1に適用されたものではなく、複写機、スキャナ装置若しくはプリンタ装置、またはPCやサーバ装置等に適用されたものであってもよいことは言うまでもない。
ROM12は、CPU11が行う制御処理に必要な制御プログラムを予め格納しているものである。この制御プログラムには、スキャナ部15で入力された画像データに対して画像処理を行ったり、その画像データを印刷部16で出力したり、操作表示パネル17の制御を行ったりするためのものが含まれる。
RAM13は、プログラム制御変数や各種処理のためのデータ等を一時的に格納するためのものである。
システム時計14は、時刻情報(年月日、時分秒)をCPU11に提供するものである。なお、システム時計14は、システム電源断時や停電時等に時刻情報が消滅しないようバックアップ用電池を備え、常に現時点の時刻を保持しているものとする。
印刷部16は、スキャナ部15が取得した画像データまたはネットワークインタフェース19を通じて外部から取得した画像データを、記録用紙上に可視画像として印刷出力するためのものである。
操作表示パネル17は、複合機のユーザが操作するためのもので、スキャン処理や印刷処理等の設定を行うためのものである。
制御部18は、スキャナ部15や印刷部16との間、あるいは操作表示パネル17との間で制御データの授受を行ったり、画像データの入出力などの制御を行ったりするためのものである。
ハードディスク19は、制御プログラムによる各種処理のためのデータを格納したり、スキャナ部15が取得した、あるいは印刷部16で出力する画像データを格納したりするものである。
ここでは、処理が要求される処理単位がプロセスである場合を例に挙げる。プロセスとは、OSカーネル36がプログラムを管理するための単位の一つのことをいい、例えば汎用OS30の機能を実現するための部品であるシステムプロセスや、ユーザ権限で動作するアプリケーションを含むユーザプロセス等に分類できる。
また、ここでは、OSカーネル36が同期制御部21により各プロセス間の同期制御を行うのにあたり、その同期制御をセマフォを用いて行う場合を例に挙げる。なお、セマフォを同時に取得できるプロセス数は「1」とする。
図例のように、コピーアプリケーション40またはUIアプリケーション50が起動されて一つのプロセス(以下「プロセス1」という)が生成されると、コピーモジュール10では、当該プロセス1についての初期処理を実行するとともに、セマフォの初期処理をも行う(ステップ101、以下ステップを「S」と略す)。セマフォの初期処理については、例えば、プロセス1がポジックス(POSIX;Portable Operating System Interface for UNIX)のセマフォのAPI(Application Program Interface)である「sem_init()」をコールすることで実行すればよい。なお、POSIXとは、IEEE 1003.1標準によって規定されたアプリケーションのためのUNIXシステムのインターフェイスであり、その詳細についてはIEEE 1003.1 1b-1993を参照すればよい。また、APIは、汎用OS30がコピーアプリケーション40やUIアプリケーション50等のアプリケーションに対して公開しているプログラムインターフェイスである。したがって、各アプリケーションは、基本的にすべての処理をAPIを経由して行うことになる。現在、一般的なOSのAPIは、関数の形式を採っている。つまり、アプリケーションからは、適当なパラメータ(引数)を指定して、APIの関数を呼び出すことになる。
これらの一連の処理が終了したら、プロセス1についての処理が終了することになる。
コピーモジュール10内または複合機1内のコピーモジュールがアクセスし得る箇所には、図5に示すようなセマフォ管理テーブルが格納されているものとする。
セマフォ管理テーブルには、“セマフォID”、“共有数”、“プロセスID”および“優先順位”に関する情報が登録されている。“セマフォID”は、セマフォの識別子を示す。“共有数”は、セマフォが取得(共有)されている数を示す。“プロセスID”は、該当するセマフォを取得しているプロセスの識別子を示す。“優先順位”は、該当するセマフォを取得しているプロセスの優先順位を示す。
このようなセマフォ管理テーブルを用いれば、該当するセマフォと該当するセマフォを取得しているプロセスとの関係を管理することができるようになる。
コピーモジュール10では、プロセス1がPOSIXのセマフォのAPIである「sem_wait()」をコールすることによって、プロセス1からセマフォ取得の要求を受け付けると(S201)、同期制御部21が該当するセマフォ取得の要求側のプロセスのIDと優先順位を取得する(S202)。このとき、一般的にOSが提供するAPIをコールすることで、プロセスのIDと優先順位を取得するものとする。例えば、「getpid()」によりプロセスのIDを取得し、「getpriority()」により優先順位を取得することができる。ここでは、該当するセマフォのIDが「3」であるものとする。
例えば、プロセスのIDとして「1030」、優先順位として「5」が取得できたものとし、該当するセマフォのIDが「3」であるとすると、図5のセマフォ管理テーブルによれば、該当のセマフォは、既に他のプロセスによって取得されていることがわかる。
この判断の結果、両者の優先順位のランク差が1段階であれば、同期制御部21は、従来と同様に、通常のセマフォの取得処理を行う(S208)。すなわち、該当するセマフォが既に他のプロセスに取得されている場合には、セマフォが解放されるまで待たされる。 これは、該当のセマフォが他のプロセスに取得されていない場合(S204)についても同様であり、同期制御部21は、従来と同様に、通常のセマフォの取得処理を行う(S208)。
そして、セマフォが正常に取得できれば(S209)、同期制御部21は、要求側のプロセスのIDと優先順位をセマフォ管理テーブルの該当するセマフォのエントリに保存(更新)する(S210)。
なお、同期制御部21および通知制御部22は、優先順位取得(S203)またはセマフォ取得(S209)が正常に行えなかった場合にも、優先順位のランク差が2段階以上あった場合と同様の処理を行う(S211)。
つまり、リアルタイム性を阻害する優先順位逆転の発生を、未然に、かつ、容易に防止することが可能になるのである。
また、本実施形態では、同期制御をセマフォを用いて行う場合を例に挙げて説明したが、本発明はこれに限定されるものではなく、ミューテックス等の他の同期手段を用いて実現してもよい。
さらに、本実施形態では、同時に取得できるセマフォの数が「1」である場合を例に挙げたが、「2」以上として実現してもよい。「2」以上とする場合には、セマフォ管理テーブル上で該当するセマフォに対して管理するプロセスを複数にして実現すればよい。このときは、要求側の優先順位と保存されている複数の優先順位をそれぞれ比較し、ランク差が2段階以上あれば、優先順位逆転現象が発生する可能性があると判断すればよいのである。
Claims (10)
- 複数の処理単位を略同時に処理するマルチタスク機能を有した情報処理装置であって、
前記複数の処理単位のそれぞれの間で資源の共有部分が存在すると各処理単位間で同期を取るための制御を行う同期手段と、
前記同期手段が同期を取ろうとする処理単位について設定されている優先順位を取得する取得手段と、
前記取得手段が取得した優先順位を保持しておく保持手段と、
前記保持手段が保持している先行処理単位についての優先順位と前記取得手段が新たに取得する後続処理単位についての優先順位とを比較する比較手段と、
前記比較手段での比較結果を基に前記同期手段の動作制御を行うとともに、当該比較手段での比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、前記後続処理単位に対して同期を取るための制御を行わせないように前記同期手段の動作制御を行う制御手段と、
前記比較手段での比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、その旨を当該情報処理装置外部の上位アプリケーションに通知するための通知手段と
を備えることを特徴とする情報処理装置。 - 前記通知手段は、前記外部への通知を、エラーレベルの事象として行うものである
ことを特徴とする請求項1記載の情報処理装置。 - 前記通知手段は、前記外部への通知を、警告レベルの事象として行うものである
ことを特徴とする請求項1記載の情報処理装置。 - 前記通知手段は、前記外部への通知を、情報レベルの事象としてシステムログに記録することで行うものである
ことを特徴とする請求項1記載の情報処理装置。 - 前記複数の処理単位のスケジューリングを行うためのスケジューリング制御手段
を備えることを特徴とする請求項1〜4のいずれか1項に記載の情報処理装置。 - 前記通知手段が通知する通知内容を受信するための通知受信手段に接続している
ことを特徴とする請求項1〜5のいずれか1項に記載の情報処理装置。 - 複数の処理単位を略同時に処理するマルチタスク機能に対応した情報処理プログラムであって、
コンピュータを、
前記複数の処理単位のそれぞれの間で資源の共有部分が存在すると各処理単位間で同期を取るための制御を行う同期手段と、
前記同期手段が同期を取ろうとする処理単位について設定されている優先順位を取得する取得手段と、
前記取得手段が取得した優先順位を保持しておく保持手段と、
前記保持手段が保持している先行処理単位についての優先順位と前記取得手段が新たに取得する後続処理単位についての優先順位とを比較する比較手段と、
前記比較手段での比較結果を基に前記同期手段の動作制御を行うとともに、当該比較手段での比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、前記後続処理単位に対して同期を取るための制御を行わせないように前記同期手段の動作制御を行う制御手段と、
前記比較手段での比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、その旨を上位アプリケーションに通知するための通知手段
として機能させることを特徴とする情報処理プログラム。 - 前記コンピュータを、
前記複数の処理単位のスケジューリングを行うためのスケジューリング制御手段
として機能させることを特徴とする請求項7記載の情報処理プログラム。 - 前記コンピュータを、
前記通知手段が通知する通知内容を受信するための通知受信手段
として機能させることを特徴とする請求項7または8記載の情報処理プログラム。 - 複数の処理単位を略同時に処理するマルチタスク機能を有した情報処理装置で用いられる情報処理方法あって、
前記複数の処理単位のそれぞれの間で資源の共有部分が存在すると各処理単位間で同期を取るための制御を行う同期ステップと、
前記同期ステップが同期を取ろうとする処理単位について設定されている優先順位を取得する取得ステップと、
前記取得ステップが取得した優先順位を保持しておく保持ステップと、
前記保持ステップが保持している先行処理単位についての優先順位と前記取得ステップが新たに取得する後続処理単位についての優先順位とを比較する比較ステップと、
前記比較ステップでの比較結果を基に前記同期ステップの動作制御を行うとともに、当該比較ステップでの比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、前記後続処理単位に対して同期を取るための制御を行わせないように前記同期ステップの動作制御を行う制御ステップと、
前記比較ステップでの比較の結果、前記先行処理単位についての優先順位のランクと前記後続処理単位についての優先順位のランクとの差が2段階以上あると、その旨を当該情報処理装置外部の上位アプリケーションに通知するための通知ステップと
を備えることを特徴とする情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003312511A JP4179110B2 (ja) | 2003-09-04 | 2003-09-04 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003312511A JP4179110B2 (ja) | 2003-09-04 | 2003-09-04 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005084707A JP2005084707A (ja) | 2005-03-31 |
JP2005084707A5 JP2005084707A5 (ja) | 2006-10-12 |
JP4179110B2 true JP4179110B2 (ja) | 2008-11-12 |
Family
ID=34413744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003312511A Expired - Fee Related JP4179110B2 (ja) | 2003-09-04 | 2003-09-04 | 情報処理装置、情報処理プログラムおよび情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4179110B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4984153B2 (ja) * | 2007-09-12 | 2012-07-25 | 独立行政法人産業技術総合研究所 | 実時間タスクにおけるブロック回避方法 |
JP5176230B2 (ja) * | 2008-03-10 | 2013-04-03 | 株式会社日立製作所 | 計算機システム、計算機制御方法及び計算機制御プログラム |
JP5162515B2 (ja) * | 2009-04-03 | 2013-03-13 | 京セラドキュメントソリューションズ株式会社 | 画像処理装置 |
CN102632730B (zh) * | 2011-02-09 | 2014-09-17 | 江门市得实计算机外部设备有限公司 | 打印机远程智能监控及优化升级的方法、系统和装置 |
-
2003
- 2003-09-04 JP JP2003312511A patent/JP4179110B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005084707A (ja) | 2005-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8166480B2 (en) | Reducing lock contention by adding a time slice to an active thread holding a lock | |
EP2893444B1 (en) | Quota-based resource management | |
US20170163762A1 (en) | Asynchronous and idempotent distributed lock interfaces | |
JP4956418B2 (ja) | コンピュータ装置用のオペレーティング・システムの、またはそれに関する改良 | |
WO2009147802A1 (ja) | 優先度制御装置及び優先度制御方法 | |
US20050125789A1 (en) | Executing processes in a multiprocessing environment | |
US20080028391A1 (en) | Minimizing user disruption during modification operations | |
US7472214B2 (en) | Real-time embedded simple monitor method and computer product | |
WO2010067492A1 (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
JP2009187568A (ja) | エージェントシステム | |
JP2008047112A (ja) | エラーハンドリング及びファームウェア更新を調停するための方法及びシステム | |
JP4843372B2 (ja) | 画像処理装置 | |
KR20100006530A (ko) | 경합을 줄이기 위한 윈도우 락 | |
EP3158446B1 (en) | Acquiring resource lease using multiple lease servers | |
JPWO2011096163A1 (ja) | 情報処理システム、排他制御方法および排他制御用プログラム | |
JP4179110B2 (ja) | 情報処理装置、情報処理プログラムおよび情報処理方法 | |
US9021489B2 (en) | Start, suspend and resume an application program where the application program utilizes the same handle to identify a resource upon resumption | |
US9665323B2 (en) | Print control device using setting value limitation information that limits a print setting value selectable by a user program and print system therefore | |
US8832705B1 (en) | Ordered mutual exclusion | |
US20140176979A1 (en) | Management system of information processing apparatus, information processing apparatus, control method of information processing apparatus, and storage medium | |
JP2005149312A (ja) | タスク管理システム | |
JP3840831B2 (ja) | 情報処理装置 | |
CN112540886A (zh) | Cpu负荷值检测方法和装置 | |
JP2003233519A (ja) | ネットワーク上のファイル資源のためのファイル制御装置 | |
CN115981968A (zh) | 监控pdf文件加载的方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060824 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060824 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080606 |
|
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: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080818 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110905 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120905 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120905 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130905 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |