Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Flag (Informatik)

Aus der englischen Sprache findet sich in der Programmierung für synchronisierende Statusvariablen auch der Begriff (binäre) Semaphore bzw. Mutex locks.

Inhalt5 Abschnitte
  1. 1. Begriff und Grundprinzip
  2. 2. Abgrenzung und verwandte Konzepte
  3. 3. Verwendung im Prozessor und in Programmen
  4. 4. Bedingte Kompilierung
  5. 5. Flags bei der Datenübertragung

Begriff und Grundprinzip

Ein Flag (deutsch etwa „Markierung“, in speicherprogrammierbaren Steuerungen auch „Merker“) ist ein Statusindikator, der bestimmte Zustände kennzeichnet. Es kann gesetzt, gelöscht oder geprüft werden. Meist unterscheidet es nur die beiden Zustände „ist gesetzt“ und „ist nicht gesetzt“.

Zur technischen Darstellung dienen häufig die binären Werte 0 und 1, verständliche Bezeichnungen wie „Gesetzt“ und „Nicht gesetzt“ oder eine Boolesche Variable. Ein Flag ist jedoch nicht völlig mit einer Booleschen Variable gleichzusetzen: Die Variable ist auch dann vorhanden und deklariert, wenn sie den Wert „falsch“ hat; ein nicht gesetztes Flag wird dagegen im Sinne von „gar nicht da“ verstanden.

Abgrenzung und verwandte Konzepte

Wenn mehr als zwei Zustände beschrieben werden müssen, verwendet man einen Aufzählungstyp oder spricht in der Programmierung von einer Statusvariable beziehungsweise Statuskonstante statt von einem Flag.

Ist ein Flag nur einmal zu setzen und darf anschließend nicht mehr gelöscht werden, ähnelt es einem Symbol. Für synchronisierende Statusvariablen kommen außerdem die Begriffe „(binäre) Semaphore“ und „Mutex locks“ vor.

Verwendung im Prozessor und in Programmen

In einem Prozessor zeigen Flags Ergebnisse oder besondere Zustände von Operationen an. Bei arithmetischen Berechnungen kennzeichnet beispielsweise das Carry-Flag einen Übertrag und das Overflow-Flag einen Überlauf. Solche Informationen befinden sich im Statusregister.

In Programmen können Flags eine Fehlerbedingung von einem Programmsegment an ein anderes übermitteln oder Nutzerrechte abbilden. Das konkrete Datenformat hängt von der jeweiligen Implementierung und Programmiersprache ab.

Bedingte Kompilierung

Präprozessor-Flags sind Merker, mit denen nur ausgewählte Teile eines Quellcodes kompiliert werden. Dieses Verfahren ist besonders in C und C++ gebräuchlich.

Im Beispiel wird mit #define COMPILE_FLAG ein Flag definiert. #ifdef COMPILE_FLAG prüft, ob es vorhanden ist. Ist es definiert, fließt Code-Block 1 in das Programm ein; andernfalls wählt #else Code-Block 2. #endif beendet die bedingte Auswahl.

Flags bei der Datenübertragung

Bei der Datenübertragung können bestimmte Bitmuster Zustände oder Signaleigenschaften kennzeichnen. Dadurch sind keine eigenen Leitungen für jedes Signal erforderlich. Solche Bitmuster heißen Zustands-Flags.

Eine Datenpräambel signalisiert insbesondere den Beginn einer Übertragung und ermöglicht dem Empfänger die Synchronisierung. Auch Start- und Stoppbits dienen der Steuerung einer Übertragung. Durch eine geeignete Kodierung lassen sich Bitmuster festlegen, die im eigentlichen Nutzdatenstrom nicht vorkommen können. Diese Muster können dann als Steuersignale statt zur Fehlererkennung oder Fehlerkorrektur verwendet werden.

Weiterlesen

Speicherprogrammierbare Steuerung Eine speicherprogrammierbare Steuerung (SPS; englisch programmable logic controller, PLC) ist ein Gerät, das zur Steuerung oder Regelung einer Maschine oder … Semaphor (Informatik) Semaphor (Informatik) Methode. Erzeuger und Verbraucher, sowie zur Koordination asynchroner Abläufe. Ein Semaphor ist eine Datenstruktur mit einer … Arithmetik Sie umfasst das Rechnen mit den Zahlen, vor allem den natürlichen Zahlen. Sie beschäftigt sich mit den Grundrechenarten, also mit der Addition (Zusammenzählen), … Übertragsbit Das Übertragsbit (engl. carry bit) ist ein Begriff aus der Informatik. Er bezeichnet ein Bit, welches den Übertrag einer Addition oder Subtraktion von Bits … Statusregister Es gibt Interrupts, die vom Status des Interrupt-Enable-Flags unberührt bleiben. Diese nennt man nicht-maskierbare Interrupts (NMI). Manche CPUs haben … Programmierung Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Synchronisation Synchronisation sorgt dafür, dass Vorgänge gleichzeitig (synchron) oder in einer bestimmten Reihenfolge ablaufen. Einfache Synchronisation der Zeitmessung durch … Mutex Ein kritischer Abschnitt (engl. critical section oder critical region) ist derjenige Teil im ausführbaren Code, in dem ein wegen des Mutex ungestörter … Datenpräambel Eine Datenpräambel oder Präambel (von lateinisch praeambulare „vorangehen“; über mittellateinisch praeambulum „Einleitung“) ist ein Signal, das in einem …