Thị điều chỉnh độtincậy của phần mềm theo thờigian

Một phần của tài liệu Luận văn thạc sĩ UEB nghiên cứu các phương pháp nâng cao độ tin cậy cho hệ thống tính toán qua cấu trúc hệ thống công nghệ thông tin (Trang 59)

Phần mềm đáng tin cậy [11] là một thuộc tính quan trọng của chất lƣợng phần mềm. Phần mềm đáng tin cậy là khó đạt đƣợc bởi vì sự phức tạp của phần mềm có xu hƣớng cao. Trong khi bất kỳ hệ thống nào có độ phức tạp cao thì sẽ bao gồm các phần mềm có độ phức tạp cao và sẽ rất khó để độ tin cậy đạt đƣợc một mức độ nhất định. Sự phát triển hệ thống có xu hƣớng đẩy sự phức tạp vào lớp phần mềm, để tăng trƣởng nhanh chóng kích thƣớc của hệ thống và thuận lợi thì bằng cách nâng cấp các phần mềm là dễ làm nhất.

Độ tin cậy phần mềm [11] cũng là một yếu tố quan trọng ảnh hƣởng đến độ tin cậy của hệ thống. Nó khác với độ tin cậy phần cứng ở chỗ nó phản ánh sự hồn thiện thiết kế, chứ khơng phải là hồn thiện sản xuất. Sự phức tạp cao của phần mềm là yếu tố chính góp phần vào các vấn đề độ tin cậy phần mềm. Độ tin cậy phần mềm là không phải là một hàm của thời gian - mặc dù các nhà nghiên cứu đã đƣa ra hai mơ hình liên quan tới nhau.

Ví dụ: máy bay thế hệ tiếp theo sẽ có lớn hơn một triệu dòng mã nguồn của phần mềm trên máy bay; hệ thống kiểm sốt khơng lƣu thế hệ tiếp theo sẽ có từ một đến hai triệu dịng; trạm vũ trụ quốc tế sắp tới sẽ có hơn hai triệu dịng trên phần mềm hệ thống điều khiển chính và hơn mƣời triệu dịng phần mềm hỗ trợ mặt đất; một số hệ thống phòng thủ lớn quan trọng của các quốc gia sẽ có hơn năm triệu dịng mã nguồn của phần mềm điều khiển.

Trong khi sự phức tạp của phần mềm là tỷ lệ nghịch với độ tin cậy phần mềm, nó có liên quan trực tiếp đến các yếu tố khác quan trọng về chất lƣợng phần mềm, đặc biệt là chức năng, khả năng,… Nếu chú trọng vào các tính năng này sẽ có xu hƣớng làm các phần mềm thêm phức tạp hơn.

2.6.2 Kỹ thuật cải thiện độ tin cậy phần mềm.

- Kiểm thử phần mềm: đƣợc sử dụng nhiều để kích hoạt, xác định vị trí và loại bỏ các khuyết tật phần mềm. Kiểm thử phần mềm vẫn đang trong giai đoạn sơ khai ban đầu, các thử nghiệm đƣợc tạo ra cho phù hợp với nhu cầu cụ thể trong dự án phát triển phần mềm khác nhau [11].

- Sử dụng các cơng cụ phân tích khác nhau nhƣ: phân tích xu hƣớng, phân tích lỗi cây, phân loại trực giao khiếm khuyết và các phƣơng pháp hình thức,… có thể đƣợc sử dụng để giảm thiểu khả năng xảy ra sai sót sau khi phát hành và do đó cải thiện độ tin cậy phần mềm.

- Thu thập và phân tích dữ liệu: sau khi triển khai các sản phẩm phần mềm thì có thể thu thập và phân tích dữ liệu các lĩnh vực để nghiên cứu hành vi của các khiếm khuyết phần mềm. Khả năng chịu lỗi kỹ thuật, dự báo lỗi/thất bại sẽ đƣợc phân tích kỹ thuật và các quy tắc hƣớng dẫn để giảm thiểu sự xuất hiện lỗi hoặc tác động của lỗi trên hệ thống.

- Độ tin cậy phần mềm là một phần của chất lƣợng phần mềm ngồi ra nó cịn liên quan đến nhiều lĩnh vực chất lƣợng phần mềm.

Độ tin cậy truyền thống : nhiệm vụ ban đầu trong nghiên cứu độ tin cậy

phần mềm dựa trên phép suy luận độ tin cậy truyền thống về phần cứng. Nhiều khái niệm và phƣơng pháp phân tích truyền thống đƣợc sử dụng trong việc đánh giá độ tin cậy có thể đƣợc sử dụng để đánh giá và cải thiện độ tin cậy phần mềm. Tuy nhiên, độ tin cậy phần mềm tập trung vào hồn thiện thiết kế chứ khơng phải là sản xuất sản phẩm hồn hảo nhƣ phƣơng pháp phân tích truyền thống độ tin cậy phần cứng [11].

Phần mềm chống chịu lỗi: là khả năng để cho phần mềm phát hiện và

phục hồi từ một lỗi mà đang xảy ra hoặc đã xảy ra một trong hai thành phần: phần mềm hoặc phần cứng trong hệ thống; trong đó các phần mềm đang chạy để cung cấp dịch vụ phù hợp với các đặc điểm kỹ thuật. Phần mềm chống chịu lỗi

53

là một thành phần cần thiết để xây dựng thế hệ tiếp theo của hệ thống máy tính thích ứng cao và đáng tin cậy từ các hệ thống nhúng với các hệ thống kho dữ liệu. Ngoài ra, phần mềm chống chịu lỗi có độ tin cậy cao để xử lý những thất bại một cách khơng rõ ràng và khơng thể đốn trƣớc đƣợc bằng cách cung cấp một tập hợp các modul phần mềm có chức năng tƣơng đƣơng. Phần mềm chống chịu lỗi khơng phải là một giải pháp cho chính nó và khả năng chịu lỗi phần mềm chỉ là một phần cần thiết để tạo ra thế hệ tiếp theo của hệ thống.

Kiểm thử phần mềm: kiểm thử phần mềm đƣợc dùng nhƣ là một cách để

đo lƣờng và cải thiện độ tin cậy phần mềm. Nó đóng một vai trị quan trọng trong giai đoạn thiết kế, xác nhận, thực hiện và giai đoạn phát hành. Nó khơng phải là một lĩnh vực đã phát triển hoàn thiện, nâng cao lĩnh vực này sẽ có tác động lớn đến ngành cơng nghiệp phần mềm.

Phần mềm tham gia vào rất nhiều lĩnh vực của nền sản xuất xã hội nên vấn đề liên quan đến phần mềm và chất lƣợng sản phẩm phần mềm có thể gây ra các vấn đề nghiêm trọng; ví dụ nhƣ phần mềm điều khiển nhà máy điện hạt nhân. Các lỗi trong phần mềm khác biệt rất nhiều so với lỗi trong phần cứng và các thành phần khác của hệ thống; chúng thƣờng có lỗi thiết kế và nhiều lỗi trong phần mềm có liên quan đến các vấn đề đặc tả. Thiệt hại do lỗi gây ra phần mềm ngày càng nhiều và hơn thế nữa là mối quan tâm của xã hội và vấn đề pháp lý.

Một trong những phƣơng pháp truyền thống để nâng cao độ tin cậy phần mềm là phƣơng pháp: N-phiên bản modul dự phịng, phƣơng pháp này rất có hiệu quả khi thực hiện một cách chính xác. Để sử dụng phƣơng pháp này chi phí rất tốn kém và thơng thƣờng chỉ những hệ thống có nhiệm vụ quan trọng nhất sẽ sử dụng N-phiên bản module dự phịng; ví dụ trong ngành cơng nghiệp hàng không vũ trụ.

Ý tƣởng cơ bản của phƣơng pháp N-phiên bản module dự phòng là độ tin cậy hệ cấu trúc các modul song song. Những module hệ thống này có thể hỗ trợ thêm cho tính chính xác của hệ thống xuất phát từ những lỗi tiềm tàng trong giai đoạn thiết kế và đặc điểm kỹ thuật của dự án. Trong một hệ thống phần mềm N- phiên bản, mỗi module đƣợc thực hiện lên đến N thực thi khác nhau. Các

module độc lập thực hiện các nhiệm vụ song song tƣơng tự nhƣ nhau nhƣng kết quả trả về theo một cách khác nhau, mỗi module gửi kết quả thực thi của mình về cho hệ thống (kỳ vọng kết quả tất cả các phiên bản đều nhƣ nhau và chính xác), hệ thống sử dụng một số chƣơng trình bỏ phiếu để xác định kết quả đúng. Nếu hệ thống trên khơng bỏ phiếu có nghĩa là hệ thống dự phịng N-modul chỉ có thể tiếp cận giới hạn lý thuyết độ tin cậy cho một hệ thống song song đáng tin cậy hồn tồn. Hệ thống có thể vƣợt qua những lỗi thiết kế có trong phần mềm bằng cách dựa trên khái niệm thiết kế đa dạng.

Một sự khác biệt quan trọng trong phần mềm N-phiên bản là thực tế hệ thống có thể bao gồm nhiều loại phần cứng và sử dụng nhiều phiên bản của phần mềm mục đích là để tăng sự đa dạng để tránh thất bại chế độ thơng thƣờng. Sử dụng phần mềm N-phiên bản đƣợc khuyến khích mỗi phiên bản khác nhau đƣợc thực hiện càng đa dạng càng tốt, bao gồm bộ công cụ khác nhau, ngôn ngữ lập trình khác nhau và có thể mơi trƣờng khác nhau. Các nhóm phát triển khác nhau nếu có ít sự tƣơng tác liên quan đến các chƣơng trình giữa chúng thì càng tốt.

Sự khác biệt giữa các phƣơng pháp phục hồi và khối phƣơng pháp N- phiên bản không phải là nhiều nhƣng điều đó rất quan trọng. Trong phƣơng pháp khối phục hồi truyền thống mỗi thành phần sẽ đƣợc thực hiện thay thế tuần tự cho đến khi tìm thấy một giải pháp có thể chấp nhận đƣợc xác định bởi hệ thống chính. Phƣơng pháp khối phục hồi đƣợc mở rộng để thực hiện bao gồm đồng thời các lựa chọn thay thế khác nhau. Phƣơng pháp dự phòng N-phiên bản thiết kế để hệ thống luôn luôn đƣợc thực hiện bằng phƣơng pháp sử dụng đồng thời N modul phần cứng.

Độ tin cậy của một hệ thống dự phịng N-phiên bản có thể đƣợc mơ tả tốn học nhƣ sau: − = =0 Trong đó: ! − ! ! n: là số lƣợng các module dự phòng

55

m: là số lƣợng tối thiểu của các module bắt buộc phải hoạt động chính xác, bỏ qua sự sắp xếp bỏ phiếu.

Ví dụ: Xem xét một hệ thống gồm 5 module yêu cầu 3 module cho kết

quả chính xác, giả thiết các module đều có một độ tin cậy là 0,95.

2 =

= 10(0,95) − 15 0,95 + 6(0,95) = 0,9988

2.7 Kết luận (adsbygoogle = window.adsbygoogle || []).push({});

Trong chƣơng hai của luận văn tơi đã trình bày các phƣơng pháp để nâng cao độ tin cậy của hệ thống bằng phƣơng pháp dự phòng cấu trúc.

Phƣơng pháp dự phịng đóng một vai trò quan trọng trong việc tăng cƣờng hệ thống đáng tin cậy. Vấn đề phân bổ dự phòng đã đƣợc phân tích cho nhiều cấu trúc khác nhau hệ thống. Một trong những hình thức thƣờng đƣợc sử dụng dự phịng là chế độ chờ dự phịng, tơi đã trình bày các phƣơng pháp dự phòng cấu trúc: hệ thống dự phịng cấu trúc có tải (cịn gọi là dự phịng nóng), hệ thống dự phịng cấu trúc khơng tải (cịn gọi là dự phòng lạnh), hệ thống dự phòng cấu trúc nhẹ tải(còn gọi là hệ thống dự phòng ấm) và hệ thống dự phòng bảo vệ tích cực.

Để nâng cao độ tin cậy của hệ thống ngồi các phƣơng pháp dự phịng cấu trúc hay cịn gọi là dự phịng phần cứng thì chúng ta cịn kết hợp sử dụng phƣơng pháp nâng cao độ tin cậy của phần mềm.

Độ tin cậy phần mềm là một phần quan trọng trong chất lƣợng phần mềm. Tuy nhiên nâng cao độ tin cậy phần mềm là khó khăn, khó khăn bắt nguồn từ sự hiểu biết và nắm bắt đầy đủ những thơng tin về độ tin cậy phần mềm nói chung và đặc điểm của từng phần mềm nói riêng. Có rất nhiều phƣơng pháp và cách thức để nâng cao độ tin cậy của phần mềm tuy nhiên trong phạm vi của luận văn tơi chỉ trình bày sơ lƣợc một số vấn đề về độ tin cậy của phần mềm và đi sâu trình bày một phƣơng pháp N-phiên bản module dự phòng.

Ý tƣởng của phƣơng pháp dự phòng này giống nhƣ phƣơng pháp dự phòng cấu trúc song song. Những modul hệ thống này có thể hỗ trợ thêm cho tính chính xác của hệ thống xuất phát từ những lỗi tiềm tàng trong giai đoạn thiết kế và đặc điểm kỹ thuật của dự án. Mỗi modul trong hệ thống đƣợc thực hiện lên đến N thực thi khác nhau. Các modul độc lập thực hiện các nhiệm vụ song song tƣơng tự nhƣ nhau nhƣng kết quả trả về theo một cách khác nhau, sau đó mỗi modul gửi kết quả thực thi của mình về cho hệ thống và hệ thống sử dụng một số chƣơng trình bỏ phiếu để xác định kết quả trả lời đúng.

Nhƣ vậy, để nâng cao độ tin cậy của hệ thống thì kết hợp giữa các phƣơng pháp dự phòng cấu trúc hay còn gọi là dự phòng phần cứng và phƣơng pháp nâng cao độ tin cậy của phần mềm thì hệ thống sẽ hoạt động sẽ đảm bảo đƣợc độ tin cậy.

57

CHƢƠNG 3: XÂY DỰNG PHƢƠNG PHÁP NÂNG CAO ĐỘ TIN CẬY CHO HỆ THỐNG MÁY CHỦ DỰ PHỊNG

3.1 Đặt vấn đề

Hiện nay, các hệ thống tính tốn kỹ thuật đang dần đƣợc ứng dụng rộng rãi trong các lĩnh vực hoạt động khác nhau của đời sống con ngƣời. Đặc biệt ngày càng nhiều hệ thống máy tính đƣợc sử dụng để quản lý, xử lý và chịu trách nhiệm về các đối tƣợng làm việc theo thời gian thực. Các hệ thống này đƣợc biết đến trong nhiều lĩnh vực: hệ thống kiểm soát nhà máy điện hạt nhân, hệ thống máy tính trong hệ thống ngân hàng, các cơng ty chứng khốn, hệ thống máy tính trên máy bay, hệ thống thơng tin liên lạc vệ tinh,.. Những hệ thống nhƣ vậy cần phải có tính chất: khả năng phục hồi và khả năng sống sót trong suốt thời gian hoạt động của hệ thống vì những thất bại của nó có thể rất tốn kém và để lại những hậu quả nguy hiểm.

Phƣơng pháp đánh giá độ tin cậy của hệ thống dựa trên cơ sở lý thuyết xác suấtvà quá trình ngẫu nhiên đã đƣợc áp dụng và đã đạt đƣợc những kết quả khả quan.Việc đánh giá độ tin cậy của hệ thống dựa trên cấu trúc của hệ thống, thông qua độ tin cậy của từng thành phần hệ thống là một bài tốn phức tạp, mà để giải nó cần đến các cơng cụ nhƣ lý thuyết xác suất, lý thuyết đồ thị, logic. Bài toán nâng cao độ tin cậy của hệ thống qua cấu trúc hệ thống đã đƣợc biết đến trong nhiều lĩnh vực, đặc biệt trong lĩnh vực điện tử - viễn thông nhƣng năm 70 của thế kỷ XX, gắn liền với các dự án phóng vệ tinh và sản xuất các thiết bị có yêu cầu độ tin cậy cao. Các cơng trình nghiên cứu truyền thống về vấn đề này thƣờng xác định cách để cải thiện độ tin cậy, chủ yếu là sự ra đời của các loại hình dự phịng (cơng cụ, chức năng, thời gian,...). Các nghiên cứu và kết quả thu đƣợc dựa chủ yếu vào phƣơng pháp toán học (lý thuyết xác suất và thống kê tốn học, quy trình ngẫu nhiên, lý thuyết đồ thị, các hoạt động khảo sát,...).

Độ tin cậy [3] là đặc tính then chốt trong sự phát triển kỹ thuật, đặc biệt là khi xuất hiện những hệ thống phức tạp nhằm hoàn thành những chức năng quan trọng trong các lĩnh vực công nghiệp khác nhau. Độ tin cậy của phần tử hoặc của cả hệ thống đƣợc đánh giá một cách định lƣợng dựa trên hai yếu tố cơ bản là: tính làm việc an tồn và tính sửa chữa đƣợc. Dựa vào độ tin cậy của hệ thống

giúp chúng ta có đƣợc kế hoạch bảo trì, dự phịng, nâng cao độ tin cậy tránh đƣợc các sự cố có thể xảy ra.

Sử dụng các phƣơng pháp dự phòng cấu trúc nhằm bảo đảm độ tin cậy của hệ thống tính tốn đã là một vấn đề khá phổ biến đối với các hệ thống phức tạp, bên cạnh đó, việc sử dụng hiệu quả trong sƣ phối hợp các phƣơng pháp này vẫn là một vấn đề cần tìm hiểu kỹ và có những đề xuất. Trong chƣơng hai tơi đã trình bày hệ thống hóa về các phƣơng pháp đảm bảo độ tin cậy của hệ thống dựa trên cấu trúc khác nhau của từng hệ thống nhƣ: cấu trúc dự phịng nóng, cấu trúc dự phịng lạnh và cấu trúc dự phịng bảo vệ tích cực,... Trong chƣơng ba cũng đánh giá việc kết hợp cả hai cấu trúc tạo ra độ tin cậy cao hơn và phƣơng pháp bảo vệ tích cực tăng độ tin cậy của hệ thống, đƣa ra hạn chế nhƣ: việc xác định thời điểm cần phải ngắt bỏ bộ phận này để thay thế bộ phận khác trong hệ thống; việc lão hóa các linh kiện điện tử theo thời gian cũng tạo ra độ tin cậy khác nhau dẫn đến sự hỏng hóc của hệ thống. Trong chƣơng ba tôi đã đề xuất phƣơng pháp đảm bảo độ tin cậy của hệ thống theo yêu cầu để khắc phục những sai sót nêu trên. Cuối cùng một số các thông số đƣợc đƣa ra để minh họa cho phƣơng pháp đảm bảo độ tin cậy của hệ thống.

3.2 Phát biểu bài toán

Khi xây dựng một hệ thống điều khiển tập trung, thông tin liên lạc và thu thập thơng tin phân phối lớn theo mơ hình hệ thống máy tính phân cấp (HCS_ Hierarchical Computing Systems). Hệ thống này đƣợc sử dụng rộng rãi nhờ sự kiểm soát các thành phần theo quy mô và nhu cầu thực tế lớn nhƣ kiến trúc mạng của các nhà cung cấp dịch vụ Internet (Internet Service Provider-ISP) hay phạm vi nhỏ hơn nhƣ các doanh nghiệp [21].

Trong chƣơng hai tác giả đã xem xét và đƣa ra cấu trúc dự phòng tĩnh, cấu trúc dự phịng chủ động đối với các phần tử khơng phục hồi, đồng thời phân tích từ thất bại và tổng hợp thời gian thực chịu lỗi trên cơ sở bảo vệ chủ động (AP_ Active Protection). Trên cơ sở lý thuyết [21], ý tƣởng và phƣơng pháp tính tốn modul bảo vệ hoạt động, AP đƣợc thiết kế để đạt mức mong muốn của hệ thống máy tính phân cấp về khả năng chịu lỗi theo một khoảng thời gian dự trữ không đáng kể và hạn chế hiệu quả các phát hiện lỗi. AP cũng đƣợc thiết kế để giải

59

quyết vấn đề cung cấp một mức độ nhất định thích ứng sự cố của các thành phần và chƣơng trình mà khơng có sự gia tăng đáng kể trong các thiết bị kiểm sốt và chẩn đốn. Do đó, việc đánh giá hiệu quả của ứng dụng của phƣơng pháp bảo vệ chủ động chống lại các từ chối trong hệ thống máy tính phân cấp là rất thực tế.

Trong nội dụng chƣơng ba luận văn sẽ áp dụng các phƣơng pháp dự phịng này vào một cấu hình hệ thống cụ thể, từ đó đƣa ra các cấu trúc dự phịng tích cực nhƣ sự kết hợp từ hai cấu trúc dự phòng trên nhằm tăng độ tin cậy cho hệ thống so với việc sử dụng cấu trúc dự phòng tĩnh.Cấu trúc dự phòng chủ động (AP) đƣợc thiết kế để hệ thống hoạt động đạt đƣợc mức chịu lỗi với điều kiện là

Một phần của tài liệu Luận văn thạc sĩ UEB nghiên cứu các phương pháp nâng cao độ tin cậy cho hệ thống tính toán qua cấu trúc hệ thống công nghệ thông tin (Trang 59)