TECHNISCHE UNIVERSITÄT ILMENAU Integrierte Kommunikationssysteme http://www.tu-ilmenau.de/iks Verhaltensbeschreibung und Spezifikationssprachen Verhaltensmodelle Zustandsautomaten (FSM) Nicht-deterministische Zustandsautomaten (NDFSM) Parallele Zustandsautomaten Petri-Netz (PN) Datenflussgraph (DFG) Kontrollflussgraph (CFG) Kontroll-Datenflussgraph (CDFG) Grundkonzepte Nebenläufigkeit Hierarchie Kommunikation Synchronisation Ausnahmebehandlung Nicht-Determinismus Timing Spezifikationssprachen StateCharts SDL VHDL SystemC...
Grundlegende Kommunikationsmechanismen Rendez-Vous (CSP) keine gemeinsamen Daten, Prozesse müssen zu bestimmten Zeiten synchronisiert Daten austauschen Lesen und Schreiben erfolgen gleichzeitig Kopplung von Datenaustausch und Synchronisation Gemeinsamer Speicher (unsynchronisiert) Mehrfaches Auslesen möglich Überschreiben gespeicherter Daten bei jedem Schreiben Semantik abhängig von der Reihenfolge von Lese- und Schreiboperationen Puffer (FIFO, FIFO mit Prioritäten) Entkopplung von Sender und Empfänger Begrenzt (bounded) (ECFSMs, CFSMs), feste Kapazität Unbegrenzt (unbounded) (SDL, ACFSMs, Kahn Process Networks, Petri- Netze)
Übersicht Kommunikationsmodelle Blockierung der Schreiboperation bei belegtem Puffer Blockierung der Leseoperation bei leerem Puffer Konsum der Daten beim Lesen Sender Empfänger Puffergröße blockieren. Lesen blockier.. Schreiben Einmal. Lesen Gem. Speicher Semaphore Unbegrenzt. Puffer oder Begrenzter Puffer oder < evtl. Rendezvous
Kommunikationsmechanismen Blockierend vs. nicht-blockierend A B blocking read (Empfänger wartet auf Sender) Empfänger blockiert bis Eingabe vorliegt kein nichtblockierender Test auf vorhandenen Input möglich blocking write (Sender wartet auf Empfänger) Sender muss Empfangsbestätigung abwarten Realisierung in Spezifikationssprachen blocking write/blocking read (Rendezvous-Konzept) CSP (Hoare(978) Communicating Sequential Processes) CCS (Milner(980) Calculus of Communicating Systems) non-blocking write/blocking read (FIFO, CFSMs, SDL) CFSM (CoDesign FSM, Puffer der Größe ) non-blocking write/non-blocking read (gemeinsame Variablen)
Asynchrone Kommunikation Pufferung A B Puffer dienen dem Ausgleich wenn Sender und Empfänger mit unterschiedlichen bzw. sich ändernden Raten arbeiten Größe des Puffers? Verlustfreie oder verlustbehaftete Puffer Datenverlust durch Überlauf des Puffers Begrenzter Puffer führt ohne Synchronisation zu Überlauf oder Überschreiben Ggf. Notwendigkeit den Sender bei vollem Puffer zu blockieren Single vs. multiple read Jede Eingabe kann entweder einmal (Warteschlange) oder mehrmals (gemeinsame Variable) konsumiert werden Priorisierte Warteschlangen bzw. Events Abweichungen von FIFO-Abarbeitung
Zusammenfassung: Beschreibung des Kontrollflusses Eigenschaften Spezifikationssprache Nichtdeterminismus NDFSM, SDL Parallele Automaten State Charts, Petrinetze Asynch. Prozesse SDL Verteilte Abläufe MSC Hierarchie State Charts, SDL Graphische Unterstützung Alle entsprechenden Werkzeuge Semantic Unterschiedlich ;-(
Zusammenfassung: Grundkonzepte von Modellen und Sprachen Zustandswechsel Ereignisse bewirken Zustandswechsel (einfache Eingabe, komplexe Bedingungen) Berechnung in Verbindung mit Zustandswechsel Nebenläufigkeit Gliederung des Verhaltens in nebenläufige Einheiten verschiedene Arten von Nebenläufigkeit (job, task-, statement-, operation-level) datengetriebene vs. kontrollgetriebene Nebenläufigkeit Reduktion von Zuständen Hierarchie strukturelle Hierarchie (System, Block, Prozess, Prozedur) Verhaltenshierarchie (hierarchical transitions, fork-join) Programmierkonstrukte Spezifizieren sequentieller Algortihmen Kommunikation gemeinsame Variablen (broadcast) Nachrichtenübermittlung synchron vs. asynchron Synchronisation kontrollabhängig (fork-join) datenabhängig (Daten, Ereignis, Nachricht) Ausnahmebehandlung Sofortige Unterbrechung des gegenwärtigen Verhaltens Nicht-Determinismus Wahl verschiedener Übergänge nicht-deterministische Anordnung Timing Timeouts, zeitliche Bedingungen