mirror of
https://salsa.debian.org/gnuk-team/gnuk/gnuk.git
synced 2024-09-21 11:20:08 +00:00
59 lines
3.1 KiB
HTML
59 lines
3.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
|
|
<title>ChibiOS/RT: Priority inheritance, complex case</title>
|
|
<link href="custom.css" rel="stylesheet" type="text/css">
|
|
<link href="tabs.css" rel="stylesheet" type="text/css">
|
|
</head><body>
|
|
<table style="text-align: center; width: 100%;" border="0"
|
|
cellpadding="2" cellspacing="2">
|
|
<tbody>
|
|
<tr>
|
|
<td style="width: 80px;"><img alt="ChibiOS/RT Logo" src="logo_small.png"></td>
|
|
<td><big><big>ChibiOS/RT</big></big><br><br>Architecture - Reference Manual - Guides</td>
|
|
<td style="width: 80px;"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<hr size="1">
|
|
<!-- Generated by Doxygen 1.6.3 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul>
|
|
<li><a href="main.html"><span>Main Page</span></a></li>
|
|
<li><a href="modules.html"><span>Modules</span></a></li>
|
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
|
<li><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div class="navpath"><a class="el" href="main.html">ChibiOS/RT</a> » <a class="el" href="testsuite.html">Testing Strategy</a> » <a class="el" href="test__mtx.html">Mutexes test</a>
|
|
</div>
|
|
</div>
|
|
<div class="contents">
|
|
|
|
|
|
<h1><a class="anchor" id="test_mtx_003">Priority inheritance, complex case </a></h1><h2>Description</h2>
|
|
<p>Five threads are involved in the complex priority inversion scenario, please refer to the diagram below for the complete scenario.<br/>
|
|
The test expects the threads to perform their operations in increasing priority order by rearranging their priorities in order to avoid the priority inversion trap.</p>
|
|
<h2>Scenario</h2>
|
|
<p>This weird looking diagram should explain what happens in the test case: </p>
|
|
<div class="fragment"><pre class="fragment"> Time ----> 0 10 20 30 40 50 60 70 80 90 100 110
|
|
0 ......BL++++------------2+++++------4+++++BU0---------------------------G.....
|
|
1 ............AL++++2+++++BL----------4-----++++++BU4+++AU1---------------G.....
|
|
2 ..................AL----------------------------------------------++++++AUG...
|
|
3 ..............................+++++++-----------------------++++++G...........
|
|
4 ....................................AL................++++++AUG...............
|
|
^ ^ ^ ^ ^ ^
|
|
Legend:
|
|
0..4 - Priority levels
|
|
+++ - Running
|
|
--- - Ready
|
|
... - Waiting or Terminated
|
|
xL - Lock operation on mutex <span class="charliteral">'x'</span>
|
|
xUn - Unlock operation on mutex <span class="charliteral">'x'</span> with priority returning to level <span class="charliteral">'n'</span>
|
|
^ - Priority transition (boost or <span class="keywordflow">return</span>).
|
|
</pre></div> </div>
|
|
<hr size="1"><address style="text-align: right;"><small>
|
|
Generated on Sun Jul 11 13:13:10 2010 for ChibiOS/RT by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.6.3</small></address>
|
|
</body>
|
|
</html>
|