logo logo
Home arrow Frontpage
Thursday, 09 February 2012
 
 
Main Menu
Home
Conscious Machines...
AI Techniques...
Neuroscience...
Researchers...
Publications...
Reviews...
MC Bibliography
Robotics Studio...
Forums...
Blog...
Frontpage
Latest Content
Upcoming Events
22.Feb. 2012

CogSys 2012
Vienna, Austria
04.Apr. 2012

TSC 2012
Tucson, Arizona
17.May. 2012

EAIS 2012
Madrid, Spain
05.Jun. 2012

Cognition & Consciousness
Menorca. Spain
02.Jul. 2012

ASSC 16
Brighton, UK
02.Jul. 2012

Revisiting Turing and his Test
Birmingham, UK
31.Oct. 2012

BICA 2012
Palermo. Italy
Tag Cloud
Architectures Associations Books Conferences Conscious Conscious Machines Consciousness Developer Documentación Documentation Español Machine Machine Consciousness Machines Neuroscience Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
More
Reader's Preferred
MCexperts List
FAQs
Glossary
Site Map
   
ConsScale
   

MC-Papers: Weekly updated compilation of Machine Consciousness Papers

ConsScale: A Scale for Measuring the Development of Consciousness in Artificial Agents (www.ConsScale.com)

 

Introducción a CCR (Concurrency and Coordination Runtime) - Introducción al CCR Print E-mail
Written by Ana Santos y Raúl Arrabales   
Wednesday, 30 January 2008
Article Index
Introducción al CCR
Un Ejemplo Sencillo
Inicialización del CCR
Patrones Simples
Ejemplo de Interleave

Podemos poner un sencillo ejemplo de todo lo visto anteriormente: 

 


Port<int> portInt = new Port<int>(); // 1
portInt.Post(10); // 2
Console.WriteLine(portInt.ItemCount); // 3

Dispatcher dispatcher = new Dispatcher(0, "sample dispatcher"); // 4
DispatcherQueue taskQueue = new DispatcherQueue("sample queue", dispatcher);//5

Arbiter.Activate(taskQueue, Arbiter.Receive( false, portInt, delegate(int item)
{Console.WriteLine("Received item:" + item);})); // 6

port.Post(5); //7



La explicación del código anterior, es la siguiente:

1- Creamos un puerto que acepta instancias de tipo System.Int32 (int). 

2- Añadimos el número 10 al puerto usando el método Post().

3- Mostramos por pantalla el número de elementos que contiene el puerto.

4- Creamos un objeto de la clase Dispatcher con 0 hilos, esto lo que hace es que el CCR crea un hilo para cada CPU por defecto.

5- Se crea una instancia DispatcherQueue, (es decir, una cola de proceso), pasándole cómo parámetros el nombre “sample queue” y una referencia de la clase Dispatcher, creada anteriormente.

6- Realizamos una llamada al método Activate de la clase Arbiter, pasándole cómo parámetros: una referencia de la clase DispatcherQueue, creada anteriormente. Un nuevo elemento Arbiter (mediador), en este caso, al usar el método Receive, este mediador está a la escucha en el puerto “portInt”, creado también anteriormente. Además se pasa un delegado (o método anónimo), que será el encargado de la ejecución cuando se añada un elemento al puerto en cuestión.
 
Nota: El método Activate, sirve para registrar el Arbiter indicado.

7- El elemento (entero 5) ya se ha añadido al puerto, se pasa a la ejecución del delegado.

Cuando el elemento se ha enviado al puerto con un receptor, lo que ocurre dentro de la implementación del puerto es lo siguiente:

1- Se crea un contenedor para el valor fijado. La clase contenedor, IPortElement, permite que el CCR encole los elementos y asigne a cada elemento la tarea correspondiente, independientemente del tipo de elemento.
 
2- El contenedor es encolado.

3- Si la lista de recibidores no es nula y hay al menos un recibidor, el puerto podrá llamar al método ReceiverTask. Evaluate que decide, junto con el mediador, si el elemento puede ser consumido (es decir, ejecutado por el método o delegado especificado).

4- El puerto llama al método taskQueue.Enqueue con la tarea devuelta en la ejecución de Evaluate en el receptor.



Last Updated ( Friday, 01 February 2008 )
 





Lost Password?
No account yet? Register
 Conscious Robots RSS FeedConscious Robots RSS Feed

Find us on Facebook

Follow us on TwitterFollow us on twitter
Polls
Can Robots Become Conscious?
 
Categories
Last Posts in Forum
 
CR
miel continental