ln63wzb@sdcc7.ucsd.EDU (Grobbins) (01/24/87)
What difficulties, specifically, would hamper the implementation of a true multitasking operating system on the Mac? I'm curious about the details, hardware and software. What necessary hardware does the machine lack? What about the existing software would cause dire headaches for the implementor of a multitasking operating system on the Mac? Grobbins.
korn@eris.BERKELEY.EDU (Peter "Arrgh" Korn) (01/24/87)
In article <861@sdcc7.ucsd.EDU> ln63wzb@sdcc7.ucsd.EDU (Grobbins) writes: > >What difficulties, specifically, would hamper the implementation of >a true multitasking operating system on the Mac? I'm curious about >the details, hardware and software. What necessary hardware does >the machine lack? What about the existing software would cause >dire headaches for the implementor of a multitasking operating >system on the Mac? It's my understanding (from a quick chat with Andy Hertzfield at the MacWorld Expo) that the mac stores too much information for each program in low-memory globals for the mac to be able to do context switched effeciently (in other words, every time you switch tasks you would have to move around too much information, thus making each task switch too slow to make multi-tasking effecient enough to be usable). Additionally, without hardware MMU doing the task switching, it's possible for one program to crash the machine, including all the other programs currently running. This is one problem that the Amiga is rather prone to. Anyone with a better explanation? Peter ----- Peter "Arrgh" Korn Hacker? Me? A hacker? No, actually korn@ucbvax.Berkeley.EDU I'm a mac-er. All's we do is {decvax,dual,hplabs,sdcsvax,ulysses}!ucbvax!korn make library calls.
dillon@CORY.BERKELEY.EDU.UUCP (01/24/87)
>What difficulties, specifically, would hamper the implementation of >a true multitasking operating system on the Mac? I'm curious about >the details, hardware and software. What necessary hardware does >the machine lack? What about the existing software would cause >dire headaches for the implementor of a multitasking operating >system on the Mac? >Grobbins. The difficultly is in the fact that the MAC OS was not originally designed for multitasking and also the fact that many programs on the MAC (rightly) assume they own the entire machine. Creating a 'task switcher' is trivial... it took me about 2 hours to write a task-switching signal/wait enviroment for an IBM-PC. The problem was that MSDOS wasn't multiply re-entrant (Only one of the N tasks could actually make MSDOS or BIOS calls). And by the way, multitasking implies "preemption, or switching without notice". Thus SWITCHER doesn't qualify since you have to switch manually. In anycase, getting back to the topic: Assuming that all written programs don't make any assumptions and don't take any short cuts when talking to the MAC's OS, the only problem remaining is to make the system/library calls re-entrant, and to make it appear that each task has its own enviroment (stack, heap, etc...). As far as I can gather, this is what SERVANT does... there's a lot of overhead due to OS manipulations, and a lot of inefficiency due to that fact that there is no notion of 'waiting' for events, but it works. One item of information that I DON'T have is what does SERVANT do about the screen? What happens when you have two tasks running simultaniously, both going into separate but overlapping windows on the MAC screne? And what happens when you run those programs which take over the entire screen such as Asteroids, or the stars demo?? -Matt