Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Protothread

Ein Protothread ist in der Informatik ein leichtgewichtiger Mechanismus zur parallelen Programmierung. Protothreads kommen im Gegensatz zu Threads ohne …

Inhalt2 Abschnitte
  1. 1. Grundidee und Einsatz
  2. 2. Arbeitsweise und wichtige Eigenschaften

Grundidee und Einsatz

Ein Protothread ist in der Informatik ein leichtgewichtiger Mechanismus zur parallelen Programmierung. Er benötigt im Gegensatz zu einem Thread keinen eigenen Stapelspeicher. Dadurch können blockierende Kontexte mit sehr geringem Speicherbedarf abgebildet werden.

Protothreads eignen sich besonders für Aufgaben beim Umsetzen von Protokollen, bei Schnittstellen zwischen Computern und in eingebetteten Systemen. Sie verbinden die Vorteile ereignisgetriebener beziehungsweise durch Zustandsautomaten gesteuerter Programmierung mit denen threadorientierter Programmierung.

Arbeitsweise und wichtige Eigenschaften

Protothreads verwenden kooperatives Multitasking. Das bedeutet, dass ein Kontextwechsel nicht jederzeit, sondern nur an speziell vorgesehenen Programmstellen stattfinden kann. Der Programmablauf muss diese Wechsel daher ausdrücklich ermöglichen.

Da kein eigener Stapelspeicher vorhanden ist, müssen lokale Variablen, die über einen Kontextwechsel hinweg erhalten bleiben sollen, statisch oder global definiert werden. Dies ist eine zentrale Einschränkung gegenüber gewöhnlichen Threads.

Protothreads wurden von Adam Dunkels entwickelt und veröffentlicht. Seine Umsetzung ist ANSI-C-konform und kommt ohne Maschinensprache aus. Eine weitere Umsetzung verwendet spezifische Spracherweiterungen der GCC-Toolchain. Die ebenfalls von Adam Dunkels veröffentlichten Projekte uIP, ein TCP/IP-Stack, und das Betriebssystem Contiki nutzen Protothreads.

Weiterlesen

Informatik Als einfache Rechengeräte leisteten Abakus und später der Rechenschieber unschätzbare Dienste. 1641 konstruierte Blaise Pascal eine mechanische … Parallele Programmierung Es umfasst zum einen Methoden, ein Computerprogramm in einzelne Teilstücke aufzuteilen, die nebenläufig ausgeführt werden können, zum anderen Methoden, … Thread (Informatik) Kritischer Abschnitt · Nebenläufigkeit · Parallele Programmierung · Prozess · Threadsicherheit. Literatur. Bearbeiten. Peter Ziesche: Nebenläufige & verteilte … Stapelspeicher Abstrakter Datentyp. Bearbeiten. Bei der Implementierung eines Stapelspeichers als abstrakter Datentyp in einer einfach verketteten Liste wird der Zeiger auf … Kommunikationsprotokoll In seiner einfachsten Form kann ein Protokoll definiert werden als eine Menge von Regeln, die Syntax, Semantik und Synchronisation der Kommunikation bestimmen. Multitasking Der Begriff Multitasking [ˌmʌltiˈtɑːskɪŋ] (engl.) bzw. Mehrprozessbetrieb bezeichnet die Fähigkeit eines Betriebssystems, mehrere Aufgaben (Tasks) … Kontextwechsel Kontextwechsel oder Taskswitching (englisch context switch) nennt man den Vorgang in einem Betriebssystem, bei dem die Bearbeitung des aktuellen Prozesses … Endlicher Automat Ein endlicher Automat (EA, auch Zustandsmaschine, Zustandsautomat; englisch finite state machine, FSM) ist ein Modell eines Verhaltens, bestehend aus … Koroutine In der Informatik sind Koroutinen (auch Coroutinen) eine Verallgemeinerung des Konzepts einer Prozedur oder Funktion. Der prinzipielle Unterschied zwischen …