Zum Inhalt springen

Protothread

aus Wikipedia, der freien Enzyklopädie

Ein Protothread ist in der Informatik ein leichtgewichtiger Mechanismus zur parallelen Programmierung.

Protothreads kommen im Gegensatz zu Threads ohne eigenen Stapelspeicher aus. Sie können blockierende Kontexte mit geringstmöglichem Speicherbedarf abbilden. Solche Aufgabenstellungen findet man in der Informatik häufig, zum Beispiel beim Umsetzen von Protokollen, bei Schnittstellen zwischen Computern und in eingebetteten Systemen.

Protothreads ist eine Art des kooperativen Multitasking. Deshalb können Kontextwechsel nur an speziell vorgesehenen Programmstellen stattfinden. Protothreads haben keinen eigenen Stapelspeicher, deshalb müssen lokale Variable statisch oder global definiert werden, wenn sie über einen Kontextwechsel hinweg erhalten bleiben sollen.

Protothreads verbinden die Vorteile von ereignisgetriebener (bzw. durch Zustandsautomaten gesteuerter) Programmierung mit threadorientierter Programmierung. Protothreads wurden von Adam Dunkels entwickelt und veröffentlicht.<ref>Adam Dunkels: <templatestyles src="Webarchiv/styles.css" />Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. (Memento des Vorlage:Referrer vom 13. Oktober 2005 im Internet Archive)Vorlage:Webarchiv/archiv-bot.</ref> Die Umsetzung von Adam Dunkels ist ANSI-C-konform und kommt ohne Maschinensprache aus. Eine weitere Umsetzung<ref>Larry Ruane: Protothreads</ref> nutzt spezifische Spracherweiterungen der GCC-Toolchain. Zwei bekannte, ebenfalls von Adam Dunkels veröffentlichte Projekte, der TCP/IP-Stack uIP<ref>Adam Dunkels: <templatestyles src="Webarchiv/styles.css" />Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. (Memento des Vorlage:Referrer vom 30. April 2010 im Internet Archive)Vorlage:Webarchiv/archiv-bot.</ref> und das Betriebssystem Contiki<ref>Adam Dunkels: <templatestyles src="Webarchiv/styles.css" />Skriptfehler: Ein solches Modul „WLink“ ist nicht vorhanden. (Memento des Vorlage:Referrer vom 25. August 2010 im Internet Archive)Vorlage:Webarchiv/archiv-bot.</ref>, nutzen Protothreads.

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

Belege[Bearbeiten]

<references />