[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re:It was a stressing weekend!



All

Good to hear about JCSP and CTJ. 

Yes, we do need a real-time CSP design patterns book. 

Lea's book really i a patterns book, but it's NOT CSP.

Ball, Crawford, Dr.Dobb's Sept.98. "Static fields provide one 
approach" makes channels with static fields and define what they 
call a Monostate Pattern. Later, in April99 they define a 
"Shared Property Pattern" in the article "Are Java Applet 
Independent Programs?" where they use strange or 
pathological facets of the language, ask us to use it, and 
call it a pattern.

"Patterns in Java," Mark Grand has a separate chapter on 
real-time patterns. I think I have proved to him that the 
Balking example there is not correct. The real-time patterns there
are really for beginners.

Bruce Powell Douglass, I_Logix was writing on what seemed like a 
very interesting book about real-time patterns. It used to be at 
www.ilogix.com/fs-papers.htm but that paper isn't there any more. 
Can't find the book at amazon, either. I'm attaching a summary that 
I made.

--

I am thinking, what if all this thoughtwork could have been
done on not reinventing the wheel, just for a cup of coffee
with the rest..

Have you, implementers, learnt anything from these JCSP and CTJ
experiences that you would want retrofit back onto occam?
Surely, occam can't be that good? Do we need a fresh brew of
an occam compiler that could generate byte-codes?

-- 

|=======================================|==========================|
| Oyvind Teig                           | oyvind.teig@xxxxxxxxxxxx |
| Navia Maritime AS, division Autronica | oyvind.teig@xxxxxxxxxxxx |
| 7005 Trondhem     |    http://www.navia.no | Tel:+47 73 58 12 68 |
| Norway            |http://www.autronica.no | Fax:+47 73 91 93 20 |
|===================|========================|=====================|
<html>

<head>
<title>Design patterns</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<body>

<h2>Design patterns</h2>

<h2>Real-Time Design Patterns</h2>

<blockquote>
  <p><a name="RealTimeDesignPatterns_Douglass"></a>From Real-Time Design Patterns by Bruce
  Powell Douglass - (*****)&nbsp; Teig ref. (335).<ul>
    <li>Design phases = (Architectural, Mechanistic, Detailed)</li>
    <li>Architectural design patterns<ul>
        <li>Execution control<ul>
            <li>Preemptive multitasking<ul>
                <li>Static<ul>
                    <li>Rate monotonic scheduling (RMS)</li>
                  </ul>
                </li>
                <li>Semi-static<ul>
                    <li>Priority ceiling (see later)</li>
                  </ul>
                </li>
                <li>Dynamic<ul>
                    <li>Earliest deadline (ED)</li>
                    <li>Least laxity (LL)</li>
                    <li>Maximum urgent first (MUF)</li>
                  </ul>
                </li>
              </ul>
            </li>
            <li>Cyclic executive</li>
            <li>Time slicing</li>
            <li>Cooperative multitasking (occam på SPOC)</li>
          </ul>
        </li>
        <li>Communications<ul>
            <li>Master-slave</li>
            <li>Time-division multiplexing access (TDMA)</li>
            <li>Bus-mastered<ul>
                <li>Carrier sense multiple access with collision detection (CSMA/CD)</li>
              </ul>
            </li>
          </ul>
        </li>
        <li>Reuse<ul>
            <li>Microkernel (=layered design)</li>
          </ul>
        </li>
        <li>Distibuted systems<ul>
            <li>Proxy</li>
            <li>Broker</li>
            <li>Assymetric multiprocessing</li>
            <li>Symmetric multiprocessing</li>
            <li>Semi-symmetric multprocessing</li>
          </ul>
        </li>
        <li>Resource<ul>
            <li>Static Allocation</li>
            <li>Fixed size allocation</li>
            <li>Priority ceiling<br>
              Monitors, semaphores, unbounded/bounded priority inversion</li>
          </ul>
        </li>
        <li>Safety an reliability<ul>
            <li>Homogeneous redundancy</li>
            <li>Heterogeneous redundancy</li>
            <li>Sanity check</li>
            <li>Monitor-actuator</li>
            <li>Watchdog</li>
            <li>Safety executive</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>Mechanistic design patterns<ul>
        <li>Simple patterns<ul>
            <li>Observer<br>
              Client(=observer)/server<br>
              Subscribe, Detach = notification handle</li>
            <li>Transaction<br>
              Transmitted at most once (AMO)<br>
              Transmitted at least once (ALO)<br>
              Transmitted exactly once (EO)</li>
            <li>Smart pointer</li>
          </ul>
        </li>
        <li>Reuse<ul>
            <li>Container<br>
              Methods: add, remove, first, next, last, find<br>
              Standard Template Library (STL) i C++ inneholder flere</li>
            <li>Interface</li>
            <li>Policy</li>
            <li>Rendezvous (occam CHAN)<br>
              Synchronization, mutex blocking semaphores, <br>
              timed or balking semaphores</li>
          </ul>
        </li>
        <li>State behavior<ul>
            <li>State</li>
            <li>State table<br>
              n * m array of Transition objects which handles the event with an accept operation</li>
          </ul>
        </li>
      </ul>
    </li>
    <li>Detailed design patterns<ul>
        <li>None particular mentioned</li>
      </ul>
    </li>
  </ul>
</blockquote>

<p>&nbsp;</p>
</body>
</html>