[Tinyos-beta-commits] CVS: tinyos-1.x/beta/teps/txt tep106.txt, NONE, 1.1

Phil Levis scipio at users.sourceforge.net
Wed Dec 15 11:29:45 PST 2004


Update of /cvsroot/tinyos/tinyos-1.x/beta/teps/txt
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9003

Added Files:
	tep106.txt 
Log Message:
Tasks tep.


--- NEW FILE: tep106.txt ---
============================
Schedulers and Tasks
============================
:TEP: 106
:Group: Core Working Group 
:Type: Documentary
:Status: Draft
:TinyOS-Version: 2.x
:Author: Philip Levis and Cory Sharp

:Draft-Created: 10-Dec-2004
:Draft-Version: $Revision: 1.1 $
:Draft-Modified: $Date: 2004/12/15 19:29:43 $
:Draft-Discuss: TinyOS-1.2WG List <tinyos at barnowl.org>

.. Note::

   This memo documents a part of TinyOS for the TinyOS Community, and
   requests discussion and suggestions for improvements.  Distribution
   of this memo is unlimited.

Abstract
====================================================================

This memo documents the structure and implementation of TinyOS tasks
and task schedulers.


1. Introduction
====================================================================

TinyOS has two basic computational abstractions: asynchronous events
and tasks. Prior versions of TinyOS provided a single type of task --
parameter free -- and only a FIFO scheduling policy. While changing
the latter was possible, the incorporation of tasks into the nesC
language made it very difficult. Presenting task schedulers as a
TinyOS component enables much easier customization, and allowing tasks
to be presented as an interface enables extending the classes of tasks
available. TinyOS 2.0 takes both approaches, and this memo documents
the structure of how it does so.


2. Tasks
====================================================================

Tasks in TinyOS are a form of deferred procedure call (DPC), which
enable a program to defer a computation or operation until a later
time. TinyOS tasks run to completion and do not pre-empt one
another[1].  These two constraints mean that code called from tasks
runs synchonously with respect to other tasks. Put another way, tasks
are atomic with respect to other tasks[2].

TinyOS 1.x provides a single kind of task, a parameter-free function,
and a single scheduling policy, FIFO. The nesC language supports
tasks through two mechanisms, a task declaration and the 

6. Author's Address
====================================================================

| Philip Levis
| 467 Soda Hall
| UC Berkeley
| Berkeley, CA 94720
|
| phone - +1 510 290 5283
|
| email - pal at cs.berkeley.edu

7. Citations
====================================================================

.. [rst] reStructuredText Markup Specification. <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html>
 



More information about the Tinyos-beta-commits mailing list