Протопоток — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
(Новая страница: «'''П.''' - это реализация простейших потоков с [[Кооперативная многозадачность|коопе...»)
 
 
Строка 16: Строка 16:
  
 
[http://www.sics.se/~adam/dunkels06protothreads.pdf Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems.]
 
[http://www.sics.se/~adam/dunkels06protothreads.pdf Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems.]
 +
 +
 +
[[Category:Толковый словарь]]

Текущая версия на 17:05, 8 февраля 2013

П. - это реализация простейших потоков с кооперативной многозадачностью.

Использование П. позволяет перейти от автоматной модели реализации алгоритмов к модели взаимодействующих потоков инструкций. При этом программа, реализованная с использованием П., выглядит структурированной гораздо лучше, чем эта же программа, реализованная в автоматном стиле.

В частности, П. нашли широкое применение при реализации коммуникационных протоколов, например, стека TCP/IP или протокола для обмена данными с беспроводными датчиками.

Известная реализация П. на языке C использует машину Даффа для управления внутренними состояниями. Машина Даффа реализована в виде набора макросов C и не видна в коде программы, поэтому код получается простым и компактным.

К недостаткам П. можно отнести запрет на использование стека для размещения в нем локальных переменных функции, реализующей поток. Однако из этого недостатка вытекает также их достоинство: поскольку стек не используется, оперативная память расходуется очень экономно, при этом не требуется выделять пространство под стек отдельно для каждого потока. Это достоинство может стать решающим при использовании микроконтроллеров с объемом ОЗУ, исчисляемым несколькими десятками или сотнями байт.



Литература:

Adam Dunkels, Oliver Schmidt, Thiemo Voigt. Using Protothreads for Sensor Node Programming.

Adam Dunkels, Oliver Schmidt, Thiemo Voigt, and Muneeb Ali. Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems.