<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Sporadic_Scheduling</id>
	<title>Sporadic Scheduling - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Sporadic_Scheduling"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Sporadic_Scheduling&amp;action=history"/>
	<updated>2026-06-02T19:20:25Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Sporadic_Scheduling&amp;diff=2869632&amp;oldid=prev</id>
		<title>imported&gt;Fan-vom-Wiki: /* Umsetzung in POSIX */ Leerzeichen entfernt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Sporadic_Scheduling&amp;diff=2869632&amp;oldid=prev"/>
		<updated>2026-04-19T23:22:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Umsetzung in POSIX: &lt;/span&gt; Leerzeichen entfernt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Überarbeiten}}&lt;br /&gt;
Bei der &amp;#039;&amp;#039;&amp;#039;Sporadic-Scheduling&amp;#039;&amp;#039;&amp;#039;-Strategie handelt es sich um ein [[Echtzeitsystem|echtzeitfähiges]] [[Scheduling]]-Verfahren, das im [[Portable Operating System Interface|POSIX]]-Standard 1003.1b festgelegt ist. Ziel ist es, azyklische (sporadische) Aufgaben so zu behandeln, als wären es zyklische.&lt;br /&gt;
&lt;br /&gt;
Bei Systemen, die eine Echtzeitanforderung haben – was bedeutet, dass bestimmte Aufgaben spätestens zu definierten Zeitpunkten erledigt sein müssen – werden besondere Anforderungen an das Scheduling-Verfahren gestellt: Dieses regelt die Zuordnung der begrenzten Ressource „[[CPU]]“ an die laufenden Prozesse. Die zu erledigenden Aufgaben lassen sich dabei grob in zwei Gruppen einteilen: Zum einen gibt es zyklische Aufgaben wie z.&amp;amp;nbsp;B. Messwertaufnahmen, die regelmäßig in bestimmten Zeitabschnitten anfallen. Zum anderen gibt es Aufgaben, die sporadisch oder azyklisch auftreten wie z.&amp;amp;nbsp;B. Fehlersituationen, auf die ebenfalls reagiert werden muss. Da sporadische Aufgaben ungeplant auftreten, kann ihre Abarbeitung die zeitgerechte Abarbeitung der zyklischen Aufgaben verhindern. Hier setzt Sporadic-Scheduling an.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
Die Annahme, dass alle Aufgaben zyklisch abgearbeitet werden können, ist oft unrealistisch. Daher braucht man ein Scheduling-Verfahren, das gewährleistet, auch bei zyklischen Aufgaben auf azyklische Ereignisse reagieren zu können, ohne die Rechtzeitigkeit der zyklischen Aufgaben zu beeinflussen. Andere Scheduling-Strategien, wie z.&amp;amp;nbsp;B. [[Prioritätsscheduling|Prioritäts-Scheduling]] oder [[Deadline Monotonic Scheduling|Deadline-Scheduling]], sind bedingt auch für diese Aufgabe geeignet. Sie erschweren aber den [[Echtzeitsystem|Echtzeitnachweis]] für das System erheblich.&lt;br /&gt;
&lt;br /&gt;
== Prinzip ==&lt;br /&gt;
Jede zyklische Aufgabe wird mit minimaler Prozesszeit und der ermittelten maximalen Verarbeitungszeit modelliert. Die Aufgaben, die azyklisch auftreten können und somit eine variable Prozesszeit aufweisen, werden ebenfalls als zyklische Aufgaben modelliert. Alle diese zyklischen Aufgaben bekommen ihre Prioritäten nach der [[Rate Monotonic Scheduling|Rate-Monotonic – Annahme]], welche die Priorität an die Prozesszeit koppelt. Da alle Prozesse jetzt als zyklische Aufgaben realisiert sind, kann die Auslastung aus der Summe der Verhältnisse der Verarbeitungszeit zur Prozesszeit berechnet werden. Sollte diese Auslastung verletzt werden, indem eine Aufgabe ihre Prozesszeit verletzt, wird die auslösende Aufgabe bestraft und in ihrer Priorität herabgesetzt. Daraus folgt, dass nur die sporadische Aufgabe ihre Rechtzeitigkeitsbedingung verletzt, wenn die Auslastung 100 % aufweist.&lt;br /&gt;
&lt;br /&gt;
== Echtzeitnachweis ==&lt;br /&gt;
Da alle Aufgaben zyklisch abgearbeitet werden und deren Prioritäten nach der Rate-Monotonic – Annahme vergeben wurden, kann ein Echtzeitnachweis über die [[Rate Monotonic Scheduling|Hinreichende Scheduling Bedingung]] erfolgen. Zusätzlich muss noch die 1. Echtzeitbedingung geprüft werden.&lt;br /&gt;
&lt;br /&gt;
== Umwandlung von azyklischen in zyklische Aufgaben ==&lt;br /&gt;
Für sporadische Tasks müssen für den Scheduler zusätzliche Angaben gemacht werden, um sie zyklisch verwalten zu können.&lt;br /&gt;
Neben der [[Priorität]] des zyklischen Prozesses, muss eine Prozesszeit bestimmt werden, die eine Abschätzung der Häufigkeit dieses Ereignisses widerspiegelt. Um die Ausführungszeit zu beschränken, muss eine Prozesszeit für diese Aufgabe dem [[Scheduler]] bekannt sein. Sollte die Aufgabe in der angegebenen Zeit nicht fertig werden, wird die Aufgabe automatisch auf eine konfigurierte Hintergrundpriorität herabgestuft.&lt;br /&gt;
&lt;br /&gt;
== Umsetzung in POSIX ==&lt;br /&gt;
Für jeden sporadischen Task müssen in POSIX die folgenden Werte spezifiziert werden:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Replenishment Period:[T]&amp;#039;&amp;#039;&amp;#039; Die angenommene Prozesszeit: Innerhalb dieser Zeit kann der Task seine Ausführungszeit C verbrauchen&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Initial Budget:[C]&amp;#039;&amp;#039;&amp;#039; Ausführungszeit, die ein Thread mit normaler [[Priorität]] innerhalb der Replenishment Period läuft, bevor er auf die geringere Priorität L gesetzt wird.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Priority:[N]&amp;#039;&amp;#039;&amp;#039; Priorität, mit der der Thread läuft, solange sein Initial Budget nicht verbraucht ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Low Priority:[L]&amp;#039;&amp;#039;&amp;#039; Priorität, auf die der Thread gesetzt wird, sobald seine Ausführungszeit verbraucht ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Maximal number of pending replenishments:&amp;#039;&amp;#039;&amp;#039; Begrenzung des [[Overhead (EDV)|Systemoverheads]] durch Beschränkung der Replenishments.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Feather 150 sporadicScheduling.svg|mini|hochkant=3.5|zentriert|Ablauf eines Scheduling-Intervalls]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Zeitpunkt !! Aktion&lt;br /&gt;
|-&lt;br /&gt;
| t0 || Task erhält CPU&lt;br /&gt;
|-&lt;br /&gt;
| t1|| [[CPU]] wird entzogen. Für Zeitpunkt t0 + T wird geplant, C um die verbrauchte Rechenzeit (t1-t0) zu erhöhen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&amp;lt;!-- 17-9-016: „This version of this document is no longer maintained.“ * QNX-Developer Support, [http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/sys_arch/kernel.html qnx.com:]--&amp;gt;&lt;br /&gt;
* [https://developer.blackberry.com/playbook/native/documentation/com.qnx.doc.neutrino.sys_arch/topic/kernel_sporadic_scheduling.html developer.blackberry.com: &amp;#039;&amp;#039;Sporadic scheduling&amp;#039;&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Automatisierungstechnik]]&lt;br /&gt;
[[Kategorie:Betriebssystemtheorie]]&lt;br /&gt;
[[Kategorie:Parallelverarbeitung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Fan-vom-Wiki</name></author>
	</entry>
</feed>