We also need to decide how to implement virtual memory. Before we where talking about using a single page-table (or maybe just a handful) for the entire system, because this would allow us to not slow down the system with page-table switches.. but on a 32 bit system with 4gb memory this is pretty hard to do. We could drop the "single page-table" idea, decide to go 64-bit only, or something else.. but we need to define it.
On Sun, Jul 20, 2008 at 9:23 AM, grover <[EMAIL PROTECTED]> wrote: > Hi Adam, > something like that could work, but there is still the problem that you have > to locate the object in memory in a heap, which will later on be maintained > by the GC. There are some low-level services, which IMHO just can't be > wrapped in object instances - as they are essentially singletons. Memory > management should be split into five pieces IMHO: > 1. A physical memory manager, which gives out 4KB pages of physical address > space > 2. A process memory manager, which manages virtual memory and acquires > physical pages on demand > 3. A pager, which moves virtual pages between disk and physical memory > 4. A heap manager, which is responsible for the actual object allocation > 5. A GC which returns regions to the heap > At least #1,3 are singletons with respect to system lifetimes. #2,4,5 are > per-process singletons. > Maybe we could think about your design of using adapter or strategy objects > to wrap the access to these services in your design? This way the adapters > could implement the interfaces you need and abstract away the access to the > actual service implementations. > Mike > Am 20.07.2008 um 00:34 schrieb Adam Stevenson: > > Howdy Mike, > > I am thinking what we need to do is figure out what format the objects are > going to need to look like in memory when a memory manager / GC are in > place. This way, when the MM and GC come online during the boot up, they > can "take over" objects that were previously not managed, and the initial > memory manager can keep a list of memory allocated that is not yet been > assigned to a memory manager - thus making it easy to identify objects. > Think this approach could work? If so, we just need to figure out how we > want to structure the unmanaged memory / objects, so that their structures > can be compatible. > > -Adam > > On Sat, Jul 19, 2008 at 5:21 AM, Matthijs ter Woord > <[EMAIL PROTECTED]> wrote: >> >> Ah, you guys are trying to instantiate the memory manager. Hmm.. >> >> >> >> >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of >> grover >> Sent: zaterdag 19 juli 2008 11:31 >> To: sharpos-developers@lists.sourceforge.net >> Subject: Re: [SharpOS Developers] Memory manager designand >> overallcompartmentalization >> >> >> >> Matthijs, you're right. However it still doesn't solve the problem that >> you want to new a memory manager without having a memory manager to allocate >> one from ;) SharpOS doesn't have a GC with the current memory management >> facilities either. I see it more of a structural problem than a technical >> one and thus I see it more like a design issue. >> >> >> >> Mike >> >> >> ________________________________ >> >> Von: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] Im Auftrag von >> Matthijs ter Woord >> Gesendet: Samstag, 19. Juli 2008 11:04 >> An: sharpos-developers@lists.sourceforge.net >> Betreff: Re: [SharpOS Developers] Memory manager designand >> overallcompartmentalization >> >> An option is maybe this: >> >> >> >> Make a fake memory manager, which only is able to allocate (ie, it never >> takes back memory). For most basic operations you don't use too much >> objects, so you can live without a GC for a while too. This way you can >> start on Object support, then interface support, while not having issues >> with GC and memory manager. >> >> >> >> We do it that way in Cosmos. We don't have a memorymanager capable of >> freeing memory, neither do we have a GC (we have the code in place to plug >> one in, but don't have one. Ralf just started on this)…. >> >> >> >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of >> grover >> Sent: zaterdag 19 juli 2008 10:16 >> To: sharpos-developers@lists.sourceforge.net >> Subject: Re: [SharpOS Developers] Memory manager design and >> overallcompartmentalization >> >> >> >> Hi Adam, >> >> >> >> the AOT does support interfaces. There were some bugs, but they shouldn't >> stop us there. There's only one problem: For interfaces to work you need >> object instances and new/GC... Which causes us a kind of chicken & egg >> problem. At least at the level Zachary is working at, we need to stay with >> static classes. I understand your goals, but unless you can give me a hint >> how you want to manage it without the chicken&egg situation I don't have any >> idea. >> >> >> >> Mike >> >> >> ________________________________ >> >> Von: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] Im Auftrag von >> Adam Stevenson >> Gesendet: Freitag, 18. Juli 2008 06:44 >> An: sharpos-developers@lists.sourceforge.net >> Betreff: Re: [SharpOS Developers] Memory manager design and >> overallcompartmentalization >> >> Howdy Zachary and All, >> >> Yes, I believe that we do need to do a good restructruring. I have a >> bunch of ideas I have been hashing out in my sandbox, but I there are parts >> that I am not sure exactly what is going on (some parts get cryptic, any >> understand the process of preparing the image fully?). I first think we >> need a high level diagram of all the major components, so we can start >> figuring out where we can make plugable modules. From my own project work, >> and my experience with biologcial systems, we need to slowly evolve this and >> not break it. (I know duh). >> >> First does thing support interfaces yet? Because I don't see much of them >> in the code base. If not, I say we work on making a list of abstract >> classes that we can start keying in as modules. I know Grover has been >> working on a lot of this, and we need to get his input on the AOT plugable >> architecture. Anyone going to be around Sunday afternoon (CST) - or most >> anytime Monday (minus 3:00 to 5:00 CST)? I can sit down online with anyone >> and start diagraming some of this stuff and work a bit in team mode - >> identify document, and review. And then we can send out whatever documents >> we get done via the list serve, and continue to move on ot the next. Anyone >> up for it? >> >> As for what I have been working on is a bunch of class processing stuff, >> and memory structuring of components. I want to build an architecture that >> you could say is "fractal" - thus allowing for the same archtiecture whether >> a JIT is being ran on top of a JIT (pretty dang inefficient) or is actaul >> the JIT. To do this, everything needs to be turned into an interface, to >> allow for components to shift up and down. I have started looking into how >> to structure this namespace and working on a prototype base, but it is not >> compable yet (on my to do list for next week). But bottom line, this is >> still a long way off from where the AOT and SharpOS is now, so this is by >> now means a fully workable design that SharpOS can be converted too. Plus >> there are some differences in concepts too with the idea of runtime and OS >> that are going to have to be hashed out. >> >> So personally, we need to look at all of us "newbies' fully understanding >> what we have, and second we slowly turn this thing modular and make a list >> of all the modules and what their requirements are, so the code base can be >> evolved in small parts versus changing one thing causes a bunch of ripple >> effects throughout the code. My guess, a lot of this modularity already >> exists, but we just need to uncover dividing points. So back to Sunday and >> Monday for me. Anyone game? And thoughts on how we want to start breaking >> up this code base into smaller understandable pieces? Oh Zachary, I got >> both those books on Memory Management and Garbage Collection - need to >> finish them, but if you have concepts to reference, just let me know page >> numbers. >> >> Adam Stevenson >> >> Graduate Student >> Department of Biology >> Texas A&M University >> College Station, TX 77843, USA >> >> On Wed, Jul 16, 2008 at 10:03 AM, Zachary Gorden >> <[EMAIL PROTECTED]> wrote: >> >> Just a clarification, when I say memory manager, I mean from the page >> tables to the physical memory table to the allocations. It seems that >> people keep confusing what I am referring to whenever I say MM. This is >> mostly an informational thing to let people know what's going through my >> head and the fact that I'm not dead and still working/planning. >> >> The memory manager as it stands suffers from a somewhat awkward design >> that makes it difficult to correct certain items. Not exactly anyone's >> fault, as SharpOS needed a MM and that's what it got. The gist is, trying >> to fix the issues in here and/or optimizing it won't do much in the long >> term, which is one reason you guys haven't seen much activity from me. >> >> I've been mostly consulting a few ROS developers on how to bootstrap a >> page table based MM, the initial loading and stuff, so that's the >> explanation for the lack of code. For the time being, I've gotten most of >> the conceptual things explained and will be writing out some of my own code >> as well as examining just what kind of support for paging exists right now. >> And actually, in the process of trying to look at the current code, another >> thought occurred to me. Currently, the ADC is, to put it simply, horribly >> organized. It's basically all of the AD code in one spot, without any >> actual segmentation. That is definitely going to screw with us down the >> line, and it is likely to not be limited to the ADC. >> >> Because of the above reasons, I am most definitely going to need to create >> a branch (once I figure out how), as obviously doing surgery on trunk is >> going to result in incredible instabilities and breakages. But as far as >> the restructuring goes, I think a lot of us would benefit from such changes, >> including people already working with their own branches. I'd like to hear >> from other people on the restructuring idea, as I know I'm not the only one >> who noticed the issues. >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> SharpOS-Developers mailing list >> SharpOS-Developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/sharpos-developers >> >> >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> SharpOS-Developers mailing list >> SharpOS-Developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/sharpos-developers >> > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > SharpOS-Developers mailing list > SharpOS-Developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sharpos-developers > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great > prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > SharpOS-Developers mailing list > SharpOS-Developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/sharpos-developers > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ SharpOS-Developers mailing list SharpOS-Developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sharpos-developers