<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="http://localhost/app.php/feed/topic/103" />

	<title>Tools and Benchmarks for Real-Time Systems</title>
	<subtitle>ECRTS Community Forum</subtitle>
	<link href="http://localhost/index.php" />
	<updated>2017-11-06T11:10:21+01:00</updated>

	<author><name><![CDATA[Tools and Benchmarks for Real-Time Systems]]></name></author>
	<id>http://localhost/app.php/feed/topic/103</id>

		<entry>
		<author><name><![CDATA[Sophie Quinton]]></name></author>
		<updated>2017-11-06T11:10:21+01:00</updated>

		<published>2017-11-06T11:10:21+01:00</published>
		<id>http://localhost/viewtopic.php?t=103&amp;p=207#p207</id>
		<link href="http://localhost/viewtopic.php?t=103&amp;p=207#p207"/>
		<title type="html"><![CDATA[Proxy Execution]]></title>

		
		<content type="html" xml:base="http://localhost/viewtopic.php?t=103&amp;p=207#p207"><![CDATA[
[This problem was presented by Peter Zijlstra during his <a href="http://www.ecrts.org/index.php?id=284" class="postlink">ECRTS'17 keynote talk</a>, see slide 8]<br><br>Proxy Execution (proposed by Doug Niehaus KU), as a schedule function invariant alternative of Priority Inheritance / Deadline+Bandwidth-Inheritance.<br><br>Define a task to consists of a scheduler-context and an execution-context. The scheduler-context is that part of the task state the scheduler uses to make task selection (priority / deadline / bandwidth etc..). The execution context is that part of the task that is used to execute code (stack / registers etc..).<br><br>Where PI (and DI) need a second implementation of the schedule function (partial order operator) in order to _order_ the blocked-on list of a mutex, Proxy Execution does things 'backwards' and leaves all blocked tasks on the ready-queue.<br><br>By leaving blocked tasks on the ready-queue we use the regular scheduling function to pick the highest 'priority' task and then follow the blocked-on chain until we find a runnable task.<br><br>Then we use the scheduling-context of the first pick with the execution-context of the block chain walk.<br><br>SMP will need 'migrations' of blocked tasks in order to avoid having multiple CPUs trying to run the same execution context (they'd enter at<br>different blocked tasks on the block chain).<br><br>Invariant: the block-chain walk must not cross CPUs.<br><br>CBS throttle would take a task off the ready-queue and place it back on on replenishment.<br><br><strong class="text-strong">Requested; analysis of this scheme and does it provide better guarantees than M-BWI (which is very pessimistic).</strong><br><br>(The KUSP project appear to have an implementation, but I did not find papers)<p>Statistics: Posted by <a href="http://localhost/memberlist.php?mode=viewprofile&amp;u=55">Sophie Quinton</a> — Mon Nov 06, 2017</p><hr />
]]></content>
	</entry>
	</feed>
