mirror of
https://salsa.debian.org/gnuk-team/gnuk/gnuk.git
synced 2024-09-22 03:40:09 +00:00
65 lines
3.1 KiB
HTML
65 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, simple 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.7.1 -->
|
|
<div class="navigation" id="top">
|
|
<div class="tabs">
|
|
<ul class="tablist">
|
|
<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">
|
|
<ul>
|
|
<li><a class="el" href="main.html">ChibiOS/RT</a> </li>
|
|
<li><a class="el" href="testsuite.html">Testing Strategy</a> </li>
|
|
<li><a class="el" href="test_mtx.html">Mutexes test</a> </li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="header">
|
|
<div class="headertitle">
|
|
<h1>Priority inheritance, simple case </h1> </div>
|
|
</div>
|
|
<div class="contents">
|
|
<h2>Description</h2>
|
|
<p>Three threads are involved in the classic priority inversion scenario, a medium priority thread tries to starve an high priority thread by blocking a low priority thread into a mutex lock zone.<br/>
|
|
The test expects the threads to reach their goal 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
|
|
0 ......AL++++++++++............2+++++++++++AU0---------------++++++G...
|
|
1 ..................++++++++++++------------------++++++++++++G.........
|
|
2 .............................AL..........++++++AUG...................
|
|
^ ^
|
|
Legend:
|
|
0..2 - 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>
|
|
G - Goal
|
|
^ - Priority transition (boost or <span class="keywordflow">return</span>).
|
|
</pre></div> </div>
|
|
<hr size="1"><address style="text-align: right;"><small>
|
|
Generated on Sun Nov 28 2010 14:09:56 for ChibiOS/RT by <a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.7.1</small></address>
|
|
</body>
|
|
</html>
|