Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

43 705 0
Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

Đ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

ĐẠI HỌC CÔNG NGHỆ - ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER Giảng viên hướng dẫn : TS. Đặng Đức Hạnh TS. Vũ Diệu Hương Sinh viên thực hiện : Lưu Hoàng Tùng Nguyễn Công Đức Hà nội - 2012 MỤC LỤC LỜI NÓI ĐẦU 1 Chương 1. ERIGONE TRÊN CÔNG CỤ EUI 2 I/ Giới thiệu tổng quan 2 1.Giới thiệu Erigone model checker 2 2.Công cụ phát triển 3 2.1. Command line 3 2.2. EUI (Erigone User Interface) 6 3.Mô phỏng và xác minh trong Erigone 8 4.Chương trình Trace 8 II/ Ví dụ demo 9 1.Giải quyết hai tiến trình loại trừ lẫn nhau 9 2.Loại trừ lẫn nhau với một semaphore 11 3.Xác minh một chương trình Promela với câu lệnh assert 12 4.Xác minh một thuộc tính an toàn sử dụng LTL 14 5.Chứng minh khái niệm về sự công bằng với câu lệnh LTL 16 Chương 2: ERIGONE BẰNG CÂU LỆNH 19 I/ Tìm hiểu về Erigone bằng dòng lệnh: 19 1.Erigone: 20 1.1. Thực thi theo phương thức: 20 1.2. Hiển thị lựa chọn với các đối số: 21 1.3. Biên dịch chạy thông điệp: 21 1.4. Chuyển tiếp(transitions): 22 1.5. Chuyển đổi LTL: 22 Tìm hiểu về Erigone model checker Trang 1 1.6. Kiểm tra lỗi(debug arguments) 22 2. List: 23 3. Trace: 23 4. VMC 24 II/ Mô phỏng một số chương trình Promela bằng công cự Erigone 25 1. Mô phỏng với quá trình truyền thông điệp(chanel) 25 2. Mô phỏng chương trình tương tranh 31 3. Kiểm chứng độ tin cậy khi sử dụng LTL 32 III/ Chương trình List 33 IV/ Chương trình Trace 33 V/ Chương trình VMC 36 TÀI LIỆU THAM KHẢO 40 Tìm hiểu về Erigone model checker Trang 2 LỜI NÓI ĐẦU Erigone là mô hình triển khai lại của mô hình kiểm chứng Spin được phát triển với mục đích kiểm chứng được dễ dàng trực quan, uyển chuyển nhằm thuận lợi cho việc nghiên cứu và mô phỏng mô hình hệ thống, erigone có thể được thực hiện bằng công cụ trên giao diện đồ họa EUI hoặc thao tác bằng câu lệnh dưới dạng command line với nhiều tùy biến lựa chọn cho phép kiểm chứng hoạt động của hệ thống. Tìm hiểu Erigone model checker nhằm mục đích tìm hiểu rõ hơn về mô hình kiểm chứng erigone thông qua một số ví dụ, được thực hiện bằng công cụ đồ họa EUI và bằng câu lệnh command line, với những nhìn ảnh, phân tích chương trình một cách trực quan. Vì đây là lần đầu tiếp xúc, tìm hiểu về 1 khía cạnh mới nên sẽ không tránh khỏi những khó khăn dẫn đến những thiếu sót trong báo cáo, chúng em mong thầy (cô) bỏ qua. Chúng em xin chân thành cảm ơn thầy cô đã chỉ bảo hướng dẫn chúng em để chúng em có thể hoàn thành báo cáo này. Tìm hiểu về Erigone model checker Trang 1 Chương 1. ERIGONE TRÊN CÔNG CỤ EUI I/ Giới thiệu tổng quan 1. Giới thiệu Erigone model checker Erigone là một phần triển khai lại của mô hình kiểm chứng Spin. Erigone triển khai một tập con của Promela, nó là đủ để chứng minh các khái niệm cơ bản của mô hình kiểm chứng cho việc xác minh (verification) của các chương trình đồng thời. Không một ngôn ngữ cấu trúc nào được thêm vào sao cho chương trình cho Erigone có thể được sử dụng với Spin để có nhiều tính uyển chuyển và hiệu suất tốt hơn mong muốn. Erigone được viết bằng ADA năm 2005 cho độ tin cậy, bảo trì và tính linh hoạt. Nó được sử dụng như một chuẩn kiến trúc. Đặc tính của Erigone:  Erigone là đơn nhất, khép kín, tập tin thực thi để cài đặt và sử dụng là dễ dàng.  Erigone sản sinh một vết (trace) chi tiết trong những thuật toán mô hình kiểm chứng. Nội dung các vết có thể tùy chỉnh và một định dạng thống nhất dựa trên từ khóa được sử dụng để có thể được đọc trực tiếp hoặc được sử dụng bởi các công cụ khác.  Mô-đun hóa mở rộng được sử dụng trong việc thiết kế của chương trình Erigone tạo điều kiện cho hiểu biết về mã nguồn. Điều này cũng sẽ cho phép các nhà nghiên cứu dễ dàng sửa đổi và mở rộng chương trình.  Ngoài việc kiểm chứng mô hình Erigone còn chứa các chương trình bổ xung riêng biệt: – COMPILER: Chạy chương trình biên dịch của chính nó. – LST: Định dạng đầu ra của trình biên dịch – TRACE: Định dạng đầu ra của mô hình kiểm chứng – VMC: Tạo đồ thị mô hình từ thuật toán mô hình kiểm tra. Tìm hiểu về Erigone model checker Trang 2 Mô hình hoạt động: 2. Công cụ phát triển Erigone có thể được thực thi bằng 2 cách : sử dụng command line và EUI (Erigone User Interface) 2.1. Command line Erigone được xây dựng với trình biên dịch Gnat Ada 2005, nó có thể được download tại : http://code.google.com/p/erigone/downloads/list • Cú pháp dòng lệnh: erigone [arguments] filename Với filename: nếu phần mở rộng không được đưa ra trong tệp tin, mặc định mã nguồn PROMELA tập tin đuôi mở rộng là pml. Việc chuyển đổi tự động tên tập tin thu được bằng cách sử dụng các tập tin gốc và phần mở rộng aut, và tập tin kéo theo mở rộng là trl. Nếu thuộc tính đúng đắn LTL của tên tập tin không được đưa ra, mặc định là gốc với phần mở rộng prp. Tìm hiểu về Erigone model checker Trang 3 • Đối số dòng lệnh:  Các chế độ (mode) thực thi -r Random simulation -i Interactive simulation -g Guided simulation -s Verification of safety -a Verification of acceptance -f Verification with fairness -b LTL to BA translation only -c Compile PROMELA only  Giới hạn thực thi -eN Total st[e]ps 10 -kN State stac[k] 2 -lN [L]ocation stack 3 -pN [P]rogress step 1 Trong đó, tham số N trong khoảng 1000 và mặc định của nó được liệt kê trong cột 3 của bảng Đối với ngăn xếp, đây là số lượng các khung ngăn xếp và không phải là số lượng các bytes Tổng các bước (Total steps) là số lượng các bước của một mô phỏng hoặc xác minh trước khi thực hiện các chấm dứt Đối với một xác minh, một báo cáo tiến trình có thể được in sau mỗi bước tiến trình(progress step) đã được thực hiện, nếu g được bao gồm trong các đối số hiển thị.  Một số đối số bổ sung: Tìm hiểu về Erigone model checker Trang 4 -h Display [h]elp screen -nN Seed of ra[n]dom simulation -o Compiler l[o]gs -t[f] Read L[T]L formula Hạt giống (seed) mặc định thu được từ đồng hồ Các bản ghi của trình biên dịch (compiler logs) bằng văn bản để tách các tập tin, không phải đầu ra tiêu chuẩn. Nếu một tên tệp tin không được đưa ra với đối số -t, các tên tập tin được xây dựng như mô tả ở trên. Không có khoảng trống giữa -t và tên của tập tin Nhãn Accept chưa được triển khai, do đó -t nên được thiết lập với chế độ thực thi -a hoặc –f; một thông điệp cảnh báo sẽ được đưa ra nếu điều này chưa được thực hiện.  Đối số hiển thị Đối số -d hiển thị tất cả các dữ liệu. Hiển thị chọn lọc có thể dùng với đối số -dX, trong đó X là một chuỗi của một hoặc nhiều: Compile and runtime messages g Pro[g]ress messages p [P]rogram transitions and symbols r [R]un-time statistics v [V]ersion and copyright notice Transitions a [A]ll transitions from a state c [C]hosen transition (simulation) e [E]xcutable transitions from a state Tìm hiểu về Erigone model checker Trang 5 l [L]ocation stack t [T]rail y B[y]te code States h State [h]ash table m States in a si[m]ulation s [S]tate stack LTL translation messages b [B]üchi automaton n [N]odes in the LT tableau 2.2. EUI (Erigone User Interface) EUI là một môi trường phát triển cho Erigone bao gồm một giao diện người dùng đồ họa và các thuật toán để định dạng và hiển thị kết quả của một mô phỏng và xác minh. EUI là một chuyển thể của JSpin - môi trường phát triển cho Spin. Tập tin cài đặt EUI eui-N.exe (N là số phiên bản) có thể tải từ dự án Jspin tại Google Code: http://code.google.com/p/jspin/ EUI cần Java JRE phiên bản thấp nhất là 1.5 Tìm hiểu về Erigone model checker Trang 6 Giao diện chính của EUI 2.3. Kích thước giới hạn của Erigone Giới hạn về kích thước của các mô hình Promela được biên dịch vào Erigone có trong ba gói thông số kĩ thuật: Global cho các khai báo cơ bản, Config cho các kích cỡ bảng và Config State cho cỡ của các vectơ trạng thái nén trong stack và hash table: Declarations in package Global Identifier Type Meaning Byte mod 256 Values and indices Name String(1 64) Names and source statements Declarations in package Config Identifier Type Meaning Process_Index Byte range 0 7 Processes Tìm hiểu về Erigone model checker Trang 7 [...]... terminated=successfully, Tìm hiểu về Erigone model checker Trang 18 Verification với Fairness Chương 2: ERIGONE BẰNG CÂU LỆNH I/ Tìm hiểu về Erigone bằng dòng lệnh: Sau khi tải file chứa erigone- N.zip ở trang http://code.google.com/p /erigone/ , với N là số phiên bản, mã nguồn chương trình trong erigone- source-N.zip Sau khi giải nén file lư trữ erigone- N.zip chứa các thư mục : dist: thư mục dist chứa file erigone- release.html... Ta có thể chọn chế độ chạy thông qua một số các đối số khai báo ở trong phần thực thi các phương thức Chạy chế độ ngẫu nhiên(random): erigone -r examples\ch1 Output băng EUI: Tìm hiểu về Erigone model checker Trang 26 Chạy bằng lệnh Erigone: Tìm hiểu về Erigone model checker Trang 27 Giao diện bằng dòng lệnh đã rút gọn chỉ hiển thị kết quả, trong EUI hiển thị các trạng thái tiến trình thông số các biến... is false, line=22,statement={assert (critical == 1)}, Tìm hiểu về Erigone model checker Trang 12 Safety khi giao tranh Sử dụng chương trình sem.pml với mode Safety kết quả trả về với thông báo: verification terminated=successfully, Tìm hiểu về Erigone model checker Trang 13 Safety không có giao tranh 4 Xác minh một thuộc tính an toàn sử dụng LTL Erigone có thể xác minh một thuộc tính đúng đắn được viết... được tìm thấy Cuối cùng là thông tin về việc thực hiện mô hình kiểm tra được hiển thị Tìm hiểu về Erigone model checker Trang 15 Safety với câu lệnh LTL 5 Chứng minh khái niệm về sự công bằng với câu lệnh LTL Chương trình sau là một ví dụ đơn giản để chứng minh khái niệm về sự công bằng fair1.pml: byte n = 0; bool flag = false; ltl { flag } active proctype p() { do Tìm hiểu về Erigone model checker. .. file erigone- quick.pdf và erigone- ug.pdf đó là hai file giới thiệu và hướng dẫn sử dụng phần mềm erigone. exe, list.exe, trace.exe, vmc.exe examples: Thư mục chứa các file mã nguồn ví dụ Promela vmc-examples: Thư mục chứa mã nguồn ví dụ Promela có thể chuyển đổi mô hình tốt bằng chương trình VMC Tìm hiểu về Erigone model checker Trang 19 1 Erigone: Hướng dẫn thực hiện chạy chương trình: Câu lệnh: erigone. .. sẽ nhận được kết quả tương tự Tìm hiểu về Erigone model checker Trang 10 Ví dụ với second.pml 2 Loại trừ lẫn nhau với một semaphore Mã nguồn của ví dụ được chứa trong tập tin sem.pml trong thư mục examples: byte sem = 1; byte critical = 0; active proctype p() { do :: atomic { sem > 0; sem-} critical++; assert(critical == 1); critical ; sem++ Tìm hiểu về Erigone model checker Trang 11 od } active proctype... dữ liệu –u Lựa chọn các đối số -ux với x là kí tự hoặc chuỗi kí tự truyền vào -uc: compiler tokens -ui: Interpreter stack Tìm hiểu về Erigone model checker Trang 22 -ur: P[r]reprocessor 2 List: List đọc và chuyển đổi hiển thị file một cách tự động sang file có đôi mở sau khi dịch chương trình, Biên dịch: erigone -c filename list filename Trước khi chạy list cần biên dịch chương trình bằng erigone (erigone. .. Tìm hiểu về Erigone model checker Trang 20 1.2 Hiển thị lựa chọn với các đối số: -d display everything – hiển thị toàn bộ -dX: đối số động X, là một trong chuỗi của các đối số 1.3 Biên dịch chạy thông điệp: -dg Pro[g]ress notification -dp Program symbols and transitions -dr Runtime statistics -dv version and copyright message – Chạy chường trình và in ra thông báo về phiên bản Tìm hiểu về Erigone model. .. trình khi ta biên dịch chương trình bằng erigone, list sẽ chuyển đổi file biên dịch thành file có đuôi chấm list ghi lại mô hình của các tiến trình Câu lệnh phải chạy chương trình erigone trước để có file chương trình đinh dang aut list filename IV/ Chương trình Trace Trace sử lý dữ liệu đầu ra của erigone dưới dạng bảng Với file second.pml Tìm hiểu về Erigone model checker Trang 33 ... lệnh: erigone –i examples\ch1 Output bằng EUI: Out put bằng comand line: Tìm hiểu về Erigone model checker Trang 28 Ở dao diện của eui nếu ta chọn phía (p7 ch1 ! 4, 5, 6) tương đương phái chọn from =0(nếu ta chọn 0) chương trình sẽ hiển thị toàn bộ tiến trình tiếp theo tự động Nếu ta chọn to = 1(chọn 1) chương trình sẽ chạy từng tiến trình một còn trong dao diện EUI ta chọn p13 ch1 ! a, b, c Tìm hiểu . cáo này. Tìm hiểu về Erigone model checker Trang 1 Chương 1. ERIGONE TRÊN CÔNG CỤ EUI I/ Giới thiệu tổng quan 1. Giới thiệu Erigone model checker Erigone. trình Trace 33 V/ Chương trình VMC 36 TÀI LIỆU THAM KHẢO 40 Tìm hiểu về Erigone model checker Trang 2 LỜI NÓI ĐẦU Erigone là mô hình triển khai lại của

Ngày đăng: 12/02/2014, 13:20

Hình ảnh liên quan

Mô hình hoạt động: - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

h.

ình hoạt động: Xem tại trang 6 của tài liệu.
2.3. Kích thước giới hạn của Erigone - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

2.3..

Kích thước giới hạn của Erigone Xem tại trang 10 của tài liệu.
Khi một mô hình Promela được mô phỏng thường sẽ có nhiều hơn một tin thực thi (executable) chuyển đổi trong mỗi trạng thái - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

hi.

một mô hình Promela được mô phỏng thường sẽ có nhiều hơn một tin thực thi (executable) chuyển đổi trong mỗi trạng thái Xem tại trang 11 của tài liệu.
để viết một tập tin với bảng kí hiệu, trạng thái và quá trình chuyển đổi được thực hiện - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

vi.

ết một tập tin với bảng kí hiệu, trạng thái và quá trình chuyển đổi được thực hiện Xem tại trang 12 của tài liệu.
Khi ta chọn mode Accept, mô hình kiểm tra tìm kiếm cho một chu trình chấp nhận (acceptance cycle) – một thuật ngữ kĩ thuật cho một lỗi trong một  xác minh của một công thức LTL có chứa kí hiệu (<>) và kết quả trả về là: - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

hi.

ta chọn mode Accept, mô hình kiểm tra tìm kiếm cho một chu trình chấp nhận (acceptance cycle) – một thuật ngữ kĩ thuật cho một lỗi trong một xác minh của một công thức LTL có chứa kí hiệu (<>) và kết quả trả về là: Xem tại trang 20 của tài liệu.
Các biến được in ra màn hình, với trạng thái kết thúc ở dòng thứ 20, với câu lệnh statement = {printf(“%d %d %d\n”, a, b, c)}, - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

c.

biến được in ra màn hình, với trạng thái kết thúc ở dòng thứ 20, với câu lệnh statement = {printf(“%d %d %d\n”, a, b, c)}, Xem tại trang 29 của tài liệu.
Trên hình ta thấy ở trạng thái thứ 3, 5, 8, 11 kết quả được hiển thị trên màn hình, và kết thúc ở dòng thứ 20. - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

r.

ên hình ta thấy ở trạng thái thứ 3, 5, 8, 11 kết quả được hiển thị trên màn hình, và kết thúc ở dòng thứ 20 Xem tại trang 34 của tài liệu.
Trace sử lý dữ liệu đầu ra của erigone dưới dạng bảng. Với file second.pml - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

race.

sử lý dữ liệu đầu ra của erigone dưới dạng bảng. Với file second.pml Xem tại trang 36 của tài liệu.
VMC chuyển đổi file thự thi của chương trình erigone sang mô hình đồ họa được lưu dưới dạng dot, để chuyển đổi file dot sang file ảnh ta dùng graphviz  với hướng dẫn ở trên, ta thử chuyển đổi file chương trình second thành dạng mô  hình để mô hình hóa trạ - Tài liệu Đề tài: TÌM HIỂU ERIGONE MODEL CHECKER docx

chuy.

ển đổi file thự thi của chương trình erigone sang mô hình đồ họa được lưu dưới dạng dot, để chuyển đổi file dot sang file ảnh ta dùng graphviz với hướng dẫn ở trên, ta thử chuyển đổi file chương trình second thành dạng mô hình để mô hình hóa trạ Xem tại trang 39 của tài liệu.

Mục lục

  • Chương 1. ERIGONE TRÊN CÔNG CỤ EUI

    • I/ Giới thiệu tổng quan

      • 1. Giới thiệu Erigone model checker

      • 2.2. EUI (Erigone User Interface)

      • 3. Mô phỏng và xác minh trong Erigone

      • II/ Ví dụ demo

        • 1. Giải quyết hai tiến trình loại trừ lẫn nhau

        • 2. Loại trừ lẫn nhau với một semaphore

        • 3. Xác minh một chương trình Promela với câu lệnh assert

        • 4. Xác minh một thuộc tính an toàn sử dụng LTL

        • 5. Chứng minh khái niệm về sự công bằng với câu lệnh LTL

        • Chương 2: ERIGONE BẰNG CÂU LỆNH

          • I/ Tìm hiểu về Erigone bằng dòng lệnh:

            • 1. Erigone:

              • 1.1. Thực thi theo phương thức:

              • 1.2. Hiển thị lựa chọn với các đối số:

              • 1.3. Biên dịch chạy thông điệp:

              • 1.6. Kiểm tra lỗi(debug arguments)

              • II/ Mô phỏng một số chương trình Promela bằng công cự Erigone

                • 1. Mô phỏng với quá trình truyền thông điệp(chanel)

                • 2. Mô phỏng chương trình tương tranh

                • 3. Kiểm chứng độ tin cậy khi sử dụng LTL

                • III/ Chương trình List

                • IV/ Chương trình Trace

                • V/ Chương trình VMC

                • TÀI LIỆU THAM KHẢO

Trích đoạn

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

  • Đang cập nhật ...

Tài liệu liên quan