[olug] 3Com NICs, QNX & "upgrading to W2K"
Daniel G. Linder
dlinder at iprevolution.com
Sat Jan 4 07:54:54 UTC 2003
Wow, I get to put on my CompSci/"Real Geek" hat for a change... :)
> That is all so far. Now for some questions for my fellow LUGers:
> -What is this QNX? I assume another *nix flavor?
I haven't used QNX myself, but from what I have seen of it, it looks/acts like a Unix system to most of us mortals... i.e. it uses a command line and shell, I believe it has a X11 compatible graphical display, understands multiple users and multi-tasking, etc. When you dig "under the hood", it is different because of the "real-time" constraints...
> -What the hell are they talking about regarding a "real-time" OS?
(My father use to be the manager of the "real-time systems" for a major electrical company here in Nebraska so most of my understanding is from there and some light reading on the Internet.)
A "real-time" OS tries to balance things so that when a process is running and it asks to do something (print to the screen, read from a file, close a relay, etc) the OS tries to shuffle things around so that the events happen in a pre-determined time span. Let me try to use an example:
If your grandmothers pacemaker (!!!) is running a non-realtime OS and the heart starts going into an attack at the same time the OS decides it is now a good time to run a couple background tasks, the process that takes care of firing the pacemaker electrodes will be put on hold until the other background tasks complete or they use up their slice of time. If there is some reason that the background tasks are able to hold on to the CPU, the OS doesn't always give the control to the next process.
In a real-time os, each process is given a very well defined maximum time to run, and the OS will monitor the processes to make sure the other "critical" processes are getting served within a small window of time.
In another example, if the device being monitored is a safety switch on a large industrial cutting tool, you don't wan the OS to put the "STOP!!!!" command on hold while it is busy writing to the disk. In a "hard" real-time (as opposed to "soft") system, each process tells the OS how long it is willing to wait once it has sent an alert. The OS then monitors and adjusts it's scheduler to ensure that the processes that need sub-millisecond responses are handled in a more timely manner than those requesting 2-3 second responses.
> -Any recommendations for this fellow, or should I say for whenever we get
> stuck in this same position?
There are a couple of groups trying to put hard real-time options into Linux, but I haven't ever worked with them. I wasn't aware that Win2K was considered as a "real-time" OS??? I would think that the QNX code would be easier to port to a Unix variant than Windows.
Dan
More information about the OLUG
mailing list