>Please give an example of when this would be useful?
The whole idea of real-time processing is to guarantee fairly deterministically
that a response to an event will occur within a specified (normally fairly
short) time frame. In our case, we are trying to use Linux, which is not yet
really a real time operating system, to achieve real-time performance. There are
a number of reasons for this, the primary one being that Linux comes at the
right price, especially considering the application we are developing will be
installed into at least 500 PCs. Also, it is other-wise a good system,
particularly for development.
However, I digress. The application we are developing includes a WAN (Wide Area
Network) communications module, running HDLC variants over both synchronous and
asynchronous comms links. For these polled protocols to work efficiently,
particularly over low speed (read low cost) links, there must be some guarantee
that the polled devices will respond to a poll from the primary side of the link
within a time frame of the order of ten milliseconds, and preferably better.
Therefore, we need to find some way of ensuring that the task responsible for
generating and sending these responses will actually be given some priority and
scheduled to run almost immediately after a poll from the primary side is
Posix 1003.1b specifies a standard way of assigning priorities, etc, and Linux
and the GNU libraries have implemented some of the mechanisms specified.
However, Linux is not a real time system, so it looks as though we will have to
implement some kernel patches ourselves to get close to achieving something
approximating real-time performance. The information provided to us by Markus
and others has helped us to identify what facilities are available in Linux and
the gcc libraries, what some of the shortcomings are, and some ideas about how
we can overcome the limitations.
I'll probably try to publish a summary of what we have achieved when we get
things sorted out a little more, for the benefit of others who are interested in
using Linux as a real-time system. However, I don't currently expect to be ready
to do so for another couple of weeks. If I should publish this in some other
news group / mailing list, please tell me.
Hope this answers your question, Alex.