Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!lll-winken!uunet!sugar!ficc!peter From: peter@ficc.uu.net (Peter da Silva) Newsgroups: comp.sys.misc Subject: Re: User Interfaces (was: Re: Iconitis) Message-ID: <3878@ficc.uu.net> Date: 15 Apr 89 15:41:34 GMT References: <1930@dataio.Data-IO.COM> <11555@lanl.gov> <17376@cisunx.UUCP> <1773@etive.ed.ac.uk> Organization: Xenix Support Lines: 40 In article <1773@etive.ed.ac.uk>, nick@lfcs.ed.ac.uk (Nick Rothwell) writes: > Note my words: "allow itself". You're right: there's a burden on the > programmer with GetNextEvent() and all that stuff. This is sad. I think the > reason that the Mac doesn't timeslice is that it has to define exactly > when objects in memory might move around under the application. So: it only > happens at event-time. How does the Amiga handle this? Or doesn't it have > the same kind of heap management? The Amiga doesn't have the same kind of heap management. All memory is fixed once allocated. Fragmentation is not so bad because most of the short-lived objects are similar in size (mostly message packets). > That isn't always what you want... If the application is "chugging along", > then it can't respond to asynchronous events generated by the user > interface, such as window-uncovering or highlighting - or should the > system do this, by hanging onto bitmap images? The Amiga supports three kinds of windows: SIMPLE_REFRESH, which work like Mac windows and leave the refreshing to the application, SMART_REFRESH which work like X windows with backing store, and SUPER_BITMAP which have a complete off-screen image maintained by the O/S. In practice the overhead of SUPER_ BITMAP is considered too high so most programs use SIMPLE_REFRESH or SMART_ REFRESH. Also there are console windows (like XTERM windows), which are actually SMART_REFRESH windows with a handler process attached. So you get your choice of how you want your program to work. > UNIX does it by virtue > of having another layer: my compilation runs fine in an X-window, because > there's another process emulating the terminal and responding to user > events. I don't think this is feasible for the hardware we're talking about. It's not only feasible but it's done. I can open up a CLI window, like an xterm window with a shell in it, any time I want. The overhead is very low because the overhead of Amiga tasks is very low, and the massive use of shared libraries cuts down on memory usage. -- Peter da Silva, Xenix Support, Ferranti International Controls Corporation. Business: uunet.uu.net!ficc!peter, peter@ficc.uu.net, +1 713 274 5180. Personal: ...!texbell!sugar!peter, peter@sugar.hackercorp.com.