báo cáo hệ điều hành contiki

90 1.6K 22
báo cáo hệ điều hành contiki

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

báo cáo hệ điều hành contiki

LỜI NÓI ĐẦU Các đối tượng thông minh thường là các thiết bị đơn giản, nhỏ gọn, giá thành thấp, sử dụng nguồn năng lượng hạn chế (pin), có thời gian hoạt động lâu dài. Một trong những đặc điểm nổi bật của một nút mạng các đối tượng thông minh là sự hạn chế về năng lực tính toán, nguồn năng lượng cung cấp, và giá thành sản xuất. Mặc dù phần cứng đơn giản nhưng các đối tượng thông minh đã và đang được ứng dụng rộng rãi trong đời sống. Việc hỗ trợ cơ sở hạ tầng cho các ứng dụng mạng các đối tượng thông minh trên hệ điều hành ngày càng trở nên quan trọng. Bản chất, hệ điều hành là cầu nối giữa phần cứng đơn giản với phần ứng dụng phức tạp. Hệ điều hành cho mạng các đối tượng thông minh đóng vai trò trung tâm trong việc xây dựng các ứng dụng phân tán với khả năng mở rộng, có độ tin cậy và hiệu quả cao. Qua nhiều năm, chúng ta đã thấy xuất hiện nhiều hệ điều hành khác nhau nhằm dễ dàng cho việc phát triển các ứng dụng mạng với các đối tượng thông minh. Các chức năng cơ bản của hệ điều hành bao gồm việc trừu tượng hóa tài nguyên cho các thiết bị phần cứng khác nhau, quản lý ngắt và lập lịch các nhiệm vụ, điều khiển đồng thời, và hỗ trợ mạng. Dựa trên các dịch vụ được cung cấp bởi hệ điều hành, những người lập trình ứng dụng có thể thuận tiện sử dụng các giao diện lập trình ứng dụng mức cao độc lập với phần cứng lớp dưới. Hệ điều hành Contiki là hệ điều hành mã nguồn mở, được nghiên cứu, thiết kế và phát triển bởi một nhóm các nhà phát triển từ viện khoa học máy tính Thụy Điển, người đứng đầu là Adam Dunkels. Nhóm phát triển Contiki gồm nhiều thành viên đến từ SICS, CISCO, cùng nhiều tổ chức và các trường đại học khác trên thế giới. Hệ điều hành Contiki được thiết kế cho các vi điều khiển có bộ nhớ nhỏ, với thông số 2KB RAM và 40KB ROM. Nhờ đó, Contiki được sử dụng rộng rãi cho các đối tượng thông minh. Nội dung bài giảng này gồm 4 chương: Chương 1: Tổng quan về hệ điều hành nhúng cho các đối tượng thông minh. Chương này khảo sát các hệ điều hành hiện có từ đó đưa ra những so sánh và những hướng nghiên cứu trong tương lai đối với các hệ điều hành này. Chương 2: Giới thiệu về hệ điều hành Contiki. Chương này giới thiệu tổng quan về hệ điều hành Contiki bao gồm lịch sử hình thành và phát triển, các đặc điểm chính, kỹ thuật lập trình trên hệ điều hành Contiki, vấn đề quản lý bộ nhớ, các bước cài đặt môi trường phát triển ứng dụng với Contiki trên Ubuntu. 1 Chương 3: Các module trong hệ điều hành Contiki. Chương này trình bày các module chính trong hệ điều hành Contiki bao gồm ngăn xếp truyền thông uIP, RIME, các giao diện lập trình ứng dụng, module quản lý bộ nhớ, Contiki system, các thư viện, các nền tảng phần cứng được hỗ trợ trên hệ điều hành Contiki. Chương 4: Xây dựng chương trình với Contiki. Chương này trình bày cách xây dựng chương trình ứng dụng và cách mô phỏng, thực thi chương trình trên thiết bị thực. Mặc dù đã hết sức cố gắng nhưng không thể tránh khỏi các thiếu sót. Mọi ý kiến đóng góp MỤC LỤC 2 LỜI NÓI ĐẦU 1 MỤC LỤC 2 Chương 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH CHO MẠNG CÁC ĐỐI TƯỢNG THÔNG MINH 4 Chương 2. HỆ ĐIỀU HÀNH CONTIKI 19 Chương 3. CÁC MODULE TRONG HỆ ĐIỀU HÀNH CONTIKI 37 Chương 4. XÂY DỰNG CHƯƠNG TRÌNH 38 ỨNG DỤNG VỚI CONTIKI 38 [edit] The COOJA Simulator 38 [edit] Getting started 38 [edit] Feature requests, bug reporting, and questions 41 Get started with the Cooja simulator 41 Example-Shell Guide 60 Simple Contiki Data Collection on the Tmote Sky 62 Setting up a Low-Power IPv6/RPL Network 72 REST-Example Guide 88 TÀI LIỆU THAM KHẢO 90 3 Chương 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH CHO MẠNG CÁC ĐỐI TƯỢNG THÔNG MINH 1.1. Giới thiệu về các đối tượng thông minh Các đối tượng thông minh thường là các thiết bị đơn giản, nhỏ gọn, giá thành thấp, sử dụng nguồn năng lượng hạn chế (pin), có thời gian hoạt động lâu dài (vài tháng đến vài năm). Một ví dụ điển hình về các đối tượng thông minh là các nút cảm biến không dây. Trong đó các nút mạng thường là các thiết bị đơn giản, nhỏ gọn, giá thành thấp… và có số lượng lớn được phân bố một cách không có hệ thống trên phạm vi hoạt động rộng, sử dụng nguồn năng lượng hạn chế. Các nút mạng thường có chức năng cảm nhận, quan sát môi trường xung quanh như nhiệt độ, độ ẩm, ánh sáng… theo dõi hay định vị các mục tiêu cố định hoặc di động… Các nút giao tiếp ad-hoc với nhau và truyền dữ liệu về trung tâm (base station) với cách thức giao tiếp bằng kỹ thuật multi-hop. Cấu trúc bên trong các đối tượng thông minh thường có một bộ vi điều khiển chạy các phần mềm. Vi điều khiển là một bộ vi xử lý có bộ nhớ trong, bộ định thời, và phần cứng cho việc kết nối các thiết bị bên ngoài khác. Vi điều khiển trông giống như một vi mạch thông thường với một vỏ bọc bằng nhựa, các chân kết nối bằng kim loại như trong hình 1.1. 4 Hình 1.1: Một bộ vi điều khiển Atmel ATTINY 2313 với 20 chân. Các bộ ATTINY 2313 có 2kB của ROM và 128byte bộ nhớ RAM. Do hạn chế về chi phí và năng lượng, các vi điều khiển được sử dụng trong các đối tượng thông minh thường nhỏ hơn nhiều so các bộ vi xử lý được sử dụng trong các máy tính cá nhân. Thông thường, một bộ vi điều khiển sử dụng trong nút cảm biến có một vài KB bộ nhớ của chip và được chạy ở tốc độ xung nhịp một vài MHz. Trong khi đó, máy tính hiện đại có đến hàng Gbytes bộ nhớ và chạy ở xung nhịp một vài Ghz. Vi điều khiển có hai loại bộ nhớ: Bộ nhớ chỉ đọc (ROM) và bộ nhớ truy cập ngẫu nhiên (RAM). ROM được sử dụng để lưu trữ mã chương trình còn RAM được sử dụng cho các dữ liệu tạm thời của chương trình phần mềm. Dữ liệu tạm thời bao gồm việc lưu trữ các biến chương trình và bộ nhớ đệm để xử lý lưu lượng vô tuyến. Nội dung của ROM được ghi vào thiết bị khi nó được sản xuất và thường không bị thay đổi sau khi nút đã được triển khai. Tuy nhiên, vi điều khiển hiện đại cung cấp một cơ chế để ghi lại ROM, mà nó rất có ích để cập nhật phần mềm sau khi các nút đã được triển khai. Ngoài bộ nhớ thì bộ vi điều khiển còn có bộ định thời và cơ chế tương tác với các thiết bị bên ngoài như thiết bị truyền thông, cảm biến. Các bộ bộ định thời có thể được sử dụng bởi các phần mềm chạy trên vi điều khiển. Các thiết bị bên ngoài được kết nối vật lý với các chân của vi điều khiển. Các phần mềm giao tiếp với các thiết bị sử dụng các cơ chế được cung cấp bởi vi điều khiển, thông thường ở dạng một cổng nối tiếp hoặc các Bus nối tiếp. Hầu hết các bộ vi điều khiển cung cấp bộ thu phát đồng bộ/không đồng bộ chung (USART) để giao tiếp với các cổng 5 nối tiếp. Một số USART có thể được cấu hình để làm việc như một giao diện bus ngoại vi nối tiếp (SPI) để giao tiếp với cảm biến. Ngày nay, Pin là nguồn năng lượng phổ biến nhất cho các đối tượng thông minh. Chúng có nhiều hình dạng và kiểu dáng. Các Pin Lithium hiện nay là phổ biến nhất. Với việc quản lý năng lượng thích hợp, một đối tượng thông minh có thể có tuổi đời hàng năm trên tiêu chuẩn tế bào pin lithium. Mọi hoạt động của một đối tượng thông minh được xác định bởi phần mềm chạy trên bộ vi điều khiển. Các phần mềm thường được viết tương tự như phần mềm cho các máy tính. Các chương trình được viết bằng một ngôn ngữ lập trình, chẳng hạn như C, và được biên dịch với một trình biên dịch mã máy cho vi điều khiển. Các mã máy được ghi vào ROM của vi điều khiển. Khi được bật nguồn, thì bộ vi điều khiển sẽ chạy các phần mềm. Quá trình này được minh họa trong hình 1.2. Mặc dù hoàn toàn có thể chạy chương trình cho vi điều khiển mà không cần sử dụng một hệ điều hành nào, nhưng hầu hết các đối tượng thông minh sử dụng hệ điều hành. Bởi vì các hạn chế về tài nguyên nên các hệ điều hành cho chúng rất khác với các hệ điều hành cho máy tính. Các hệ điều hành cho các đối tượng thông minh nhỏ gọn hơn nhiều và tiêu tốn ít tài nguyên. Hình 1.2: Quá trình phát triển phần mềm cho đối tượng thông minh. Mã nguồn được được biên dịch thành mã máy mà được ghi vào ROM trong bộ vi điều khiển. 6 1.2. Hệ điều hành nhúng cho các đối tượng thông minh 1.2.1. Chức năng của hệ điều hành Một mạng các đối tượng thông minh điển hình bao gồm một số lượng lớn các nút với kích thước nhỏ, nguồn năng lượng pin hạn chế, một bộ xử lý, và khả năng truyền thông. Mặc dù phần cứng của các đối tượng thông minh đơn giản nhưng các ứng dụng mạng của các đối tượng thông minh bao gồm nhiều ứng dụng khác nhau và theo nhu cầu. Việc hỗ trợ cơ sở hạ tầng cho các ứng dụng trên hệ điều hành ngày càng trở nên quan trọng. Bản chất, hệ điều hành là cầu nối giữa phần cứng đơn giản với phần ứng dụng phức tạp. Các chức năng cơ bản của hệ điều hành bao gồm việc trừu tượng hóa tài nguyên cho các thiết bị phần cứng khác nhau, quản lý ngắt và lập lịch các nhiệm vụ, điều khiển đồng thời, và hỗ trợ mạng. Dựa trên các dịch vụ được cung cấp bởi hệ điều hành, những người lập trình ứng dụng có thể thuận tiện sử dụng các giao diện lập trình ứng dụng mức cao (APIs) độc lập với phần cứng lớp dưới. Bởi vì hầu hết các thiết bị có tài nguyên hạn chế do vậy một hệ điều hành không nên chỉ cung cấp các dịch vụ đa dạng để thuận lợi cho việc lập trình các ứng dụng mà còn tận dụng tài nguyên một cách tối ưu. 1.2.2. Những thách thức ảnh hưởng đến việc thiết kế hệ điều hành Hiện tại, việc nghiên cứu và phát triển hệ điều hành cho các đối tượng thông minh đang gặp phải một số thách thức cần phải giải quyết. Những thách thức chính là các ràng buộc về tài nguyên của phần cứng và các yêu cầu của ứng dụng. Những thách thức chính ảnh hưởng đến việc thiết kế hệ điều hành được quan tâm nhất đó là: • Kích thước nhỏ: Với bộ nhớ bị giới hạn chỉ vài KB nên đòi hỏi hệ điều hành phải được thiết kế với kích thước rất nhỏ. Đây là đặc điểm cơ bản của hệ điều hành cho các đối tượng thông minh và đó cũng là lý do chính mà tại sao nhiều hệ điều hành nhúng tinh vi (như uC/OS, VxWorks) không thể dễ dàng cài đặt được trên các thiết bị này. • Hiệu quả năng lượng: Các đối tượng thông minh thường hoạt động bằng pin do vậy vấn đề năng lượng cũng cần phải quan tâm. • Đảm bảo thời gian thực: Nhiều ứng dụng của các đối tượng thông minh ví dụ như là ứng dụng giám sát thường có khuynh hướng nhạy cảm với thời 7 gian. Với các ứng dụng đó, các gói tin cần được chuyển tiếp và gửi đi một cách kịp thời, vấn đề đảm bảo thời gian thực là yêu cầu để đáp ứng cho các ứng dụng đó. • Khả năng cấu hình lại: Là điều cần thiết với các hệ thống mạng tài nguyên hạn chế có thể được lập trình lại sau khi mạng được triển khai. Khả năng cấu hình lại hệ thống là một đặc điểm cần thiết của hệ điều hành làm cho mạng có thể lập trình lại dễ dàng và hiệu quả. • Sự tiện lợi cho lập trình: Các ứng dụng của mạng các đối tượng thông minh là khác nhau và tùy theo yêu cầu. Do vậy, sự tiện lợi cho lập trình là một điều quan trọng nhất để rút ngắn thời gian triển khai các ứng dụng. Thường thì rất khó để đạt được sự tối ưu trong tất cả các vấn đề nêu ra ở trên. Hầu hết các giải pháp hiện tại được áp dụng cho các kịch bản ứng dụng cụ thể và tạo ra những thỏa hiệp nhằm giải quyết các thách thức thiết kế ở trên. 1.2.3. Các thành phần cơ bản của một hệ điều hành Các thành phần chính cấu thành nên hệ điều hành cho các đối tượng thông minh được liệt kê dưới đây: • Lập lịch nhiệm vụ: Thành phần lập lịch nhiệm vụ cung cấp cho người lập trình ứng dụng môi trường nhiệm vụ cho việc thực thi đoạn mã ứng dụng. Hiện tại, có ba cơ chế lập lịch nhiệm vụ là: Lập lịch nhiệm vụ điều khiển theo sự kiện (event-driven), lập lịch nhiệm vụ đa luồng (multi-threaded) và lập lịch nhiệm vụ Prototheads. • Nạp và liên kết động: Thành phần nạp và liên kết động cho phép các phần ứng dụng được nạp hoàn toàn động và cải thiện khả năng tự cấu hình hệ điều hành khi lập trình lại mạng. Khi phần ứng dụng được nạp, trình liên kết và nạp định vị không gian nhớ cho phần mã và dữ liệu của ứng dụng, liên kết các ký hiệu tới các địa chỉ vật lý của chúng, và sao chép phần được liên kết tới không gian bộ nhớ dành riêng. Cơ chế này rất hữu ích khi lập trình lại một ứng dụng trên các nút mạng: Không phải truyền bá cả một khối hình ảnh nhân ứng dụng, mà nó chỉ yêu cầu truyền bá phần ứng dụng phổ biến nhỏ hơn nhiều do vậy hiệu quả hơn về năng lượng. • Quản lý bộ nhớ: Bộ nhớ trong các thiết bị có thể được phân loại gồm: RAM (cho việc lưu trữ dữ liệu nhanh), bộ nhớ trong (cho việc lưu trữ mã), EEPROM (cho lưu trữ dữ liệu), và bộ nhớ ngoài (cho việc lưu trữ dữ liệu). 8 Ví dụ như, với MicaZ có 4KB RAM, 128KB bộ nhớ trong, 4KB EEPROM, và 512KB bộ nhớ ngoài. Bộ nhớ RAM là quan trọng cho việc truy nhập dữ liệu nhanh trong khi bộ nhớ bên ngoài là quan trọng cho lưu trữ dữ liệu. Việc quản lý bộ nhớ RAM cũng có thể là tĩnh hoặc động. Việc quản lý bộ nhớ ngoài có thể cung cấp sự trừu tượng mức cao chẳng hạn như tệp (ví dụ với hệ điều hành LiteOS) hoặc những trừu tượng mức thấp như khối (ví dụ với hệ điều hành TinyOS). • Trừu tượng hóa tài nguyên: Thành phần trừu tượng hóa tài nguyên cung cấp giao tiếp truy nhập mức cao và an toàn với các thiết bị phần cứng. Ví dụ như, trừu tượng hóa tài nguyên trong TinyOS được phân loại thành những trừu tượng hóa tài nguyên dành riêng, những trừu tượng hóa tài nguyên ảo, và những trừu tượng hóa tài nguyên chia sẻ. Tài nguyên dành riêng hỗ trợ cho một người dùng duy nhất. Tài nguyên ảo hỗ trợ nhiều người dùng bằng việc duy trì hàng đợi và lập lịch cho nhiều yêu cầu đồng thời theo kiểu tuần tự. Tài nguyên chia sẻ cũng hỗ trợ nhiều người dùng, nhưng các người dùng phải cạnh tranh các trình điều khiển thông qua một khóa. • Các giao diện cảm biến: Các giao diện cảm biến cung cấp cho người lập trình ứng dụng cách thức truy cập để đọc dữ liệu cảm biến một cách dễ dàng và theo dạng chuẩn. Những mô tả chi tiết mức thấp được gắn với những cấu hình cảm biến cũng được trừu tượng hóa với những người lập trình ứng dụng. • Ngăn xếp mạng: Ngăn xếp mạng thuận tiện cho việc phát triển các ứng dụng WSN phân tán. Nó cũng cần thiết cho việc duy trì hệ thống từ xa sau khi WSN được triển khai. Ngăn xếp mạng cho hệ điều hành nên hỗ trợ các dịch vụ mức cao chẳng hạn như việc thu thập và truyền dữ liệu. Nó cũng quản lý các chi tiết mức thấp như cấu hình chip thu phát vô tuyến, điều khiển truy nhập đường truyền (MAC), và quản lý hàng đợi. 1.2.4. Khảo sát một số hệ điều hành Mục này của báo cáo sẽ mô tả các hệ điều hành tiên tiến hiện nay. Cần phải chú ý rằng, hầu hết các hệ điều hành vẫn đang được phát triển, do vậy mục này chỉ mô tả những đặc điểm chính trong các phiên bản hiện tại của các hệ điều hành này. 1.2.4.1. TinyOS 9 Hệ điều hành TinyOS được phát triển ở UC Berkeley, có lẽ là hệ điều hành nhúng cho các đối tượng thông minh sớm nhất. Nó cho phép một kiến trúc mềm dẻo và tiêu thụ tài nguyên thấp, việc lập trình trên TinyOS dựa trên các thành phần được kết nối với nhau để tạo một ứng dụng ở thời điểm thiết kế. Những tương tác giữa các thành phần xảy ra theo hai chiều, tức là một thành phần sử dụng lệnh được cung cấp bởi một thành phần khác; ngoài ra, một thành phần có thể báo hiệu các sự kiện tới một thành phần khác. Mô hình thực thi của TinyOS bao gồm các ngắt (interrupt) và các nhiệm vụ (task). Các ngắt được thực thi ở mức ưu tiên cao hơn và có thể được ưu tiên thực thi trước các nhiệm vụ. Các nhiệm vụ được thực thi ở mức ưu tiên thấp hơn và được lập lịch theo kiểu vào trước ra trước FIFO (First In First Out). Các nhiệm vụ trong TinyOS được viết theo kiểu run-to- completion (chạy đến khi hoàn thành), và chúng không thể giành được quyền ưu tiên trước (preempt) hoặc tạm ngưng (suspend). Vì lý do này, việc xuất nhập (I/Os) được chia thành các giai đoạn. Tức là một yêu cầu (request) được thực hiện vào lúc kết thúc một nhiệm vụ trong khi tín hiệu (signal) gọi đến sự bắt đầu của nhiệm vụ tiếp theo. Để hỗ trợ tốt hơn cho kiến trúc thành phần và mô hình thực thi của TinyOS thì ngôn ngữ nesC được thiết kế cho việc lập trình dựa trên TinyOS. Phiên bản 2 của TinyOS (T2) cải tiến sa với phiên bản 1 ở một số mặt. T2 cũng cấp sự trừa tượng lồng nhau, nó là sự lai ghép sự phân chia theo phương ngang (cho mức thấp hơn để hỗ trợ nhiều loại thiết bị phần cứng khác nhau), và sự phân chia theo phương đứng (cho mức cao hơn để hỗ trợ chức năng nền tảng phần cứng độc lập), và làm cho nó dễ dàng hỗ trợ các nền tảng phần cứng mới. Bên cạnh những cải tiến kiến trúc, có một số cải tiến quan trọng trong sự thực thi, bao gồm hỗ trợ cả luồng (ví dụ TinyThreads, và TOSThreads trong TinyOS phiên bản 2.1), hỗ trợ bảo vệ bộ nhớ. Hơn nữa, T2 cung cấp dịch vụ phân tán và cung cấp một nhóm các thành phần (ví dụ các dịch vụ) để cải thiện độ tin cậy của hệ thống. Bên cạnh những cải tiến kiến trúc, có một số cải tiến quan trọng trong sự thực thi, bao gồm hỗ trợ cả luồng (ví dụ TinyThreads, và TOSThreads trong TinyOS phiên bản 2.1), hỗ trợ bảo vệ bộ nhớ. 1.2.4.2. Contiki Các thành phần trong TinyOS được kết nối hoàn toàn tĩnh để tạo một ứng dụng hay một nhân đơn duy nhất. Cách tiếp cận này có thể tối ưu việc tiêu thụ tài 10 [...]... Chương 2 HỆ ĐIỀU HÀNH CONTIKI 2.1 Giới thiệu về hệ điều hành Contiki Hệ điều hành Contiki là hệ điều hành mã nguồn mở, được nghiên cứu, thiết kế và phát triển bởi một nhóm các nhà phát triển từ viện khoa học máy tính Thụy Điển, người đứng đầu là Adam Dunkels Nhóm phát triển Contiki gồm nhiều thành viên đến từ SICS, CISCO, cùng nhiều tổ chức và các trường đại học khác trên thế giới Hệ điều hành Contiki. .. dịch vụ Một ứng dụng không quan tâm đến cài đặt của một dịch vụ Hình 2.2 minh họa kiến trúc phân lớp của hệ điều hành Contiki Hình 2.2: Kiến trúc hệ điều hành Contiki 2.4 Ngăn xếp truyền thông trong hệ điều hành Contiki Contiki cơ bản gồm 2 stack truyền thông là uIP với TCP/UDP, IPV4, IPV6 giúp hệ điều hành truyền thông qua mạng Internet và Rime được thiết kế cho những liên kết không dây năng lượng thấp,... Virtual Battery và hệ thống gỡ rối từ xa (Declarative Tracepoints) 12 1.2.5 Tiêu chí phân loại hệ điều hành Mục này trình bày sự phân loại các hệ điều hành dựa trên việc khảo sát một số đặc điểm hệ điều hành quan trọng • Tĩnh hay động: Trong các hệ thống tĩnh (ví dụ như TinyOS, Nano-PR), người lập trình ứng dụng phải định vị tất cả các tài nguyên ở thời điểm thiết kế Mặt khác, trong các hệ thống động (ví... cho Contiki. Thư mục này cũng chứa các công cụ cho các nền tảng phần cứng cụ thể Ví dụ điển hình là các công cụ cho nút cảm biến Tmote Sky của Sentilla 2.3 Kiến trúc phân lớp hệ điều hành Contiki Hệ điều hành Contiki theo kiểu kiến trúc module Tại mức hạt nhân nó theo mô hình điều khiển hướng sự kiện (event-driven), nhưng lại cung cấp các phương tiện tùy chọn luồng tới các tiến trình riêng lẻ Nhân Contiki. .. mức ưu tiên của người lập trình và quản lý ưu tiên động của hạt nhân hệ điều hành 14 • Hỗ trợ ngôn ngữ: Hầu hết các hệ điều hành sử dụng ngôn ngữ C cho cả việc phát triển hệ điều hành và phát triển ứng dụng (ví dụ như Contiki, SOS, Mantis, RETOS) Bởi vì ngôn ngữ C là hiệu quả, thuận tiện và là ngôn ngữ chính cho việc phát triển các hệ thống nhúng Tuy nhiên, ngôn ngữ C cũng có một số điểm hạn chế: Một... khi đến đích Có một điều chú ý rằng một số giao thức mạng lớp cao hơn được thực thi trên lớp AM này, bao gồm cả các giao thức truyền tin trong mạng và các giao thức thu thập Một số hệ điều hành mạng hỗ trợ trực tiếp mạng multi-hop Ví dụ như Contiki, Nano-RK, RETOS Contiki chứa hai ngăn xếp truyền thông là uIP và Rime uIP là ngăn xếp TCP/IP tương thích với RFC, giúp cho hệ điều hành Contiki có thể truyền... giống như Unix truyền thống chẳng hạn như cp, mv • Hỗ trợ thời gian thực: Việc hỗ trợ thời gian thực cho các hệ điều hành có thể xảy ra ở cấp độ nút ở đó hệ điều hành nên thực hiện việc lập lịch các nhiệm vụ ưu tiên để đảm bảo việc hỗ trợ thời gian thực hiệu quả của một nút Nano-RK là một hệ điều hành thời gian thực hỗ trợ quyền ưu tiên và kịp thời thông qua việc phân tích việc lập lịch off-line RETOS... phát triển hệ điều hành Contiki Contiki hỗ trợ các thành phần có thể nạp tự động Để giải quyết những khó khăn trong kiểu lập trình dựa trên sự kiện (ví dụ trong TinyOS), Contiki hỗ trợ hoạt động đa luồng (tức là sự chuyển đổi tình huống ở những thời điểm được xác định bởi người dùng) thông qua các thư viện người dùng Contiki cũng hỗ trợ cơ chế luồng nhỏ protothreads Phiên bản mới nhất của Contiki thực... cảm biến vô hướng Vì vậy, các hệ điều hành cần phải chứa nhiều ứng dụng cùng một lúc 1.2.6.5 Hỗ trợ ngăn xếp giao thức truyền thông Nhiều hệ điều hành cho các đối tượng thông minh cung cấp một giao diện lập trình ứng dụng API truyền thông để cho phép các ứng dụng gửi và nhận dữ liệu Mặt khác, nhưng API này sử dụng ngăn xếp giao thức truyền thông được cung cấp bởi hệ điều hành Không có thỏa thuận về một... được thiết kế cho các vi điều khiển có bộ nhớ nhỏ, với thông số 2KB RAM và 40KB ROM Nhờ đó, Contiki được sử dụng cho các hệ thống nhúng và các ứng dụng trong mạng các đối tượng thông minh Contiki bắt đầu được nghiên cứu từ năm 2001 và phát hành phiên bản đầu tiên Contiki 1.0 năm 2003 Hình 2.1 cho thấy lịch sử phát triển của Contiki trong những năm qua Phiên bản hiện nay của Contiki là 2.5, với nhiều . QUAN VỀ HỆ ĐIỀU HÀNH CHO MẠNG CÁC ĐỐI TƯỢNG THÔNG MINH 4 Chương 2. HỆ ĐIỀU HÀNH CONTIKI 19 Chương 3. CÁC MODULE TRONG HỆ ĐIỀU HÀNH CONTIKI 37 Chương 4. XÂY DỰNG CHƯƠNG TRÌNH 38 ỨNG DỤNG VỚI CONTIKI. trình ứng dụng. 18 Chương 2. HỆ ĐIỀU HÀNH CONTIKI 2.1. Giới thiệu về hệ điều hành Contiki Hệ điều hành Contiki là hệ điều hành mã nguồn mở, được nghiên cứu, thiết kế và phát triển bởi một nhóm. trình cho vi điều khiển mà không cần sử dụng một hệ điều hành nào, nhưng hầu hết các đối tượng thông minh sử dụng hệ điều hành. Bởi vì các hạn chế về tài nguyên nên các hệ điều hành cho chúng

Ngày đăng: 24/08/2015, 07:58

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • MỤC LỤC

  • Chương 1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH CHO MẠNG CÁC ĐỐI TƯỢNG THÔNG MINH

    • 1.1. Giới thiệu về các đối tượng thông minh

    • 1.2. Hệ điều hành nhúng cho các đối tượng thông minh

      • 1.2.1. Chức năng của hệ điều hành

      • 1.2.2. Những thách thức ảnh hưởng đến việc thiết kế hệ điều hành

      • 1.2.3. Các thành phần cơ bản của một hệ điều hành

      • 1.2.4. Khảo sát một số hệ điều hành

      • 1.2.5. Tiêu chí phân loại hệ điều hành

      • 1.2.6. Một số vấn đề cần tiếp tục nghiên cứu

      • Chương 2. HỆ ĐIỀU HÀNH CONTIKI

        • 2.1. Giới thiệu về hệ điều hành Contiki

        • 2.2. Cấu trúc hệ điều hành Contiki

        • 2.3. Kiến trúc phân lớp hệ điều hành Contiki

        • 2.4. Ngăn xếp truyền thông trong hệ điều hành Contiki

          • 2.4.1. Ngăn xếp uIP

          • 2.4.2. Ngăn xếp RIME

          • 2.5. Kỹ thuật lập trình trên hệ điều hành Contiki

            • 2.5.1. Lập trình Event-driven

            • 2.5.2. Lập trình Multi-threaded

            • 2.5.3. Lập trình Prothreads

            • 2.5.4. So sánh ba mô hình lập trình trong Contiki

Tài liệu cùng người dùng

Tài liệu liên quan