Concurrency and Coordination Runtime

Concurrency and Coordination 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])

См. также

  • Parallel Extensions
  • Joins

Ссылки

Дополнительные источники


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Concurrency and Coordination Runtime" в других словарях:

  • Concurrency and Coordination Runtime — (CCR) is an asynchronous programming library based on .NET Framework from Microsoft distributed with Microsoft Robotics Developer Studio (MRDS). Even though it comes with MRDS, it is not limited to modelling robotic behavior but can be used to… …   Wikipedia

  • Microsoft Robotics Developer Studio — MRDS redirects here. MRDS may also refer to a Member of the Royal Dublin Society or the Monster Rancher DS. Microsoft Robotics Developer Studio Developer(s) Microsoft in association with the community Initial release December 18, 2006 (2006… …   Wikipedia

  • Microsoft Robotics Developer Studio — Тип Инструмент для робототехники Разработчик Microsoft совместное с сообществом разработчиков Операционная система Windows XP SP2, Windows Server 2003, Windows XP Embedded, Windows CE 5.0, Windows CE 6.0, Windows Vista (32 и 64 битная), Windows 7 …   Википедия

  • Parallel FX Library — (PFX) is a managed concurrency library being developed by a collaboration between Microsoft Research and the CLR team at Microsoft for inclusion with a future revision of the .NET Framework. It is composed of two parts: Parallel LINQ (PLINQ) and… …   Wikipedia

  • Microsoft Robotics Studio — Infobox Software name = Microsoft Robotics Studio caption = Microsoft Robotics Studio latest release version = Microsoft Robotics Developer Studio 2008 CTP July latest release date = July 18, 2008 developer = Microsoft in association with the… …   Wikipedia

  • Microsoft Robotics Studio — Microsoft Robotics Developer Studio Microsoft Robotics Developer Studio Développeur Microsoft en association avec la communauté …   Wikipédia en Français

  • Microsoft robotic studio — Microsoft Robotics Developer Studio Microsoft Robotics Developer Studio Développeur Microsoft en association avec la communauté …   Wikipédia en Français

  • Microsoft Robotics Developer Studio — Développeur Microsoft en association avec la communauté …   Wikipédia en Français

  • CCR — Die Abkürzung CCR steht für: Cape Central Railway, eine ehemalige Bahngesellschaft in Südafrika und Vorgänger der New Cape Central Railway (siehe dort) Cardiocerebral Resuscitation, englisch für die Kardiozerebrale Reanimation Cash Conversion… …   Deutsch Wikipedia

  • — Objektorientierte Programmiersprache Basisdaten Paradigmen: multiparadigmatisch: strukturiert, imperativ, objektorientiert, funktional …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»