Xref: utzoo comp.sys.mac:14046 comp.windows.misc:307 Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!sun!decwrl!labrea!polya!ali From: ali@polya.STANFORD.EDU (Ali Ozer) Newsgroups: comp.sys.mac,comp.windows.misc Subject: Re: Shy pre-emption++ Message-ID: <2154@polya.STANFORD.EDU> Date: 16 Mar 88 16:03:11 GMT References: <7670@apple.Apple.Com> <6970@drutx.ATT.COM> Reply-To: ali@polya.UUCP (Ali Ozer) Organization: Stanford University Lines: 39 In article <6970@drutx.ATT.COM> clive@drutx.ATT.COM (Clive Steward) writes: >Here may be a big point that keeps getting missed. Apple is probably shyer >than they should be about Multifinder's real abilities. This pre-emption >issue vs. Unix seems just about pure eyewash -- the two systems look about >equally (non-)pre-emptive. > ... >Unix is not 'pre-emptive' at all, unless a process stays in it's own >computation longer than the 'lightning bolt' timer interrupt period, >which has traditionally been a 1 second interval. ^^^^^^^^ I'd hate to run any sort of interactive program on such a system, especially if anyone is ray-tracing! 8-) But really, there are some other features that Unix (and other multitasking systems provide) that you really do need. Task priorities, for instance. Consider the Amiga: You run a ray tracer and a word processor. Set the ray tracer's priority to a low value, and leave the WP at the default. You are assured of getting immediate response as soon as you hit any key in your WP, while the ray tracer (which we assume is a CPU hog) will soak up any unused cycles from right between your fingers. But you won't even know the ray tracer is running. Another feature you might find in a multitasking operating system is interprocess communication, which Multifinder currently doesn't provide. Interprocess communication isn't necessary for multitasking; but many problems are much more easily and gracefully solved with it than without it. Note that I'm not saying MultiFinder can't do these; with enough work anything is possible. You can kludge up you ray tracer and stick in calls to check the event queue. You'd need to put these in a lot places, though, as ray tracers tend to do off and run in floating point intensive loops for long periods of time. As soon as some event came in, the ray tracer would have to give up control. Interprocess communcation is also possible --- You can write and read files (whose names have been agreed on by the participating tasks), or you can use system resource files kept in RAM. Yes, these are possible, but probably at the cost of speed and memory. And not to mention all the redundancy in user programs. Ali Ozer, ali@polya.stanford.edu