2.     Heaps: Regardless of paging, we have to have a heap before we can
support managed runtime code.

    1. ...and Paging
         1. Do we want to have a unique heap on each page? Or just
         a unique heap per appdomain? (I would think per-page...)
         2. Wouldn't the set of pages behave, on an abstract level,
         like a heap of data?
            1. If so, couldn't we re-use some code? (Which would
            make the code easier to maintain, wouldn't it? And easier
to optimize?) The
            functions would just use pointers anyway. But I don't know
how the MMU would
            fit in...
            2. But if we share pages, then deallocation/GCing
            pages (think: reference counts, synclocks, etc), will
work, in essence,
            similar to deallocation/GCing of stuff on a normal heap?
         2. ...and GCing
         1. A seperate GC per heap? (Or is this a threading issue?)
         I would like to assume that GC data can somehow be stored with the
         object-overhead there with the object on the heap. (e.g.
         what generation is the current object in? Is it on the "large
object heap"
         or not?) I would assume not putting the data with each
object, because then
         it would free up issues with different possible GCing algorithms.
      3. ...and Threading
         1. We have to make sure we synclock our heaps, don't we?
         So that if the heap is being changed by one thread, that it
doesn't become
         changed by another.
      4. ...and AOTing EDC korlib code to support the VM/JIT
         1. We need to have our stubs marked with attributes to
         control what kind of code the AOT injects to make allocate
managed objects.
         2. The memory management stubs for AOTed EDC code, will
         perhaps, be different in signature from the kinds of stubs
that the VM/JIT
         will use.
            1. If you are AOTing something, how does the AOT
            know which page, heap, etc., (for the allocation
stub-calls that it is
            injecting), that you want to allocate the objects on?
            2. Granted, the AOT *can't really know* - so do we
            want to have overrides that are internal to the kernel
that default to
            kernel space? How do we want this to work?
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to