Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Компьютерная концепция
Computing concept
DCEThreads — это реализация потоков POSIX Draft 4. DCE расшифровывается как "Distributed Computing Environment" (распределенная вычислительная среда). DCEThreads позволял пользователям создавать несколько потоков выполнения в рамках одного процесса. Она основана на интерфейсе pthreads.
DCEThreads is an implementation of POSIX Draft 4 threads. DCE Stands for "Distributed Computing Environment" DCEThreads allowed users to create multiple avenues of execution in a single process. It is based on pthreads interface.
История
DCE/RPC находился в разработке, но к тому времени комитет POSIX еще не завершил работу над потоками POSIX. Организации The Open Group пришлось решить, что использовать, и финальные потоки POSIX отличались от их выбора. Потоки POSIX Draft 4 изначально были ограничены (окончательный стандарт исправил эти ограничения). Microsoft полностью переняла DCE/RPC в Windows NT под названием MSRPC, а также в DCOM. Большинство проблем со стабильностью и надежностью, которые программисты связывают со службами DCOM – особенно утечки памяти, проблемы обработки исключений и нестабильность отмены потоков – можно проследить до использования потоков POSIX Draft 4. DCE/RPC достаточно сложен, поэтому обновление для решения и модернизации проблемы потоковой передачи POSIX Draft 4 требует глубоких и специализированных знаний в области программирования. Следовательно, несмотря на свои возможности, эталонная реализация DCE/RPC задерживалась из-за недостатка информации и ресурсов. Ключевое отличие между потоками POSIX Draft 4 и окончательной спецификацией POSIX threads, помимо того, что некоторые функции можно прервать, а другие – нет, заключается в отмене потоков. DCE/RPC использует отмену потоков для передачи сигналов через удаленный вызов процедур (RPC), так что, например, завершение потока в клиентском приложении приводит к завершению соответствующего потока на сервере таким же образом. Окончательная спецификация POSIX не включает в себя такую сложную методику отмены, и, учитывая трудности, с которыми столкнулись поставщики Unix при правильной реализации спецификации POSIX threads, она была исключена.
DCE/RPC was under development, but the POSIX committee had not finalised POSIX threads at the time. The Open Group had to make a decision about which to use, and the final POSIX threads were different from their selection. POSIX Draft 4 threads were limited to begin with (the final standard fixed these). Microsoft adopted DCE/RPC wholesale in Windows NT as MSRPC and also in DCOM. Most of the stability and reliability problems that programmers associate with DCOM services especially memory leaks, exception handling problems and thread cancellation stability issues can be traced back to the use of POSIX Draft 4 threads. DCE/RPC is sufficiently complex that the issue of updating it to solve and modernise the POSIX Draft 4 threading problem requires highly skilled and highly specific programming knowledge. Consequently, despite its capacities, the reference implementation of DCE/RPC has been held up due to a lack of information and resources. The key difference between POSIX Draft 4 threads and the final POSIX threads specification, aside from a number of functions being interruptible where others are not, is thread cancellation. DCE/RPC utilises thread cancellation to propagate signals across the "Remote" of RPC, such that for example a client application terminating a thread results in its corresponding thread on the server also being terminated in the same way. The final POSIX specification does not include such sophisticated cancellation methodology, and, given the difficulties that the Unix vendors had in correctly implementing the POSIX threads specification, it was removed.
Последние события
Linux, с момента внедрения NPTL и ядра Linux 2.6, обеспечивает полноценную поддержку отмены потоков.
Linux, since the introduction of NPTL and the Linux 2.6 kernel, has proper support for thread cancellation.
Текущее использование
DCEThreads теперь существует в основном как слой эмуляции.
DCEThreads now only realistically exists as an emulation layer.