[net.micro.amiga] Memory fragmentation, misc

dillon@CORY.BERKELEY.EDU (Matt Dillon) (03/09/86)

	Memory fragmentation is a very hard problem to solve when you have
no hardware mapping abilities.  However, you can't compare allocation problems
on the Amiga with allocation on, say, an IBM or MAC.  The latter machines don't
have much of a problem simply because they are not (inherently) 
multi-processing.  There are two problems:

	* Some programs attempt to allocate large contiguous blocks.  For 
	  example, ED, and ALINK, and fail miserably when they can't succede.

	* There are still bugs in the OS where the amiga 'looses' memory.  That
	  is, the longer you work on the amiga, the amount of free storage 
	  becomes less and less.  A documented bug is in the Execute() command,
	  which looses 60+ bytes a shot.

NOTES ON RESOURCE TRACKING:

	In UNIX like enviroments, there is an extra level buffering the
user process from the system.  In other words, the user process has no
way of calling into the kernal, or using kernal routines... etc... except
through a minimal set of system calls (< 200).

	In the Amiga enviroment, there is no such buffer.  Your user process
uses many of the same subroutines as the kernal.  Thus, it would be nearly
impossible for the kernal to keep track of what your doing without also
keeping track of what it's doing, which would be disasterous as well as slow.

	Well, that simply isn't going to happen.  The kernal was never 
designed for that, and it would require a complete rewriting of it to
impliment resource tracking right.

P.S.  This isn't to say I don't like 'kill'.... it's one of my favorite
subroutines.  I use Ctl-C all the time on UNIX systems.

				-Matt