diff options
Diffstat (limited to 'plugins/org.eclipse.etrice.doc/doc-tex/eTriceHTML/etrice-docse5.html')
-rw-r--r-- | plugins/org.eclipse.etrice.doc/doc-tex/eTriceHTML/etrice-docse5.html | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/plugins/org.eclipse.etrice.doc/doc-tex/eTriceHTML/etrice-docse5.html b/plugins/org.eclipse.etrice.doc/doc-tex/eTriceHTML/etrice-docse5.html new file mode 100644 index 000000000..90f382638 --- /dev/null +++ b/plugins/org.eclipse.etrice.doc/doc-tex/eTriceHTML/etrice-docse5.html @@ -0,0 +1,118 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html > +<head><title>Execution Models</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +<meta name="generator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> +<meta name="originator" content="TeX4ht (http://www.cse.ohio-state.edu/~gurari/TeX4ht/)"> +<!-- html,3,next --> +<meta name="src" content="etrice-doc.tex"> +<meta name="date" content="2013-02-26 19:42:00"> +<link rel="stylesheet" type="text/css" href="etrice-doc.css"> +</head><body +> +<!--l. 161--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch3.html" >next</a>] [<a +href="etrice-docse4.html" >prev</a>] [<a +href="etrice-docse4.html#tailetrice-docse4.html" >prev-tail</a>] [<a +href="#tailetrice-docse5.html">tail</a>] [<a +href="etrice-docch2.html#etrice-docse5.html" >up</a>] </p></div> +<h3 class="sectionHead"><span class="titlemark">2.3 </span> <a + id="x9-170002.3"></a>Execution Models</h3> +<!--l. 163--><p class="noindent" >Since from ROOM models executable code can be generated, it is important to define +the way the actors are executed and communicate with each other. The combination +of communication and execution is called the Execution Model. Currently the eTrice +tooling only supports the <span +class="ecbx-1000">message driven </span>and parts of the <span +class="ecbx-1000">data driven </span>execution +model. In future releases more execution models will be supported, depending on the +requirements of the community. +<!--l. 166--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">2.3.1 </span> <a + id="x9-180002.3.1"></a>Communication Methods</h4> + <ul class="itemize1"> + <li class="itemize"><span +class="ecbx-1000">message driven </span>(asynchronous, non blocking, no return value): Usually + the message driven communication is implemented with message queues. + Message queues are inherently asynchronous and enable a very good + decoupling of the communicating parties. + </li> + <li class="itemize"><span +class="ecbx-1000">data driven </span>(asynchronous, non blocking, no return value): In data driven + communication sender and receiver often have a shared block of data. The + sender writes the data and the receiver polls the data. + </li> + <li class="itemize"><span +class="ecbx-1000">function call </span>(synchronous, blocking, return value): Regular function call + as known in most programming languages.</li></ul> +<!--l. 174--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">2.3.2 </span> <a + id="x9-190002.3.2"></a>Execution Methods</h4> + <ul class="itemize1"> + <li class="itemize"><span +class="ecbx-1000">execution by receive event</span>: The message queue or the event dispatcher + calls a <span +class="ecbx-1000">receive event </span>function of the message receiver an thereby executes + the processing of the event. + + + + </li> + <li class="itemize"><span +class="ecbx-1000">polled execution</span>: The objects are processed by a cyclic <span +class="ecbx-1000">execute </span>call + </li> + <li class="itemize"><span +class="ecbx-1000">execution by function call</span>: The caller executes the called object via + function call</li></ul> +<!--l. 182--><p class="noindent" > +<h4 class="subsectionHead"><span class="titlemark">2.3.3 </span> <a + id="x9-200002.3.3"></a>Execution Models</h4> +<!--l. 184--><p class="noindent" >In todays embedded systems in most cases one or several of the following execution +models are used: +<!--l. 186--><p class="noindent" > +<h5 class="subsubsectionHead"><a + id="x9-210002.3.3"></a>message driven</h5> +<!--l. 188--><p class="noindent" >The message driven execution model is a combination of message driven +communication and execution by receive event. This model allows for distributed +systems with a very high throughput. It can be deterministic but the determinism is +hard to proof. This execution model is often found in telecommunication systems and +high performance automation control systems. +<!--l. 193--><p class="noindent" > +<h5 class="subsubsectionHead"><a + id="x9-220002.3.3"></a>data driven</h5> +<!--l. 195--><p class="noindent" >The data driven execution model is a combination of data driven communication and +polled execution. This model is highly deterministic and very robust, but the polling +creates a huge performance overhead. The determinism is easy to proof (simple +mathematics). The execution model is also compatible with the execution model of +control software generated by Tools like Matlab(TM) and LabView(TM). This model +is usually used for systems with requirements for safety, such as automotive and +avionic systems. +<!--l. 201--><p class="noindent" > +<h5 class="subsubsectionHead"><a + id="x9-230002.3.3"></a>synchronous</h5> +<!--l. 203--><p class="noindent" >The synchronous execution model could also be called <span +class="ecbx-1000">simple function calls</span>. This +model is in general not very well suited to support the <span +class="ecbx-1000">run to completion </span>semantic +typical for ROOM models, but could also be generated from ROOM models. With +this execution model also lower levels of a software system, such as device drivers, +could be generated from ROOM models. + + + + + + + + + +<!--l. 1--><div class="crosslinks"><p class="noindent">[<a +href="etrice-docch3.html" >next</a>] [<a +href="etrice-docse4.html" >prev</a>] [<a +href="etrice-docse4.html#tailetrice-docse4.html" >prev-tail</a>] [<a +href="etrice-docse5.html" >front</a>] [<a +href="etrice-docch2.html#etrice-docse5.html" >up</a>] </p></div> +<!--l. 1--><p class="noindent" ><a + id="tailetrice-docse5.html"></a> +</body></html> |