Метки: Microsoft visual c++ secure runtime 9.0 service pack 1, runtime в антуту, скачать бесплатно kmplayer, coordination hall sender перевод, runtime скачать.
Concurrency and Coordination Runtime (CCR) — библиотека для работы с параллельными и асинхронными потоками данных, базирующаяся на .NET Framework от Microsoft, поставляемая в комплекте с Microsoft Robotics Developer Studio (MS RDS). Несмотря на то что данная библиотека поставляется с MS RDS, сфера её применения не ограничена лишь моделированием поведения робототехники, а также может применяться для улучшения асинхронности в любых приложениях.
Программная логика робота — в отличие от традиционных приложений — должна взаимодействовать с непредсказуемой окружающей средой и правильно реагировать на информацию, поступающую одновременно от множества датчиков. По многим причинам имеет смысл существенную часть логики перенести на множество взаимодействующих друг с другом компьютеров, которые физически могут находиться как на роботе, так и вне его. По этому требуется подход, который одинаково хорошо подходит как для параллельных, так и для распределенных приложений. Библиотека Concurrency & Coordination Runtime и была специально разработана для того, чтобы упростить создание кода для параллельного исполнения и хорошего масштабирования на современных многоядерных процессорах.
Для ответа на вопрос «зачем нужна CCR» вспомним определение понятия «приложение» в контексте Robotics Studio: это композиция слабосвязанных параллельно выполняющихся компонентов. Этот подход можно было бы реализовать с помощью существующих примитивов многопоточного программирования. Однако процесс написания многопоточных приложений — далеко не простая задача, и она становится все сложнее по мере роста числа одновременно выполняемых потоков.
При использовании CCR не требуется вручную управлять потоками, блокировками, семафорами, т. е. всеми стандартными примитивами синхронизации потоков. CCR — это не просто набор утилит, это совершенно другой подход к написанию кода. Он основан на очередях сообщений и наборе зависящих от данных примитивов синхронизации. Потоки полностью скрыты от программиста, и Runtime — в зависимости от данных и от того, где они нужны, — решает, какой код и где будет исполняться. Поскольку синхронизация идет по данным, то запрещается — использовать общую память т.к., это может полностью нарушить схему работы кода.
Библиотека CCR упрощает написание программ, которые работают со многими параллельными и асинхронными потоками данных. Примерами потоков данных могут служить информация с датчиков, ее обработка и управление движением в роботах. [1]
CCR-библиотека содержит класс Dispatcher
, реализующий набор для работы с потоками, с фиксированным числом потоков, все из которых могут выполняться одновременно. Каждый диспетчер содержит очередь (называемую DispatcherQueue
) делегатов, представляющие собой точку входа в процедуру (называемая еще work item или операцией), которая может быть выполнена асинхронно. Операции передаются потокам для выполнения. Объект-диспетчер также содержит обобщённый Port
, представляющий собой очередь, в которую помещается результат асинхронного выполнения операции. Каждая операция может быть ассоциирована с объектом ReceiverTask
, который использует результат для дальнейшей обработки. Arbiter
управляет полученными задачами ReceiverTask
и вызывает их когда результат, который они ожидают, готов и помещен в очередь Port
.
В октябре 2008 года библиотека CCR стала доступна в виде отдельного продукта вместе с средством Decentralized Software Services под названием CCR and DSS Toolkit 2008. [2])
Tags: Microsoft visual c++ secure runtime 9.0 service pack 1, runtime в антуту, скачать бесплатно kmplayer, coordination hall sender перевод, runtime скачать.