dgb@unislc.uucp (Douglas Barrett) (04/04/91)
The difference of preemptive vs cooperative multitasking is one of fairness, and one of ease of programming. Only a preemptive multitasking OS can establish a priority of processes and *guarantee* access according to priority. In a strictly cooperative environment any process (job, task) *can* hog all of its resources indefinitely. This situation *can* cause problems for processes trying to conform to timing requirements. A common example of these types of problems are slow character based communication software which can time out if there is no activity for a period of time. Both cooperative and preemptive OSes can (and do) fail in these situations. But examining the failures is instructive. In all cases it is only important to consider situations where the machine in question has enough capacity to run all processes. In a preemptive environment a process would fail if there are too many other processes running at a higher priority. This can be addressed by adjusting the priority of the affected process. None of the other processes need be modified, and the internal workings of none of the processes need be changed. In a cooperative OS a failure could arise when any one process denied access to the other processes too long. Now it could be that the offending process's timing characteristics are controlled by events external to it (a compiler for example). So in this case the only choices are not to compile difficult programs, or rewrite the compiler to somehow always insure that it always gives up the processor in some maximum time. This modification would be easy if the OS provided the service - or nearly impossible if it did not. But the point is that the changes involve a recompile. This is impossible with most purchased products. So in a cooperative environment the onus is on the programmer, and writing good, friendly software can be very difficult. The functionality needs to be replicated in each process, making each process larger. Standards are impossible. In a preemptive OS the programmer doesn't have to worry about other processes. The OS will stop his process and restart it fairly. Now what does all of this mean on a single user machine. To me it is clear that there is a trade off, and a cross over point. Cooperative OSes are simpler (therefore potentially smaller, faster and more robust) while the processes are more complicated (therefore potentially larger, slower and less robust). If we assume a machine running only a few simple processes a cooperative OS would probably suffice and could offer a cost advantage. But for the power user who whats to run complicated software preemptive becomes a necessity, and eventually offers a cost advantage. My feeling is that a 25MHz '030 machine is too much to be restricted to the MAC OS. I think Apple knows this and I think most people know this. I think that the MAC is under attack from all directions. Atari and Commadore offer many of the same features of the MAC cheaper. Windows is for real and so is PS2, and they have more third party everything. The MAC may be cloned (sure Apple will sue, but money spent on law suits is money not spent on technology). Worksations are moving down into the MAC price range. I don't think there is enough expansion of the pc market to allow Apple to continue its present strategy under these attacks. But if Apple puts a UNIX derivative on the MAC, then explain to me why it is worth more than a 33MHz '386 machine running UNIX. And what happens to software standardization and the computer that people really use? But the BIG question is (ironically) can *Apple* survive the change from a closed, proprietary, margins driven company to an open, quantity driven one? Apple started as a low cost, open alternative to the large companys of the day, so maybe they can. But maybe they are too long in the tooth to remember, or even care. ---------------------------------------------------------------------- Douglas Barrett speaking only for himself. UNIX Systems Programmer UNISYS, Salt Lake City
weave@brahms.udel.edu (Ken Weaverling) (04/07/91)
In article <1991Apr3.173623.17264@unislc.uucp> dgb@unislc.uucp (Douglas Barrett) writes: [ Loads of dribble explaining diff between cooperative and preemptive multi- tasking deleted] [ Mac attack deleted...] Ah, isn't Windows cooperative multi-tasking as well?! -- >>>---> Ken Weaverling >>>----> weave@brahms.udel.edu
jyen@Apple.COM (John Yen) (04/08/91)
Douglas Barrett writes: > But the BIG > question is (ironically) can *Apple* survive the change from a closed, > proprietary, margins driven company to an open, quantity driven one? > Apple started as a low cost, open alternative to the large companys of the > day, so maybe they can. But maybe they are too long in the tooth to > remember, or even care. We remember. (Lookit that geezer, 25 years old and still walking...:-) ) We care. John Yen jyen@apple.com 7.0 kernel test team Disclaimer: #include <disclaimer.h> Oh, chill out, I'm just reading while I scarf dinner. I'll get back to I/O in a couple minutes...:-)
urlichs@smurf.sub.org (Matthias Urlichs) (04/09/91)
In comp.sys.mac.system, article <12955@goofy.Apple.COM>, jyen@Apple.COM (John Yen) writes: < Douglas Barrett writes: < > < > Apple started as a low cost, open alternative to the large companys of the < > day, so maybe they can. But maybe they are too long in the tooth to < > remember, or even care. < < We remember. < We care. Any ideas on how to convince the rest of Apple (esp. the legal beagles) to share that view? -- Matthias Urlichs -- urlichs@smurf.sub.org -- urlichs@smurf.ira.uka.de /(o\ Humboldtstrasse 7 - 7500 Karlsruhe 1 - FRG -- +49-721-621127(0700-2330) \o)/