Mach taskSelf generally used only with vmAllocateWithPager, vmAllocate, and vmDeallocate YggdrasilInitImpl uses portRestrict, portAllocate, portUnrestrict, MachPortsLookup, taskNotify YggdrasilInitImpl looks for connection failures YggFileImpl allocates the shadow bitmap (and something) YggBuffManImpl and YggFileImpl (all kinds of init code) CamelotImpl for dumping VM from messages YggdrasilInitImpl for GetTheDSPort YggFileImpl for all kinds of init code YggBuffManImpl for dumping buffers msgSend YggdrasilInitImpl for MIG calls msgReceive YggdrasilInitImpl for MIG calls nameServerPort YggdrasilInitImpl - init stuff CamelotImpl - using it to find things MachPortsLookup YggdrasilInitImpl wants to find the DS port portAllocate YggdrasilInitImpl portRestrict YggdrasilInitImpl portUnrestrict YggdrasilInitImpl netnameCheckIn YggdrasilInitImpl Camelot DSInitialize YggdrasilInitImpl YggBuffManImpl, YggDIDMapImpl, YggFileImpl, and YggFileSegmentImpl YggDIDMapImpl and YggFileImpl YggBuffManImpl and YggFileSegmentImpl DSQInit YggdrasilInitImpl TAAddApplication YggdrasilInitImpl YggTransactionImpl YggTransactionImpl YggTransactionImpl CALookup YggdrasilInitImpl STServer YggMIGServerProcsImpl - MIG stuff SRServer YggMIGServerProcsImpl - MIG stuff ATServer YggMIGServerProcsImpl - MIG stuff Summary: five things Communications init Pin and log dance: DSPinObject, DSLogNewValue, and DSLogOldValueNewValue Transactions: TABegin, TAEnd, and TAKill VM: vmAllocate, vmAllocateWithPager, and vmDeallocate Implementation ideas vmAllocate: allocate vmAllocateWithPager: allocate and read in copy from disk vmDeallocate: write out if dirty and with pager, and then deallocate TABegin: note start of xact TAEnd: note commit of xact; write commit record and force log; unpin everything this xact pinned TAKill: note abort of xact; write abort record without force; unpin everything this xact pinned DSPinObject: note pin of object; prevents VM manager from writing it. DSLogNewValue: log it DSLogOldValueNewValue: log it VM manager has to periodically flush altered memory to disk in keeping with some recovery/checkpoint invariant