POV-Ray : Newsgroups : povray.off-topic : Fruit flavours : Re: Fruit flavours Server Time
29 Jul 2024 08:22:14 EDT (-0400)
  Re: Fruit flavours  
From: Orchid Win7 v1
Date: 24 Mar 2013 09:05:48
Message: <514efa2c$1@news.povray.org>
> I am afraid Andy is correct here (except for his prediction/observation
> that the PC almost caught up, any generation of a PC system was
> responsive when it came out of the box, but that stopped after you had
> used it for some time).

> The Amiga was a multiprocessor system with the GUI almost entirely
> handled by a coprocessor/firmware/hardware, the distinction is hard to
> make in this case.

I'm not sure what you're trying to say with this...

The mouse was drawn as a hardware sprite overlay, so moving the mouse 
pointer involves poking new coordinates into some video registers. This 
takes a handful of compute cycles, and is easily implemented by a single 
interrupt handler.

By default, dragging a window shows an outline. I believe there was an 
option somewhere to show full window contents while dragging. The Amiga 
had a dedicated chip for blitting areas of memory around, and 
particularly for blitting image data. That means the CPU just has to 
program a few parameters into this chip, and the window gets copied to 
its new location. Again, doesn't require much CPU power.

Several parts of the OS are stored in an on-board ROM. (In particular, 
the pre-emptive task scheduler, the file-system drivers and the GUI 
rendering code.) That doesn't mean you *have* to use these; it just 
means that if you do, they don't need to be loaded from disk.

> That meant that neither IO nor computations would
> interrupt the GUI; even if you completely overloaded the machine with
> computations and disk access the system was totally responsive visually.
> Many times my Amiga completely hung on something but I could still move
> the windows in real time, the mouse was functioning, even the buttons
> could be pressed.

Indeed. The Amiga was quite good at not doing that thing where 
everything stops responding until some event occurs.

(Having said that, without memory protection hardware, one rogue process 
could crash the entire machine. But on the first hand, buggy software 
was rare on that platform.)

> The only way a modern PC could even come close to such GUI performance
> is when one processor would be set aside for GUI only with no other
> tasks and even then the other processes could steal so many cycles that
> the GUI is slowed down markedly.

Well, my understanding is that modern graphics cards have hardware 
acceleration for graphical tasks too. So the situation shouldn't be too 
much different than how it was with the Amiga's custom hardware.

> You can now complain that the screen resolution of the Amiga was much
> less, that it was not a full implementation of a preemptive multiuser
> system, that it had no virtual memory etc.

640x768 for the highest video resolution, which *is* fairly limited. 
(But we're talking about a long-obsolete platform, after all.)

Pre-emptive: Yes. The OS is 100% pre-emptive. If some program goes into 
an infinite loop, you can kill it, and it *will* die. If some program 
tries to use all available RAM, it gets killed, and so forth.

Multi-user: No. Not even slightly. But hey, it's a home computer. It has 
no networking capabilities at all, so there's less call for multiple users.

Virtual memory: The CPU used lacks the necessary MMU hardware to 
implement either virtual addressing, memory protection or virtual 
memory. Later on you could buy add-on cards that included the MMU, and a 
few people made software that allows virtual memory.

(Adding memory protection would have broken applications. In particular, 
the OS messaging system fundamentally relies on zero-copy pointer 
passing, which doesn't work if each application lives in a different 
address space.)

> But that is all irrelevant to
> the observation that the Amiga had the best GUI response of any system I
> have seen yet.

Indeed.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.