JPH1124947A - コンピュータシステムの排他制御方法及びコンピュータシステム - Google Patents

コンピュータシステムの排他制御方法及びコンピュータシステム

Info

Publication number
JPH1124947A
JPH1124947A JP9182816A JP18281697A JPH1124947A JP H1124947 A JPH1124947 A JP H1124947A JP 9182816 A JP9182816 A JP 9182816A JP 18281697 A JP18281697 A JP 18281697A JP H1124947 A JPH1124947 A JP H1124947A
Authority
JP
Japan
Prior art keywords
task
exclusive control
semaphore
control module
computer system
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.)
Withdrawn
Application number
JP9182816A
Other languages
English (en)
Inventor
Kazutaka Kido
一隆 木戸
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric Co Ltd
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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP9182816A priority Critical patent/JPH1124947A/ja
Priority to US09/111,522 priority patent/US6308243B1/en
Publication of JPH1124947A publication Critical patent/JPH1124947A/ja
Withdrawn legal-status Critical Current

Links

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
    • G06F9/526Mutual exclusion algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 従来のコンピュータシステムにおいては、セ
マフォを獲得中のタスクが異常終了した場合には、例外
ハンドラによってセマフォを安全且つ確実に開放するこ
とは不可能であった。 【解決手段】 複数のプロセス (タスクA, B)により
共有される資源(HDD 13, 映像バッファ140,音声バッフ
ァ150 等) の排他的使用権を表す排他制御モジュール
(セマフォX, Y, Z)を獲得したプロセスがそのセマ
フォに対応する資源の排他的使用権を獲得し、プロセス
がセマフォを開放した場合にそれに対応する資源の排他
的使用権を失うように制御されるコンピュータシステム
において、各セマフォに対応して、それが排他制御する
資源の異常終了時の処理手順を記述した例外ハンドラを
定義し、セマフォを獲得したままでタスクが異常終了し
た場合に、そのセマフォに定義されている例外ハンドラ
を起動する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータシステ
ムの排他制御方法、より具体的には、共有資源を複数の
タスク(プロセス)で使用する場合の個々の資源に対す
る個々のタスクの使用権を排他的に制御するための方法
に関し、またそのような排他制御方法を採用したコンピ
ュータシステムに関する。
【0002】
【従来の技術】マイクロコンピュータを組み込んだ種々
の応用機器では、複数のタスクを処理可能ないわゆるリ
アルタイムマルチタスクシステムが採用される。そのよ
うなシステムにおいて、複数のタスクが一つの資源(共
用資源、たとえばハードディスク等の周辺機器)を使用
する場合には、複数のタスクがそれぞれ勝手に資源に対
するアクセスを行なったのではその資源の状態(たとえ
ばハードディスクであればその記憶内容)が破壊されて
しまう。このため、マルチタスクシステムにおいては、
複数のタスクによる各資源に対するアクセスを排他制
御、即ち一つの資源を同時には一つのタスクのみに独占
的に使用させる権利を与えるという制御を行なう必要が
生じる。
【0003】従来、上述のような排他制御にはセマフォ
(semaphore) と称される排他制御モジュールが利用され
てきた。セマフォとは、本来は鉄道の腕木式の信号機の
ことであるが、コンピュータシステムにおいては、ある
資源がいずれのタスクにも使用されていない場合にはOS
(Operating System)によりリセット状態にされており、
いずれかのタスクが使用する場合にはOSはそのタスクに
使用権を与えると共にセマフォをセット状態にする。
【0004】このように、ある資源に関するセマフォが
セットされている場合には、その資源を他のタスクが使
用したくてもOSが許可しないことにより、一つの資源が
複数のタスクにより同時にアクセスされることが防止さ
れる。
【0005】以下、図1の模式図を参照して、セマフォ
を使用した従来のコンピュータシステムの排他制御方法
について説明する。なおこの例では、タスクAが資源X
をアクセスする場合に、資源Xに対応するセマフォSに
対してP操作(セマフォを獲得する操作、なおセマフォ
を返却する操作はV操作と言う)を行なった上でアクセ
スする場合を考える。
【0006】図1には、タスクAが資源Xへのアクセス
関数に到達し、セマフォSに対するP操作を行なった
後、資源Xに対するアクセスを現在実行している状態が
示されている。このような、タスクAが資源Xへのアク
セスを行なっている状態において、資源のアクセス待ち
等の何らかの理由でタスクAが休眠し、その間にタスク
Bが走行して資源Xに対するアクセス関数に到達したと
する。この場合には、タスクBはセマフォSに対するP
操作を試みるが、現時点では既にタスクAがセマフォS
を獲得(P操作)しているため、タスクBはセマフォS
がタスクAによって返却(V操作)されるまでは、セマ
フォSに対するP操作において休眠することになる。
【0007】以上がセマフォを使用した従来のコンピュ
ータシステムの排他制御方法の概要である。なお、タス
クAがセマフォSを返却(V操作)した場合には、タス
クBはセマフォSを獲得(P操作)し、資源Xにアクセ
スすることが可能になることは言うまでもない。
【0008】次に、実際のコンピュータシステムにおけ
る実例について説明する。たとえば、図2のブロック図
に示されているようなコンピュータシステムにおいて排
他制御方法を適用する場合について考える。
【0009】図2に示されているコンピュータシステム
は、バス10にCPU 11, 主メモリ(RAM) 12, ハードディス
クドライブ(HDD) 13, カメラ14, マイク15, ダイレクト
主メモリアクセスコントローラ(DMAC)16, 等が接続され
て構成されている。なお、カメラ14は映像データをバッ
ファリングするための映像バッファ140 を介して、また
マイク15は音声データをバッファリングするための音声
バッファ150 を介して、HDD 13にはその制御のためのハ
ードディスク(HD)コントローラ130 を介して、それぞれ
バス10に接続している。更に、HDD 13はDMAC16を利用し
てアクセス (データの書き込み, 読み出し) が行なわれ
る。
【0010】このような構成のコンピュータシステムに
おいて、HDD 13に対するアクセスを複数のタスク (タス
クA, B…) が行なう場合について考える。タスクAは
カメラ14により取り込まれた動画データをHDD 13に書き
込む処理を、タスクBはマイク15から取り込んだ音声デ
ータを同じくHDD 13に書き込む処理をマルチタスク処理
する。なお、これらの二つのタスクA, B以外にも、た
とえばカメラ14の映像バッファ140 をアクセスするタス
ク、マイク15の音声バッファ150 をアクセスするタスク
等のタスクも存在する。従って、タスクA及びBにより
HDD 13, カメラ14及びマイク15等の資源はそれぞれ複数
のタスクによりアクセスされるため、セマフォを使用し
た排他制御を行なう必要がある。
【0011】図3はタスクAによる、カメラ14により取
り込まれた動画データを主メモリ12へ転送し、更にそれ
をDMAC16を利用してHDD 13に書き込む処理手順を示すフ
ローチャートである。
【0012】まずタスクAは、カメラ14により取り込ま
れた映像データで映像バッファ140が満杯になるまで休
眠している (ステップS11)。映像バッファ140 が満杯に
なると映像バッファ140 から割り込みがかけられ、その
割込ハンドラにおいてタスクAに対する起床命令が発行
されることによりタスクAが起床する。そして、タスク
Aは、映像バッファ140 の排他制御のためのセマフォX
に対してP操作を行なうことにより (ステップS12)、映
像バッファ140 に対するアクセス権を得る。
【0013】このようにしてタスクAが映像バッファ14
0 に対するアクセス権を得ると、映像バッファ140 から
映像データが主メモリ12へ転送され (ステップS13)、セ
マフォXに対するV操作が行なわれ (ステップS14)、タ
スクAによる映像バッファ140 に対するアクセス権が開
放される。そして、HDD 13への映像データの転送単位で
ある1ブロック分の映像データが主メモリ12に溜まった
か否かが判断され (ステップS15)、1ブロック分の映像
データが主メモリ12に溜まるまでは (ステップS15 で”
NO”) 、上述のステップS11 乃至ステップS14 の処理が
反復される。
【0014】1ブロック分の映像データが主メモリ12に
溜まったと判断された場合には (ステップS15 で”YES
”) 、タスクAは次にHDD 13の排他制御のためのセマ
フォYに対してP操作を行なうことにより (ステップS1
6)、HDD 13に対するアクセス権を得る。
【0015】このようにしてタスクAがHDD 13に対する
アクセス権を得ると、主メモリ12から映像データをHDD
13へ転送するための DMA転送がセットされる (ステップ
S17)。これにより、DMAC16がメモリ12からHDD 13への映
像データの転送を行なうので、タスクAはその終了まで
休眠する (ステップS18)。やがて DMA転送が終了すると
タスクAに対して割り込みがかけられ、その割込ハンド
ラにおいてタスクAに対する起床命令が発行されること
によりタスクAが起床する。そして、タスクAは、セマ
フォYに対するV操作を行なうことにより (ステップS1
9)、HDD 13に対するアクセス権を開放する。この後はス
テップS11 へ処理が戻される。
【0016】図4はタスクBによる、マイク15により取
り込まれた音声データを主メモリ12へ転送し、更にそれ
をDMAC16を利用してHDD 13に書き込む処理手順を示すフ
ローチャートである。
【0017】まずタスクBは、マイク15により取り込ま
れた音声データで音声バッファ150が満杯になるまで休
眠している (ステップS21)。音声バッファ150 が満杯に
なると音声バッファ150 から割り込みがかけられ、その
割込ハンドラにおいてタスクAに対する起床命令が発行
されることによりタスクBが起床する。そして、タスク
Bは、音声バッファ150 の排他制御のためのセマフォZ
に対してP操作を行なうことにより (ステップS22)、音
声バッファ150 に対するアクセス権を得る。
【0018】このようにしてタスクBが音声バッファ15
0 に対するアクセス権を得ると、音声バッファ150 から
音声データが主メモリ12へ転送され (ステップS23)、セ
マフォZに対するV操作が行なわれ (ステップS24)、タ
スクBによる音声バッファ150 に対するアクセス権が開
放される。そして、HDD 13への音声データの転送単位で
ある1ブロック分の音声データが主メモリ12に溜まった
か否かが判断され (ステップS25)、1ブロック分の音声
データが主メモリ12に溜まるまでは (ステップS25 で”
NO”) 、上述のステップS21 乃至ステップS24 の処理が
反復される。
【0019】1ブロック分の音声データが主メモリ12に
溜まったと判断された場合には (ステップS25 で”YES
”) 、タスクBは次にHDD 13の排他制御のためのセマ
フォYに対してP操作を行なうことにより (ステップS2
6)、HDD 13に対するアクセス権を得る。
【0020】このようにしてタスクBがHDD 13に対する
アクセス権を得ると、主メモリ12から音声データをHDD
13へ転送するための DMA転送がセットされる (ステップ
S27)。これにより、DMAC16がメモリ12からHDD 13への音
声データの転送を行なうので、タスクBはその終了まで
休眠する (ステップS28)。やがて DMA転送が終了すると
タスクBに対して割り込みがかけられ、その割込ハンド
ラにおいてタスクAに対する起床命令が発行されること
によりタスクBが起床する。そして、タスクBは、セマ
フォYに対するV操作を行なうことにより (ステップS2
9)、HDD 13に対するアクセス権を開放する。この後はス
テップS21 へ処理が戻される。
【0021】以上のようにして、カメラ14から取り込ま
れた映像データとマイク15から取り込まれた音声データ
とがそれぞれバッファに一時記憶された後にタスクAと
タスクBとがマルチタスク処理されることによりHDD 13
に格納されるのであるが、たとえばタスクAがその実行
中になんらかの理由で異常終了した場合には、それが映
像バッファ140 のアクセス中であるか、またはそれがHD
D 13のアクセス中であるかによって、異なる処理を行な
う必要がある。即ち、映像バッファ140 のアクセス中に
タスクAが異常終了した場合には、映像バッファ140 の
リセットを行なう必要があり、またHDD 13のアクセス中
にタスクAが異常終了した場合には、 DMA転送の中止,
HDコントローラ130 のリセット等を行なう必要がある。
【0022】同様にタスクBがその実行中になんらかの
理由で異常終了した場合には、それが音声バッファ150
のアクセス中であるか、またはそれがHDD 13のアクセス
中であるかによって、異なる処理を行なう必要がある。
即ち、音声バッファ150 のアクセス中にタスクBが異常
終了した場合には、音声バッファ150 のリセットを行な
う必要があり、またHDD 13のアクセス中にタスクBが異
常終了した場合には、DMA転送の中止, HDコントローラ1
30 のリセットを行なう必要がある。
【0023】また一方では、タスクがセマフォを獲得
(P操作)した後の資源のアクセス中の状態において、
セマフォが返却(V操作)されるのを待機して休眠中の
他のタスクはそのまま永久に休眠し続けることになるた
め、システム全体が異常な状態になってしまう。
【0024】このような問題に関しては、従来種々の解
決策が考えられている。たとえば第1の方法として、セ
マフォを獲得しているタスクを終了出来ないようにする
方法が知られている(Wind Rever System発行のVxWorks
5.0 リファレンスマニュアルの1-352)) 。しかしこの方
法は、セマフォが返却されるのを永久に待ち続けるとい
う状態に陥ることを回避するには有効ではあるが、本来
終了すべきタスクが終了しないことによる副作用が発生
し、これがシステムにどのような影響を与えるかが不明
である。換言すれば、この方法ではシステムに対して破
滅的な影響を与える可能性があっても、回避することが
出来ないという問題があった。
【0025】他の方法 (第2の方法) として、セマフォ
を獲得しているタスクが異常終了する場合に、システ
ム、具体的にはOSが、終了するタスクがその時点で獲得
しているセマフォを強制的に開放する方法が考えられる
(前述のWind Rever System 発行のVxWorks 5.0 リファ
レンスマニュアルの1-352)。しかし、この方法では、セ
マフォに関連付けられた資源の現在の状況を把握した上
でセマフォを開放するようにしなければ、セマフォを不
用意に開放することにより、予期できない不具合が発生
する可能性もある。
【0026】更に他の方法 (第3の方法) として、例外
ハンドラを利用する方法がある。たとえば、タスクの異
常終了の原因となったイベントそれぞれに例外ハンドラ
を定義しておき、例外ハンドラの中で資源の状態を監視
しつつ、終了すべきタスクが行なっていた資源へのアク
セスの後始末を必要に応じて行なった後にセマフォを開
放するように、例外ハンドラを記述しておく (μITRON
3.0標準ハンドブック第304 乃至307 ページ) 。
【0027】しかしこの第3の方法では、タスクが異常
終了した瞬間にそのタスクが扱っていた資源が何であっ
たかを特定し、それに従って適切な処理を行なう必要が
ある。また、個々のタスクが扱う資源の増加に伴って、
タスクの異常終了時に扱っていた資源を特定することが
次第に困難になり、その判定のためにフラグを操作する
等のプログラムを追加する必要が生じ、結果的にタスク
のプログラムを複雑化させることになる。また異常処理
の手順の記述そのものが複雑になり、それを含むプログ
ラムの保守が困難になる、等の問題が生じる。
【0028】
【発明が解決しようとする課題】上述の第3の方法にお
いては、例外ハンドラの記述を正確に行ない得るのであ
れば、前述のような種々の問題は解決される。しかし、
通常、例外ハンドラはバスエラー, 強制終了命令の発行
等の比較的おおまかな事象に関して定義されるものであ
り、個々のタスクの個々の資源に関するアクセスという
ような細かな事象には向かない。事実、第3の方法が記
載されているμITRON3.0標準ハンドブックには、システ
ム全体に対して、要因毎に一つのみの例外ハンドラを登
録するようになっている。
【0029】しかし、他のOSでは、個々のタスク毎に、
また要因毎に例外ハンドラを定義可能な場合もある。従
って、例外ハンドラの記述を正確に行なうためには、図
1に示されている状況に対しても例外ハンドラを定義可
能である必要がある。即ち、資源Xの操作関数の内部の
ある場所でタスクAが異常終了した、というような細か
な状況に対しても定義された例外ハンドラを登録可能な
システムが必要になる。しかし実際には、このような細
かな要因に対して例外ハンドラを登録するシステムを実
現することは、煩瑣になりすぎて現実的ではない。この
ため、従来OSにより提供されている程度のおおまかな要
因毎の例外ハンドラを使用するほかはない。
【0030】以上のような事情から、現実には例外ハン
ドラによってセマフォを安全且つ確実に開放することは
従来は不可能であったと言わざる得ない。
【0031】本発明はこのような事情に鑑みてなされた
ものであり、例外ハンドラによってセマフォを安全且つ
確実に開放し得るコンピュータシステムの排他制御方法
の提供を目的とする。
【0032】
【課題を解決するための手段】本発明に係るコンピュー
タシステムの排他制御方法は、複数のプロセスにより共
有される資源の排他的使用権を表す排他制御モジュール
を獲得したプロセスがその排他制御モジュールに対応す
る資源の排他的使用権を獲得し、プロセスが排他制御モ
ジュールを開放した場合にそれに対応する資源の排他的
使用権を失うように制御するコンピュータシステムの排
他制御方法であって、各排他制御モジュールに対応し
て、それが排他制御する資源の異常終了時の処理手順を
記述したプログラムを登録し、排他制御モジュールを獲
得したままでプロセスが終了した場合に、その排他制御
モジュールに対応して登録されているプログラムを起動
することを特徴とする。
【0033】このような本発明のコンピュータシステム
の排他制御方法では、排他制御モジュールを獲得したま
までプロセスが終了した場合に、その排他制御モジュー
ルに対応して登録されているプログラム、即ちその排他
制御モジュールに対応する資源の異常終了時の処理手順
を記述した例外ハンドラが起動される。
【0034】また本発明に係るコンピュータシステム
は、プロセスによる排他的使用権が排他制御モジュール
により表される複数の共有資源を備え、プロセスが排他
制御モジュールを獲得した場合にそれに対応する資源の
排他的使用権を獲得し、プロセスが排他制御モジュール
を開放した場合にそれに対応する資源の排他的使用権を
失うように制御するコンピュータシステムにおいて、各
排他制御モジュールに対応して、それが排他制御する資
源の異常終了時の処理手順を記述したプログラムを特定
する情報が登録される排他制御モジュール管理手段と、
プロセスが排他制御モジュールを獲得した場合にその排
他制御モジュールを特定する情報が記録されるプロセス
管理手段と、排他制御モジュールを獲得したままでプロ
セスが終了した場合に、そのプロセスのプロセス管理手
段から排他制御モジュールを特定する情報を読み出す手
段と、読み出された情報で特定される排他制御モジュー
ルの排他制御モジュール管理手段から資源の異常終了時
の処理手順を記述したプログラムを読み出して起動する
手段とを備えたことを特徴とする。
【0035】このような本発明のコンピュータシステム
では、排他制御モジュールを獲得したままでプロセスが
終了した場合に、そのプロセスのプロセス管理手段から
排他制御モジュールを特定する情報が読み出され、読み
出された情報で特定される排他制御モジュールの排他制
御モジュール管理手段から資源の異常終了時の処理手順
を記述したプログラム、即ち例外ハンドラが読み出され
て起動される。
【0036】
【発明の実施の形態】以下、本発明をその実施の形態を
示す図面に基づいて詳述する。
【0037】本発明のコンピュータシステムの排他制御
方法及びコンピュータシステムでは、セマフォ、即ち排
他制御モジュールに対応して例外ハンドラ、即ちそのセ
マフォが排他制御する資源の異常終了時の手順を記述し
たプログラムを登録することを最大の特徴とする。より
具体的には、個々のセマフォに対応して、そのセマフォ
を獲得中のタスクが異常終了したという要因に対応して
例外ハンドラを登録することを特徴とする。このよう
な、本発明のコンピュータシステムの排他制御方法にお
いてセマフォに対応して登録された例外ハンドラは、そ
のセマフォを獲得しているタスクの異常終了に伴ってそ
のセマフォが排他制御を行なっている資源の後始末をす
る等の処理を実行する。
【0038】図5は本発明のコンピュータシステムの排
他制御方法及びコンピュータシステムにおいて、セマフ
ォを管理するためのデータの構造を示す模式図である。
【0039】本発明のコンピュータシステムの排他制御
方法及びコンピュータシステムに使用されるセマフォ管
理データ20は、個々のセマフォを特定するためのセマフ
ォIDのフィールド21, そのセマフォの開放を待っている
タスクを登録する待ち合わせキューのフィールド22, セ
マフォカウントのフィールド23及びその他の属性値のフ
ィールド24等の従来通常のセマフォを実現するために必
要な情報は勿論のこと、そのセマフォを獲得中のタスク
が終了した場合に呼び出されるべきプログラムの先頭ア
ドレスを記録するタスク終了ハンドラのフィールド25を
有している。
【0040】図6は本発明のコンピュータシステムの排
他制御方法及びコンピュータシステムにおいて、タスク
管理のためのデータ構造を示す模式図である。
【0041】本発明のコンピュータシステムの排他制御
方法及びコンピュータシステムに使用されるタスク管理
データ30は、個々のタスクを特定するためのタスクIDの
フィールド31, そのタスクの優先度のフィールド32及び
その他の属性値のフィールド33等の従来通常のタスクを
実現するために必要な情報は勿論のこと、そのタスクが
獲得中の全てのセマフォのセマフォIDを記録するための
セマフォのIDリストのフィールド34を有している。
【0042】上述の図5に示されているような構造のセ
マフォ管理データ20と図6に示されているような構造の
タスク管理データ30とにより、本発明のコンピュータシ
ステムの排他制御方法においては従来とは異なり、図7
(a) のフローチャートに示されているようなタスクによ
るセマフォ獲得操作 (P操作) 及び図7(b) のフローチ
ャートに示されているようなタスクによるセマフォ返却
操作 (V操作) が行なわれる。
【0043】図7(a) に示されているセマフォ獲得操作
(P操作) は以下のようにして行なわれる。あるタスク
がある資源へのアクセス関数に到達すると、そのタスク
の図6に示されているようなタスク管理データ30のセマ
フォのIDリストのフィールド34にその資源に対応付けら
れたセマフォのセマフォIDが記録され (ステップS31)、
その後に従来と同様のP操作が行なわれる (ステップS3
2)。
【0044】一方、図7(b) に示されているセマフォ返
却操作 (V操作) は以下のようにして行なわれる。まず
従来と同様のP操作が行なわれ (ステップS33)、その後
にそのタスクの図6に示されているようなタスク管理デ
ータ30のセマフォのIDリストのフィールド34から返却す
べきセマフォのセマフォIDが削除される (ステップS3
4)。
【0045】また本発明のコンピュータシステムの排他
制御方法及びコンピュータシステムでは、あるセマフォ
を獲得してそれに対応付けられている資源をアクセスし
ているあるタスクが異常終了した場合のための例外処理
ハンドラを登録する図8のフローチャートに示されてい
るような機能を有している。
【0046】即ち、あるセマフォに例外ハンドラを登録
するには、例外ハンドラを記述し (ステップS35)、その
例外ハンドラの登録対象のセマフォの図5に示されてい
るようなセマフォ管理データ20のタスク終了ハンドラの
フィールド25に、登録すべき例外ハンドラの先頭アドレ
スを記録する (ステップS21)。
【0047】上述のような例外ハンドラの登録処理が行
なわれたセマフォをP(獲得)操作により獲得したタス
クの異常終了の処理手順について、図9のフローチャー
トを参照して説明する。
【0048】タスクの異常終了の処理が開始されるとま
ず、この異常終了するタスクがセマフォを獲得している
か否かが調べられる (ステップS41)。この処理は具体的
には、図6に示されているタスク管理データ30のセマフ
ォのIDリストのフィールド34を調べることにより実行さ
れる。異常終了するタスクがセマフォを獲得していない
場合には (ステップS41 で”NO”) 、通常の従来同様の
タスクの異常終了処理が実行される (ステップS46)。
【0049】異常終了するタスクがセマフォを獲得して
いる場合には (ステップS41 で”YES ”) 、獲得されて
いるセマフォの全てについて例外ハンドラが登録されて
いるか否かが調べられる (ステップS42)。具体的には、
獲得されているセマフォの全てについて、図5に示され
ているセマフォ管理データ20のタスク終了ハンドラのフ
ィールド25への例外ハンドラの登録の有無が調べられ
る。以下、より具体的に説明する。
【0050】まず、図6に示されているタスク管理デー
タ30中のセマフォのIDリストのフィールド34の最初のセ
マフォIDに対応する図5に示されているセマフォ管理デ
ータ20中のタスク終了ハンドラのフィールド25に例外ハ
ンドラが登録されているか否かが調べられる (ステップ
S43)。そのセマフォに例外ハンドラが登録されている場
合には (ステップS43 で”YES ”) 、その登録されてい
る例外ハンドラが呼び出され (ステップS44)、その上で
全てのセマフォについて例外ハンドラの有無が調べられ
たか否かの判断が行なわれ (ステップS45)、全てのセマ
フォについて例外ハンドラの有無が調べられるまでは
(ステップS45 で”NO”) 、ステップS43へ処理が戻され
る。一方、ステップS43 においてセマフォに例外ハンド
ラが登録されていなかった場合には (ステップS43 で”
NO”) 、そのまま上述のステップS45 へ処理が進めら
れ、全てのセマフォについて例外ハンドラの有無が調べ
られるまでは (ステップS45 で”NO”) 、ステップS43
へ処理が戻される。
【0051】以上のような図9に示されている処理の結
果、例外ハンドラが登録されたセマフォが異常終了した
タスクに一つでも獲得されている場合には、その例外ハ
ンドラが呼び出されることになる。このようなセマフォ
に対応して登録されている例外ハンドラは、前述した如
く、そのセマフォを獲得しているタスクの異常終了に伴
ってそのセマフォが排他制御を行なっている資源の後始
末をする等の処理を実行する。
【0052】次に、実際のコンピュータシステムにおけ
る実例について説明する。たとえば、前述の図2のブロ
ック図に示されているようなコンピュータシステムに本
発明のコンピュータシステムの排他制御方法を適用する
場合について考える。
【0053】図2に示されているコンピュータシステム
は、前述した如く、バス10にCPU 11, 主メモリ(RAM) 1
2, ハードディスクドライブ(HDD) 13, カメラ14, マイ
ク15,ダイレクト主メモリアクセスコントローラ(DMAC)1
6, 等が接続されて構成されている。なお、カメラ14は
映像データをバッファリングするための映像バッファ14
0 を介して、またマイク15は音声データをバッファリン
グするための音声バッファ150 を介して、HDD 13にはそ
の制御のためのハードディスク(HD)コントローラ130 を
介して、それぞれバス10に接続している。更に、HDD 13
はDMAC16を利用してアクセス (データの書き込み, 読み
出し) が行なわれる。
【0054】このような構成のコンピュータシステムに
おいて、HDD 13に対するアクセスを複数のタスク (タス
クA, B…) が行なう場合について考える。タスクAは
カメラ14により取り込まれた動画データをHDD 13に書き
込む処理を、タスクBはマイク15から取り込んだ音声デ
ータを同じくHDD 13に書き込む処理をマルチタスク処理
する。なお、これらの二つのタスクA, B以外にも、た
とえばカメラ14の映像バッファ140 をアクセスするタス
ク、マイク15の音声バッファ150 をアクセスするタスク
等のタスクも存在する。従って、タスクA及びBにより
HDD 13, カメラ14及びマイク15等の資源はそれぞれ複数
のタスクによりアクセスされるため、セマフォを使用し
た排他制御を行なう必要がある。
【0055】図10はタスクAによる、カメラ14により取
り込まれた動画データを主メモリ12へ転送し、更にそれ
をDMAC16を利用してHDD 13に書き込む処理手順を示すフ
ローチャートである。
【0056】まずタスクAは、カメラ14により取り込ま
れた映像データで映像バッファ140が満杯になるまで休
眠している (ステップS61)。映像バッファ140 が満杯に
なると映像バッファ140 から割り込みがかけられ、その
割込ハンドラにおいてタスクAに対する起床命令が発行
されることによりタスクAが起床する。そして、タスク
Aのタスク管理データ30のセマフォのIDリストのフィー
ルド34にセマフォXのIDが記録され (ステップS62)、そ
の後に映像バッファ140 の排他制御のためのセマフォX
に対してP操作が行なわれることにより (ステップS6
3)、映像バッファ140 に対するアクセス権がタスクAに
与えられる。
【0057】このようにしてタスクAが映像バッファ14
0 に対するアクセス権を得ると、映像バッファ140 から
映像データが主メモリ12へ転送され (ステップS64)、セ
マフォXに対するV操作が行なわれ (ステップS65)、タ
スクAによる映像バッファ140 に対するアクセス権が開
放されると共に、タスクAのタスク管理データ30からセ
マフォXのIDが削除される (ステップS66)。そして、HD
D 13への映像データの転送単位である1ブロック分の映
像データが主メモリ12に溜まったか否かが判断され (ス
テップS67)、1ブロック分の映像データが主メモリ12に
溜まるまでは (ステップS67 で”NO”) 、上述のステッ
プS61 乃至ステップS66 の処理が反復される。
【0058】1ブロック分の映像データが主メモリ12に
溜まったと判断された場合には (ステップS67 で”YES
”) 、次にタスクAのタスク管理データ30のセマフォ
のIDリストのフィールド34にセマフォYのIDが記録され
(ステップS68)、その後にHDD13の排他制御のためのセ
マフォYに対してP操作が行なわれることにより (ステ
ップS69)、HDD 13に対するアクセス権がタスクAに与え
られる。
【0059】このようにしてタスクAがHDD 13に対する
アクセス権を得ると、主メモリ12から映像データをHDD
13へ転送するための DMA転送がセットされる (ステップ
S70)。これにより、DMAC16がメモリ12からHDD 13への映
像データの転送を行なうので、タスクAはその終了まで
休眠する (ステップS71)。やがて DMA転送が終了すると
割り込みが発生し、その割込ハンドラにおいてタスクA
に対する起床命令が発行されることによりタスクAが起
床する。そして、タスクAは、セマフォYに対するV操
作を行なうことにより (ステップS72)、HDD 13に対する
アクセス権を開放すると共に、タスクAのタスク管理デ
ータ30からセマフォYのIDが削除される(ステップS7
3)。この後はステップS61 へ処理が戻される。
【0060】図11はタスクBによる、マイク15により取
り込まれた音声データを主メモリ12へ転送し、更にそれ
をDMAC16を利用してHDD 13に書き込む処理手順を示すフ
ローチャートである。
【0061】まずタスクBは、マイク15により取り込ま
れた音声データで音声バッファ150が満杯になるまで休
眠している (ステップS81)。音声バッファ150 が満杯に
なると音声バッファ150 から割り込みがかけられ、その
割込ハンドラにおいてタスクBに対する起床命令が発行
されることによりタスクBが起床する。そして、タスク
Bのタスク管理データ30のセマフォのIDリストのフィー
ルド34にセマフォZのIDが記録され (ステップS82)、そ
の後に音声バッファ150 の排他制御のためのセマフォZ
に対してP操作が行なわれることにより (ステップS8
3)、音声バッファ150 に対するアクセス権がタスクBに
与えられる。
【0062】このようにしてタスクBが音声バッファ15
0 に対するアクセス権を得ると、音声バッファ150 から
音声データが主メモリ12へ転送され (ステップS84)、セ
マフォZに対するV操作が行なわれ (ステップS85)、タ
スクBによる音声バッファ150 に対するアクセス権が開
放されると共に、タスクBのタスク管理データ30からセ
マフォZのIDが削除される (ステップS86)。そして、HD
D 13への音声データの転送単位である1ブロック分の音
声データが主メモリ12に溜まったか否かが判断され (ス
テップS87)、1ブロック分の音声データが主メモリ12に
溜まるまでは (ステップS87 で”NO”) 、上述のステッ
プS81 乃至ステップS86 の処理が反復される。
【0063】1ブロック分の音声データが主メモリ12に
溜まったと判断された場合には (ステップS77 で”YES
”) 、次にタスクBのタスク管理データ30のセマフォ
のIDリストのフィールド34にセマフォYのIDが記録され
(ステップS88)、その後にHDD13の排他制御のためのセ
マフォYに対してP操作が行なわれることにより (ステ
ップS89)、HDD 13に対するアクセス権がタスクBに与え
られる。
【0064】このようにしてタスクBがHDD 13に対する
アクセス権を得ると、主メモリ12から音声データをHDD
13へ転送するための DMA転送がセットされる (ステップ
S90)。これにより、DMAC16がメモリ12からHDD 13への音
声データの転送を行なうので、タスクBはその終了まで
休眠する (ステップS91)。やがて DMA転送が終了すると
割り込みが発生し、その割込ハンドラにおいてタスクB
に対する起床命令が発行されることによりタスクBが起
床する。そして、タスクBは、セマフォYに対するV操
作を行なうことにより (ステップS92)、HDD 13に対する
アクセス権を開放すると共に、タスクBのタスク管理デ
ータ30からセマフォYのIDが削除される(ステップS9
3)。。この後はステップS81 へ処理が戻される。
【0065】以上のようにして、カメラ14から取り込ま
れた映像データとマイク15から取り込まれた音声データ
とがそれぞれバッファに一時記憶された後にタスクAと
タスクBとがマルチタスク処理されることによりHDD 13
に格納されるのであるが、たとえばタスクAがその実行
中になんらかの理由で異常終了した場合には、それが映
像バッファ140 のアクセス中であるか、またはそれがHD
D 13のアクセス中であるかによって、異なる処理を行な
う必要がある。即ち、映像バッファ140 のアクセス中に
タスクAが異常終了した場合には、映像バッファ140 の
リセットを行なう必要があり、またHDD 13のアクセス中
にタスクAが異常終了した場合には、 DMA転送の中止,
HDコントローラ130 のリセット等を行なう必要がある。
【0066】同様にタスクBがその実行中になんらかの
理由で異常終了した場合には、それが音声バッファ150
のアクセス中であるか、またはそれがHDD 13のアクセス
中であるかによって、異なる処理を行なう必要がある。
即ち、音声バッファ150 のアクセス中にタスクBが異常
終了した場合には、音声バッファ150 のリセットを行な
う必要があり、またHDD 13のアクセス中にタスクBが異
常終了した場合には、DMA転送の中止, HDコントローラ1
30 のリセットを行なう必要がある。
【0067】本発明のコンピュータシステムの排他制御
方法では、たとえばタスクAがセマフォXを獲得してい
る間に異常終了した場合には、前述の図9に示されてい
る異常終了の処理が実行される。この結果、タスクAの
タスク管理データ30のセマフォのIDリストのフィールド
34が調べられ、セマフォXを獲得中であることが分かる
ので、セマフォXのセマフォ管理データ20のタスク終了
ハンドラのフィールド25が調べられ、そこに記録されて
いるタスク終了ハンドラ、即ち例外ハンドラが起動され
る。この例外ハンドラにはセマフォXが管理する資源、
即ち映像バッファ140 に対する異常終了時の処理が記述
されている。従って、タスクAがセマフォXを獲得して
いる間に異常終了した場合には、セマフォXに対する例
外ハンドラが起動されて映像バッファ140 に対する異常
終了の処理が実行される。
【0068】また、タスクAはセマフォYを獲得してHD
D 13に対するアクセスも行なうが、この場合にも同様
に、セマフォYに対する例外ハンドラとしてHDD 13の異
常終了時の処理を記述してセマフォYのセマフォ管理デ
ータ20のタスク終了ハンドラのフィールド25に登録して
おけばよい。
【0069】一方、タスクBは図11に示されているよう
に、セマフォZを獲得して音声バッファ150 に対するア
クセスと、セマフォYを獲得してHDD 13に対するアクセ
スとを行なう。従って、セマフォZに対する例外ハンド
ラとして音声バッファ150 の異常終了時の処理を記述し
てセマフォZのセマフォ管理データ20のタスク終了ハン
ドラのフィールド25に登録しておけばよい。また、セマ
フォYに関しては、上述したようにタスクAのために既
にセマフォYに対する例外ハンドラとしてHDD13の異常
終了時の処理を記述してセマフォYのセマフォ管理デー
タ20のタスク終了ハンドラのフィールド25に登録されて
いる。
【0070】
【発明の効果】以上に詳述したように本発明のコンピュ
ータシステムの排他制御方法及びコンピュータシステム
によれば、共有資源の排他制御を行なうためのセマフォ
それぞれに異常終了時のための例外ハンドラを作成して
登録するので、複数のタスクが複数の共有資源を共用す
る場合においても、それらの組み合わせではなく、各資
源に一つずつ例外ハンドラを記述すればよい。また、そ
の際にも、個々の資源の異常終了時の処理を記述するの
みでよいため、例外ハンドラの記述が簡単になる。
【0071】また、タスクが異常終了した場合にも、タ
スクがどの資源をアクセスしていたかは、タスク管理デ
ータの内容から容易に判明するため、特別なプログラム
等は不要であり、また適切な例外ハンドラを起動するこ
とが可能になる。
【図面の簡単な説明】
【図1】セマフォを使用した従来のコンピュータシステ
ムの排他制御方法を説明するための模式図である。
【図2】従来及び本発明の排他制御方法が実施されるコ
ンピュータシステムの構成例を示す模式図ブロック図で
ある。
【図3】コンピュータシステムにおいて、あるタスクの
従来の排他制御方法による処理手順を示すフローチャー
トである。
【図4】コンピュータシステムにおいて、他のタスクの
従来の排他制御方法による処理手順を示すフローチャー
トである。
【図5】本発明のコンピュータシステムの排他制御方法
において、セマフォを管理するためのデータの構造を示
す模式図である。
【図6】本発明のコンピュータシステムの排他制御方法
を実現するために必要なタスク管理のためのデータ構造
を示す模式図である。
【図7】本発明のコンピュータシステムの排他制御方法
におけるタスクによるセマフォ獲得操作 (P操作) 及び
セマフォ返却操作 (V操作) の手順を示すフローチャー
トである。
【図8】本発明のコンピュータシステムの排他制御方法
におけるセマフォに例外処理ハンドラを登録する手順を
示すフローチャートである。
【図9】本発明のコンピュータシステムの排他制御方法
によるタスクの異常終了の処理手順を示すフローチャー
トである。
【図10】コンピュータシステムにおいて、あるタスク
の本発明の排他制御方法による処理手順を示すフローチ
ャートである。
【図11】コンピュータシステムにおいて、他のタスク
の本発明の排他制御方法による処理手順を示すフローチ
ャートである。
【符号の説明】
13 HDD 140 映像バッファ 150 音声バッファ 20 セマフォ管理データ 25 タスク終了ハンドラのフィールド 30 タスク管理データ 34 セマフォのIDリストのフィールド

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセスにより共有される資源の
    排他的使用権を表す排他制御モジュールを獲得したプロ
    セスがその排他制御モジュールに対応する資源の排他的
    使用権を獲得し、プロセスが前記排他制御モジュールを
    開放した場合にそれに対応する資源の排他的使用権を失
    うように制御するコンピュータシステムの排他制御方法
    において、 各排他制御モジュールに対応して、それが排他制御する
    資源の異常終了時の処理手順を記述したプログラムを登
    録し、 排他制御モジュールを獲得したままでプロセスが終了し
    た場合に、その排他制御モジュールに対応して登録され
    ているプログラムを起動することを特徴とするコンピュ
    ータシステムの排他制御方法。
  2. 【請求項2】 プロセスによる排他的使用権が排他制御
    モジュールにより表される複数の共有資源を備え、プロ
    セスが前記排他制御モジュールを獲得した場合にそれに
    対応する資源の排他的使用権を獲得し、プロセスが前記
    排他制御モジュールを開放した場合にそれに対応する資
    源の排他的使用権を失うように制御するコンピュータシ
    ステムにおいて、 各排他制御モジュールに対応して、それが排他制御する
    資源の異常終了時の処理手順を記述したプログラムを特
    定する情報が登録される排他制御モジュール管理手段
    と、 プロセスが排他制御モジュールを獲得した場合にその排
    他制御モジュールを特定する情報が記録されるプロセス
    管理手段と、 排他制御モジュールを獲得したままでプロセスが終了し
    た場合に、そのプロセスの前記プロセス管理手段から排
    他制御モジュールを特定する情報を読み出す手段と、 読み出された情報で特定される排他制御モジュールの前
    記排他制御モジュール管理手段から資源の異常終了時の
    処理手順を記述したプログラムを読み出して起動する手
    段とを備えたことを特徴とするコンピュータシステム。
JP9182816A 1997-07-08 1997-07-08 コンピュータシステムの排他制御方法及びコンピュータシステム Withdrawn JPH1124947A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP9182816A JPH1124947A (ja) 1997-07-08 1997-07-08 コンピュータシステムの排他制御方法及びコンピュータシステム
US09/111,522 US6308243B1 (en) 1997-07-08 1998-07-08 Method and system for controlling exclusive access to shared resources in computers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9182816A JPH1124947A (ja) 1997-07-08 1997-07-08 コンピュータシステムの排他制御方法及びコンピュータシステム

Publications (1)

Publication Number Publication Date
JPH1124947A true JPH1124947A (ja) 1999-01-29

Family

ID=16124957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9182816A Withdrawn JPH1124947A (ja) 1997-07-08 1997-07-08 コンピュータシステムの排他制御方法及びコンピュータシステム

Country Status (2)

Country Link
US (1) US6308243B1 (ja)
JP (1) JPH1124947A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009104771A1 (ja) * 2008-02-19 2009-08-27 日本電気株式会社 情報処理装置、その制御方法及びプログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6910210B1 (en) * 1998-11-24 2005-06-21 Microsoft Corp. System and method for terminating applications
US7284244B1 (en) 2000-05-02 2007-10-16 Microsoft Corporation Resource manager architecture with dynamic resource allocation among multiple configurations
US6799208B1 (en) * 2000-05-02 2004-09-28 Microsoft Corporation Resource manager architecture
US7137119B1 (en) 2000-05-02 2006-11-14 Microsoft Corporation Resource manager architecture with resource allocation utilizing priority-based preemption
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
US7058947B1 (en) 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US7039725B1 (en) * 2000-12-22 2006-05-02 Applied Micro Circuits Corp. Buffer semaphore system and method
JP2003108420A (ja) * 2001-09-27 2003-04-11 Hitachi Ltd データストレージシステム及びこの制御方法
US6910127B1 (en) 2001-12-18 2005-06-21 Applied Micro Circuits Corporation System and method for secure network provisioning by locking to prevent loading of subsequently received configuration data
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7921250B2 (en) * 2004-07-29 2011-04-05 International Business Machines Corporation Method to switch the lock-bits combination used to lock a page table entry upon receiving system reset exceptions
US20060070077A1 (en) * 2004-09-30 2006-03-30 Microsoft Corporation Providing custom product support for a software program
US7818625B2 (en) * 2005-08-17 2010-10-19 Microsoft Corporation Techniques for performing memory diagnostics
US20080004755A1 (en) * 2006-06-28 2008-01-03 Dunstan Robert A Apparatus and method for automatically configuring control of a fan to be exclusively performed by a motherboard
US7827444B2 (en) * 2007-09-28 2010-11-02 Intel Corporation Application crash resist method and apparatus
JP5446439B2 (ja) * 2008-07-24 2014-03-19 富士通株式会社 通信制御装置、データ保全システム、通信制御方法、およびプログラム
CN103246611B (zh) * 2012-02-07 2016-01-20 腾讯科技(深圳)有限公司 一种文件处理方法及系统
CN104063355B (zh) 2013-03-21 2017-11-03 腾讯科技(北京)有限公司 对服务器集群进行配置的方法及配置中心服务器

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3385091B2 (ja) * 1994-05-13 2003-03-10 三菱電機株式会社 計算機間の排他制御装置
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
JPH08329019A (ja) 1995-05-31 1996-12-13 Toshiba Corp セマフォのデータ管理方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009104771A1 (ja) * 2008-02-19 2009-08-27 日本電気株式会社 情報処理装置、その制御方法及びプログラム

Also Published As

Publication number Publication date
US6308243B1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
JPH1124947A (ja) コンピュータシステムの排他制御方法及びコンピュータシステム
JPS5812611B2 (ja) デ−タテンソウセイギヨホウシキ
US9229765B2 (en) Guarantee real time processing of soft real-time operating system by instructing core to enter a waiting period prior to transferring a high priority task
JPH0798663A (ja) 非同期i/o制御方式
JPS63200257A (ja) コンピユ−タのプログラムロ−ド方式
JPH0243636A (ja) トレース情報記録方式
JP3422504B2 (ja) タスク間排他制御方法
JPH0421893B2 (ja)
JPH03246645A (ja) データ管理方式
US6345312B1 (en) Selectively dummying a data pipe transparent to a writer application
JPH0635747A (ja) デバッグ支援装置
JP3445848B2 (ja) 外部記憶装置のバッファ制御方法
JPS63156257A (ja) キ−付き索引編成ファイル制御方法
JP3033509B2 (ja) トランザクションの遅延リカバリ方式、遅延リカバリ方法および遅延リカバリプログラムを記録した記録媒体
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH05241861A (ja) オペレーティングシステムの空きメモリ管理方式
JPS6048566A (ja) メモリバスアクセス方式
JP2000305825A (ja) バッファ管理装置
JPH0362244A (ja) 半導体外部記憶装置におけるデータ保証制御方式
JPH04167152A (ja) 空きメモリ管理方式
JPH06266630A (ja) トレース機能付き入出力制御装置
JPH06259383A (ja) 割込み制御方法及び割込み制御装置
KR20040036993A (ko) 시스템 타이머를 이용한 스케쥴링 장치 및 방법
JPH04242843A (ja) サブファイル管理方式
JPH04260139A (ja) ファイルアクセス処理装置

Legal Events

Date Code Title Description
A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20040210