Path: utzoo!utgpu!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!lll-winken!cert!netnews.upenn.edu!msuinfo!rang From: rang@cs.wisc.edu (Anton Rang) Newsgroups: comp.sys.mac.system Subject: Re: Changes for preemptive multitasking Summary: It *wouldn't* require changes to application programs (or needn't) Message-ID: Date: 12 May 91 21:32:39 GMT References: <811@newave.UUCP> <15931@helios.TAMU.EDU> <1443@cash.cs.utexas.edu> Sender: news@msuinfo.cl.msu.edu Distribution: comp Organization: UW-Madison CS department Lines: 65 In-Reply-To: mpretzel@cs.utexas.edu's message of 11 May 91 12:03:05 GMT >Windows - Windows can multitask DOS applications if it runs 8086 based [...] > This is due entirely to the fact that the 386 chip was designed to > run multiple virtual 8086 machines. Windows does no magic. Well, actually it does do some "magic" -- it takes care of managing the screen and keyboard. MS-DOS programs make calls to the operating system which are intercepted by Windows. (I assume, though I'm not familiar with the internals, that there is either some interception of direct writes to video memory, or separate copies of video memory swapped in and out as needed.) >Amiga - From the ground up, day one, the Amiga's operating system was designed > to pre-emptively multitask. That is why it does it. Right. >Mac - Implementing a pre-emptive multi-tasking OS would guarantee software > incompatibility for all programs. No, no. See my earlier posting (heck, see several hundred earlier postings, though they're scattered over two years at least :-). There is no reason why pre-emptive multitasking couldn't be implemented on the Mac without requiring existing programs to be changed. > [ ... ] Apple will not release a multi-tasking OS until the > Mac memory model has been altered. Currently, applications assume that > they have complete access to all available memory. Yes, *but* this isn't necessarily a problem. Given protected memory (a PMMU or 68030), every application *can* have complete access to "all available memory." The way that UNIX works, for instance, is that programs think they have access to "infinite memory." It would be fairly easy to use the MultiFinder model (setting a memory size), or simply give each application a large virtual address space. In fact, though it would be complicated, the current memory manager model would let virtual memory be reclaimed, by doing a purge and/or relocating it. Hmmm...this sounds interesting.... >What I think Apple should do. > >Apple has just completed a total rewrite of system software into C++. Is this true? (Not intended to be a challenge, just an honest question--I'm curious.) [ ... various suggestions not really relevant to pre-emptive MT elided ... ] >Finally, Apple should lay out the structure of how a pre-emptively >multi-tasking program should operate. A new method for dealing with >memory could be imple- mented within new programs, but their more >efficient memory handlers would simply be unnoticed by the System 7.0 >MultiFinder. Yes, this would be nice. Maybe have a bit on applications which is like the '32-bit clean' bit, but means 'knows System 8.0' :-). >Since all the work will have to be done some day, why not start >working now on smoothing the transistion to System 8? I hope Apple's been already thinking about this and talking it over with developers, actually. :-) I'd like to see this sort of thing soon (but not too soon, I gotta replace my SE with a //fx first :-). Anton +---------------------------+------------------+-------------+----------------+ | Anton Rang (grad student) | rang@cs.wisc.edu | UW--Madison | "VMS Forever!" | +---------------------------+------------------+-------------+----------------+