Hi Peter,
On Sun, Mar 07, 2010 at 01:02:55PM +1030, Peter Nguyen wrote:
This makes sense. In reference to my responses above, I'm thinking there would be a profiling session interface that defines the memory that can be shared, have the server write data to this memory, and the clients can declare a dataspace capability (via attaching the dataspace as you mentioned) to this memory so as to read the contents of this memory. Am I on the right track?
Sounds good, though I expected the clients to write sampling data into the memory that is processed by the profiling server. More precisely, the server allocates the shared dataspace from its RAM session and provides the associated RAM-dataspace capability to its clients. Both - client and server - attach the dataspace to their virtual memory and, thereafter, share access to the same RAM pages.
Regarding the mentioned "static variables" in Java... these only work for sharing data within one Java VM. A multi-tasking system like our microkernel-based multi-server OS is more like running an VM per process. Any process then has to explicitly share data via external (non-language) mechanisms (e.g., files or sockets).
Regards