Xref: utzoo comp.sys.mac:13944 comp.windows.misc:287 Path: utzoo!mnetor!uunet!tektronix!zeus!bobr From: bobr@zeus.TEK.COM (Robert Reed) Newsgroups: comp.sys.mac,comp.windows.misc Subject: Re: A/UX window systems, Mac tool...( Hum Interface) Message-ID: <3255@zeus.TEK.COM> Date: 14 Mar 88 22:56:54 GMT References: <4129@hoptoad.uucp> <283@rhesus.primate.wisc.edu> <1710@ssc-vax.UUCP> <9829@steinmetz.steinmetz.UUCP> <7593@apple.Apple.Com> <3609@bloom-beacon.MIT.EDU> <7658@apple.Apple.Com> <3691@bloom-beacon.MIT.EDU> Reply-To: bobr@zeus.UUCP (Robert Reed) Organization: CAE Systems Division, Tektronix Inc., Beaverton OR Lines: 42 In article <3691@bloom-beacon> chekmate@athena.mit.edu (Adam Kao) writes: You and I must have very different understandings of the term "multitasking." I would like to use this definition: "In a true multitasking system, tasks can run independently. They can also communicate with and interrupt each other." -- Caia Grisar, MIT Information Services. I do not understand how a system can be non-preemptive multitasking. It's very simple. There is nothing in a multitasking system that requires preemptive scheduling. And there is no requirement that a multitasking system have more than a very fundamental intertask communications system. BSD without TCP/IP and sockets would still be multitasking, yes? The mere fact that there is any scheduler, regardless of the algorithm it uses, is probably sufficient justification for calling it multitasking. There can be several tasks simultaneously ready to run, there is a scheduler which decides at regular intervals which to make active, common resources such as the display are shared among the tasks, and each has a preserved context which is activated when the process is resumed. The mere fact that there is not a timer interrupt which regularly invokes the scheduler to force task switches is really a small matter. A few years ago we had a timesharing system on a PDP-11/45 running "motor-dos" a nonpreemptive multitasking system in which it was easy to hog time when doing compute bound operations. It worked fine for running 2 or 3 editing tasks. I wouldn't recommend nonpreemptive scheduling for a timesharing system, but it should work fine for a single user system, especially if all the tasks are polite about deferral. PC based spoolers and other such Terminate and Stay Resident programs provide a form of multitasking for MS-DOS applications. These are truly running multiple tasks--the printer is running while you are typing characters into the text editor--but they also fall into the gray area between strictly nonpreemptive and preemptive scheduling (because these TSRs can enable interrupts which stimulate preemptive task suspension). In this case there is no scheduler, but there is multitasking. So there IS more between heaven and earth than dreamt in your philosophy. -- Robert Reed, Tektronix CAE Systems Division, bobr@zeus.TEK