Ein Angebot von

In kleinen Schritten – Software für Multiprozessorsysteme partitionieren

| Autor / Redakteur: David Kalinsky * / Franz Graser

In kleinen, überlegten Schritten lässt sich die Partitionierung von Software für Multicore-Prozessoren gut bewältigen.
In kleinen, überlegten Schritten lässt sich die Partitionierung von Software für Multicore-Prozessoren gut bewältigen. (Bild: gemeinfrei/Pixabay / CC0)

Firma zum Thema

Die Partitionierung von Software für Multiprozessorsysteme ist eine der großen Herausforderungen des Architekturdesigns. Sie wird umso schwieriger, wenn ein System harte Echtzeitfunktionen, aber auch nicht zeitkritische Dienste beinhaltet.

Die Zerlegung eines komplexen Embedded-Systems direkt in Tasks lässt sich aufgrund deren hoher Anzahl mit oft zahlreichen Funktionen häufig schwer in den Griff bekommen. Deshalb ist es sinnvoll, die Aufgaben der Software schrittweise zu identifizieren. Zunächst gilt es größere Bereiche der Systemfunktionalität festzulegen, die sich später in einzelne Tasks herunterbrechen lassen.

Viele Betriebssysteme bieten dafür einen speziellen Mechanismus an. Softwareanteile werden in „Containern“ zusammengefasst, die eine Reihe von Software-Tasks beinhalten. Sie haben in verschiedenen Betriebssystemen unterschiedliche Bezeichnungen. In Embedded Linux werden Container als Prozesse und Tasks als Threads bezeichnet. Im Echtzeit-Betriebssystem (RTOS) OSE heißen Container Blocks und Tasks Prozesse.

Andere Echtzeit-Betriebssysteme verwenden die Begriffe Address Spaces und Partitionen. Betriebssysteme, die solche Stückelungs- oder Containerisations-Mechanismen unterstützen, gestatten den Aufbau von Speicherschutzbarrieren zwischen den Containern. So lassen sich Tasks, die in einem Container enthalten sind, vor Fehlern durch inkorrekte Tasks anderer Container schützen.

Jeder Container kann einen eigenen lokalen Vorrat an RAM-Speicherpuffern haben, damit Tasks anderer Container ihre Pufferkapazität nicht ausreizen können. Auf diese Weise werden Fehler lokalisiert, bevor sie andere Container beeinträchtigen.

Schritt 1: Container festlegen

Die Festlegung der Container ist ein erster Schritt beim Design eines komplexen Systems. Jeder Container kann eine Reihe von Tasks enthalten, die gemeinsam einen Dienst realisieren. Dieser sollte von den Diensten anderer Container möglichst unabhängig sein. Die Aufteilung eines Systems steht im engen Zusammenhang mit seinen Applikationsdiensten und Aufgaben.

Ein Pflichtenheft kann als Leitfaden für eine erste Zerlegung des Systems in Container dienen. In komplexen Systemen bieten Container häufig die folgenden Hauptdienste:-automatische Kontrolle,-Koordinierung anderer Dienste,-Datenerfassung,-Datenanalyse,-Server, häufig mit Datenspeicher oder I/O-Geräten,-Anwenderdienste,-Systemdienste wie Task Scheduling, Netzwerkkommunikation oder Dateimanagement.

Ein Beispiel für ein System, das eine Reihe unterschiedlicher Container umfasst: In einer Applikation ermittelt und erfasst ein Container medizinische Daten in Echtzeit anhand regelmäßig eingehender Signale wie Körpertemperatur, Blutdruck und Gehirnströme. Wäre das System auch mit der computergesteuerten Verabreichung von Arzneimitteln oder Nahrung befasst, dann würde es hierfür einen separaten Container „Control Fluids Infusion“ zur automatischen Steuerung benötigen. Soll es mit Ärzten und Krankenschwestern durch Sprachein-, und -ausgabe kommunizieren, bräuchte es ferner den Container „Human Voice Communication“.

Die verschiedenen Betriebssystemdienste, welche die Prozessoren im Multiprozessorsystem unterstützen, wären in Systemdienste-Containern untergebracht, einer je Prozessor. So hätte ein Prozessor mit Embedded Linux einen Container „Linux System Services“ und ein Prozessor mit Echtzeit-Betriebssystem einen Container „RTOS System Services“.

Inhalt des Artikels:

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Ausklappen
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Ausklappen
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44833911 / Multicore)