質問

その間にトレードオフの関係をシステムVおよびPosixのセマフォ?

役に立ちましたか?

解決

から :

  • での機能についての違いは、システムVおよびPOSIXのセマフォ 実装はこのシステムV 制御できるのか. カウントで増減すること;はPOSIXには、セマフォアカウント 増減少し1.
  • POSIXセマフォできない操作のセマフォアクセス権 はシステムVセマフォできる 変更の権限の セマフォ、サブセットの ます。
  • 初期化の創造セマフォは原子からのユーザー 視点に立ったPOSIXセマフォ.
  • から利用の視点で、システムVセマフォは不器用ながPOSIX セマフォは直前
  • の拡張性のPOSIXセマフォを使用名前のないセマフォをするのはどうだろうか 以上システムVセマフォ.A ユーザー/クライアントのシナリオ、それぞれのユーザー 自インスタンスのサーバー したほうが良いと思われます使用のPOSIX セマフォ.
  • システムVセマフォ、作成時にsemaphoreオブジェクトを作成し配列 セマフォはPOSIXセマフォ をただひとつ。このため 特集では、セマフォ創出(メモリ プ-ワイズ)るのは事実システム VセマフォがPOSIX セマフォ.
  • これはPOSIXセマフォり システムVに基づくセマフォ.
  • POSIXセマフォるメカニズムをプロセスの広いセマフォで よりシステム全体のセマフォ.なので、場合に 開発を忘れあり セマフォは、処理を終了 セマフォを掃除するのです。シンプル は、POSIXセマフォを提供 機構のための非永続的な セマフォ.

他のヒント

POSIXとの2つの大きな問題は、独立したプロセス(スレッドではない)で使用されるセマフォの名前/共有しました: POSIXセマフォは、セマフォロックを保持している間に別のプロセスが死んだ時に待機中のプロセスをウェイクするメカニズムを提供しません。クリーンアップの欠如はデッドロックにそれらを使用しようとし、他のか、その後の処理が発生しますゾンビのセマフォにつながることができます。特定し、それらをきれいにしようとするOSでセマフォをリストのないPOSIXの方法もありません。 SysVのIPC上のPOSIXのセクションでは、グローバルのSysV IPC資源を一覧表示し、操作するためのIPCSとipcrmのツールを指定して実行します。 Linux上でこれらのリソースは、多くの場合、/ shmに見つけることができるが、そのようなツール、あるいはメカニズムは、POSIX IPCのために指定されていません。これは間違った時に間違ったプロセスにKILL信号が再起動するまで、対話プロセスの全体システムをデッドロックすることができることを意味する。

もう一つの欠点は、POSIXセマフォのファイルのセマンティクスを使用することです。含意は同じ名前を持つが、異なる状態で複数の共有セマフォがあり得ることです。例えば、プロセスはsem_open、その後、sem_unlink前sem_close呼び出します。このプロセスはまだそれを閉じる前に、開いているファイルをリンク解除のようにセマフォを使用することができます。 、及び(マニュアルに従って)工程1のsem_unlinkとsem_close呼び出しの間に、同じセマフォにsem_open工程2呼び出しが同じ名前を持つブランド新しいセマフォを取得し、同じ名前のプロセスとは異なる状態で1. 2つの共有セマフォ独立して動作すると、共有セマフォの目的に反します。

制限1は、上記のPOSIXがキャッチできない信号が送られることはありませんことを保証せず、実世界のシステムでは使用できないセマフォを共有します。限定2は、与えられたセマフォを使用するすべてのコードに対する制御を想定し、注意深い符号化によって緩和することができます。率直に言って、その以上のビット驚くべきは、彼らがそうであるように、標準的にそれを作っています。

私は、これは古いですけど、まだグーグルのこの礼儀を読んで、それらの利益のために、私はPOSIX(システムレベル)セマフォ上でSystem Vセマフォを使用することを見つける#1の理由は、セマフォ資源を獲得する能力であります自動的にプロセスが終了どんなにカーネルによって返されません道ます。

私は(彼らがステージング中に便利ですが)複数の(アトミック)セマフォの操作はほとんど使用されていないことに同意し、System Vのインタフェースは奇妙ですが、確実と同じクリーンアップセマンティクスを達成するための方法は、単純にありませんことをPOSIXセマフォます。

私は人々デザインを作るのだろうかSystem Vのセマフォのような悪いのAPIの!あなたは(そのような単一ステップで複数のインクリメント・デクリメントとアトミックオペレーションなど)System Vセマフォと行くには非常に強い理由があるUneless、あなたは、POSIX名前付きセマフォに固執すべきです。

リンク先の記事は、System Vセマフォと間違っ及び非直感的に何を説明します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top