Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!maverick.ksu.ksu.edu!orion!jxf From: jxf@orion.cis.ksu.edu (Jerry Frain) Newsgroups: comp.sys.mac.system Subject: Re: True Multitasking, True Object-oriented, True anything. Message-ID: <1991Jan22.082018.14641@maverick.ksu.ksu.edu> Date: 22 Jan 91 08:20:18 GMT References: <6082@stpstn.UUCP> <1991Jan22.035748.275@d.cs.okstate.edu> Sender: news@maverick.ksu.ksu.edu (The News Guru) Reply-To: jxf@orion.cis.ksu.edu (Jerry Frain) Organization: Kansas State University, Department of Computing and Information Sciences Lines: 73 In article <1991Jan22.035748.275@d.cs.okstate.edu> minich@d.cs.okstate.edu (Robert Minich) writes: >How about if we just use "preemptive multitasking" to >describe itself and let "multitasking" refer to any number of schemes where >two or more otherwise unrelated threads of execution are active at one >time? We can use "multithreaded application" to describe a single >program that has multiple threads of execution. I would agree with this argument, except for one thing. The term "multitasking," I believe, is derived from the feature of Ada to allow the programmer to establish separate threads of control. The Ada term for a thread is a "task." Thus, I believe, the term multitasking was coined from the multiple-tasking feature of Ada. This use of "multitasking" is synonymous to Mr. Minich's definition of "multithreading" (as it should be). >Here are the definitions >I propose: > multiprogramming -- multiple tasks executing with one > thread per task (typical time sharing) Correct. "Multiprogramming"is defined as a system which has the ability to have more than one program (job) in main storage, and have the processor switch rapidly between the programs so that they appear to be executing concurrently. "Time-sharing" is multiprogramming except that now interactive services are provided to users who have on-line terminals while larger jobs execute in the background. I defined "multitasking" (informally) above, so I won't repeat myself. "Preemptive multitasking" does not _really_ make sense. "Preemptive" certainly does not describe "multitasking." We already know that the Mac is time-sharing. To say that it is also multitasking adds a new dimension which is not accurate, especially if you believe the part about the origin of the term "multitasking" stems from the Ada language. The words "preemptive" and "cooperative" describe the way in which jobs in a multiprogramming/time-sharing environment relinquish the processor so that another job may be scheduled for execution. In this context, "preemptive" and "cooperative" describe one characteristic of the scheduling policy used by the operating system. That is, a "preemptive scheduler" typically suspends a job (process) after a "time quantum" has expired, and a "cooperative" scheduler waits until the currently-running job relinquishes the processor *on its own*. Thus, the Macintosh implements a cooperative _scheduler_. Unix, AmigaOS, et. al. perform preemptive _scheduling_. > True (tm) -- a term used by those who don't know > how to communicate Depending upon its use, of course. In this case, I would tend to agree. Regards, --Jerry -- Jerry Frain -- Systems Programmer Kansas State University Department of Computing & Info Sciences Internet : jxf@cis.ksu.edu Manhattan, Kansas UUCP : ...!rutgers!ksuvax1!jxf