- 締切済み
排他制御について
WindowsXP 排他制御可能 Windows98 排他制御不可 Office2003 排他制御可能 Office97 排他制御不可 Windows2000、Office2000は組合せによって排他制御ができたり できなかったりするのでしょうか? 排他制御をサポートするしないについて公式的なサポートサイトが あれば教えて頂けませんでしょうか?
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- yakan9
- ベストアンサー率54% (2244/4125)
前に述べた排他制御するためには、ファーストイン/ファーストアウトで処理したいときには、要求の先のものを先に取り上げたいときには 要求を貯め置くような処置も必要になってきます。 このように、排他制御に必要ないろいろな処置をシステムに組み込ん でいくことで、より正しく、より高度なバグを出さないシステム作り をシステムエンジニアは考えていかないといけないのです。 コンピュータの世界では、OSでの基本的な排他制御は保障しています。 しかしシステムとしてバグが発生するところは、この排他制御の 考慮不足によるものは多いと思います。
- yakan9
- ベストアンサー率54% (2244/4125)
> Office2000環境ではうまく排他制御にできないようでしたが > ある人はできると言っています。 > 実際はどちらなのだろうということです。 一番簡単な方法は、同じファイルを二つのExcelで開いてみれば、 最初のプログラムでは問題なく開くと思います。 二つ目のプログラムで開くと、制限が付いて、「Readだけなら良いです」と出ませんか。 これで排他制御はできていることになりますけど。 こういった問題ではないのでしようか。 一般的に、早い方がWrite禁止フラグを立てて、更新を禁止します。 遅い方にWriteできないようにします。 この例だと単純ですが、複数のファイルを同時に更新しないとあるプロセスが終了しないようなプログラムで、同時に同じプログラムを 流した時に、最初のプログラムでは、Aファイルを取り、次にBファイルをとりにいくとします。 別なプログラムでは、この逆で、Bファイルを取り、その後Aファイルを とる場合、タイミングによりデットロックが発生します。 こうした場合を避けるためにもっと上の段階で、これらのプログラム郡を流したときに、そこで排他制御をするようにしないといけません。 こういったことをシステム構築していく際に、下位の排他制御は、 OSで保障しているが、上位の排他制御は、システム構築で実現して いくということです。 このような制御をするために、キューのタイミングを取るための手法等が議論されるということです。
- yakan9
- ベストアンサー率54% (2244/4125)
補足もないところを見ると、単に「公式的なサポートサイト」の情報 だけを知りたいのでしよう。 あまりにも的が大きすぎて、どんな排他制御なのかで、 話が変わってくるため、コンピュータ間の排他制御から、同一プロセス内の排他制御まであります。 これらは全て使用する側での運用の問題で解決すべき部分もあります。 一例だと、ホストコンピュータのバージョンアップは、シングルユーザーモードで行うことなどです。 排他制御については、セミナーや、論文が多数あり、研究対象として、 議論されています。 ここまで書いても、目的のものでないので、あなたにとっては、 「没記事」でしよう。 ANK.net blog β版 http://ankblog.spaces.live.com/ スケールアップが適する場合 http://japan.zdnet.com/sp/feature/06sp0130/story/0,2000066437,20234267-2,00.htm
- yakan9
- ベストアンサー率54% (2244/4125)
> 排他制御をサポートするしないについて公式的なサポートサイトが あれば教えて頂けませんでしょうか? 公式的なサポートサイトは知りません。 しかし理屈から考えれば、分かるような。 OSの場合は、デュアルCPUに対応するためには排他制御する必要があるということ。 Officeの場合は、搭載メモリサイズにより、同時に動かせる可能性がでてくれば、排他制御する必要が出て来ると言うことです。 > Windows2000、Office2000は組合せによって排他制御ができたり できなかったりするのでしょうか? 上の条件から言えば、中間地点で微妙なところでしようね。 排他制御を保障するためには、ご存知のように、全てのルーチン に対し、割り込み禁止フラグを立てるか、 もしくは、リエントラント型に組みなおす必要があります。 出来上がったアプリケーションに、排他制御を施すには、リエントラント型にはできないでしょうから、現実的には、一部割り込み禁止/解除 といった、エンキュー/ディキューを使用することになると思いますけど。 この中間地点のものは、まさにこれらの手法を施しつつあるもので、 抜けがある可能性もといった感じはしますけど。 いわゆるデバッグ途中といった感じですかね。 これは、裏を返せば、排他制御していない部分は、バグとしてあがるのではないでしようか。 コンピュータのソフト開発では、よく問われることです。 シリアルユーザブルの保障、排他制御の保障といった言葉は、 よく使われ、新人教育にも最初に教育されますからね。
補足
質問の文面が分かりづらくなってしまい申し訳ありません。 クライアントPC Windows2000、Office2000 ファイルサーバー Windows2003Serverで ファイルサーバー上にあるOfficeファイルの排他制御ができるか という意味で質問させて頂きました。 Office2000環境ではうまく排他制御にできないようでしたが ある人はできると言っています。 実際はどちらなのだろうということです。