
On 1 Dec 2009, at 05:44, Tom Hawkins wrote: ....
I never considered running Atom generated functions in an asynchronous loop until you posted your "Atomic Fibonacci Server" example (http://leepike.wordpress.com/2009/05/05/an-atomic-fibonacci-server-exploring... ). I'm curious how such a system would behave if it referenced a hardware clock to enable and disable rules. I can see how this could be problematic for hard real-time, safety critical stuff. But there is a wide field of applications where this approach would work just fine -- not having to worry about meeting a hard loop time would certainly simplify the design. Could some form of static analysis be applied to provide the timing guarantees?
Yes this is possible. I work with Stochastic Process Algebras that have these properties. With them it is possible to get strong probabilistic guarantees and, when combined with carefully chosen priority and preemption model, you can have both 'hard' (i.e response within a given time with probability 1) and softer guarantees (yet with known time CDF). The really nice property is that, given that your problem will permit it, you can even create systems that can go into saturation (arrival rate exceeds processing rate) and define how they will gracefully degrade. We use this for constructing and analysing large scale distributed systems and reasoning about, and controlling, their emergent properties including under overload and when the communications is lossy. Neil