Appropriateness of Managed Code for Real-Time Systems
My question is directed primarily to Tushar Kant Agarwal, and it addresses a concern that garbage collection will interfere with the responsiveness of a real-time system. I also invite responses from anyone who many have had experience in this area.
My employer is attempting to develop a ground station management system for an unmanned air vehicle. Since our development platform is Windows, most members of our design team feel that we should use the latest Microsoft development technologies, including managed code and the CLR. However, one of our most influential team members is very concerned that garbage collection will occur at an inopportune time, perhaps just when operator intervention is needed most.
I have just read Tushar’s article entitled “Memory Management in .NET,” dated 17 November 2003, and found it very informative. In particular, I note the paragraph that states, “…These tests also show that it takes less than 1 millisecond on a 200 MHz Pentium to perform a full GC of generation 0. It is Microsoft's goal to make GCs take no more time than an ordinary page fault.”
This testament is helpful, but what we would find most bulletproof is a trade study, or a real example where managed code has been successfully used in an environment similar to ours. This is what I could really use to convince our management that the managed code environment is the way to go with this project.
Cheers,
Gary