[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 - (*****) 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> </p>
</body>
</html>