Old said:
A toaster IC is an embedded device.
Embeded != real-time
You are saying you cannot imagine .NET on a particular embedded device.
Real-time is about handling events in a specific time-frame,
not about running on a limited set of hardware. They are
two seperate issues. You can have real-time operations
running on a mainframe, but that doesn't make the mainframe
an embeded device.
But W Marsh pointed out that Java (which is pretty much the same thing)
does run on embedded devices. In fact I am soon to be embarking
on a project to port a C application to a Java embedded device,
should be a whole barrel o' fun.
But has nothing to do with real-time. embeded != real-time.
.NET started off as Java, but Sun would not let Microsoft add their own
extensions, so Microsoft forked it and renamed to .NET . They are
both garbage-collected languages that compile to a virtual machine
target.
Can you guarantee that all events will be handled within a very
limited time frame? If the garbage-collection could cause it
to fail the time constraints, then it is NOT real-time.
Consider, a program controlling the engines on the space shuttle:
Engine shutoff in 5..4..3..2.. **Garbage Collection Starting**
.... (10 seconds go by) ... **Garbage collection ended** ...
1.. engines shut down... Would you care to be flying on this
shuttle flight?
Or a simplier example: You must generate a square wave on one
thread while munging strings in another. The string munging
thread doesn't know when the square wave thread will kick in.
Could garbage-collecter kicking in ever cause a distorted
square wave? If so, it is NOT real-time.