Richard,

I can handle answering these questions for you. I know why they are done--but knowing how to approach them on an OS that has little examples is tough.

The memory management is set up the way it is to be more efficient.

1. Objects can share memory space, thus there is places where multiple objects have pointers to the same memory space.

2. The parallel functionality requires shared memory. Thus for parallel architectures there is a lot going on underneath.

3. An efficient method of garbage collection for these networks is needed and is provided through the object oriented design of the memory management scheme.

I don't think there is any way around the low levels and gory details unless some other programming language were used (which isn't going to help either).

After watching some of the MacOS dev sessions, it looks as though we need to look at using the system malloc and shmem routines and it will take some development to get this working correctly. We will not want to use the sbrk stuff.

David

Perhaps some of the original developers of DX can give us a little insight here.

I'm currently hacking on mem.c and memory.c trying to get the
MacOS X port to work. I still don't get why all the bother with such
low-level memory stuff, especially the fancy arenas with various sized
memory chunks in powers of 2. Why does DX need to define it's own
allocation routines at all?

It also worries me that the MacOS man page on brk/sbrk claims:

"The brk and sbrk functions are historical curiosities left over from ear-
     lier days before the advent of virtual memory management. "

Richard


--
.............................................................................
David L. Thompson                          The University of Montana
mailto:[EMAIL PROTECTED]                 Computer Science Department
http://www.cs.umt.edu/u/dthompsn           Missoula, MT  59812
                                           Work Phone : (406)257-8530

Reply via email to