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
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.