Limit betrieben wird. Als Systemsoftware wird wenn überhaupt ein schlankes, vielfach selbst entwickeltes Realzeitbetriebssystem



Ähnliche Dokumente
Was meinen die Leute eigentlich mit: Grexit?

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

DER SELBST-CHECK FÜR IHR PROJEKT

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Es gilt das gesprochene Wort. Anrede

1 Mathematische Grundlagen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Reporting Services und SharePoint 2010 Teil 1

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Die Post hat eine Umfrage gemacht

Grundbegriffe der Informatik

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

SDD System Design Document

Technische Analyse der Zukunft

offene Netzwerke. In diesem Sinn wird auch interkulturelle Kompetenz eher als Prozess denn als Lernziel verstanden.

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Professionelle Seminare im Bereich MS-Office

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Studieren- Erklärungen und Tipps

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Festigkeit von FDM-3D-Druckteilen

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Bildquelle:

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Ein mobiler Electronic Program Guide für Android

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

Urlaubsregel in David

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Portfolio: "Die Ratten" von Gerhart Hauptmann

Informationsblatt Induktionsbeweis

SEPA Lastschriften. Ergänzung zur Dokumentation vom Workshop Software GmbH Siemensstr Kleve / /

Erstellen einer PostScript-Datei unter Windows XP

Anleitung über den Umgang mit Schildern

Lineare Gleichungssysteme

PIERAU PLANUNG GESELLSCHAFT FÜR UNTERNEHMENSBERATUNG

ICS-Addin. Benutzerhandbuch. Version: 1.0

10 größten SLA Irrtümer. Seminar: 8663 Service-Level-Agreement. Qualified for the Job

Robot Karol für Delphi

Professionelle Seminare im Bereich MS-Office

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

FORUM HANDREICHUNG (STAND: AUGUST 2013)

5.6 Realzeitarchitektur auf Multicore-Basis

Ziel- und Qualitätsorientierung. Fortbildung für die Begutachtung in Verbindung mit dem Gesamtplanverfahren nach 58 SGB XII

Was ist Sozial-Raum-Orientierung?

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Beschreibung Regeln z.b. Abwesenheitsmeldung und Weiterleitung

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Komponenten- und ereignisorientierte Softwareentwicklung am Beispiel von Borland-Delphi

Content Management System mit INTREXX 2002.

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

DER BESSER INFORMIERTE GEWINNT!

Der Schutz von Patientendaten

Sicher durch das Studium. Unsere Angebote für Studenten

Ergebnis und Auswertung der BSV-Online-Umfrage zur dienstlichen Beurteilung

Konzentration auf das. Wesentliche.

Übung: Verwendung von Java-Threads

Die Lernumgebung des Projekts Informationskompetenz

Fragebogen zur Anforderungsanalyse

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Lizenzierung von System Center 2012

Führung im Callcenter. und warum in Callcentern manch moderner Führungsansatz scheitert

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

Die Makler System Club FlowFact Edition

Arbeiten Sie gerne für die Ablage?

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

ISA Server 2004 stellt verschiedene Netzwerkvorlagen zur Einrichtung einer sicheren Infrastruktur zur Verfügung:

Beschreibung des MAP-Tools

impact ordering Info Produktkonfigurator

Pflegende Angehörige Online Ihre Plattform im Internet

Unser Bücherkatalog: Worum geht s?

Primzahlen und RSA-Verschlüsselung

Local Control Network

4. Das neue Recht der GmbH ein Überblick

etermin Einbindung in Outlook

Fachbereich Wirtschaftswissenschaften Die Vorsitzenden der Prüfungsausschüsse

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

Traditionelle Suchmaschinenoptimierung (SEO)

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

1.1 Allgemeines. innerhalb der Nachtzeit (19:00 24:00) Gesamte Normalarbeitszeit (16:00 19:00)

Data Mining: Einige Grundlagen aus der Stochastik

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Virtuelle Fotografie (CGI)

Die Gesellschaftsformen

Kursdemo zum Kurs Vertragsgestaltung und Vertragsmanagement. Prof. Dr. Inge Scherer

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Transkript:

1 1 Einleitung Systeme, die neben den ohnehin vorhandenen funktionalen Anforderungen zusätzlich noch zeitlichen Anforderungen typischerweise im Sekundenbereich und darunter genügen müssen, werden als Realzeitsysteme bezeichnet. Als wesentliche Komponente eines solchen Realzeitsystems gilt die Steuerung, die über Ein- und Ausgabeinterfaces, über Sensoren und Aktoren mit dem Benutzer und der Umwelt kommuniziert. Klassische Realzeitsteuerungen bestehen aus einer Singlecore-CPU, die häufig am leistungstechnischen Limit betrieben wird. Als Systemsoftware wird wenn überhaupt ein schlankes, vielfach selbst entwickeltes Realzeitbetriebssystem eingesetzt. Dabei wird der Entwickler oft mit dem Problem konfrontiert, viele unterschiedliche Aufgaben in einer einzelnen Task zu implementieren. Der Zugriff auf Hardware erfolgt direkt, ohne Interaktion mit der Systemsoftware. Höhere Funktionalitäten wie Internetdienste sind in diesem Umfeld nur mit erheblichem Aufwand zu realisieren. Neue Entwicklungen auf dem Gebiet der Prozessoren hin zu mehr Leistungsstärke, zu Energieeffizienz und zu Multicore eröffnen neue Möglichkeiten, moderne Realzeitsysteme zu verwirklichen. In modernen Realzeitsteuerungen löst der sogenannte Tickless-Betrieb die periodisch ablaufende Systemsoftware ab. Intuitive Mensch-Maschine-Schnittstellen und Vernetzung, insbesondere die Internetanbindung, stehen dem Entwickler über standardisierte Interfaces zur Verfügung. Anstelle proprietärer Systemsoftware bietet sich ein echtzeitfähiges Standardbetriebssystem an, bei dem beispielsweise ein einzelner Prozessorkern für Realzeitaufgaben reserviert werden kann. Die Applikation passt sich an. Wo klassisch ein einzelner Thread ereignisgesteuert viele unterschiedliche Aufgaben abarbeitet, werden bei einem modernen Systementwurf unabhängige Aufgaben identifiziert und in separate Tasks implementiert. Die dabei notwendige Inter-Prozess-Kommunikation bringt allerdings kritische Abschnitte mit sich, die mit geeigneten Methoden zu schützen sind. Für die Kodierung greift der Entwickler auf die vielfältigen, vorgefertigten und ebenfalls standardisierten Funktionen des Betriebssystems

2 1 Einleitung zurück, um beispielsweise Tasks zu erzeugen, zu priorisieren oder auf einen Rechnerkern zu fixieren; auf Funktionen, um den Scheduler zu konfigurieren, zwischen seinen Tasks Daten auszutauschen oder um kritische Abschnitte zu schützen, und auf Funktionen, die für das Zeitmanagement benötigt werden. Die Erstellung eines modernen Echtzeitsystems erfordert über die Kenntnis der technischen Möglichkeiten hinaus ein theoretisches Basiswissen. Neben der formalen Beschreibung seines Entwurfs muss der Entwickler aus der Aufgabenstellung die Echtzeitparameter für den Realzeitnachweis extrahieren und die zugehörigen Realzeitbedingungen aufstellen und anhand des von ihm erstellten Entwurfs überprüfen können. Für diesen notwendigen, in der Praxis häufig ausgelassenen Schritt benötigt der Entwickler Kenntnisse über das eingesetzte Scheduling-Verfahren und über die detallierte Verarbeitung kritischer Abschnitte. Ziel dieses Buches ist es damit, Scope Grundkenntnisse moderner Realzeitsysteme kompakt und praxisorientiert zu vermitteln, die Parameter vorzustellen, die die zeitlichen Anforderungen auf der einen Seite und das Zeitverhalten der zur Lösung eingesetzten Rechenprozesse auf der anderen Seite beschreiben, die Möglichkeiten zum Entwurf und zur Realisierung moderner Realzeitsysteme auf Basis von Single- oder Multicore-Hardware aufzuzeigen, die vielfältigen Einsatzmöglichkeiten von (Embedded) Linux im Realzeitumfeld zu verdeutlichen, die praxisrelevanten Funktionen zur Realisierung der Applikation anhand von Codebeispielen vorzustellen, in die Grundlagen der Betriebssicherheit (Safety) und der Angriffssicherheit (Security) einzuführen, einfache und weitestgehend intuitiv einzusetzende formale Beschreibungsmethoden vorzustellen und das Rüstzeug für einen Realzeitnachweis zu vermitteln, der auch Blockierzeiten berücksichtigt. Das Buch gibt einen kompakten Überblick über die wesentlichen Aspekte von Realzeitsystemen. Es ist damit weder ein themenumfassendes Handbuch, noch ein auf Einzelaspekte fokussiertes Werk. Das Buch richtet sich sowohl an Neulinge auf dem Gebiet der Realzeitsysteme, wie beispielsweise Studenten der Informatik, Elektrotechnik oder Mechatronik, als auch an den erfahrenen Entwickler. Es soll dabei den Systemarchitekten ebenso ansprechen wie den Programmierer. Da

3 softwarespezifische Aspekte im Vordergrund stehen, richtet es sich nicht an Hardwareentwickler. Grundkenntnisse auf dem Gebiet der Betriebssysteme sind zum Verständnis von Vorteil, die Codebeispiele im Praxisteil sind in der Programmiersprache C geschrieben. Sie sind grundsätzlich unabhängig von einer spezifischen Systemversion, wir haben sie auf einem Ubuntu 12.04 LTS mit Kernel 3.2 getestet. Das Buch ist aufgrund der Verbreitung und der herausragenden Eigenschaften Linux-zentriert, allerdings dabei unabhängig von einer spezifischen Plattform oder einer bestimmten CPU. In Beispielen referenzieren wir meist die verbreiteten x86- oder ARM-Architekturen. Realzeitsysteme werden im amerikanischen Sprachraum sehr häufig mit eingebetteten Systemen (Embedded Systems) gleichgesetzt. Streng genommen ist das nicht korrekt, denn die integrierte, mikroelektronische Steuerung so die Definition eines eingebetteten Systems muss nicht zwangsweise zeitliche Anforderungen erfüllen. Dennoch besteht zwischen Realzeitsystemen und eingebetteten Systemen eine enge Verwandtschaft und ist daher auch Thema dieses Buches. Sogenannte Deeply Embedded Systems Systeme, die auf einfachen Prozessoren und oft selbst geschriebener Systemsoftware beruhen sind allerdings außerhalb des Scopes. Aufbau des Buches In Kapitel 2 werden zunächst die Beschreibungsgrößen eines Realzeitsystems definiert und die Bedingungen abgeleitet, die zur Erfüllung der zeitlichen Anforderungen einzuhalten sind. Das dritte Kapitel stellt die für das Realzeitverhalten wesentlichen Komponenten der Systemsoftware vor. Dazu gehören beispielsweise die innerhalb der Realzeitsysteme auswählbaren und parametrierbaren Scheduling-Strategien und die Zeitverwaltung. Aspekte der nebenläufigen Realzeitprogrammierung behandelt das vierte Kapitel anhand von vielen Codebeispielen. Hier werden die wichtigsten Systemcalls und Funktionen vorgestellt, mit denen Tasks erzeugt, Zeiten gelesen oder kritische Abschnitte geschützt werden. Verschiedene, mit Linux gut realisierbare Realzeitarchitekturen, basierend auf Single- und Multicore-Hardware, werden im fünften Kapitel vorgestellt. Realzeitsysteme werden häufig im sicherheitskritischen Umfeld eingesetzt. Daraus resultieren erweiterte Anforderungen an die Korrektheit, an die Ausfallsicherheit, aber auch an den Schutz vor unbefugtem Zugriff, lokal, aber auch über das Internet. Kapitel 6 behandelt Aspekte der Betriebs- und der Angriffssicherheit.

4 1 Einleitung Kapitel 7 gibt dem Entwickler ausgewählte Methoden an die Hand, mit denen die Taskgebilde eines Realzeitentwurfs dargestellt und die Abläufe innerhalb der Tasks modelliert werden können. Vielen Lesern dürften die vorgestellten Verfahren bekannt sein; das hat uns motiviert, den Abschnitt weiter hinten im Buch zu platzieren. Das letzte Kapitel widmet sich schließlich dem Realzeitnachweis, mit dem formal das Einhalten der zeitlichen Anforderungen unter Berücksichtigung verschiedener Systemparameter (zum Beispiel Scheduling) nachgewiesen werden kann. Embedded Linux Im Rahmen des Buches referenzieren wir immer wieder auf Linux. Tatsächlich ist Linux in den letzten Jahren zu einem Standardbetriebssystem mit Realzeiteigenschaften umgebaut worden. Dabei ist Linux natürlich abhängig von der eingesetzten Hardware in der Lage, harte Zeitgrenzen im Mikrosekundenbereich einzuhalten. Allerdings benötigt der Kernel hierzu zurzeit noch den sogenannten PREEMPT-RT-Patch ([http://www.kernel.org/pub/linux/kernel/projects/rt/]). Da Linus Torvalds mit jeder neuen Kernel-Version Teile des Patches übernimmt, wird das Patchen jedoch schon sehr bald unnötig sein. Langzeitmessungen am Kernel belegen, dass das deterministische Zeitverhalten unabhängig von der eingesetzten Prozessorarchitektur und auch langzeitstabil ist [QuKu2012-63]. Das wird durch die sogenannten High Resolution Timer (hrtimer) und den Tickless-Betrieb erreicht. Das Zeitmanagement des Kernels basiert intern nicht mehr auf Timerticks, sondern auf einer Zeitbasis in Nanosekundenauflösung. Zeitaufträge werden also nicht mehr mit dem nächsten Timertick, sondern zu exakt den Zeitpunkten angestoßen, zu denen der Auftrag terminiert ist. Das für ein Realzeitbetriebssystem typische prioritätengesteuerte Scheduling unterstützt Linux bereits seit vielen Jahren, ebenso wie Mutexe, die eine sogenannte Prioritätsvererbung ermöglichen. Linux zeichnet aber noch mehr aus. Mithilfe von Control-Groups lassen sich Tasks gezielt auf einzelne Kerne einer Multicore-Maschine fixieren und per Threaded Interrupts werden Interrupt-Service-Routinen als priorisierbare Threads abgearbeitet. Das Applikationsinterface orientiert sich für Realzeitanwendungen am POSIX-Standard. Neben den Realzeiteigenschaften weist Linux weitere Merkmale auf, die es für den Einsatz als Embedded System prädestinieren. Wesentliche Eigenschaften sind

5 Skalierbarkeit, Modularität, Portierbarkeit, Quelloffenheit, eine große Entwicklergemeinde und gute und umfangreiche Dokumentation. Um ein Embedded System zusammenzustellen und zu bauen, können Sie auf diverse Hilfsmittel wie beispielsweise Buildroot (siehe Abschnitt 3.3) oder OpenEmbedded ([http://www.openembedded.org]) zurückgreifen. Buildroot bietet sich für kleinere Projekte an, auf OpenEmbedded greifen Sie erst zurück, wenn Sie sehr komplexe Systeme aufbauen müssen. Beide Programme bauen nicht nur das eigentliche System zusammen, sondern sorgen selbstständig dafür, dass die notwendigen Entwicklungswerkzeuge wie beispielsweise Crosscompiler zur Verfügung stehen.