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