Path: utzoo!attcan!uunet!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.arch Subject: Re: Macintosh OS Message-ID: <12727@cbmvax.commodore.com> Date: 14 Jun 90 21:08:21 GMT References: <8767@odin.corp.sgi.com> <369@three.MV.COM> Reply-To: daveh@cbmvax (Dave Haynie) Organization: Commodore, West Chester, PA Lines: 66 In article <369@three.MV.COM> cory@three.MV.COM (Cory Kempf) writes: >And one further thing: people who buy computers don't give a ****** about >what hard work programmers have to do. They couldn't care less where the >line is drawn between OS and Application. While that's ture in an ideal world, an ideal world this isn't. If a certain class of program or a certain program feature is too difficult for most programmers to code correctly, then most programmers won't code it correctly. You would hope that the ones who do code it correctly would be successful in the marketplace, but another reality is that "The Technical Best" often has a very hard time competing with "The Best Salesman" or "The Largest Company". >A well written set of cooperating tasks will run at least as fast as a set >of preemptively scheduled tasks. On a GUI based system, they will run (as >perceived by the user) better. Not likely. A cooperative set of tasks can't always swap often enough to keep things going interactively. A preemptive system can always swap quickly enough, since swapping grain is independent of the applications running. >Swapping at event time when there are no pending events is the best time for >such things. There is no way that a purely preemptive MT system can always >preemt at such times. Both types of systems can use interrupts to signal the system of a user's intent to communicate -- you don't have to wait for a swap to notice the user. A preemptive system designer and tuned for interactive use can always appear to swap at points of interactivity. Tasks can swap several times a second, far faster than a user can interact. Not that all preemptive systems _are_ designed and tuned for user interaction. But some are. For example, the Amiga OS. Keyboard and mouse events cause interrupts which signal high level priority tasks, for example, the Intuition task, which manages user events for the GUI. If you grab the mouse, Intuition will wake up on the next task swap (a fraction of a second) and process movements or keyclicks, even while ray traces or disk activity is going on. If it finds an event that a program is interested in, it'll signal that task, which otherwise sits on a wait queue, consuming no CPU time. But this system is designed for single user interactivity. You may have found the Mac OS much more responsive than UNIX systems like NeXT or Sun, and assumed something about preemptive operating systems. In fact, that's got absolutely nothing to do with preemption vs. non-preemption, and everything to do with the design of the Mac OS vs. UNIX. The Mac OS, even in it's non multitasking form, is designed (maybe overdesigned) for user interaction. The UNIX OS, in its basic form, was designed as a multiuser OS. UNIX implementers can do a good or bad job of tuning this for the interactive single user, but to date, I've never seen one as responsive as an Amiga. For that matter, using a reasonably fast Mac, even under multifinder, is a downer if you're used to an Amiga. And that's not a stab at the Mac's speed -- the IIcx I use in my lab is plenty quick. But things block all over the place. I can't move windows around while the disk is going or a dialog box is up. I bet when Apple moves to a preemptive multitasking OS, this very same machine will get much "snappier" to me, the interactive user. >Cory Kempf I do speak for the company (sometimes). >Three Letter Company 603 883 2474 >email: cory@three.mv.com, harvard!zinn!three!cory -- Dave Haynie Commodore-Amiga (Amiga 3000) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy "I have been given the freedom to do as I see fit" -REM