Prozess
Gesamtheit von aufeinander einwirkenden Vorgängen in einem System, durch die Materie, Energie oder Information umgeformt, transportiert oder gespeichert wird.
Technischer Prozess
Ein technischer Prozess ist ein spezieller Prozess, dessen Zustandsgrößen mit technischen Mitteln erfasst (gemessen) und beeinflusst (gesteuert, geregelt) werden können.
Echtzeitverarbeitung
Unter Echtzeitbetrieb bzw. Realzeitbetrieb wird der Betrieb eines Rechnersystems verstanden, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind in der Art, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die anfallenden Daten oder Ereignisse können je nach Anwendungsfall nach einer zufälligen zeitlichen Verteilung oder zu bestimmten Zeitpunkten auftreten. (DIN 44300)
Rechenprozess
Ein Rechenprozess ist spezieller technischer Prozess, dessen Gegenstände (der umgeformt, transportiert und gespeichert wird) Informationen darstellen.
Automat
Ein Automat ist eine künstliches logische Struktur, das selbstständig ein Programm befolgt. Aufgrund des Programms trifft das System Entscheidungen, die auf der Verknüpfung von Eingaben mit dem jeweiligen Zustand des Systems beruhen und die zu Ausgaben führen. (DIN 19233)
Prozesssteuerung
Als Prozess-Steuerungen bezeichnet man technische Systeme, welches die logische Struktur eines Automaten erfüllt. Prozesssteuerungen haben dabei die Aufgabe:
Zustandsgrößen des Prozesses werden durch Sensoren erfasst (Messung)
Der Prozess wird nach festlegten Vorschrift durch Aktoren beeinflusst (Steuern, Regeln)
Prozessabläufe werden in entsprechender Reihenfolge abgearbeitet (Schrittsteuerung)
Das Prozessgeschehen wird überwacht und bei entsprechenden Situationen Meldungen, Warnungen, Alarme ausgegeben.
Steuerung
Als Steuern bezeichnet man den Vorgang in einem abgegrenzten System, bei dem eine Ausgangsgrößen, die sogenannte Steuergröße, durch eine Eingangsgröße, die sogenannte Führungsgröße aufgrund der im System hinterlegten (idealen) Modellgesetzmäßigkeiten beeinflusst wird. (DIN 19226)
Regelung
Als Regeln bezeichnet man den Vorgang in einem abgegrenzten System, bei dem eine Ausgangsgrößen, die sogenannte Regelgröße bzw. der Istwert, fortlaufend erfasst und durch Vergleich ihres Signals mit dem Signal einer anderen von außen vorgegebenen Größe, der sogenannten Führungsgröße bzw. dem Sollwert im Sinne einer Angleichung an die Führungsgröße beeinflusst wird. (DIN 19226)
Rechner bzw. Computer
Als Rechner bezeichnet man eine Rechensystem, das aus einer Zentraleinheit (CPU, RAM, Ein-/Ausgabewerke) und notwendiger Peripherie besteht (Bildschirm, Maus,Tastatur, WebCam, Kartenleser,…) besteht.
Mikrocomputer
Als Mikrocomputer bezeichnet man einen Rechner, dessen Zentraleinheit (CPU) aus einem oder mehren Mikroprozessoren besteht. Neben dem bzw. den Mikroprozessoren enthält ein Mikrocomputer, Speicher (RAM), Ein-/Ausgabe- Schnittstellen( z.B. RS232, USB, VGA, HDMI, DVI) sowie ein internes Verbindungssystem (internes Bussystem, „Frontside Bus FSB“)
Prozessrechner
Als Prozessrechner bezeichnet man einen Rechner, der Prozessperpherie direkt an einen technischen Prozess zum zwecke gekoppelt ist, diesen technischen Prozess zu überwachen, zu steuern, zu regeln, bzw. Nutzer- Ein- bzw. Ausgaben für den Prozess durchzuführen.
Echtzeitsystem
Als Echtzeitsystem bezeichnet man einen Prozessrechner, bei dem der Nutzen eines Resultates (Mess-Signal-Aufnahme, Stellsignal-Abgabe) nicht nur vom Resultat selbst (der eigentlichen Prozessgröße), sondern ebenso vom Zeitpunkt der Auslieferung des Resultates abhängt.
Digitaler Eingang (Digital Input)
Als Digitalen Eingang bezeichnet man ein Interface-Modul, das in der Lage ist, ein Binärwertiges Signal (logisch „0“ und logisch „1“) aus dem Technischen Prozess-Feld in den Prozess-Rechner aufzunehmen. Über digitale Eingänge werden die Informationen von binärwertiger Sensoren („anwesend“ <-> „nicht anwesend“; i.O. <-> n.i.O; „geschlossen“ <-> „offen“, usw.) bzw. Schalter des Technischen Prozess-Feld dem Prozessrechner zugänglich gemacht.
Digitaler Ausgang (Digital Output)
Als Digitalen Ausgang bezeichnet man ein Interface-Modul, das in der Lage ist, ein Binärwertiges Signal (logisch „0“ und logisch „1“) aus dem Prozess-Rechner dem Technischen Prozess-Feld zur Verfügung zu stellen. Über digitale Ausgänge werden die Informationen („öffnen“ <-> „schließen“; „fahren“ <-> „anhalten“, usw.) an binärwertiger Aktoren des Technischen Prozess-Feld übergeben.
Echtzeit
Unter Echtzeit (real time) versteht man den Betrieb eines Rechensystems, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dass die Verarbeitungs- ergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorherbestimmten Zeitpunkten anfallen.
Ein Echtzeitsystem (real-time system) ist ein System, bei dem der Zeitpunkt, zu dem Ausgaben vorliegen, bedeutend ist. Das liegt für gewöhnlich daran, dass die Eingabe mit einigen Änderungen der physikalischen Welt korrespondiert und die Ausgabe sich auf diese Änderungen beziehen muss. Die Verzögerung zwischen der Zeit der Eingabe und der Zeit der Ausgabe muss ausreichend klein für eine akzeptable ”Rechtzeitigkeit“ (timeliness) sein.
Hartes Echtzeitsystem
Ein Echtzeitsystem wird als hartes Echtzeitsystem (hard real-time system) bezeichnet, wenn das Überschreiten der Zeitlimits bei der Reaktion erhebliche Folgen haben kann. Zu diesen Folgen zählen die Gefährdung von Menschen, die Beschädigung von Maschinen, also Auswirkungen auf Gesundheit und Unversehrtheit der Umgebung.
Weiches Echtzeitsystem
Eine Verletzung der Ausführungszeiten in einem weichen Echtzeitsystem (soft real-time system) führt ausschließlich zu einer Verminderung der Qualität, nicht jedoch zu einer Beschädigung oder Gefährdung.
Determiniertheit von Echtzeitsystemen
Ein Echtzeit-System heißt determiniert, wenn es für jeden möglichen Zustand und für jede Menge an Eingabeinformationen eine eindeutige Menge von Ausgabeinformationen und einen eindeutigen nächsten Zustand gibt.
Polling
Unter Polling versteht man die Methode, den Status eines Geräts aus Hard- oder Software oder das Ereignis einer Wertänderung mittels zyklischem Abfragen zu ermitteln
Interrupt
Unter einem Interrupt (engl. to interrupt, unterbrechen nach lat. interruptus) versteht man eine vorübergehende Unterbrechung des laufenden Programms,[um einen anderen in der Regel zeitkritischen und meist kurzen Vorgang abzuarbeiten. Das auslösende Ereignis wird Unterbrechungsanforderung (Interrupt Request, IRQ) genannt. Nach dieser Anforderung wird die Unterbrechungsroutine (Interrupt Service Routine ISR, Event-Handler) ausgeführt. Anschließend wird das unterbrochene Programm dort fortgeführt, wo es unterbrochen wurde.
Synchrone Interrupts bzw. Interne Unterbrechung bzw. Software-Interrupt
Als Synchrone Interrupts interne Unterbrechung bzw. Softwareware-Interrupt bezeichnet man
die Auslösung eines Unterbrechungswunsches des laufenden Programms, um Funktionen im KernelMode des Prozessors aufzurufen (= Trap bzw. System Calls)
Die Auslösung eines Unterbrechungswunsches, um einen Fehler zu behandeln (= Exception)
Asynchrone Interrupts bzw. Externe Unterbrechung bzw. Hardware-Interrupt
Als externe Unterbrechung bzw. Hardware-Interrupt bezeichnet man die Auflösung eines Unterbrechungswunsches durch externe Systemkomponenten bzw. Hardware.
Asynchrone Unterbrechung
Eine asynchrone Unterbrechung (Asynchronous Interrupt Request, IRQ) ist ein durch das Prozessor-externe Umfeld generiertes Signal, das einen Zustand anzeigt und/oder eine Behandlung durch den Prozessor anfordert. Dieses Signal ist nicht mit dem Programmlauf synchronisiert. Die Behandlung der Unterbrechung erfolgt im Rahmen der Interrupt Service Routine (ISR), die für jede Unterbrechung im Softwaresystem definiert sein muss.
Zyklische Ablaufsteuerung (cyclic un-triggered)
Ein Echtzeitsystem ist cyclic un-triggered, wenn Steuersignale nur von der Ausführungsdauer der Aktivität abhängen. Eine Aktivität (z.B. eine Programmabarbeitung) wird zyklisch ohne einen äußeren Trigger abgearbeitet. Die Periodendauer wird ausschließlich von Ausführungszeit der Aktivität bestimmt. Die Aktivität wird erneut gestartet, sobald diese beendet wurde (z.B. Do … While-Schleife in höheren Programmiersprachen)
Ereignisgesteuerte Ablaufsteuerung (event-triggered)
Ein Echtzeitsystem ist event-getriggered, wenn Steuersignale alleine und nur vom Auftreten bestimmter Ereignisse wie
Beendigung einer Task
Empfang einer Nachricht
Externer Interrupt
innerhalb der Aktivität abhängen. Die Aktivität wird gestartet, sobald eine signifikante Zustandsänderung bemerkt wird.
Zeitgesteuerte Ablaufsteuerung (time-triggered)
Ein Echtzeitsysstem ist time-triggered, wenn Steuersignale wie für das
das Senden und Empfangen von Botschaften
Erkennen von Änderungen der Umgebungsbedingungen
alleine nur von der fortschreitenden Zeit innerhalb der Aktivität abhängen. Die Aktivität wird periodisch zu bestimmten von einer Uhr vorgegebenen Zeitpunkten gestartet. Die Ausführungszeit der Aktivität muss dabei stets kleiner als die Periodendauer der Triggerung durch die Uhr sein.
Nebenläufigkeit
Als Nebenläufigkeit (concurrency) bezeichnet man die zeitliche Beziehung zwischen Aktivitäten von Komponenten, die gleichzeitig oder zeitlich verzahnt (interleaving) ablaufen können.
Echte Parallelität
Als echte Parallelität bezeichnet man die spezielle Form der Nebenläufigkeit, in der mehrere Einheiten zur parallelen Ausführung auch zur Verfügung stehen.
Quasi Parallelität
Als quasi Parallelität bezeichnet man die spezielle Form der Nebenläufigkeit, in der nur eine Einheit zur quasi parallelen Ausführung tatsächlich zur Verfügung steht. Diese quasi parallele Ausführung wird durch ständiges Wechseln der Ausführungseinheit und damit zeitlich verzahnt zwischen den einzelnen zur Ausführung bereiten Aktivitäten realisiert.
Task
Als Rechenprozess oder Task bezeichnet man den von einem Betriebssystems instanziierte Verwaltungseinheit, die die als Rechenprogramm implementierte Abfolge von Programmzeilen sequentiell abarbeitet.
Stack (Stapelspeicher)
Als Stack (Stapelspeicher) bezeichnet man einen sequentiellen Speicherbereich im Adressbereich einer Task, der als Last-In-First-Out Datenstruktur arbeiten. Ein Stack wächst üblicherweise von höherwertigen Adressen zu niederwertigen Adressen. Jeder Stack besitzt einen Stack-Pointer, der die niedrigste Adresse der letzten auf dem Stack „abgelegten“ Datenelement (Daten-Variable bzw. Daten-Objekt) enthält. Wird ein neues Datenelement auf den Stack abgelegt („push on stack“), wird der Stack-Pointer soweit dekrementiert, das er auf das 1. Byte des Datenelementes zeigt. Wird ein neues Datenelement vom Stack „heruntergenommen“ („pop from stack“), wird der Stack-Pointer um die Größe des Datenelementes inkrementiert. Elementare Stack-Operationen sind in höheren Programmiersprachen für den Programmierer im allgemeinen unsichtbar.
Heap
Als Heap („Haufenspeicher“) bezeichnet man einen sequentiellen Speicherbereich im Adressbereich einer Task, von dem Speicher für Datenstrukturen angefordert werden kann, deren Größe erst zur Laufzeit des Programmes bekannt sind. Ein Heap wächst üblicherweise von niederwertigen Adressen zu höherwertigen Adressen. Die Lebensdauer von Speicher, der vom Heap angefordert wird, ist nicht durch Scope-Grenzen beschränkt und steht damit in voller Verantwortung des Programmierers. Die Reservierung von Heap - Speicher erfolgt in C über die Funktion malloc () bzw. in C++ über den Operator new. Die Freigabe von Heap erfolgt in C über die Funktion free () und in C++ über den Operator delete.
Thread
Als Thread (engl. Ausführungs-Pfaden, Ausführungs-Strang) bezeichnet man durch ein Betriebssystem zur Ausführung gebrachten Vorgang zur nebenläufigen Abarbeitung des als Teilprogramm implementierte Abfolge von Programmzeilen („sequential instruction stream“) innerhalb einer Task. In einer Task läuft somit mindestens einen Thread ab. Mehrere in einer Multithreading-Umgebung einer Task quasi parallel zeitlich verzahnt laufende Threads sind dadurch gekennzeichnet, dass diese den (virtuellen) Adressraum der Task gemeinsam nutzen können. Für die Threads stellt somit der (virtuelle) Adressraum der Task ein Shared Memory dar.
Multitasking
Als Multitasking bezeichnet im allgemeinen die Fähigkeit eines Betriebssystems mehrere Tasks zu instanziieren, die nebenläufig je die als eigenes Rechenprogramm implementierte Abfolge von Programmzeilen sequentiell abarbeitet. Die verschiedenen Task werden in so kurzen Abständen immer abwechselnd durch die CPU ausgeführt, dass der Eindruck der Gleichzeitigkeit entsteht. Multitasking ist somit ein Synonym für Zeit-Multiplexverfahren.
Multithreading
Als Multithreading bezeichnet im allgemeinen die durch das Betriebssystem ermöglichte Fähigkeit einer Task, mehrere Threads innerhalb des gemeinsamen Adressraumes der Task nebenläufig auszuführen.
Multiprocessing
Als Multiprocessing bezeichnet im allgemeinen die Sonderform des Multitasking, bei der jede laufende Task echt-gleichzeitig ausgeführt wird. Eine CPU muss dabei soviele CPU- Kerne aufweisen, wie echtparallele Task ausgeführt werden.
Scheduler
Als Scheduler (Prozess-Verwalter, Task-Manager) bezeichnet man denjenigen durch ein Betriebssystem zur Verfügung gestellte Mechanismus, der die zeitliche Reihenfolge und die Ausführungsdauer der einzelnen Jobs einer Task regelt.
Scheduling
Als Scheduling bezeichnet man das Erstellen eines Ablaufplanes (schedule), die einzelnen (um Hardware-Ressourcen konkurierende) Tasks diese Hardware-Ressourcen insbesondere die CPU bzw. einen CPU-Core des Rechnersystems in für einen bestimmten Zeitraum zuteilt (Allocation), so dass alle harten/festen Echzeitanforderungen und möglichst viele weiche Echtzeitanforderungen erfüllt werden.
Kontextwechsel
Der Übergang von der Ausführung eines Prozesses zur Ausführung eines anderen Prozesses wird als Kontextwechsel bezeichnet.
Job
Als Job bezeichnet man beim präemptiven Multitasking die Teilausführung einer Task von Ihrem Startzeitpunkt bzw. Resume-Zeitpunkt bis zu Ihrem Fertigstellungszeitpunkt bzw. Terminierungs-Zeitpunkt, ohne dass die Task weiter durch eine weitere Task (per Event- Triggering oder Interrupt-Unterbrechnung) verdrängt wird. Die Laufzeit eines Jobs ist bei dieser präemptiven Arbeitsweise durch Periodizität nach oben beschränkt, mit der der Scheduler getaktet wird.
Reaktionszeit bzw. Antwortest
Als Reaktionszeit bzw. Antwortzeit (Reaction Time, Response time) bezeichnet man diejenige Zeitspanne, die vom Anlegen eines Satzes von Eingangsgrößen an ein System bis zum Erscheinen eines entsprechenden Satzes von Ausgangsgrößen benötigt wird.
Frist (Dead Line)
Als Frist (Dead Line) bezeichnet den Zeitpunkt, zu dem die entsprechende Re- aktion am Prozess spätestens zur Wirkung kommen muss. Diese Fristen stellen eine der wesentlichen Randbedingungen des Umgebungsprozesses dar.
Spielraum bzw. Überhang (Laxity Time)
Als Spielraum bzw. Überhang (Laxity Time) bezeichnet man diejenige Zeitspanne zwischen tatsächlicher Fertigstellung einer Aktion und des Frist. Der Überhang stellt gewissermaßen eine Sicherheitszeitreserve für unerwarteten Zeitbedarf in der Laufzeit einer Task dar.
Resume-Time (Startzeitpunkt eines Jobs)
Als Resume-Time bezeichnet man den Zeitpunkt, an dem einer zur Ausführung bereiten („ready“) Task für ein nächstes Zeitquantum die Kontrolle der CPU (bzw. eines CPU-Cores) für die Ausführung des nächsten Jobs einer Task zugewiesen wird.
Preemption-Time (Stoppzeitpunkt eines Jobs)
Als Preemption-Time bezeichnet den Zeitpunkt, zu dem einer in Ausführung befindlichen („running“)Task nach Ablauf des zugebilligten Zeitquantums die Kontrolle der CPU (bzw. eines CPU-Cores) entzogen wird.
Termination-Time (Stoppzeitpunkt der Task)
Als Termination-Time bezeichnet den Zeitpunkt, zu dem der letzte Job einer Task vollständig abgearbeitet ist. Die Task gibt die Kontrolle der CPU (bzw. CPU-Cores) vor Ablauf des zugebilligten Zeitquantum zurück
Maximale Laufzeit bzw. Ausführungszeit (Worst Case Execution Time, WCET)
Als maximale Laufzeit bzw. Ausführungszeit (WCET) bezeichnet man die längste Zeitspanne, die zur reinen Berechnung einer Reaktion auf ein externes Signal benötigt wird.
Minimale Laufzeit bzw. Ausführungszeit (Best Case Execution Time, BCET)
Als minimale Laufzeit bzw. Ausführungszeit (WCET) bezeichnet man die geringste Zeitspanne, die zur reinen Berechnung einer Reaktion auf ein externes Signal benötigt wird.
Latenzzeit (Latency Time)
Als Latenzzeit (Latency Time) beiechnet man diejenige Zeitspanne vom Auftreten eines Ereignisses bis zum Start der zugehörigen Behandlungsroutine. Diese Zeit kann auf den Einzelfall bezogen werden, sie kann auch als allgemeine Angabe (Minimum, Maximum, Durchschnittswert mit Streuung) gewählt werden.
Laufzeit bzw. Ausführungszeit (Service Time, Execution Time)
Als Laufzeit bzw. Ausführungszeit (Service Time, Execution Time) bezeichnet man die Zeitspanne zur reinen Berechnung einer Reaktion auf ein externes Ereignis. In einem deterministischen System kann diese Zeit bei gegebener Rechengeschwindigkeit prinzipiell vorherbestimmt werden.
Betriebssystem (aus Programmierer-Sicht)
Unter einem Betriebssystem versteht man eine Softwaresystem eines Rechners, welches auf der einen Seite Ressourcen des Rechners managt und auf der anderen Seite eine vereinfachte Abstraktion für alle Vorgänge innerhalb des Computers liefert.
Library bzw. Bibliothek (aus Programmierer-Sicht)
Eine Software-Library ist ein Satz von Klassen, Methode, Attributen, und Konstanten, die eine Programmierer bei der Entwicklung eigener Software nutzen bzw. aufrufen kann. Die Bibliothek selbst besitzt keinen aktiven Code, sonderen deren Klassen Attribute und Konstanten werden durch den Code des Programmierers genutzt bzw. deren Methoden werden durch den Code des Programmierers aufgerufen. Ziel der Entwicklung von Bibliotheken ist die Wiederverwendbarkeit von Code für andere Programmierer, die gleiche oder ähnliche Problemstellungen lösen. z.B. Mathematik-Bibliothek zur Linearen Algebra, OpenCV-Bibliothek zur Bildverarbeitung und Maschine Learning
Framework (aus Programmierer-Sicht)
Eine Framework ist Software-Modul, für die ein Programmierer einen Satz von Klassen, Methode, Attributen, und Konstanten entsprechend einem durch das Framework spezifizierten Interface zur Verfügung stellen muss, damit das Framework diese nutzen bzw. die Methoden aufrufen kann. Das Framework stellt somit aktiver Code dar, das Methoden des Programmierers als Call-Backs aufgrund von ausgelösten Events aufruft. Der Programmierer stellt somit im wesentlichen Event-Handler-Methoden in Form einer Library (Bibliothek) für das Framework zur Verfügung.
z.B.
Winforms-Framework: Programmierer implementiert Eventhandler-Methoden
TwinCAT-Framework: Programmierer implementiert CycleUpdate-Methode und ADS-ReadWrite-Indication-Methode
Zuletzt geändertvor einem Jahr