các kỹ thuật đặc tả và kiểm chứng cho các bài toán tương tranh

61 577 1
các kỹ thuật đặc tả và kiểm chứng cho các bài toán tương tranh

Đ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

1 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Trần Quốc Tuấn CÁC KỸ THUẬT ĐẶC TẢ VÀ KIỂM CHỨNG CHO CÁC BÀI TOÁN TƢƠNG TRANH Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƢỜI HƢỚNG DẪN KHOA HỌC PGS TS Nguyễn Xuân Huy Thái Nguyên, năm 2014 2 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CAM ĐOAN Tôi xin cam đoan luận văn: “Các kỹ thuật đặc tả và kiểm chứng cho các bài toán tương tranh” hoàn toàn do tôi thực hiện. Các kết quả trình bày trong luận văn là trung thực. Hải Phòng, ngày 26 tháng 03 năm 2014 Ngƣời thực hiện Trần Quốc Tuấn 3 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI CẢM ƠN Trƣớc tiên, tôi muốn gửi lời cảm sâu sắc nhất đến PGS TSKH Nguyễn Xuân Huy, ngƣời đã trực tiếp giảng dạy và tận tình hƣớng dẫn tôi trong suốt quá trình học cao học. Tôi cũng trân trong cảm ơn các Thầy, Cô đang công tác tại Viện Công nghệ thông tin Việt Nam,các Thầy, Cô trƣờng Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã về truyền thụ kiến thức để tôi hoàn thiện luận văn này. Tôi gửi lời cảm ơn đến Ban giám hiệu, các Thầy, Cô phòng Đào tạo sau đại học, trƣờng Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã quan tâm đến lớp Cao học K11C đặt tại Hải Phòng. Tôi gửi lời cảm ơn đến Ban giám hiệu Trƣờng Đại học Hải Phòng, khoa Công nghệ thông tin, đã tạo điều kiện về thời gian, kinh phí để tôi hoàn thành khóa học. Tôi muốn cảm ơn gia đình, bạn bè cũng nhƣ các đồng nghiệp đã chia sẻ và tạo điều với tôi những lúc khó khăn nhất để tôi có thể hoàn thành khóa học này. 4 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỤC LỤC LờI CAM ĐOAN 2 LờI CảM ƠN 3 MụC LụC 4 DANH MụC Từ VIếT TắT 6 DANH MụC BảNG 7 DANH MỤC HÌNH VẼ 8 LỜI NÓI ĐẦU 9 CHƢƠNG 1 11 MộT Số BÀI TOÁN TƢƠNG TRANH 11 1.1. Giới thiệu 11 1.2. Bài toán Đọc-Ghi 14 1.3. Bài toán Cung-Tiêu (producer-consumer problem) 14 1.4. Một số vấn đề trong chƣơng trình tƣơng tranh 16 1.5. Kết luận 17 CHƢƠNG 2 18 MộT Số PHƢƠNG PHÁP KIểM CHứNG 18 2.1. Kiểm chứng thiết kế 18 2.2. Kiểm chứng mô hình 19 2.3. Phƣơng pháp hình thức Event-B 20 2.3.1. Máy và ngữ cảnh 20 2.3.2. Phân rã và kết hợp 22 2.4. Sinh mệnh đề cần chứng minh 23 2.5. Máy hữu hạn trạng thái (Finite State Process - FSP) 23 2.5.1. Cú pháp đặc tả trong FSP 25 2.5.2. Quy trình tuần tự 28 2.5.3. Công cụ kiểm chứng LTSA 30 2.6. Kết luận 31 CHƢƠNG 3 32 MộT Số Kỹ THUậT ĐặC Tả VÀ KIểM CHứNG BÀI TOÁN TƢƠNG TRANH 32 5 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 3.1. Đặc tả và kiểm chứng bài toán tƣơng tranh sử dụng Event-B 32 3.1.1. Kỹ thuật kiểm chứng sử dụng Event-B 32 3.1.2. Đặc tả Event-B cho bài toán cung cấp tiêu thụ 34 3.1.3. Đặc tả Event-B cho bài toán đọc ghi 36 3.1.4. Kết quả chứng minh tự động 39 3.2. Kỹ thuật đặc tả và kiểm chứng sử dụng FSP 39 3.2.1. Đặc tả FSP cho bài toán đọc ghi 39 3.2.2 Đặc tả FSP cho bài cung cấp tiêu thụ 41 3.3. Kết luận 42 CHƢƠNG 4 43 CÀI ĐẶT THỰC NGHIỆM 43 4.1. Mô hình Đọc và Ghi đơn giản 43 4.2. Thuật toán kiểm tra tính khả tuần tự 44 4.3. Nghi thức khóa chốt hai pha 47 4.4. Mô hình Đọc và Đọc-ghi 47 4.5. Thuật toán kiểm tra tính khả tuần tự của các lịch biểu với các khóa đọc và đọc-ghi. 48 4.6. Cài đặt thực nghiệm 50 4.6.1. Kiểm tra tính khả tuần tự trong mô hình Đọc-Ghi đơn giản 50 4.6.2. Kiểm tra tính khả tuần tự trong mô hình Đọc và Đọc-ghi 53 KếT LUậN 54 TÀI LIệU THAM KHảO 55 6 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MụC Từ VIếT TắT Từ viết tắt Từ đầy đủ Diễn giải FSP Finite state process Máy hữu hạn trạng thái LTSA Labelled Transition System Analyser Công cụ kiểm chứng đặc tả cho FSP RODIN Rigorous Open Development Environment for Complex Systems Công cụ kiểm chứng đặc tả cho Event-B UML Unified Modeling Language Ngôn ngữ mô hình hóa thống nhất OCB Object-oriented Concurrent-B Ngôn ngữ đặc tả trung gian giữa Event-B và chƣơng trình hƣớng đối tƣợng, tƣơng tranh 7 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MụC BảNG Bảng 1.1. Mô tả các bƣớc chuyển khoản của tiến trình P 11 Bảng 1.2. Mô tả các bƣớc chuyển khoản của tiến trình Q 11 Bảng 1.3. Mô tả thực hiện đan xen hai tiến trình P và Q 12 Bảng 3.1. Kết quả chứng minh 38 Bảng 3.2. Đặc tả FSP cho bài toán đọc ghi 39 Bảng 3.3. Đặc tả FSP cho bài toán cung cấp tiêu thụ 41 8 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC HÌNH VẼ Hình 1.1.Mô tả bài toánĐọc-Ghi bằng hai tiến trình 13 Hình 1.2.Đặc tả bài toán Cung-Tiêu 14 Hình 2.1. Kiểm chứng mô hình 18 Hình 2.2. Mô hình Event-B với máy và ngữ cảnh 20 Hình 2.3. Cấu trúc tổng quát của sự kiện 22 Hình 2.4.Máy trạng thái biểu diễn các hành động bật tắt bóngđèn 23 Hình 2.5.Biểu diễn máy trạng thái cho các hành động của một giảng viên 24 Hình 2.6.Máy trạng thái biểu diễn tiến trình tuần tự BOMP 27 Hình 2.7.Máy trạng thái biểu diễn sự tổng hợpcủa tiến trình tuần tự LOOP 28 Hình 2.8. Máy trạng thái biểu diễn sự tổng hợp song songcủahai tiến trình tuần tự 29 Hình 3.1. Mô hình đặc tả tƣơng tranh tổng quát với Event-B 32 Hình 3.2. Mô hình khởi tạo cho bài toán cung cấp tiêu thụ 33 Hình 3.3. Máy làm mịn cho vấn đề cung cấp tiêu thụ 35 Hình 3.4. Mô hình khởi tạo cho vấn đề đọc ghi 35 Hình 3.5.Máy làm mịn vấn đề đọc ghi 37 Hình 4.1. Ba tiến trình 43 Hình 4.2. Đồ thị thứ tự trƣớc sau của các tiến trình 45 Hình 4.3. Một lịch biểu 46 Hình 4.4. Một lịch biểu gồm bốn tiến trình 49 Hình 4.5. Đồ thì tuần tự hóa của Hình 4.4 50 9 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ LỜI NÓI ĐẦU Phần mềm ngày càng đƣợc ứng dụng rộng rãi, tuy nhiên, trong nhiều hệ thống, lỗi của phần mềm gây ra các hậu quả đặc biệt nghiêm trọng, không những thiệt hại về mặt kinh tế mà còn làm tổn thất trực tiếp sinh mạng con ngƣời. Đến nay, trong công nghiệp phần mềm đã có nhiều phƣơng pháp khác nhau đƣợc đề xuất và phát triển để giảm lỗi phần mềm từ pha thiết kế đến cài đặt nhƣ các phƣơng pháp kiểm chứng (verification) và kiểm thử (testing)[1]. Các phần mềm (chƣơng trình) tƣơng tranh thƣờng gồm nhiều tiến trình, mỗi tiến trình là một chƣơng trình tuần tự thực hiện một tập các câu lệnh tuần tự. Các tiến trình thƣờng cộng tác với nhau thông qua các biến chia sẻ hoặc cơ chế truyền thông điệpđể đồng bộ hay đểtrao đổi dữ liệu. Truy xuất bộ nhớ dùng chung là một trong những hoạt động tƣơng tranh giữa các tiến trình. Vấn đề tƣơng tranh trên một tài nguyên dùng chung là vấn đề lớn cần phải giải quyết triệt để vì nếu nhiều tiến trình truy xuất đồng thời vàomộttài nguyên dùng chung màkhông có sự kiểm soát thì dễ xảy ra lỗi làm hƣ hỏng tài nguyên. Các phƣơng pháp kiểm thử (testing) phần mềm chỉ phát hiện đƣợc các lỗi ở mức mã nguồn, chƣa phát hiện đƣợc các lỗi ở mức logic nhƣ các lỗi thiết kế. Với các hệ thống tƣơng tranh việc kiểm thử nhƣ quan sát các dữ liệu vào ra là không khả thi do mỗi lần thực thi các phần mềm tƣơng tranh thƣờng cho các kết quả đầu ra là khác nhau. Hơn nữa, việc kiểm chứng phần mềm tại mức 10 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ thiết kế nhằm phát hiện lỗi sớm, giảm chi phí phát triển. Chính vì vậy vấn đề kiểm chứng bài toán tƣơng tranh tại mức thiết kế là cần thiết. Đề tài tập trung tìm hiểu các kỹ thuật, phƣơng pháp, công cụ tự động kiểm chứng một số bài toán tƣơng tranh ở mức thiết kế.Các mục tiêu đƣợc đặt ra nhƣ sau: Khảo sát, đánh giá tổng hợp kiến thức, kết quả nghiên cứu trong lĩnh vực kiểm chứngphần mềm tƣơng tranh, các vấn đề nghiên cứu liên quan. Tìm hiểu các phƣơng pháp đặc tả hình thức Event-B, FSP. Ứng dụngcác phƣơng pháp này để đặc tả và kiểm chứng tự động một số bài toán tƣơng tranh. Các phần còn lại của luận văn đƣợc cấu trúc nhƣ sau: Chƣơng 1:Luận văn giới thiệu một số bài toán tƣơng tranh và một số phƣơng pháp đặc tả và kiểm chứng các bài toán này. Chƣơng 2:Trình bày một số kiến thức cơ sở về kiểm chứng phần mềm và các phƣơng pháp hình thức với Event-B, FSP. Chƣơng 3:Luận văn trình bày phƣơng pháp kiểm chứng một số bài toán tƣơng tranh trong chƣơng 1 sử dụng phƣơng pháp hình thức với Event-B và FSP. Chƣơng 4: Luận văn trình bày hai mô hình Đọc-Ghi đơn giản và Đọc- ĐọcGhi. Ngoài ra luận văn cũng trình bày một số thuật toán kiểm tra tính khả tuần tự của một lịch biểu. Áp dụng các thuật toán để cài đặt chƣơng trình bằng DevC++. Phần kết luận:Tóm tắt các kết quả đạt đƣợc và một số hƣớng nghiên cứu tiếp theo. [...]... chƣơng này, luận văn trình bày một số kỹ thuật đặc tả và kiểm chứng tự động một số bài toán tƣơng tranh trong chƣơng 1 Trong đó học viên tập trung vào kiểm chứng các bài toán này ở giai đoạn thiết kế.Cuối cùng học viên cài đặt chƣơng trình thực nghiệm cho các bài toán tƣơng tranh nói trên 3.1 Đặc tả và kiểm chứng bài toán tƣơng tranh sử dụng Event-B 3.1.1 Kỹ thuật kiểm chứng sử dụng Event-B Trong Event-B,... dụng để đặc tả và kiểm chứng một số bài toán tƣơng tranh trong chƣơng 1 2.1 Kiểm chứng thiết kế Đã có một vài phƣơng pháp, công cụ, đƣợc đề xuất để đặc tả và kiểm chứng các chƣơng trình tƣơng tranh Các nghiên cứu này đƣợc chia thành hai hƣớng kiểm chứng thiết kế và kiểm chứng mã nguồn chƣơng trình Edmunds [6] đề xuất ngôn ngữ đặc tả trung gian Object-oriented Concurrent-B(OCB) để nối liền giữa đặc tả bằng... CHƢƠNG 1 MộT Số BÀI TOÁN TƢƠNG TRANH Trong chƣơng này luận văn giới thiệu một số bài toán tƣơng tranh iển hình, các vấn đề về tƣơng tranh và một số phƣơng pháp đặc tả và kiểm chứng các bài toán này tại mức thiết kế và mã nguồn 1.1 Giới thiệu Các tiến trình trong một hệ thống tƣơng tranh thƣờng phải đƣợc đồng bộ hóa Sự đồng bộ hóa giữa các tiến trình đƣợc phân thành hai loại cộng tác hoặc cạnh tranh Một trong... trúc tổng quát, công cụ kiểm chứng mô hình theo phƣơng pháp Event-B Trong mục 2.3 trình bày mô hình máy hữu hạn trạng thái FSP và công cụ LTSA Các phƣơng pháp và công cụ này đƣợc sử dụng để kiểm chứng một số bài toán tƣơng tranh đã đƣợc trình bày trong chƣơng 1 Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ 32 CHƢƠNG 3 MộT Số Kỹ THUậT ĐặC Tả VÀ KIểM CHứNG BÀI TOÁN TƢƠNG TRANH Trong chƣơng này,... với thuộc tính cần kiểm chứng để kiểm tra liệu mô hình có vi phạm thuộc tính cần kiểm chứng không [3] 2.6 Kết luận Trong chƣơng này luận văn trình bày một số kiến thức cơ sở để đặc tả và kiểm chứng một số bài toán tƣơng tranh Mục 2.1 giới thiệu phƣơng pháp kiểm chứng mô hình Các nghiên cứu và tìm hiểu của luận văn đƣợc thực hiện theo phƣơng pháp kiểm chứng này Mục 2.2 giới thiệu các thành phần cơ bản,... đề cần chứng minh RODIN [4] (Rigorous Open Development Environment for Complex Systems) là một bộ công cụ mã nguồn mở trên nền Eclipse để đặc tả và chứng minh tự động trong Event-B Trong luận văn này học viên sử dụng bộ công cụ RODIN để đặc tả, làm mịn, sinh và chứng minh tự động các mệnh đề cần chứng minh để bảo đảm tính đúng đắn của mô hình bài toán tƣơng tranh. RODIN sẽ kiểm tra tĩnh các máy và ngữ... với sự cài đặt của các chƣơng trình hƣớng đối tƣợng, tƣơng tranh Đặc tả OCB sẽ đƣợc chuyển tự động sang mô hình của Event-B và mã chƣơng trình Java Các chƣơng trình Java đƣợc chuyển đổi sẽ đƣợc kiểm chứng sự tuân thủ theo đặc tả OCB của nó Ben Younes và L.J Ben Ayed [7] đề xuất các luật để chuyển đổi từ đặc tả bằng biểu đồ hoạt động Activity Diagram của UML sang đặc tả bằng EventB Dựa vào cơ chế làm mịn... diễn giải pháp cho sự thực hiện tƣơng tranh của các sự kiện theo cơ chế semaphore Mỗi tiến trình trong chƣơng trình tƣơng tranh đƣợc biểu diễn bằng một sự kiện Từ mô hình tổng quát này, luận văn trình bày giải pháp để đặc tả thứ tự thực hiện của các sự kiện áp dụng cho các bài toán cung cấp-tiêu thụ từ bộ đệm dữ liệu và đọc-ghi dữ liệu từ bộ nhớ chia sẻ 3.1.2 Đặc tả Event-B cho bài toán cung cấp tiêu... dụng để đặc tả và kiểm chứng các hệ thống gồm nhiều thành phần độc lập hoạt động theo nguyên tắc cộng tác và phản ứng lại với các kích thích từ môi trƣờng Các hệ thống này bao gồm các hệ điều khiển, hệ chuyên gia, các hệ thống phân tán và thƣờng đƣợc gọi chung là các hệ thống phản ứng lại (reactive systems) Các mô hình Event-B thƣờng đƣợc mô tả bởi hai cấu trúc cơ bản: ngữ cảnh (contexts) và máy trừu... http://www.lrc-tnu.edu.vn/ 19 Ball [9] đề xuất các mẫu thiết kế để đặc tả sự tƣơng tác giữa các tác tử phần mềm, các mẫu thiết kế sau đó đƣợc chuyển đổi sang đặc tả bằng EventB Tuy nhiên, việc chuyển đổi từ mẫu thiết kế sang đặc tả bằng Event-B chƣa đƣợc tự động Giao thức tƣơng tác đƣợc đặc tả lại với Event-B dựa vào mẫu thiết kế của nó 2.2 Kiểm chứng mô hình Phƣơng pháp kiểm chứng mô hình (model checking)[8] đƣợc . 3.1. Đặc tả và kiểm chứng bài toán tƣơng tranh sử dụng Event-B 32 3.1.1. Kỹ thuật kiểm chứng sử dụng Event-B 32 3.1.2. Đặc tả Event-B cho bài toán cung cấp tiêu thụ 34 3.1.3. Đặc tả Event-B cho. Event-B cho bài toán đọc ghi 36 3.1.4. Kết quả chứng minh tự động 39 3.2. Kỹ thuật đặc tả và kiểm chứng sử dụng FSP 39 3.2.1. Đặc tả FSP cho bài toán đọc ghi 39 3.2.2 Đặc tả FSP cho bài cung. MộT Số BÀI TOÁN TƢƠNG TRANH Trong chƣơng này luận văn giới thiệu một số bài toán tƣơng tranh iển hình, các vấn đề về tƣơng tranh và một số phƣơng pháp đặc tả và kiểm chứng các bài toán này

Ngày đăng: 23/11/2014, 00:18

Từ khóa liên quan

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

Tài liệu liên quan