[comp.sys.amiga.tech] Locks and resources

gregg@cbnewsc.ATT.COM (gregg.g.wonderly) (01/24/90)

From article <130545@sun.Eng.Sun.COM>, by cmcmanis@stpeter.Sun.COM (Chuck McManis):
> Bruce, you should get a copy of the program ShowLocks, you would notice
> that after running your code that there were a bunch of filelocks 
> hanging around. The reason is that you don't ever "UnLock" anything
> that you "Lock".
> 
> Otherwise you will be losing little chunks of memory right and left.

Which is precisely why I am looking forward to the release of an operating
system for the amiga which properly does resource management (i.e. frees
the resources that a process is using when it exits).  I thought that the
lesson of what happens in a computer when resources are not tracked was
learned ages ago (that is one of the reasons that VM was invented).  It
would have really been trival for Commodore to do this from the start.
Now we are all running around fighting for memory and resources and having
to reboot at the most inconvienent times just to fix design errors that
have existed for 3 releases over four years?  I don't mean to sound hateful,
but I really don't understand how you guys can enjoy using this environment!

I know that the resource thing has gone round and round before, so it is
probably worthless to bring it up again.  However, I certainly hope that
1.4 has done something to improve this situation.  I am certainly look
forward to AMIX.

While I am ranting and raving...  Is the FFS going to be fixed so that
it does updates to the state of a file in the correct order (i.e. data
first, and then the directory).  Based on the ease of corruption to the
filesystem when a GURU occurs, I can only guess that there is a basic
lack of ordering in the operations associated with extending a file by
adding a block.  Also, why is that files always have to be locked by
default?  I really get annoyed when I can not cat a file or tail it
while something is writing into it.  The operations on the filesystem
should be autonomous, so locking for the sake of presenting a sane view
should not be necessary.  If I want to lock access to a file, I should
be allowed to do so on my own!  People writing applications that
require file locking "KNOW" that they need it, and will use it
accordingly.

I guess that what I am asking is why can't Amiga Dos have all of the nice
attributes of UN*X resource control and still have the other functionalities
that it has now?  I really don't see why it doesn't nor why it can't!

-- 
-----
gregg.g.wonderly@att.com   (AT&T bell laboratories)

cmcmanis@stpeter.Sun.COM (Chuck McManis) (01/25/90)

In article <13041@cbnewsc.ATT.COM> (gregg.g.wonderly) writes:
> ... It would have really been trival for Commodore to do this from 
> the start.

Think again. It isn't trivial, (let's here how you would do it in 1000
words or less) and 90% of the time the cost in terms of extra code isn't
worth the hassle. You have to remember the entire Amiga kernel, some 
supporting libraries and a couple of device drivers fits into 256K of
ROM. Compare and contrast how this would effect performance of simple
routines versus making sure routines that care are accurate.

>I guess that what I am asking is why can't Amiga Dos have all of the nice
>attributes of UN*X resource control and still have the other functionalities
>that it has now?  I really don't see why it doesn't nor why it can't!

Because it was written with different design constraints. Those contraints
were tight code, minimalist system intervention between you and the hardware,
and no MMU. Fortunately, you can buy UNIX soon for the 2500 and then you
won't have to worry about any of this anymore. Of course you might find
a marked slowdown in the performance of your system. UNIX has it's uses,
in real life I help design it, but it is not necessarily the OS of choice 
if you are building a resource constrained machine.

You might as well ask your self, "Why can't my Hyundai Excell have the
features and performance of the BMW 700 series?" The answer is, it can
with a lot of work and effort, but you would end up spending more for
it than if you bought the BMW outright. Same thing with AmigaDOS, it is
nontrivial but you could give it all the features of UNIX. But if that
is what you wanted, why didn't you buy it in the first place? (comments
about UNIX not being for sale at this time are noted. You could always
buy a Sun instead :-))

--Chuck McManis
uucp: {anywhere}!sun!cmcmanis   BIX: cmcmanis  ARPAnet: cmcmanis@Eng.Sun.COM
These opinions are my own and no one elses, but you knew that didn't you.
"If it didn't have bones in it, it wouldn't be crunchy now would it?!"

peter@sugar.hackercorp.com (Peter da Silva) (02/03/90)

[ I wanted async I/O to file handles ]

In article <1515@sas.UUCP> walker@sas.UUCP (Doug Walker) writes:
> So what's the matter with the packet-level I/O?  It's documented, it's MsgPort
> based, you can have multiple outstanding packets.   It's up to you whether to
> WaitPort() or just go on about your business.

Yes, but according to (I think) Matt Dillon it doesn't work right. I don't
know if that means it's hard to get right or if there's a bug in AmigaDOS
triggered by a task having multiple outstanding requests, but I trust the
source enough to not want to try it myself.

Browser does its own packet I/O to implement a four-argument Rename(), but
doesn't do multiple requests at a time.
-- 
Peter "Have you hugged your wolf today" da Silva <peter@sugar.hackercorp.com>
`-_-'
 'U`  "I haven't lost my mind, it's backed up on tape somewhere"