home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.realtime
- Path: sparky!uunet!gatech!destroyer!cs.ubc.ca!newsserver.sfu.ca!toseyb
- From: toseyb@fraser.sfu.ca (Joseph Robert Tosey)
- Subject: Re: Real_time systems
- Message-ID: <1992Dec28.185035.17186@sfu.ca>
- Sender: news@sfu.ca
- Organization: Simon Fraser University, Burnaby, B.C., Canada
- References: <1992Dec22.041024.25911@megadata.mega.oz.au> <Bzy362.zo@quadsys.com>
- Date: Mon, 28 Dec 1992 18:50:35 GMT
- Lines: 37
-
- : I have come to the conclusion that preemption is to be
- : avoided *if at all possible*, since it carries a lot of
- : baggage with it.
-
- I've worked with two proprietary RT OS's, and one which is a hybrid
- (half proprietary, that is). I agree--even for very complex systems,
- preemption is undesirable but unavoidable. We use an unconventional
- system to minimize preemption, which I'll summarize below since
- there is such interest in this area.
-
- We allow (encourage) engineers to create tasks for our application
- whenever such makes for a clean design. As a result, we are currently
- running about 500,000 lines of code and 100 - 1000 real time tasks on
- a 68030. Quite simply, we partition the tasks into priorties,
- create a single task for each priority (mostly, anyway) and run a loop as
- described previously within this task. Thus hundreds of tasks fold into a
- few more than half a dozen 'real' preemptive tasks.
-
- The effect is dramatic. The latency for task switching within a priority
- is little more than a procedure call. No interrupt or switch through
- supervisor state required. Few semaphores or other complex mechanisms are
- required, because even our timers run within the same scheme. The savings
- are everywhere.
-
- The savings in memory is dramatic too. Why, given a savings of 300 real
- tasks, we save at minimum 300 * 2k/stack = 600k.
-
- Thus complexity and cost is way, way down, but we still have the benefit
- of preemption in the (rare) situations we need it.
-
- By the way, our system provides an application, supports about 16 terminals,
- three network (via serial or satellite lines), handles 50 phone calls
- per second and supports a database of 500,000 subscriber records.
-
- Not bad for a 68030. The clincher is that we have enough ummph in the
- system and soft deadlines to boot, so we've never had to do any sort of
- technical scheduling analysis.
-