翻訳しなさい

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
UNIX環境の高度プログラミング、第2版(Addison-Wesleyの専門家の計算シリーズ)のイメージ
オペレーティングシステムの概念のイメージ
RHCEの赤い帽子のイメージは証明したエンジニアのLinuxの調査ガイド(検査RH302) (証明の出版物)を
Linuxの穀粒の開発(第3版)のイメージ

Linux -パート2への左舷に取るWaitForSingleObject

同等の機能性を実行する私のそのようなコードをGNU/Linuxに左舷に取るとき最後のポストで私はmutexesおよび可能な方法に関連してWaitForSingleObjectの使用を論議した。  このポストで私はマイクロソフト・ウインドウズででき事の目的とのこのAPIの使用を記述し、GNU/LinuxかUnixにそのようなコードを掲示する可能な方法を提案する。

最初に、でき事の背景は反対する。  でき事の目的はちょうどもう一つのタイプのWindowsの穀粒のディスパッチャーの目的である。  prespectiveコーディングからでき事の目的は1つ以上の穀粒のディスパッチャーの目的を内部に閉じ込め、同時性の意味論がWaitForSingleObjectおよびいとこによって入手しやすい同時性の目的である。  常に同時性の目的はnonsignaledか、または信号を送られる、すなわち目的は2つの可能な州の1つだけにある場合もある。

目的のハンドルのWaitForSingleobjectの待ち時間またはある指定規準までのハンドルを含むAPIsのWaitForの系列すべては会う。  すべてのこれらのAPIsのための2つの基本的な規準はハンドルの待っていて、タイムアウトの値目的の信号を送られた状態である。  従って指定目的が信号を送られた州か指定タイムアウトを書き入れるまでこのAPIの待ち時間を呼ぶ糸は切れた。  ほとんどCPU時間はそのような糸が待ち状態にあるとき使用される。

でき事の場合には、CreateEventかOpenEventはでき事の目的にハンドルを戻す。  でき事は信号を送られた州にあるときそれができ事信号を送られるべきこの特定のでき事を待っている1つ以上の糸を解放する容量を有することを意味する。  でき事はnonsignaled州にあるとき待っている糸を解放しない。  最初にでき事の状態はnonsignaled。  でき事の目的の状態はSetEventかPulseEventによって信号を送られるに明確に置かれる。  でき事の目的はソケットから読むことのような重複された操作でもでき事の目的州が適用によってよりもむしろ穀粒によって信号を送られるに置かれれば、使用される。

でき事はまた2つの再調節されたタイプ入って来。  でき事が手動調整のでき事なら、WaitForSingleObjectsのすべてのリターンそう形成されたらそのでき事を待っている。  つまりWaitForSingleObjectかいとこ手動調整のでき事は1つ以上によって行為を誘発できる。  手動調整のでき事の目的の状態はResetEventによってnonsignaledに明確に再調節されなければならない。

オートリセットでき事の目的のために、WaitForSingleObjectおよびそれは関係再調節されたである

Linux -パート1への左舷に取るWaitForSingleObject

最近私はGNU/LinuxにマイクロソフトWindows NTのために最初に書かれていた32ビット適用を左舷に取ることにかかわった。  この適用はNtWaitForSingleObjectに多数の呼出しおよびNtWaitForMultipleObjectに呼出しのより小さい数を含んでいた。 

今度はこれらの特定Win32 APIsの少数の例より多くを含んでいるコードを左舷に取らなければならなかったUnixへの誰でもまたは近いいとこWaitForSingleObjectEx、MsgWaitForMultipleObjects、MsgWaitForMultipleObjectsEx、等またはGNU/Linuxは試行錯誤のコーディングの長く困難な日そして夜の記憶とおそらく既にマイクロソフト・ウインドウズのこれらの特定の特定のAPIsの意味論そして機能性を試み、正しくまねるために震えているがまだそのような適用、このポストおよび私の次のポストを左舷に取るように試みる必要があっていない読者のために助けるあなたの正気かもしれない(および多分あなたの毛を除けば!) いつか将来。

ところで、両方のAPIsはマイクロソフトによってMSDNで非難したりまだWindows NTおよびWindows XPで期待どおりにはたらく印が付いているが。  私は私がこれらのオペレーティングシステムのそれらをテストしなかったのでWindows VistaかWindows 7について確実ではない。  2非難されたAPIsはそれぞれ同等のAPIs WaitForSingleObjectおよびWaitForMultipleObjectと取替えられた。  このポストの残りのために私はちょうど取り替えのAPIsを論議するが、私が言うことをの最も非難されるか、または取り替えAPIのために有効がありなさい。

最初検査でWaitForSingleObjectはかなり温和なようである。  MSDNの記述は指定目的が信号を送られた州にあるか、またはタイムアウト間隔が」が経過するとき「この機能戻ることを示す。  かなり単純な、無害APIの権利のように鳴るか。  POSIX.1 APIのpthread_cond_timedwaitと同じような多分何か。  それで、完全に間違って、このポストおよび次はなぜ説明する。

WaitForSingleObjectおよびいとこは次の「目的」の一部またはすべてからの信号を待つことができる: ファイルおよびファイル入力/出力の限られた状況の変更の通告、コンソール入力、でき事、仕事、メモリ・リソースの通告、mutex、プロセス、腕木信号機、糸およびwaitableタイマーおよび。  適切に信号を送られたとき、糸は邪魔を除かれ、続く。  GNU/LinuxまたはUnixの世界の出版された標準化されたAPIは単一APIの目的のこの範囲の処理に来られて来ない。

これはおそらくWin32 APIがよりよく設計されているGNU/LinuxまたはUnix APIセットより1つの単一区域である。  GNU/LinuxおよびUnixで異なった種類をの待つ特定のAPIsがある