Categories and Subject Descriptors
D.4.0 [Operating Systems]: General
General Terms
Design, Documentation, Reliability, Standardization
A sensor network operating system has to be efficient, flexible,
and reliable. Energy contraints mean that nodes not only have limited
resources, but they must use those resources sparingly. As deployments
are application domain specific, a flexible OS lets software
make the most of these limited resources in order to meet that
applications requirements without inefficiencies introduced by generality.
Finally, in order for deployments to last unattended for long
periods of time, the underlying OS must be stable and reliable.
The past five years have seen tremendous research and technological
developments in wireless sensor networks. The TinyOS operating
system has been able to adapt and grow with this progress.
However, five years of experience have shown that some of its
structure and abstractions to be problematic. The huge existing
TinyOS codebase means that changing basic aspects of the OS
would break all of this existing work.
This has led us to develop TinyOS 2.0, a second-generation mote
operating system. TinyOS 2.0 keeps many of the basic ideas in
TinyOS 1.x: it is a component-based operating system written in
the nesC language [1]. However, it is a clean-slate rewrite of the entire
OS. Every major subystem has a corresponding TEP (TinyOS
Enhancement Proposal) document, which describes the design and
structure of the subsystem and documents a sample implementation.
TEPs are open to review and comment from the larger community.
As having a broad base of experience is important to guide
design and implementations, the TinyOS 2.0 Working Group (WG)
includes developers from UC Berkeley, TU Berlin, Stanford, UCLA,
Crossbow, Moteiv, Arched Rock and Intel.
TinyOS 2.0 pushes forward in three key areas: greater platform
flexibility, improved robustness and reliability, and the concept of
service distributions. The first is intended to simplify platform development
and interoperability, the second is a general design goal,
and the last simplifies application development.
TinyOS 2.0 supports greater platform flexibility in two ways.
First, it introduces a three-layer Hardware Abstraction Architecture
(HAA) [2]. The bottom layer is the Hardware Presentation Layer
(HPL), which provides access to basic resources, such as registers,
interrupts, and pins, through nesC interfaces. The middle layer is
the Hardware Abstraction Layer (HAL), which has higher-level interfaces
that provide useful abstractions of the full capabilities of
the underlying hardware. The top layer is the Hardware Independent
Layer (HIL), which presents abstractions that are hardware
independent and therefore cross-platform.
Second, TinyOS 2.0 uses version 1.2 of the nesC language, which
has new features to better support cross-platform networking. nesC
Copyright is held by the author/owner.
SenSys’05, November 2–4, 2005, San Diego, California, USA.
ACM 1-59593-054-X/05/0011.
1.2 introduces the notion of a network type at a language level: programs
can declare structs and primitive types that follow a crossplatform
(1-byte aligned, big-endian) layout and encoding. This
allows services to declare cross-platform packet formats without
resorting to macros or explicit marshaling/unmarshaling. Experimental
data shows that the overhead of this encoding is negligible.
TinyOS 2.0 improves system reliability and robustness by redefining
some of the basic TinyOS abstraction and policies, such as
initialization, the task queue, and power management. For example,
in TinyOS 1.x, all components share a fixed-size task queue,
and a given task can be posted multiple times [3]. This causes a
wide range of robustness problems, as if a component is unable to
post a task due the queue being full, it may cause the system to
hang. In TinyOS 2.0, every task has its own reserved slot in the
queue, and can be only posted once. Our initial experiences have
shown these semantics to greatly simplify code and lead to more
robust components.
Finally, TinyOS 2.0 introduces the notion of service distributions.
A service distribution is a collection of services whose underlying
components have been designed and composed to work
well together. A service distribution is essentially a system API.
Because the services are designed to work together as a whole,
users do not have to worry about initialization order, configuration,
or the details of the underlying implementations. Service distributions
also introduce power management policies on top of the
basic OS mechanisms. As a whole, they introduce a seperation of
concerns between low-level systems and applications, simplifying
application development. TinyOS 2.0 supports service distributions
by defining simple OS mechansims and interfaces that can be reused
in many fashions, and through new nesC features: a service i
และในหมวดวิชาd.4.0 [ ระบบปฏิบัติการ ] : ทั่วไปข้อตกลงทั่วไปออกแบบ , เอกสาร , ความเชื่อมั่น , มาตรฐานเครือข่ายเซ็นเซอร์ระบบปฏิบัติการมีให้มีประสิทธิภาพ , ยืดหยุ่นและเชื่อถือได้ contraints พลังงานหมายถึงโหนดที่ไม่เพียง แต่จะ จำกัดทรัพยากร แต่พวกเขาต้องใช้ทรัพยากรเหล่านั้นอย่างชาญฉลาด เท่าที่ใช้เป็นโดเมนที่เฉพาะเจาะจง การยืดหยุ่น OS ช่วยให้ซอฟต์แวร์ให้มากที่สุดของทรัพยากรที่ จำกัด เหล่านี้เพื่อให้ตรงกับที่การประยุกต์ใช้ความต้องการโดยไม่ต้องความร้อน แนะนำโดยทั่วไป .สุดท้าย เพื่อให้การใช้งานสุดท้ายเอาไว้นานช่วงเวลา , ต้นแบบ OS ต้องมั่นคงและเชื่อถือได้ที่ผ่านมาห้าปีได้เห็นวิจัยมหาศาล และ เทคโนโลยีการพัฒนาเครือข่ายเซ็นเซอร์ไร้สาย การ tinyos ปฏิบัติการระบบได้สามารถปรับตัวและเติบโตไปพร้อมกับความก้าวหน้านี้แต่ห้าปีของประสบการณ์ได้แสดงให้เห็นว่าบางส่วนของโครงสร้างและนามธรรม เป็นปัญหา ขนาดใหญ่ที่มีอยู่หมายถึง codebase tinyos ที่เปลี่ยนพื้นฐานด้านระบบปฏิบัติการจะหยุดทั้งหมดนี้มีอยู่งานนี้ได้ทำให้เราพัฒนา tinyos 2.0 , หรือผงระบบปฏิบัติการ tinyos 2.0 ช่วยให้จำนวนมากของความคิดพื้นฐานในtinyos 1 X : มันคือการใช้ระบบปฏิบัติการที่เขียนในการ nesc ภาษา [ 1 ] แต่เป็นกระดานชนวนสะอาดเขียนของทั้งหมดOS subystem ทุกสาขามีเทพที่สอดคล้องกัน ( tinyosข้อเสนอการเพิ่มประสิทธิภาพ ) เอกสารที่อธิบายถึงการออกแบบและโครงสร้างของระบบเอกสารและตัวอย่างการใช้งานteps เปิดให้ความคิดเห็นและจากชุมชนขนาดใหญ่ .มีฐานกว้างของประสบการณ์เป็นสิ่งสำคัญ มัคคุเทศก์การออกแบบและการใช้งาน , tinyos คณะทำงาน 2.0 ( WG )รวมถึงนักพัฒนาจาก UC Berkeley , Stanford , UCLA , ทูเบอร์ลินหน้าไม้ moteiv โค้งหินข้อมูลtinyos 2.0 ดันไปข้างหน้าใน 3 พื้นที่หลัก : แพลตฟอร์มมากขึ้นความยืดหยุ่น เพิ่มความทนทาน และความน่าเชื่อถือ และแนวคิดของการกระจายบริการ ครั้งแรกมีวัตถุประสงค์เพื่อลดความซับซ้อนของการพัฒนาแพลตฟอร์มไตรมาส ที่สองคือการออกแบบทั่วไป เป้าหมายและล่าสุดที่ช่วยในการพัฒนาโปรแกรมtinyos 2.0 สนับสนุนแพลตฟอร์มที่ยืดหยุ่นมากขึ้นสองวิธีก่อนจะเปิดตัวฮาร์ดแวร์ที่เป็นนามธรรมชั้นสถาปัตยกรรม( ฮ่า ) [ 2 ] ชั้นล่างเป็นอุปกรณ์การนำเสนอชั้น( HPL ) ซึ่งให้การเข้าถึงทรัพยากรพื้นฐาน เช่น ลงทะเบียนขัดจังหวะ และพิน ผ่านการเชื่อมต่อ nesc . ชั้นกลาง คือฮาร์ดแวร์ที่เป็นนามธรรมชั้น ( HAL ) ที่ระดับการเชื่อมต่อที่ให้ประโยชน์หลักนามธรรมของเต็มความสามารถบริษัทฮาร์ดแวร์ ชั้นบนสุดเป็นฮาร์ดแวร์อิสระชั้น ( สูง ) ซึ่งแสดงนามธรรมที่เป็นฮาร์ดแวร์อิสระ และดังนั้น ข้ามแพลตฟอร์มประการที่สอง tinyos 2.0 ใช้รุ่น 1.2 ของ nesc ภาษาซึ่งมีความสามารถใหม่ที่ดีกว่าการสนับสนุนข้ามแพลตฟอร์มระบบเครือข่าย nescที่จัดขึ้นโดยเจ้าของลิขสิทธิ์ผู้เขียน /สินค้า sensys – 2 พฤศจิกายน 4 , 2005 , ซานดิเอโก , แคลิฟอร์เนีย , สหรัฐอเมริกาพลอากาศเอก 1-59593-054-x / 05 / 0011 .1.2 แนะนำความคิดของเครือข่ายประเภทที่เป็นภาษาระดับ : โปรแกรมสามารถประกาศ structs และชนิดดั้งเดิม ที่ตาม crossplatform( 1-byte ชิด , สังคมศึกษา ) รูปแบบและการเข้ารหัส นี้ให้บริการประกาศข้ามแพลตฟอร์ม โดยรูปแบบแพ็คเก็ตใช้แมโครหรือรอบระยะเวลาที่ชัดเจน / unmarshaling . ทดลองข้อมูลแสดงให้เห็นว่าค่าใช้จ่ายของการเข้ารหัสเป็นเล็กน้อยtinyos 2.0 ช่วยเพิ่มความน่าเชื่อถือและความทนทานของระบบ โดยระบบบางส่วนของนโยบายพื้นฐานและ tinyos นามธรรม เช่นเริ่มต้น งานรอคิว และการจัดการพลังงาน ตัวอย่างเช่นใน tinyos 1 X , องค์ประกอบทั้งหมดร่วมกันขนาดคงที่งานคิวและให้งานสามารถโพสต์หลายครั้ง [ 3 ] นี้สาเหตุความหลากหลายของปัญหา เช่น ถ้าองค์ประกอบไม่ได้ประกาศงานเนื่องจากคิวจะเต็ม อาจทำให้ระบบแขวน ใน tinyos 2.0 ทุกงานของตัวเองไว้เสียบในคิวและสามารถโพสต์เพียงครั้งเดียว ประสบการณ์ครั้งแรกของเราได้แสดงความหมายเหล่านี้เพื่อช่วยลดความซับซ้อนของรหัสและตะกั่ว ให้มากขึ้นองค์ประกอบที่แข็งแกร่งในที่สุด tinyos 2.0 แนะนำแนวคิดของการกระจายการให้บริการการกระจายบริการเป็นคอลเลกชันของการบริการที่มีพื้นฐานส่วนประกอบได้รับการออกแบบ และประกอบกับงานดีด้วยกัน การกระจายบริการเป็นหลักระบบ APIเพราะบริการถูกออกแบบมาเพื่อทำงานเป็นทั้งผู้ใช้ไม่จำเป็นต้องกังวลเกี่ยวกับการเริ่มต้นเพื่อปรับแต่งหรือรายละเอียดของต้นแบบที่ใช้งาน การกระจายบริการแนะนำการจัดการพลังงานนโยบายด้านบนของกลไกขั้นพื้นฐานของระบบปฏิบัติการ เป็นทั้ง พวกเขาแนะนำการแยกของมีข้อสงสัยระหว่างระบบและการใช้งานง่ายขึ้นในการพัฒนาโปรแกรม tinyos 2.0 สนับสนุนการกระจายบริการโดยกำหนด mechansims ง่าย OS และการเชื่อมต่อที่ใช้ได้นานหลายแฟชั่น และผ่านคุณสมบัติ nesc ใหม่ : บริการฉัน
การแปล กรุณารอสักครู่..