An Entity of Type: library, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

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 express asynchronous behavior in any application. In May 2010, the CCR was made available along with the entire Robotics Developer Studio in one package, for free. Microsoft Robotics Developer Studio 2008 R3.

Property Value
dbo:abstract
  • 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 express asynchronous behavior in any application. CCR runtime includes a Dispatcher class that implements a Thread pool, with a fixed number of threads, all of which can execute simultaneously. Each dispatcher includes a queue (called DispatcherQueue) of delegates, which represent the entry point to a procedure (called work item) that can be executed asynchronously. The work items are then distributed across the threads for execution. A dispatcher object also contains a generic Port which is a queue where the result of the asynchronous execution of a work item is put. Each work item can be associated with a ReceiverTask object which consumes the result for further processing. An Arbiter manages the ReceiverTask and invokes them when the result they are expecting is ready and put on the Port queue. In May 2010, the CCR was made available along with the entire Robotics Developer Studio in one package, for free. Microsoft Robotics Developer Studio 2008 R3. CCR was last updated in RDS R4 in 2012. It is no longer under development. Asynchronous programming is now supported in Visual Studio languages such as C# through built-in language features. (en)
  • Concurrency and Coordination Runtime (CCR)とは、マイクロソフトがレゴ・マインドストームなどのロボット制御プログラミング向けに配布しているMicrosoft Robotics Developer Studio (MRDS)の一部で、.NET Frameworkをベースとした非同期プログラミングライブラリである。MRDSの一部として配布されているが、ロボット制御に特化されているわけではなく、一般的なアプリケーション用の非同期プログラミングライブラリとしても利用できる。CCRはErlangの影響が極めて強く受けており、用語こそ違えど基本的な考え方はほぼ同一である。 CCRのランタイムには、同時実行できるスレッド数が固定されたスレッドプールを実装するDispatcherクラスが含まれている。また、各DispatcherにはDispatcherQueueというプロシージャのエントリポイントを示すデリゲートのキューを持っており(CCRで分散処理したい作業項目の一覧を持っており)、作業項目は実行スレッドに分散され非同期実行される。またDispatcherオブジェクトには作業項目を非同期実行した結果を入れる汎用ポートと呼ばれるキューも存在している。各作業項目は、処理結果を消費するReceiverTaskオブジェクトに関連付けることができる。Arbiter ReceiverTaskを管理し、彼らを期待して準備ができてとする場合、それらを呼び出すPortのキュー。 (ja)
  • 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 упрощает написание программ, которые работают со многими параллельными и асинхронными потоками данных. Примерами потоков данных могут служить информация с датчиков, её обработка и управление движением в роботах. CCR-библиотека содержит класс Dispatcher, реализующий набор для работы с потоками, с фиксированным числом потоков, все из которых могут выполняться одновременно. Каждый диспетчер содержит очередь (называемую DispatcherQueue) делегатов, представляющие собой точку входа в процедуру (называемая ещё work item или операцией), которая может быть выполнена асинхронно. Операции передаются потокам для выполнения. Объект-диспетчер также содержит обобщённый Port, представляющий собой очередь, в которую помещается результат асинхронного выполнения операции. Каждая операция может быть ассоциирована с объектом ReceiverTask, который использует результат для дальнейшей обработки. Arbiter управляет полученными задачами ReceiverTask и вызывает их когда результат, который они ожидают, готов и помещен в очередь Port. В октябре 2008 года библиотека CCR стала доступна в виде отдельного продукта вместе с средством Decentralized Software Services под названием CCR and DSS Toolkit 2008. (ru)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 10474143 (xsd:integer)
dbo:wikiPageLength
  • 2458 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1091704587 (xsd:integer)
dbo:wikiPageWikiLink
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • 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 express asynchronous behavior in any application. In May 2010, the CCR was made available along with the entire Robotics Developer Studio in one package, for free. Microsoft Robotics Developer Studio 2008 R3. (en)
  • Concurrency and Coordination Runtime (CCR)とは、マイクロソフトがレゴ・マインドストームなどのロボット制御プログラミング向けに配布しているMicrosoft Robotics Developer Studio (MRDS)の一部で、.NET Frameworkをベースとした非同期プログラミングライブラリである。MRDSの一部として配布されているが、ロボット制御に特化されているわけではなく、一般的なアプリケーション用の非同期プログラミングライブラリとしても利用できる。CCRはErlangの影響が極めて強く受けており、用語こそ違えど基本的な考え方はほぼ同一である。 (ja)
  • Concurrency and Coordination Runtime (CCR) — библиотека для работы с параллельными и асинхронными потоками данных, базирующаяся на .NET Framework от Microsoft, поставляемая в комплекте с Microsoft Robotics Developer Studio (MS RDS). Несмотря на то что данная библиотека поставляется с MS RDS, сфера её применения не ограничена лишь моделированием поведения робототехники, а также может применяться для улучшения асинхронности в любых приложениях. (ru)
rdfs:label
  • Concurrency and Coordination Runtime (en)
  • Concurrency and Coordination Runtime (ja)
  • Concurrency and Coordination Runtime (ru)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License