# HG changeset patch # User Me # Date 1284219415 25200 # Node ID ce720506491bf4703b4bedb4b311fb88b27c194b # Parent e3b78148e9def2e1025aa94584fa9f42823a0010 cleared out old, out-of-sync, design notes diff -r e3b78148e9de -r ce720506491b DESIGN_NOTES.txt --- a/DESIGN_NOTES.txt Sat Sep 11 07:40:44 2010 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ - -This project is for a paper -- the goal is to implement and measure the - performance of the Virtual Master-Slave system as an alternative to the - Thread model. - -Going to implement exactly one application -- a do-nothing benchmark kernel - that just measures scheduling overhead. - -Implement VMS this way: - -function to give to PThread that does the loop: - -get from queue, call function-ptr, passing it work-unit ptr (which contains a - pointer to data declared as void * in the application), then write the - "Done" flag and repeat. - - -In an application: - -divide work up into pieces self, just make it a busy-wait loop that writes - data, then reads it back, declared volatile. At end of work, call fn that - makes a continuation and notifies the Master its there, then return. - - -Master: - -A loop that polls each virtual slave exactly once, processing each whose - Done flag is set, it forces work-units to be one-to-one with slaves, so - as soon as done polling slaves, it makes a continuation of itself, puts - half the scheduled slaves in, clears its own Done flag, puts its - continuation in, the other half of the scheduled slaves, then writes its - own Done flag. - -When continuation first runs, checks if own Done flag set -- if not, busy- - waits until set, then proceeds. This ensures it doesn't overlap with - tail-end of previous -- IE, continuation may sneak through queue before - previous done putting second half of scheduled slaves in. This is the only - race condition. - - diff -r e3b78148e9de -r ce720506491b DESIGN_NOTES__VMS.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DESIGN_NOTES__VMS.txt Sat Sep 11 08:36:55 2010 -0700 @@ -0,0 +1,2 @@ + +Implement VMS this way: