Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
software:linux:preempt_rt:start [2016-05-24 12:35] – Beschreibung für Bau von "Linux RT-Kernel; Debian-Way" auf separate Seite verschoben mgehrig2software:linux:preempt_rt:start [2016-12-14 12:52] kalberer
Zeile 1: Zeile 1:
 ====== Preempt_RT ====== ====== Preempt_RT ======
 +===== Vorwort =====
  
 <box blue right 22% | **Linux Preempt_RT**> <box blue right 22% | **Linux Preempt_RT**>
Zeile 5: Zeile 6:
 [[https://rt.wiki.kernel.org/index.php/Main_Page | Projektwebseite]] [[https://rt.wiki.kernel.org/index.php/Main_Page | Projektwebseite]]
 </box> </box>
 +
 +Preempt_RT ist ein von Ingo Molnar betreuter Patch für den Linux Kernel. Dieser modifiziert den Kernel so, dass dieser (beinahe) vollständig präemptiv wird. Dazu werden die klassischen Kernel Spinlocks durch Mutexe ersetzt, welche Prioritätsvererbung unterstützen. Ausserdem wird die Behandlung aller Interrupts in eigene Kernel-Threads ausgelagert.
 +Die Präsentation {{:software:linux:preempt_rt:s3r2_jan_altenberg.pdf| Linux und Echtzeit}} von Jan Altenberg bietet eine sehr gute und kurze Zusammenfassung bezüglich den beiden Varianten Preemt RT und Xenomai.
 +
 +
 +===== Realtime Allgemeine Hinweise =====
 +Die [[https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions | FAQs]] und die beiden HOWTOs [[https://rt.wiki.kernel.org/index.php/HOWTO:_Build_an_RT-application | HOWTO: Build an RT-application]] und [[https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO | RT PREEMPT HOWTO]] des [[https://rt.wiki.kernel.org/index.php/Main_Page | Real-Time Linux Wiki]] bieten eine gute Einführung in diverse Aspekte und Probleme von Realtime. Die [[.:hinweise_messung_rt | Hinweise Messung RT]] fassen zusätzlich noch einige Punkte zusammen, die nicht nur bei der Messung der RT-Performance wichtig sind, sondern auch im allgemeinen Umgang mit Realtime.
 +
 +===== Bau von RT Kernel =====
 +Siehe grüne Box //"Beispiele für den Bau von RT-Kernel"// für diverse Beispiele.
  
 <box 22% right green | **Beispiele für den Bau von RT-Kernel**> <box 22% right green | **Beispiele für den Bau von RT-Kernel**>
-  * [[software:linux:phyCORE-MPC5200B:Kernel_v4_4_15RT | v4.1.15-rt17+ (Real-time) für phyCORE-MPC5200B]] +  * [[software:linux:phyCORE-MPC5200B:Kernel_v4_4_15RT | v4.1.15-rt17+ für phyCORE-MPC5200B]] 
-  * [[.:kernel_V3.18.29rt30 | v3.18.29rt30 (Real-time) für x86]] +  * [[.:kernel_V3.18.29rt30 | v3.18.29rt30 für x86]] 
-  * [[.:RealtimeDebian | v3.14.18-rt9 (Real-time) Debian-Way]]+  * [[.:RealtimeDebian | v3.14.18-rt9 Debian-Way]] 
 +  * [[.:..:toradex:kernel#Preempt-RT%20Kernel%203.14.28 | v3.14.79 für Colibri iMX6]] 
 +  * [[.:bbbrt | v4.4.25-rt35 (Kurztanleitung) für Beaglebone Black]]
 </box> </box>
  
-Preempt_RT ist ein von Ingo Molnar betreuer Patch für den Linux KernelDieser modifiziert den Kernel sodass dieser (beinahe) vollständig präemptiv wirdDazu werden die klassischen Kernel Spinlocks durch Mutexe ersetztwelche Prioritätsvererbung unterstützenAusserdem wird die Behandlung aller Interrupts in eigene Kernel-Threads ausgelagert.+ 
 +===== Messung der RT-Performance ===== 
 +Bei RT Systemen ist die Latenz ein wichtiges Mass. In diesem Zusammenhang wird auch oft von der maximalen Latenz gesprochenEs ist allerdings nicht ganz einfach die maximale Latenz zu messen. 
 + 
 + 
 +==== Schwierigkeiten bei der Messung der RT-Performance ==== 
 +Diverse Hinweisedie beim Messen der RT-Performance beachtet werden solten, sind im Artikel [[.:hinweise_messung_rt | Hinweise Messung RT]] gesammelt.  
 + 
 + 
 +==== Cyclictest ==== 
 +Mit dem Cyclictest kann die maximale Latenz gemessen werden. Mehr dazu auf der Seite [[software:linux:cyclictest:start|Cyclictest]]. 
 + 
 +==== EEROS ==== 
 +EEROS bietet eine Möglichkeit, die effektive Latenzen von einer EEROS-Applikation zu messen. Siehe [[http://wiki.eeros.org/for_developers/timing_measurement|Projektwebseite]]. 
 + 
 +==== Zu erwartende Ergebnisse ==== 
 +Auf der Wiki Seite [[software:linux:cyclictest:start|Cyclictest]] sind bereits einige Ergebnisse dokumentiert. Eine weitere sehr gute Quelle bietet das //Open Source Automation Development Lab// kurz [[https://www.osadl.org|OSADL]]. In ihrer QA Farm werden diverse Prozessoren auf ihre RT Performance getestet. Die Ergebnisse werden veröffentlicht. In der [[https://www.osadl.org/Hardware-overview.qa-farm-hardware.0.html | Hardware Übersicht]] sind alle getesteten Prozessoren aufgelistet. 
 + 
 + 
 +===== Künstliche Belastung für RT-Systeme ===== 
 +Wenn das System nicht unter Realbedingungen gemessen werden kannkann es künstlich belastet werdenMehr dazu unter [[.:künstlicheLast | Künstliche Last]]. 
 + 
 +===== Einflüsse auf die Latenz ===== 
 +Im [[https://rt.wiki.kernel.org/index.php/HOWTO:_Build_an_RT-application | HOWTO: Build an RT-application]] sind diverse Einflüsse auf die Latenz aufgelistet. Zusätzlich können noch andere Anwendungen, wie zum Beispiel eine SSH-Verbindung, die Latenz negativ beeinflussen, wenn die Priorität falsch gewählt wird. 
  
 ===== Links ===== ===== Links =====