A method of implementing concurrent distributed programming projects in the classroom
TinyOS & NesC Programming
What is it: "TinyOS is an open-source operating system designed for wireless embedded sensor networks" developed at U.C. Berkeley EECS Department
Web site: http://www.tinyos.net/
Why not just use Linux or XP?
Includes a customized version of C that uses a compiler called 'NesC'
Programming a TinyOS application using NesC:
Designed for programming concurrency with any number of nodes in a network
The language has built in systems calls depending on the device you are running. For example on the mica motes it will have system calls for radio transmitter, receiver, light sensor, & LEDs
- What is a Mote?
- Company that makes them Crossbow
- Do I need motes?
- No, there is a simulator for the mica mote
- TOSSIM
Sample assignments for students:
Implement any number of distributed mutual exclusion algorithms, for example
- Rikart-Agrawala
- Suzuki-Kasami
- Raymond’s tree circulation
or perhaps a deadlock detection algorithm such as:
- Ho-Rammamoorthy 1 or 2
- Chandy-Misra-Haas.
How to install it on to your computer ( a project in itself! )
Current TinyOS & NesC Research Projects:
Remote Sensors; stationary
Robots using TinyOS