Pandemonium

Pandemonium name derived by the Selfridge's Pandemonium Metaphor and represents the Akira's Kernel. Its role is to create/manage/destroy Akira's Daemon during the entire system life cycle. Instantiated at the startup as a static object, it read config informations from config.xml file searching for Daemons dynamic libs and creating the number of instances specified for every of them. Each Daemon instance is attached to a thread of execution. Each thread reference information is stored into a specific pandemonium objects data structure. Pandemonium object control cycle contains 4 main steps repeated indefinitely:



  1. Daemons State Analisys and Garbage Collecting of Terminated Daemons.

  2. XML Stream (Blackboard Daemons shared data structure) Analisys and Garbage Collecting of packets too old.

  3. Summarized information showing about Daemons State, XML Stream Content, System Energy Availability and Daemons Network Weights

  4. Suspension for a specified time (as read from config.xml)