Path: utzoo!censor!geac!torsqnt!lethe!yunexus!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!cs.utexas.edu!usc!apple!snorkelwacker.mit.edu!ai-lab!geech.ai.mit.edu!rjc From: rjc@geech.ai.mit.edu (Ray Cromwell) Newsgroups: comp.sys.amiga.advocacy Subject: Re: How do we change the scheduler? (Was Re: Multitasking at home...) Message-ID: <12880@life.ai.mit.edu> Date: 21 Jan 91 05:09:58 GMT References: <1991Jan18.231330.16290@Neon.Stanford.EDU> <7553@sugar.hackercorp.com> <1991Jan21.004720.25985@ncsuvx.ncsu.edu> Sender: news@ai.mit.edu Organization: None Lines: 58 In article <1991Jan21.004720.25985@ncsuvx.ncsu.edu> kdarling@hobbes.ncsu.edu (Kevin Darling) writes: >>> [Mac example: scrolling around while raytracing.] > >So the speed diff is only related to the (Mac GetEvent delay x number of >times) it's called; versus the (Amiga tick routine delay x number of times) >it's done. Unless we know those timings, speed claims are meaningless. >Perhaps there's a better example? - kevin A better example of Preemptive vs cooperative multitasking may be in the continuity of preemptive multitasking. For equal priority tasks on the Amiga using all of their time-slice, tasks will run at the same speed. Consider this preemptive cycle chart. *=Cycle Amiga Time ---> Task A |******** ******** ******** ********> Task B | ******** ******** ******** > Mac Task A |***** ** ****** ************* ** ***> Task B | *************** ***** * ** ** > Mac multitasking cycles will be highly irregular in a heavily loaded system. I suspect that loading a Mac up with time consuming tasks will make the system very jerky, while the Amiga will only slow down. (assuming no high priority tasks block out lower tasks, or something blocks the display for long periods of time.) In my own opinion cooperative multitasking is not multitasking, simply because its not very transparent. How far do you draw the line in defining multitasking? Can Commodore 64's considered to be multitasking because you can put music, and other programs in the IRQ interupt? Can I consider a computer to be multitasking, if all software on the system is written using co-routines to call other software programs? Where is the line drawn? I consider the line to be put at preemptive. Why? Well because I'm considering a task to be an entity which should be allowed to run without voluntarily giving up its control. Consider a benchmark. Benchmarks on the Mac vs Amiga may be unfair, because Mac benchmarks can take all the CPU for its test, while Amiga benchmarks actually test the system's peformance as a whole. I also don't consider the Mac to be multitasking since it hasn't been multitasking from the beginning. Can Mac programs talk to each other? send signals, semaphores? Can they share files, disc resources? Can the Mac update screen windows that are behind other windows without bringing them to front? The Amiga's OS was designed with multitasking from the start. It contains all the facilities to support full blown multitasking and sharing of machine resources. Some of the things that make life on the Amiga easier are Devices, Libraries, and Handlers (all sharable.) On the Amiga, I can 'mount MSH:' and presto, my drive now supports MS-DOS which can be used with ALL programs. I can also MOUNT NET: and use external Amiga's devices as if they were my own (yea, yea, AppleTalk can do this too). I dunno, I guess I'm biased. I've used IBMs,STs, C64/128, Vic20, Trs-80, Cocos, Macs, and the Amiga is the funnest and best development environment I've used.