TOSSIM改進了nesC編譯器,通過使用不同的選項,用戶可以把在硬體節點上運行的代碼編譯成仿真程式。
2 執行模型TOSSIM的核心是一個仿真事件佇列。與TinyOS不同的是,硬體中斷被模擬成仿真事件插入佇列,仿真事件調用中斷處理程式,中斷處理程式又可以調用TinyOS的命令或觸發TinyOS的事件,這些TinyOS的事件和命令處理程式有可以生成新的任務,並將新的仿真事件插入佇列,重複此過程直到仿真結束。
3 硬體模型TinyOS把節點的硬體資源抽象成組件。通過將硬體中斷轉換成離散仿真事件,替換硬體資源組件,TOSSIM模仿了硬體資源組件行為,為上層提供了與硬體相同的標準接口。硬體模擬為仿真物理環境提供了接入點,通過修改硬體模擬組件,可以為用戶提供各種性能的硬體環境,滿足不同用戶的需求。
4 無線模型TOSSIM允許用戶選擇不同精確度和複雜度的無線模型,該模型獨立於仿真器之外,從而保證了仿真器的簡單和高效。用戶可以通過一個有向圖指定不同節點對之間通信的誤碼率,表示在該鏈路上傳送一個比特數據時可能出錯的機率。對同一個節點來說,雙向誤碼率是獨立的,從可以模擬不對稱鏈路。
5 仿真監控用戶可以自行開發套用軟體來監控TOSSIM仿真的執行過程,二者通過TCP/IP通信。TOSSIM為監控軟體提供實時仿真數據,包括TinyOS原始碼加入的DEBUG信息、各種數據包和感測器的採樣值等,監控程式可以根據這些數據顯示仿真的執行情況。同時允許監控程式以命令調用的方式更改仿真程式的內部狀態, 來控制仿真程式。TinyViz(TinyOS Visualizer)是TinyOS提供的一個仿真監控程式。