• 締切済み

排他制御について

WindowsXP 排他制御可能 Windows98 排他制御不可 Office2003 排他制御可能 Office97 排他制御不可 Windows2000、Office2000は組合せによって排他制御ができたり できなかったりするのでしょうか? 排他制御をサポートするしないについて公式的なサポートサイトが あれば教えて頂けませんでしょうか?

みんなの回答

  • yakan9
  • ベストアンサー率54% (2201/4051)
回答No.4

前に述べた排他制御するためには、ファーストイン/ファーストアウトで処理したいときには、要求の先のものを先に取り上げたいときには 要求を貯め置くような処置も必要になってきます。 このように、排他制御に必要ないろいろな処置をシステムに組み込ん でいくことで、より正しく、より高度なバグを出さないシステム作り をシステムエンジニアは考えていかないといけないのです。 コンピュータの世界では、OSでの基本的な排他制御は保障しています。 しかしシステムとしてバグが発生するところは、この排他制御の 考慮不足によるものは多いと思います。

  • yakan9
  • ベストアンサー率54% (2201/4051)
回答No.3

> Office2000環境ではうまく排他制御にできないようでしたが > ある人はできると言っています。 > 実際はどちらなのだろうということです。 一番簡単な方法は、同じファイルを二つのExcelで開いてみれば、 最初のプログラムでは問題なく開くと思います。 二つ目のプログラムで開くと、制限が付いて、「Readだけなら良いです」と出ませんか。 これで排他制御はできていることになりますけど。 こういった問題ではないのでしようか。 一般的に、早い方がWrite禁止フラグを立てて、更新を禁止します。 遅い方にWriteできないようにします。 この例だと単純ですが、複数のファイルを同時に更新しないとあるプロセスが終了しないようなプログラムで、同時に同じプログラムを 流した時に、最初のプログラムでは、Aファイルを取り、次にBファイルをとりにいくとします。 別なプログラムでは、この逆で、Bファイルを取り、その後Aファイルを とる場合、タイミングによりデットロックが発生します。 こうした場合を避けるためにもっと上の段階で、これらのプログラム郡を流したときに、そこで排他制御をするようにしないといけません。 こういったことをシステム構築していく際に、下位の排他制御は、 OSで保障しているが、上位の排他制御は、システム構築で実現して いくということです。 このような制御をするために、キューのタイミングを取るための手法等が議論されるということです。

  • yakan9
  • ベストアンサー率54% (2201/4051)
回答No.2

補足もないところを見ると、単に「公式的なサポートサイト」の情報 だけを知りたいのでしよう。 あまりにも的が大きすぎて、どんな排他制御なのかで、 話が変わってくるため、コンピュータ間の排他制御から、同一プロセス内の排他制御まであります。 これらは全て使用する側での運用の問題で解決すべき部分もあります。 一例だと、ホストコンピュータのバージョンアップは、シングルユーザーモードで行うことなどです。 排他制御については、セミナーや、論文が多数あり、研究対象として、 議論されています。 ここまで書いても、目的のものでないので、あなたにとっては、 「没記事」でしよう。 ANK.net blog β版 http://ankblog.spaces.live.com/ スケールアップが適する場合 http://japan.zdnet.com/sp/feature/06sp0130/story/0,2000066437,20234267-2,00.htm

naomatu99
質問者

補足

質問の文面が分かりづらくなってしまい申し訳ありません。 クライアントPC Windows2000、Office2000 ファイルサーバー Windows2003Serverで ファイルサーバー上にあるOfficeファイルの排他制御ができるか という意味で質問させて頂きました。 Office2000環境ではうまく排他制御にできないようでしたが ある人はできると言っています。 実際はどちらなのだろうということです。

  • yakan9
  • ベストアンサー率54% (2201/4051)
回答No.1

> 排他制御をサポートするしないについて公式的なサポートサイトが あれば教えて頂けませんでしょうか? 公式的なサポートサイトは知りません。 しかし理屈から考えれば、分かるような。 OSの場合は、デュアルCPUに対応するためには排他制御する必要があるということ。 Officeの場合は、搭載メモリサイズにより、同時に動かせる可能性がでてくれば、排他制御する必要が出て来ると言うことです。 > Windows2000、Office2000は組合せによって排他制御ができたり できなかったりするのでしょうか? 上の条件から言えば、中間地点で微妙なところでしようね。 排他制御を保障するためには、ご存知のように、全てのルーチン に対し、割り込み禁止フラグを立てるか、 もしくは、リエントラント型に組みなおす必要があります。 出来上がったアプリケーションに、排他制御を施すには、リエントラント型にはできないでしょうから、現実的には、一部割り込み禁止/解除 といった、エンキュー/ディキューを使用することになると思いますけど。 この中間地点のものは、まさにこれらの手法を施しつつあるもので、 抜けがある可能性もといった感じはしますけど。 いわゆるデバッグ途中といった感じですかね。 これは、裏を返せば、排他制御していない部分は、バグとしてあがるのではないでしようか。 コンピュータのソフト開発では、よく問われることです。 シリアルユーザブルの保障、排他制御の保障といった言葉は、 よく使われ、新人教育にも最初に教育されますからね。

関連するQ&A

  • テキストファイルの排他制御をかけたい

    教えてください。 Windows10でアプリのメモ帳を使っていますが、 あるメモ帳ファイルを開いている最中に、もう一度同じファイルを開くと排他制御されずに開いてしまいます。 Excel等の別のアプリならば排他制御されて読み取り専用などになるのですが…。 設定により、メモ帳も自動的に読み取り専用でないと開けないように、できないでしょうか?

  • 排他制御に関して

    こんばんは。お世話になっております。 これまで、質問のタイトルにある「排他制御」というものが「同時アクセスでの不具合を避けるための・・」といった程度の知識しかないまま、DB(MySQL)を利用して会員制のサイトを作っているのですが、全体を見直すべく、いざこの排他制御というものを取り入れようとしてみたところ、手持ちの書籍やこれまで見たサイトでは、ファイルをロック・・・などと言った感じで、DBとの関わりがイメージ出来ず、会員の登録情報の変更ページなどの入力フォームをはじめ、ログインページやDBを用いた検索ページにおいての活用は、どのような手順になるのでしょうか? 些か抽象的な質問になっておりますが、取り掛かりがつかめず、例えばログインページを例にとり、IDとパスワードを入力・DBに問合せ、といった流れでは、どのような手順になるかの全体像だけでもアドバイスいただければと、投函させて頂きました。 お忙しい中恐縮ですが、アドバイスなど頂戴できれば幸いです。宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • Perlの排他制御は、独自で行う?

    Perlの排他制御は、独自で行うと下のサイトに書かれていましたが、flock(OUT, 2)はどういう理由でだめなのでしょうか? http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k03.htm

    • ベストアンサー
    • Perl
  • JDBCでのトランザクション・排他制御

    初めまして。 まだ初心者の身なのですが質問させてもらいます。 サーブレット・jspでJDBCを使いデータベースとの処理を行って簡単なショッピングサイトのようなものを作っています。 まずsetAutocomit() = falseでトランザクションを開始し データベースのUPDATEを行って、最後に確定する場合comit キャンセルする場合rollbackとしています。 しかし1人のユーザーがトランザクションを行っている場合に他のユーザーからアクセスされた場合にデータベースのトランザクション中の値を取ってきたいのですが、どうしてもトランザクションでUPDATEされる前の値になってしまうのです。 これを防止するのが排他制御というものだというのは分かったのですが 実際のやり方については、結構調べたのですがあまり載っていませんでした。 データベースはMySQLを使っています。 よろしければJDBCでの排他制御についてのアドバイス、もしくは詳しく説明されているサイトなどございましたら是非教えてください。 よろしくお願いします。

  • Office2003 排他制御の使用者メッセージについて教えて下さい。

    Office2003 排他制御の使用者メッセージについて教えて下さい。 ■環境 OS WindowsXPSP3 Office2003SP3+Office2007互換パック ■背景 ファイルサーバー上のOfficeファイルを利用する運用をしています。 Officeの排他制御であれば複数人利用した時に、通常利用者メッセージが 表示されるはずですがなぜか利用者メッセージが表示されません。 ユーザー名設定は正常に行われています。 ■検証結果 ・Excel2003 xls  NG xlsx OK ・Word2003 doc  OK docx OK ・PowerPoint2003 ppt  OK pptx NG ■質問 4桁拡張子で利用者メッセージが表示されないのであれば理解はできますが アプリケーションによって差がでます。また、ユーザー設定も通常通り 行っているつもりですがなぜ利用者メッセージが表示されないのでしょうか? *画像ファイルはExcel NG画面とWord OK画面です。

  • DB INSERT 時の排他制御について

    初めて投稿するものです。 Java で DB 挿入処理 (会員登録) で悩んでおります。 DB はPostgreSQL8です。 挿入しようとしている会員テーブルは以下のようなレイアウトです。 会員テーブル  ・会員ID 主キー  ・ログインID NOT NULL(*)  ・メールアドレス NOT NULL(*)  ・会員名  ・... ※(*)にはユニーク制約を付けています。 会員IDはPostgreSQLのシーケンスで採番するため、 排他ロックは不要であると思っております。 ですが、ログインIDとメールアドレスは ユニークであるため、排他制御して重複 チェックしなければならないと思っています。 ユニーク制約を張っているため、例外が 発生して判定するというアイデアもあるとは 思いますが、例外で重複判定するのは できれば避けたいと思っております。 例外以外で安全に重複チェックする 場合、どのように排他制御するべきでしょうか? そもそも、排他制御せずに重複チェックを 安全にする方法はあるのでしょうか? ユーザーが多いサイトの場合、テーブルを ロックすると遅くなるような気がします。 ご教授よろしくお願いいたします。

  • Accessの排他制御をどのように行うべきか

    いつもお世話になっております。 Windows2000 Access2002、またはAccess2000にて、 複数のPCで、サーバにおいてあるmdbファイルを使用するシステムを開発する場合、 (例えば、スタンドアロンで使用していたシステムを複数のPCで使用することになったと仮定します。 また予算の都合上、Oracle、SQL Serverなどは使えないものとし、各PCにAccessがインストールされます。 ) 排他制御を行うために、Accessで排他モードで開いて使用するという対応というのは、問題ないのでしょうか。 データが破損する可能性があるということをよく耳にするのですが、 過去に上記の対応を行われた方がいらっしゃいましたら、その後の運用で問題は発生しなかったか(ファイルが壊れる事はないのか)、 過去に壊れた事象をお持ちの方がいらっしゃいましたら、どのように対応されたのか、 別の対応方法をとられていらっしゃる方は、その対応方法を ご教授いただけないでしょうか。 プログラムでデータの破損を退避できるのであれば、上の対応と併せて開発できそうな気はするのですが、、 ご回答、よろしくお願いいたします。

  • 「WINRAR」の排他制御

    PCのアーカイブソフト「WINRAR」でRAR書庫内のファイル内容を更新して上書き保管しても書庫内のファイル更新日は変わらず、再度開き確認しても更新が反映(保存)されていません。 書庫を閉じる段になるとエラーメッセージ『これらのファイルは外部の編集アプリケーションを閉じてから圧縮できます』が出ます。 「書庫に戻る」か「(更新を破棄して)書庫を閉じる」の二択しかなく、書庫に戻っても更新されていないファイルが残っているだけでです。 そこで再度そのファイルを開いて更新しても同じことの繰り返しで更新を反映させることは出来ず結局、更新破棄の一択になります。 ファイル更新したタスク(アプリ)は既に終了しているのに排他制御されています。 「(更新を破棄して)書庫を閉じる」を選択するまでは、【一時ファイル用フォルダー】に、更新が反映されたファイルが残っていますが、書庫に保存されずこのような作業ファイルがどんどん増殖していくだけで結局、書庫に保管することは出来ず書庫を閉じた際にこれらは消去されます。 妙な排他ロックが掛かるファイルは、エクセル、テキスト、PDFなど形式・アプリを問わず発生します。 同じファイルでも排他ロックが掛かったり、掛からなかったり再現の規則性は不明です。 書庫を一旦閉じて再度開いてやり直しても、妙な排他ロックの再現規則性は不明です。 WINRARはVersion6.21、Windowsは10の22H2(適用可能な更新は全て当ててあります) 現在は、書庫内データを大幅更新する際は、閉じる前に更新部分を別にコピペしておき、妙な排他ロックの際には気長にコピペ先から元書庫への更新作業を繰り返して、無事に更新が反映されるまで根気よく使っています。 原因、対策を教えてください。

  • 同一レコード更新時の排他制御

    Oracle9iです。 C/S開発で、VB.NETで画面を開発します。 DBの更新は、画面よりストアドプロシージャを使って行います。 複数ユーザが同一レコードを同時に参照し、同一レコードに対して更新された場合、参照時の更新日時と異なる場合はエラーとするよう設計されています。(つまり、後更新はエラー) この排他チェックロジックを画面側で実装しようとしておりますが、この排他チェックロジックを画面側で実装せずに、Oracleよりエラーレコードを受け取ることによる排他制御を行うことはできないでしょうか? ご教授のほどよろしくお願いいたします。 また、参考サイトあれば、その紹介だけでも助かります。

  • ネットワーク上のファイルの排他

    No.872814 SCSI HDDのファイルシステム?関連で追加で疑問です。 複数のPCと(SCSI等で)接続した一台のディスクは、PC間で排他されないとのことですが、普通のネットワークコンピュータによるファイル共有はどのように排他されているのでしょう? Windows側が排他しているんでしょうか。 にしても、ディスク側にも排他中の情報がありそうに思います。 ディスク内のファイルシステムだけで排他を制御しているなら、複数PCと(SCSI等で)接続した一台のディスクも同じように排他できるのでは?と素人考えしてしまいますが、どうでしょう。