• Author
    Posts
  • Symmetry
    Participant
    Post count: 28
    #244 |

    So, a topic that I know I’ve been wondering about regarding the Mill’s memory subsystem. How does it deal with Unix fork calls? The two resulant processes could potentially each have a whole mass of pointers with identical numerical values, and they’ll now have to point to different locations in memory, which would seem to be inconsistant with the Mill’s memory model. Now, forks that aren’t followed by execs are pretty rare but I don’t see that this is something that can just be ignored.

  • igodard
    Moderator
    Post count: 9

    The usual, frustrating for all concerned, answer: not filed yet 🙁

    I can safely say that spawn() is much simpler than fork(), so the Mill actually makes a better Windows machine than for Unix 🙂

  • Joe Taber
    Participant
    Post count: 25

    What, are you going to patent virtual memory under a different name?

    I kid, I kid! 😛

    On a more serious note, it looks like the slides for the Memory talk are not available.

    • This reply was modified 10 years, 11 months ago by  Joe Taber.
  • staff
    Keymaster
    Post count: 49

    Sorry about that, one of the old links from the conversion didn’t make it.

    The slides should be there now…

  • PeterH
    Participant
    Post count: 41

    Threads, vfork(), page aliasing, and copy on write all appear easy enough with mill mechanisms already described. fork() has the added complication of getting pointers defined by the parent to work with the child address range. My best guess is something along the lines of segments might be used. Done right the segments might be transparent to the application a majority of the time.

  • Ivan Godard
    Keymaster
    Post count: 689

    As described in the Memory talk, page aliasing and COW work straightforwardly, although with one catch on the Mill: an unwritten COW page will have only one copy in memory because the physical address is aliased, but any lines in cache will be duplicated because the virtual addresses differ even though the data will be the same 🙁

You must be logged in to reply to this topic.