240 likes | 335 Vues
This presentation by Andrea Sayer explores the development of a service-oriented operating system for ubiquitous sensor systems, addressing issues faced in previous particle-based systems. The main focus is on context recognition and the need for flexibility, reusability, and efficient execution of periodic tasks. The proposed system aims to provide abstractions, separation of program components, and support for context capture and timely execution. It includes concepts like data flow orientation, dynamic service insertion, and quality metrics for effective scheduling. The presentation also discusses related works on data flow architectures and programming paradigms, emphasizing the importance of timely data processing for sensor nodes. The design involves a layered graph structure for organizing services based on data dependencies, enabling path-based execution and controlled path interruption. Quality assessment criteria cover real-time data processing, jitter control, and path scheduling for optimizing system performance.
E N D
Service-orientiertes Betriebssystem fürubiquitäreSensorsystemeDiplomarbeitsvortragAndrea SayerBetreuer: Christian DeckerTelecooperation Office (TecO)
Motivation • bisherige Particle-Entwicklung: 2-Task-System • Unterbrechung der Anwendung durch Funkstack alle 13ms • Hauptaufgabe ubiquitärer Systeme: Kontexterkennung • Probleme: • Zu unflexibel, ständige Neuimplementierung wiederkehrender Aufgaben, Ausführung periodischer Aufgaben nur eingeschränkt möglich • Keine Unterstützung der Kontexterfassung, keine zeitnahe Ausführung
Ziele • Bereitstellung von Abstraktionen, Trennung unabhängiger Programmteile, Wiederverwendbarkeit, Flexibilität => Periodisches Laufzeitsystem • Wiederverwendung von Ergebnissen vorhergehender Ausführungen, Zeitnähe => Datenflussorientiertes System
Gliederung • Periodisches Laufzeitsystem • Servicekonzept • Aufbau des Laufzeitsystems • Dynamisches Einfügen von Services • Datenflussorientierung • Struktur und Ausführungsstrategien • Qualitätsmetriken • Schedulingverfahren • Implementierung • Zusammenfassung
Servicekonzept • Aufteilung des Systems in Anwendung und Services • Anwendung • unterbrechbar, initialisiert Services und verarbeitet Serviceausgaben • Service • Konfiguration: Parameter des Service: Periode, nextArrivalTime,... • Servicefunktion: ununterbrechbar • Ausgabepuffer: Schnittstelle zur Anwendung oder anderen Services • Zustand: WAITING, READY
Laufzeitsystem • Waiting Queue • Enthält Services im Zustand WAITING • Geordnet nach nächster Ankunftszeit • Ready Queue • Services im Zustand READY • Geordnet nach Priorität • Scheduler • Sortiert Services in die Ready Queue ein • Dispatcher • Überprüft die Waitingqueue auf Services, die ihre nächste Ankunftszeit erreicht haben und übergibt diese an den Scheduler
Dynamisches Einfügen von Services(1) • Verteilung von Objekten mit der ParticleVM .class
Dynamisches Einfügen von Services(1) • Verteilung von Objekten mit der ParticleVM .class
Dynamisches Einfügen von Services(1) • Verteilung von Objekten mit der ParticleVM object .class
Dynamisches Einfügen von Services(2) • Ausführung von Java Services unter Verwendung der ParticleVM
Gliederung • Periodisches Laufzeitsystem • Servicekonzept • Aufbau des Laufzeitsystems • Dynamisches Einfügen von Services • Datenflussorientierung • Struktur und Ausführungsstrategien • Qualitätsmetriken • Schedulingverfahren • Implementierung • Zusammenfassung
Datenflussorientierung • Bisher: periodisches Laufzeitsystem • Problem: fehlende Koordination der Datenverarbeitung, keine Berücksichtigung der Datenabhängigkeiten, somit keine Zeitnähe • Datenflussorientierte Systeme:Ausführung ist vom Vorhandensein der Eingabewerte abhängig => Für ubiquitäre Systeme: Wenn Kontext vorhanden, dann entspr. Anwendungsteil ausführen (d.h. Vermeidung von Redundanz)
Verwandte Arbeiten • Datenflussarchitekturen:Hardwarearchitektur, datenflussoriente Befehlsausführung, für ressourcenbeschränkte Sensorknoten nicht geeignet • Data Flow Languages:Programmiersprache für Datenflussrechner • Flow-Based Programming (J.P.Morrison):Programmierparadigma, Gesamtanwendung aus Blackbox- Komponenten, Datenaustausch über Puffer Gemeinsamkeiten mit dem Servicekonzept, aber hochgradig asynchron, keine periodischen Ausführungen => Datenflussorientiertes System für Sensorknoten
Graphstruktur • Schichtenmodell • Anordnung von Services gemäß ihrer Datenabhängigkeiten • Datenquelle, Systemantrieb, periodische Services • Datenverarbeitung, datenorientierte Services • Graphstruktur • Gerichteter, azyklischer Graph (DAG) • Jeder Service darf nur einem Baum angehören • Jedem Puffer ist genau ein Eingabeservice zugewiesen • Services können aus mehreren Puffern lesen • Ein Service kann mehrere Ausgabepuffer haben
Pfadbasierte Ausführung • Pfadweises Ausführen von Services • Pfade des Baumes bilden Scheduling-einheiten • Abarbeitung des Pfades ist ununterbrechbar Ausnahmen: • Interner Abbruch: Abbruch auf Veranlassung eines Services => Scheduler soll Pfad benachteiligen • Externer Abbruch: Abbruch wegen veralteter Eingabedaten => Pfad soll bei nächster Schedulingentscheidung bevorzugt werden • Kontrollierter Pfadabbruch: Aggregation, Verarbeitung von Daten abweichend vom normalen Datenfluss
Qualitätsbestimmung • Datenechtzeit • Realisation des Zeitnäheprinzips • Services • Periodisch: Jitter • Datenverarbeitend: Alter der Daten im Eingabepuffer • Pfade P=100ms 1 1 0,75 0,75 0,6
Scheduling – Zeitnähe(1) • Systemqualität: Maß für die Zeitnähe • Finden einer optimalen Lösung ist komplex (NP-vollständig?) => Annäherung durch Heuristiken • Grapheigenschaften für Heuristiken, die die Systemqualität beeinflussen: Pfadlaufzeiten Gemeinsame Teilpfade Perioden
Scheduling – Zeitnähe(2) • Shortest Total Delay First: • Bevorzugung des Pfades, der alle anderen Pfade am geringsten verzögert • Hoher Overhead • Highest Quality First: • Pfad mit höchster Qualität wird bevorzugt • Problem: Abhängigkeit von der Anfangsreihenfolge • Shortest Path First: • Zeitl. kürzester Pfad wird bevorzugt • Keine Berücksichtigung der Baumstruktur/Periodenlängen • Erweiterung von Shortest Path First • Berücksichtigung gemeinsamer Teilpfade • Berücksichtigung der Periodenlängen • Gute Simulationsergebnisse • Problem: unbekannte oder schwankende Ausführungszeiten
Scheduling – Fairness • Least Quality First • Pfade, die eine niedrige Qualität erreicht haben, sollen bei der nächsten Ausführung bevorzugt werden • Oszillation zwischen zwei Schedulingreihenfolgen führt zu unterschiedlich ausgeprägten Schwankungen • Qualitätsbudget Verfahren • Aktuelle Qualität wird von Qualitätsbudget abgezogen • Höchstes Budget wird bevorzugt • Neuer Parameter: Anfangsbudget
Scheduling - Bewertung • First In First Out (FIFO): • Geringer Overhead • Keine Fairness oder hohe Systemqualität • Prioritäten: Priorisierung von Pfaden durch Entwickler (statisch) • Geringer Overhead • Fairness und hohe Systemqualität hängen von den Absichten des Entwicklers ab • Erweiterung von Shortest Path First: • Gute Annäherung an die optimale Systemqualität • Relativ hoher Overhead, keine Fairness • Voraussetzung: vorhersehbare Ausführungszeiten, schwierig für datenorientierte Services • Qualitätsbudget-Verfahren: • Fairness, relativ geringer Overhead • Keine besonders hohe Systemqualität
Implementierung • Particle (229) • Small Device C Compiler (SDCC) • Systemgröße • POS: 18% Code, 17% Data • PBS, PVM, POS: 100% Code, 92% Data • Overhead:geringer als beim periodischen System, etwas höherer Speicheraufwand • Dispatcher: Timer1 Interrupt • Kommunikation: AwareCon V5 • Kommunikationsservice • Unterbrechung von Services durch den Funkstack • JavaVM • PC • Vorverarbeitung • GraphViz • Simulation
Zusammenfassung • Abstraktionen und Trennung unabhängiger Programmteile durch ein Laufzeitsystem • Mehr Flexibilität: dynamisches Einbinden von Java Services • Unterstützung der Kontexterkennung und zeitnahe Ausführung durch das graphbasierte Scheduling • Momentan laufende Arbeiten: • Einsatz für die AwarePen Anwendung