logo logo
Inicio arrow Portada
Friday, 03 de July de 2009
 
 
English English  Español Español  
Próximos Eventos
19.Sep. 2009

International Workshop for Scientific Study of Consciousness
Aichi, Japan
12.Oct. 2009

Knowledge, Understanding and Consciousness
St. Louis, MO, USA
05.Nov. 2009

Biologically Inspired Cognitive Architectures 2009
Arlington, Virginia
14.Jul. 2010

BICS 2010: Brain-Inspired Cognitive Systems
Madrid, Spain
Etiquetas
Análisis Artificial Científicos Conciencia Conciencia Artificial Consciencia Consciencia Artificial Consciousness Developer Documentación Documentation Español Howto Investigación Libros Publicaciones Reviews Robotics Robots Robótica Spanish Studio VPL artificial
Destacados
Contenido Reciente
 
NIPS International Workshop for Scientific Study of Consciousness
MRDS no estará en RoboCup 2009
Mente que Permanece
Axel Cleeremans
ASSC XIII
Reseña: Robot Brains
Introducción a CCR (Concurrency and Coordination Runtime) - Introducción al CCR Imprimir E-Mail
escrito por Ana Santos y Raúl Arrabales   
Wednesday, 30 de January de 2008
Índice
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.



Modificado el ( Friday, 01 de February de 2008 )
 





¿Recuperar contraseña?
¿Quieres registrarte? Hazlo aquí
 Conscious Robots RSS FeedFuente RSS de Conscious Robots

Encuéntranos en Facebook

Síguenos en TwitterSíguenos en twitter
Destacamos

Bibliografía de Conciencia Artificial

Una base de datos de artículos seleccionados sobre Conciencia Artificial (actualizada semanalmente):

 Machine Consciousness Papers (MC-Papers) 
  MC-Papers

 
Encuestas
¿Puede Ser Consciente un Robot?
 
Categorías
Mensajes en el Foro
 
CR