この記事のトピックは、Wikipediaの一般的な特筆性ガイドラインを満たしていない可能性があります (2011年10月) |
DCEThreadsはPOSIX Draft 4スレッドの実装です。DCEは「Distributed Computing Environment(分散コンピューティング環境)」の略です。[1] DCEThreadsにより、ユーザーは単一プロセスで複数の実行経路を作成できます。[2] pthreadsインターフェースに基づいています。[3]
歴史
DCE/RPCは開発中でしたが、当時POSIX委員会はPOSIXスレッドを最終決定していませんでした。Open Groupはどのスレッドを使用するかを決定する必要があり、最終的なPOSIXスレッドは彼らの選択とは異なっていました
POSIX Draft 4では、当初スレッド数に制限がありました(最終規格ではこの点が修正されました)。MicrosoftはWindows NTでDCE/RPCをMSRPCとして全面的に採用し、 DCOMにも採用しました。プログラマーがDCOMサービスに関連付ける安定性と信頼性の問題の多く、特にメモリリーク、例外処理の問題、スレッドキャンセルの安定性の問題は、POSIX Draft 4のスレッドの使用に起因しています。
DCE/RPCは非常に複雑であるため、POSIX Draft 4のスレッド問題を解決し、現代化するために更新するには、高度なスキルと高度なプログラミング知識が必要です。その結果、DCE/RPCの優れた機能にもかかわらず、情報とリソースの不足により、リファレンス実装の開発が滞っています。
POSIXドラフト4のスレッドと最終的なPOSIXスレッド仕様の主な違いは、一部の関数が割り込み可能で他の関数が割り込み不可能な点を除けば、スレッドのキャンセル機能です。DCE/RPCはスレッドのキャンセル機能を利用して、RPCの「リモート」にシグナルを伝播します。例えば、クライアントアプリケーションがスレッドを終了すると、サーバー上の対応するスレッドも同様に終了します。最終的なPOSIX仕様にはこのような高度なキャンセル機能は含まれておらず、UnixベンダーがPOSIXスレッド仕様を正しく実装するのに苦労したため、この機能は削除されました。
最近の開発
Linuxは、NPTLとLinux 2.6カーネルの導入以来、スレッドキャンセルを適切にサポートしています
現在の使用
DCEThreadsは現在、エミュレーション層としてのみ現実的に存在しています。
参考文献
- ^ 「IBM Docs」. IBM .
- ^ "dec95a1.pdf" (PDF) . 2015年12月18日時点のオリジナル(PDF)からアーカイブ。2021年2月10日閲覧。
- ^ 「DCE スレッドとは何ですか?」