🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.amiga.tech
Article #13952

Re: resource tracking

#13952
From: Paul-Andre Panon
Date: Thu, 01 Mar 1990 02:55
63 lines
4004 bytes
In article <1165@lpami.wimsey.bc.ca> lphillips@lpami.wimsey.bc.ca (Larry Phillips) writes:
>Rather depends on what you mean by a system call and IPC doesn't it? The
>programmer need not concern himself that IPC is happening as the result of a
>system call, nor does he need to handle messages just because the system is
>using them behind his back.
>
>>IPC is integral to the Amiga. Sharing memory between a bunch of tasks is not
>>something you can get away from. It's rare on UNIX.
>
>That I'll go along with.
>
>-larry

I think you lost the context of the thread, Larry. The idea was that, for most
system calls on the Amiga, one or more messages will wind up being passed
somewhere in the processing of that call. This is certainly true in the case
of most filesystem or device I/O. Which means that, unlike what was stated
in another message by somebody else (Peter?) a CLI doesn't qualify. It uses
dos's CON: handler, thus the console.device, IDCMP messages, and at the lowest
level, input.device. Probably most of these will generate messages when the
device process has "locked" device globals (although the code may be executed
in the calling process' context occasionally; if the RKM:L&D device format
is the used in the device, BeginIO only generates a message to the device
process to queue the command if another command is already in progress). To
guarantee that you would do no message passing, you would probably have to:

          -Bypass intuition by building your own View and use the layers
  library (optional if you don't want windows) and the graphics library for
  output,
          - I'm not sure whether you could do input without at least one
call/message to the input.device to shut it down so you can take over,
          - NOT do any "file" I/O, not even trackdisk.device!

    Now, the first condition is generally pretty amiga unfriendly. Maybe
you wouldn't have to go quite so far if OpenScreen() doesn't actually send
a message - this is probably the case since it probably does stuff by
locking IBase; you could then do output into the screen's rastport and
even use layers without IPC. However, I seem to remember from stuff posted
here that the structure of intuition is one of the things which undergoes
major changes in 1.4 so it may be impossible to OpenScreen() without using
IPC under 1.4.

    Limiting your program to doing output kind of cuts down on the classes of
program you can have.

    Interestingly enough, most arcade-type game programs can meet those
requirements (once loaded) since I've gotten the impression you can get input
from the second port in an "amiga-friendly" manner without going through the
input.device, ie. at the resource level. It wouldn't be very clean though,
would it?

    So you probably can get a fair amount done without IPC on the Amiga if you
go to a sufficiently low level, but most of the higher level libraries do use
IPC. You would lose most of the Amiga's UI capabilities if you limited yourself
to non-IPC functions. This, I, think is probably what the original author had in
mind when this thread started and he said (paraphrased) that most Amiga function
calls used IPC.

--
      Paul-Andre_Panon@cheddar.cc.ubc.ca      or      USERPAP1@UBCMTSG 
or    Paul-Andre_Panon@undergrad.cs.ubc.ca    or      USERPAP1@mtsg.ubc.ca
"What should the role of the University be? It should be to enlighten Society."
  -Luis Sobrino
Technical Details
Message-ID: <6948@ubc-cs.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!brutus.cs.uiuc.edu!usc!snorkelwacker!mit-eddie!uw-beaver!ubc-cs!cheddar.cc.ubc.ca!panon
References: <1165@lpami.wimsey.bc.ca>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!samsung!brutus.cs.uiuc.edu!usc!snorkelwacker!mit-eddie!uw-beaver!ubc-cs!cheddar.cc.ubc.ca!panon
From: panon@cheddar.cc.ubc.ca (Paul-Andre Panon)
Newsgroups: comp.sys.amiga.tech
Subject: Re: resource tracking
Message-ID: <6948@ubc-cs.UUCP>
Date: 1 Mar 90 02:55:43 GMT
References: <1165@lpami.wimsey.bc.ca>
Sender: news@cs.ubc.ca
Reply-To: panon@cheddar.cc.ubc.ca (Paul-Andre Panon)
Organization: UBC Computing Centre, Vancouver, B.C., Canada
Lines: 63