home *** CD-ROM | disk | FTP | other *** search
/ ftp.parl.clemson.edu / 2015-02-07.ftp.parl.clemson.edu.tar / ftp.parl.clemson.edu / pub / pvfs2 / orangefs-2.8.3-20110323.tar.gz / orangefs-2.8.3-20110323.tar / orangefs / doc / design / figs / handle_jobs.graph < prev    next >
Text File  |  2003-01-24  |  1KB  |  70 lines

  1. digraph G {
  2.     size = "10,10";
  3.  
  4.     // default shape
  5.     node [shape=ellipse];
  6.  
  7.     // show queues as boxes
  8.     "pending queue" [shape = box];
  9.     "service queue" [shape = box];
  10.  
  11.     // show actions/functions as diamonds
  12.     "check consistency" [shape = diamond];
  13.     "create state structure" [shape = diamond];
  14.     "call service handler" [shape = diamond];
  15.     "find existing state structure" [shape = diamond];
  16.     "wait for jobs to complete" [shape = diamond];
  17.     "add to queue\n(if necessary)" [shape = diamond];
  18.     "remove from queue;\nrelease resources" [shape = diamond];
  19.  
  20.     // describe the state machine
  21.  
  22.     "wait for jobs to complete" 
  23.     -> 
  24.     "Known job";
  25.  
  26.     "wait for jobs to complete" 
  27.     -> 
  28.     "Unexpected job";
  29.  
  30.     "Known job" 
  31.     -> 
  32.     "find existing state structure";
  33.  
  34.     "Unexpected job" 
  35.     -> 
  36.     "create state structure";
  37.  
  38.     "create state structure" 
  39.     -> 
  40.     "check consistency";
  41.  
  42.     "check consistency" 
  43.     -> 
  44.     "pending queue"
  45.     [label = "operation must wait"];
  46.  
  47.     "check consistency" 
  48.     -> 
  49.     "call service handler"
  50.     [label = "clear to begin"];
  51.  
  52.     "find existing state structure" 
  53.     -> 
  54.     "call service handler";
  55.  
  56.     "call service handler" 
  57.     -> 
  58.     "remove from queue;\nrelease resources"
  59.     [label = "completed"];
  60.  
  61.     "call service handler" 
  62.     -> 
  63.     "add to queue\n(if necessary)"
  64.     [label = "not completed"];
  65.  
  66.     "add to queue\n(if necessary)" 
  67.     -> 
  68.     "service queue";
  69. }
  70.