« Home « Kết quả tìm kiếm

Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng


Tóm tắt Xem thử

- LUẬN VĂN THẠC SỸ KHOA HỌC NGHIÊN CỨU KỸ THUẬT XÂY DỰNG PHẦN MỀM CHỊU LỖI ÁP DỤNG CHO HỆ THỐNG NHÚNG NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ.
- ĐÀO NGỌC KIÊN Người hướng dẫn khoa học: PGS.TS HUỲNH QUYẾT THẮNG HÀ NỘI 2009 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 2 LỜI CAM ĐOAN Tôi – Đào Ngọc Kiên, học viên lớp Cao học CNTT 2006-2008 Trường Đại học Bách Khoa Hà Nội – cam kết Luận văn tốt nghiệp là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS.TS.
- Hà Nội, ngày 30, tháng 10, năm 2009 Học viên: Đào Ngọc Kiên Lớp : Cao Học CNTT 06-08 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 3 LỜI CẢM ƠN Tôi xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, PGS.TS.
- Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 4 MỤC LỤC LỜI CAM ĐOAN.
- 13 CHƯƠNG 1 - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM CHỊU LỖI.
- 14 1.1 Độ tin cậy phần mềm.
- Tư tưởng “Dự phòng” trong xây dựng phần mềm chịu lỗi.
- 19 1.2.1 Dự phòng phần mềm.
- Các hướng tiếp cận trong kỹ thuật xây dựng phần mềm chịu lỗi.
- 29 CHƯƠNG 2 – TỔNG QUAN VỀ HỆ THỐNG NHÚNG THỜI GIAN THỰC.
- 42 2.6 Khác biệt giữa hệ thống nhúng thời gian thực so với hệ thống nói chung.
- Các lỗi thường gặp trong hệ thống nhúng.
- 45 CHƯƠNG 3 – KỸ THUẬT XÂY DỰNG PHẦN MỀM CHỊU LỖI ÁP DỤNG CHO HỆ THỐNG NHÚNG.
- 47 3.1 Ý tưởng ban đầu trong xây dựng phần mềm chịu lỗi cho hệ thống nhúng.
- 47 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 5 3.2 Lỗi trong hệ thống nhúng và cơ chế xử lý.
- 51 3.3 Mô hình chịu lỗi cho hệ thống nhúng đơn nút.
- 51 3.3.1 Mô hình hệ thống chịu lỗi ở mức task.
- 52 3.3.2 Mô hình hệ thống chịu lỗi ở mức ứng dụng.
- 54 3.4 Kiến trúc chịu lỗi cho hệ thống nhúng đơn nút.
- 59 3.4.4 Luồng xử lý của các thành phần chịu lỗi.
- 62 3.5 Mô hình chịu lỗi dự phòng cho hệ thống nhúng đa nút.
- 63 3.5.1 Mô hình chịu lỗi dự phòng.
- 64 3.5.3 Lựa chọn loại hình dự phòng áp dụng cho hệ thống nhúng.
- 65 3.6 Kiến trúc chịu lỗi dự phòng cho hệ thống nhúng đa nút.
- 66 3.6.1 Kiến trúc phần mềm chịu lỗi trên một nút.
- 67 3.6.2 Kiến trúc phần mềm chịu lỗi trên nhiều nút.
- 69 3.6.5 Tương tác cơ bản giữa các thành phần chịu lỗi.
- 77 4.1 Thử nghiệm ứng dụng áp dụng mô hình chịu lỗi.
- 78 4.2 Thử nghiệm độ tin cậy của hệ thống.
- 97 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 6 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Kỹ thuật nâng cao độ tin cậy phần mềm trong các pha phát triển.
- 41 Hình 3.1 Giản đồ trạng thái của task chịu lỗi.
- 52 Hình 3.2 Mô hình task chịu lỗi.
- 54 Hình 3.4 Kiến trúc chịu lỗi cho hệ thống nhúng đơn nút.
- 58 Hình 3.7 Tương tác cơ bản giữa các thành phần chịu lỗi.
- 59 Hình 3.8 Tương tác cơ bản giữa các thành phần chịu lỗi.
- 60 Hình 3.9 Luồng xử lý của các thành phần chịu lỗi.
- 64 Hình 3.12 Kiến trúc phần mềm chịu lỗi trên một nút.
- 67 Hình 3.13 Kiến trúc phần mềm chịu lỗi trên nhiều nút.
- 68 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 7 Hình 3.14 Bộ quản lý dự phòng FTRedundancy.
- 70 Hình 3.16 Tương tác cơ bản giữa các thành phần chịu lỗi.
- 72 Hình 3.18 Cơ chế hoạt động trong kiến trúc chịu lỗi dự phòng.
- 73 Hình 4.1 Các thành phần trong ứng dụng chịu lỗi mô phỏng.
- 79 Hình 4.2 Các task trong ứng dụng chịu lỗi mô phỏng.
- 80 Hình 4.3 Mô hình ứng dụng chịu lỗi với hai chế độ.
- 81 Hình 4.4 Quá trình chuyển đổi chế độ chịu lỗi khi có lỗi.
- 82 Hình 4.5 Giao diện cấu hình hệ thống.
- 89 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 8 DANH MỤC CÁC BẢNG Bảng 1.1 Các khái niệm liên quan đến độ tin cậy phần mềm.
- 54 Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 9 DANH MỤC CÁC TỪ VIẾT TẮT 1BSTT 0BTừ viết tắt 2BGiải nghĩa 1.
- FTAppli Fault tolerant application Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 10 MỞ ĐẦU 1.
- Tính cấp thiết của đề tài Hệ thống nhúng được sử dụng rộng rãi trong nhiều lĩnh vực, chẳng hạn như điều khiển điện tử, tự động hóa nhà, văn phòng, và công nghiệp ô tô.
- Mặc dù không tồn tại một định nghĩa chính xác về thuật ngữ nhưng nói chung hệ thống nhúng được xem là một hệ thống phần cứng, phần mềm thực hiện một chức năng cụ thể, thường là một phần của một hệ thống lớn hơn.
- Ngoài ra hệ thống nhúng được thiết kế để thực hiện một chức năng cụ thể được xác định trước, trái với mục đích chung chung của hệ thống máy tính bình thường (mainframe, máy tính để bàn, máy tính xách tay, vv…) Hầu hết các hệ thống nhúng thời gian thực phải thỏa mãn các ràng buộc thời gian.
- Một số hệ thống nhúng có yêu cầu về độ tin cậy, tính sẵn sàng và sự an toàn cao bởi một hỏng hóc của hệ thống có thể sẽ gây nguy hiểm cho tính mạng con người hoặc làm tổn hại đến hoạt động chung của toàn hệ thống.
- Những hệ thống này được phân loại thành hệ thống an toàn cao (safety-critical) hoặc hệ thống quan trọng (mission-critical).
- Ví dụ về những hệ thống critical system là các hệ thống trong công nghiệp ô tô, điện tử hàng không, điều khiển quân sự hay không gian vũ trụ.
- Các hệ thống critical có độ tin cậy cao hơn nhiều so với các hệ thống thương mại thông thường.
- Yêu cầu tương tự như vậy cũng được áp dụng trong hệ thống điều khiển đường sắt.
- Ngoài ra hệ thống điều khiển vệ tinh không gian lại càng yêu cầu độ tin cậy cao hơn nữa bởi hầu hết các hệ thống này phải hoạt động trong điều kiện không có quá trình bảo dưỡng nào cả.
- Vì hệ thống nhúng critical được kết hợp bởi phần cứng và phần mềm nên một nhu cầu rất cấp thiết là giảm thiểu hỏng hóc liên quan đến cả hai lĩnh vực đó.
- Mặc dù độ tin cậy của phần cứng đang ngày càng phát triển tuy nhiên các lỗi nhất thời vẫn có thể xảy ra, đặc biệt trong các môi trường năng lượng cao hay có bức xạ lớn chẳng hạn như các hệ thống không gian.
- Về lỗi phần mềm, sự gia tăng không ngừng các chức năng của hệ thống đang làm tăng lên độ phức tạp của phần mềm và đây thường là nguyên nhân chính gây ra lỗi trong phần mềm.
- Bất chấp nhiều nỗ lực được áp dụng ở nhiều pha phát triển bao gồm cả pha test, nhiều lỗi phần mềm vẫn Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 11 tồn tại không đoán trước được và không tìm ra được.
- Do vậy kỹ thuật chịu lỗi được đưa ra áp dụng để có thể duy trì hoạt động hệ thống cho dù có lỗi xảy ra ở phần cứng hay phần mềm.
- Trong nhiều hệ thống chịu lỗi người phát triển phải giải quyết cả các vấn đề logic của ứng dụng và vấn đề chịu lỗi.
- Điều này khiến hệ thống chịu lỗi tốn nhiều chi phí và gặp nhiều khó khăn trong phát triển và bảo trì.
- Những hoạt động này thay đổi thời gian ứng xử của ứng dụng và có thể vi phạm các ràng buộc chặt chẽ về thời gian thực của hệ thống.
- Ngoài ra việc áp dụng các kỹ thuật chịu lỗi có thể gây ảnh hưởng đến tài nguyên của hệ thống chẳng hạn như năng lượng điện tiêu thụ, kích thước bộ nhớ, kích thước vật lý.
- Mục đích nghiên cứu Mục đích của luận văn là nghiên cứu tìm hiểu các phương pháp kỹ thuật nhằm cung cấp khả năng chịu lỗi cho hệ thống nhúng thời gian thực.
- Trước tiên tư tưởng và các kỹ thuật chịu lỗi nói chung sẽ được đào sâu nghiên cứu tìm hiểu.
- Tiếp theo, vì mục tiêu là áp dụng cho hệ thống nhúng nên luận văn cũng tìm hiểu về các cơ chế hoạt động trong hệ điều hành nhúng thời gian.
- Luận văn sẽ phân tích và đưa ra một mô hình phần mềm chịu lỗi áp dụng cho hệ thống nhúng dựa trên kỹ thuật chịu lỗi nghiên cứu.
- Mô hình này cần được thiết kế chịu lỗi với lưu ý về ràng buộc thời gian và tài nguyên của hệ thống nhúng thời gian thực.
- Mặt khác cần thiết kế mô hình sao cho việc chịu lỗi phải trong suốt với người dùng để quá trình phát triển và bảo trì hệ thống không quá khó khăn.
- Ngoài ra cũng cần thử nghiệm Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 12 đánh giá độ tin cậy của hệ thống khi áp dụng các kỹ thuật chịu lỗi.
- Đề xuất và áp dụng kỹ thuật chịu lỗi vào xây dựng một mô hình chịu lỗi áp dụng cho hệ thống nhúng thời gian thực.
- Phạm vi nghiên cứu Phạm vi nghiên cứu nằm trong vấn đề nâng cao độ tin cậy của hệ thống phần mềm, cụ thể là kỹ thuật chịu lỗi cho hệ thống nhúng thời gian thực.
- Đây là một vấn đề rộng lớn bởi bản thân hệ thống nhúng thời gian thực là lĩnh vực khá phức tạp đòi hỏi nhiều kiến thức sâu rộng.
- Ngoài ra các kỹ thuật chịu lỗi cho phần mềm còn là lĩnh vực khá mới mẻ ở Việt Nam.
- Chính vì vậy mục tiêu của luận văn là đặt phạm vi nghiên cứu ở mức tìm hiểu và đưa ra những kiến thức nền tảng cho việc áp dụng kỹ thuật chịu lỗi vào hệ thống nhúng thời gian thực chứ chưa đưa ra được đầy đủ toàn diện được tất cả các vấn đề, giải pháp liên quan.
- Chương 1: Tổng quan về xây dựng phần mềm chịu lỗi.
- Chương 2: Tổng quan về hệ thống nhúng thời gian thực.
- Chương này trình bày về các cơ chế hoạt động trong hệ thống nhúng thời gian thực, cụ thể là hệ điều hành thời gian thực RTOS.
- Chẳng hạn như về mô hình các task, cơ chế ngắt, cơ chế lập lịch và truyền thông giữa các task… Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 13 • Chương 3: Kỹ thuật và mô hình phần mềm chịu lỗi áp dụng cho hệ thống nhúng.
- Ngoài ra một ứng dụng thử nghiệm khác được xây dựng để đánh giá độ tin cậy của hệ thống trong đó liên hệ với số phiên bản trong kỹ thuật chịu lỗi.
- Phương pháp nghiên cứu Phương pháp nghiên cứu là tìm hiểu rộng tất cả các nghiên cứu đã có trên thế giới về việc áp dụng kỹ thuật chịu lỗi vào hệ thống nhúng thời gian thực.
- Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 14 CHƯƠNG 1 - TỔNG QUAN VỀ XÂY DỰNG PHẦN MỀM CHỊU LỖI 1.1 Độ tin cậy phần mềm Độ tin cậy là một thuộc tính có thể đánh giá một cách định lượng.
- Độ tin cậy của hệ thống là xác suất mà dịch vụ của hệ thống được cung cấp một cách chính xác như đặc tả.
- Khái niệm độ tin cậy ở đây đã xem xét cả khía cạnh môi trường và mục đích sử dụng của hệ thống.
- Chúng ta không thể giả định rằng độ tin cậy của một hệ thống coi là bằng nhau ở các môi trường khác nhau với những mục đích sử dụng khác nhau.
- Một ví dụ minh hoạ là độ tin cậy của phần mềm gõ văn bản được sử dụng trong môi trường văn phòng, nơi mà người dùng không quan tâm đến hoạt động của phần mềm như thế nào (họ chỉ tập trung làm theo hướng dẫn để đạt được hiệu quả công việc) cao hơn rất nhiều so với khi sử dụng phần mềm này trong môi trường đại học – nơi mà các sinh viên có thể tìm hiểu ra các giới hạn biên của phần mềm và sử dụng hệ thống một cách không mong đợi nhằm tìm ra lỗi.
- Độ tin cậy bị ảnh hưởng bởi các hỏng hóc hệ thống.
- Một vài hỏng hóc là kết quả của lỗi đặc tả hoặc do các hỏng hóc xảy ra ở các hệ thống liên kết.
- Tuy nhiên, đa số các hỏng hóc là hậu quả của hành động lỗi hệ thống, được gây ra bởi các sai sót trong hệ thống.
- Do đó có bốn kỹ thuật thông dụng sau được áp dụng để xây dựng phần mềm có độ tin cậy cao [19]: 1.
- Kỹ thuật tránh lỗi Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 15 2.
- Nó tiến hành tìm kiếm các lỗi vẫn còn tồn tại thông qua các biện pháp kiểm tra, kiểm soát rồi sau đó tìm cách loại bỏ chúng ra khỏi hệ thống.
- Kỹ thuật chịu lỗi Kỹ thuật này đảm bảo rằng các sai sót trong hệ thống không gây ra lỗi hệ thống hay đảm bảo rằng các lỗi hệ thống không gây ra những hỏng hóc hệ thống.
- Sự kết hợp các kỹ thuật tự kiểm tra trong hệ thống và việc sử dụng các module dư thừa là những ví dụ của kỹ thuật chịu lỗi.
- Nghiên cứu kỹ thuật xây dựng phần mềm chịu lỗi áp dụng cho hệ thống nhúng Đào Ngọc Kiên - Lớp Cao Học CNTT 06-08 – ĐH Bách Khoa Hà Nội 16 Hình 1.1 Kỹ thuật nâng cao độ tin cậy phần mềm trong các pha phát triển Hình trên mô tả quan hệ giữa bốn phương pháp, giai đoạn thực hiện nhằm đạt được độ tin cậy phần mềm.
- Những lỗi đó cần phải chú ý trong quá trình hoạt động bằng kỹ thuật chịu lỗi

Xem thử không khả dụng, vui lòng xem tại trang nguồn
hoặc xem Tóm tắt