@MarK:
Quote:
please include in MorphOS 3 or 4 memory defragmentation
Even if you could defragment physical memory, it's no use, because can't defragment the address space. It's a different problem, if you think about it. You simply can't update pointers everywhere within compiled code. It's not even Amiga-related problem, other 32 bit systems hit the same limit. I know even badly written Windows and Linux applications which have serious problems running even with 2GB RAM, since they have a very bad memory allocation scheme, which fragments their address space, and when the allocator runs out continous address space (again,
*not* continous physical memory, but continous address range) for a large allocation, it will fail, and the application will crash. And there's no way you could defragment an address range, or update the pointers, except you're written in Java or other VM, which is a complettely different business. In fact, programmers were trained for years to avoid thinking about memory management issues, and now it strikes back with examples like that. No wonder Java is that popular, and many companies trying to force migration for 64 bit, which gives 64 bit address ranges to fragment, and it eliminates these problems from the way of bad coding practices. Of course it will need 10x as much computing resources, doing the same stuff as 5 years ago, but obviously, that's only good for most of the hardware companies.
To sum it up, the only difference is, on other systems, the apps can only destroy their own address space, while on AmigaOS/MorphOS a single app can destroy the system's as well. But i can't see a way this could be fixed, without a full address separation per task, but that would be a fully different OS with totally destroyed backwards compatibility.
At least this is how i now interpret this problem. But if i'm wrong i'm sure i'll stand corrected.

Ps: Any updates to PowerD?

[ Edited by Chain-Q On 2009/2/12 14:43 ]