Đặc tả và kiểm chứng các hệ thống thời gian thực sử dụng uppaal (tt)

24 188 0
Đặc tả và kiểm chứng các hệ thống thời gian thực sử dụng uppaal (tt)

Đ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 QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶC TẢ KIỂM CHỨNG CÁC HỆ THỐNG THỜI GIAN THỰC SỬ DỤNG UPPAAL Ngành: Công nghệ thông tin Chuyên ngành:Kỹ Thuật Phần Mềm Mã số: 60480103 TĨM TẮT LUẬN VĂN THẠC SĨ CƠNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM NGỌC HÙNG Hà Nội – 2017 1 Giới thiệu 1.1 Đặt vấn đề Trong thời đại ngày nay, hệ thống có yếu tố thời gian đặc biệt hệ thống thời gian thực lĩnh vực nhận nhiều quan tâm giới khoa học nói chung giới khoa học nghiên cứu cơng nghệ nói riêng Thật vây, hệ thống thời gian thực ứng dụng nhiều đời sống xã hội, sản xuất, y tế, hàng không vũ trụ quân sự, gần lĩnh vực ta thấy có góp mặt ứng dụng hệ thống thời gian thực Khơng góp mặt nhiều lĩnh vực mà góp mặt có tầm quan trọng lớn hệ thống Trong hệ thống thời gian thực, công vệc tác vụ cần phải hoàn thành khoảng thời gian cho phép (deadline), khơng đáp ứng u cầu thời gian hệ thống sụp đổ gây hậu nghiêm trọng (hệ Hard Real- Time) bị suy giảm chất lượng dịch vụ (hệ Soft Real-Time) Chính tầm quan trọng yếu tố thời gian hệ thống thời gian nên việc kiểm tra tính đắn hệ thống cần thiết Tuy nhiên, việc đặc tả kiểm chứng hệ thống thời gian thực tốn khó mối quan tâm lớn làm để đặc tả kiểm chứng tự động cho hệ thống thời gian thực Bộ công cụ Uppaal đời phần đáp ứng u cầu đó, cơng cụ giúp ta kiểm định hệ thống mơ hình hóa thành hệ thống automata thời gian với nhứng biến số nguyên, cấu trúc liệu, hàm người dùng đồng kênh Với việc đặc tả kiểm chứng hệ thống thời gian thực công cụ Uppaal đánh giá tốt sử dụng rộng rãi công nghiệp 1.2 Nội dung nghiên cứu luận văn Trong luận văn tác giả tập trung tìm hiểu công cụ kiểm chứng Uppaal, sâu vào tìm hiểu ngơn ngữ đặc tả Uppaal tìm hiểu chế kiểm chứng cơng cụ cho hệ thống thời gian thực Từ tác giả xây dựng số ví dụ (cụ thể tác giả xây dựng ví dụ) số hệ thống thời gian thực áp dụng vào đặc tả kiểm chứng hệ thống cơng cụ Uppaal Đối với ví dụ tác giả giả định hệ thống thời gian thực, tiến hành đặc tả, mơ hình hóa hệ ơ-tơ-mát thời gian trình soạn thảo Uppaal sau chạy mô kiểm chứng hoạt động hệ thống 2 1.3 Cấu trúc luận văn Luận văn trình bày thành chương: Chương 1: Giới thiệu Chương 2: Đặc tả kiểm chứng Uppaal Trình bày hiểu biết tác giả công cụ Uppaal cách đặc đả kiểm chứng Uppaal Chương 3: Một số ví dụ áp dụng Trình bày ví dụ mà tác giả xây dựng hệ thống thời gian tiến hành đặc tả kiểm chứng hệ thống qua cơng cụ Uppaal Chương 4: Kết luận Tìm hiểu Upppaal 2.1 Bộ cơng cụ Uppaal 2.1.1 Giới thiệu công cụ Uppaal Uppaal phần mềm để kiểm tra hệ thống thời gian thực, phát triển Đại học Uppsala Đại học Aalborg Phần mềm ứng dụng thành công nghiên cứu nhiều lĩnh vực điều khiển, giao thức truyền thông hay ứng dụng multimedia – lĩnh vực mà yếu tố thời gian quan trọng Công cụ dùng để kiểm định hệ thống mơ hình hóa thành hệ thống automat thời gian với biến số nguyên, cấu trúc liệu, hàm người dùng, đồng kênh 2.1.2 Tổng quan công cụ Uppaal UPPAAL sử dụng kiến trúc máy trạm-máy chủ mà phân chia chương trình gồm phần: giao diện đồ họa hệ thống kiểm tra mơ hình Giao diện đồ họa, hay client, viết Java, server đóng gói tùy vào HĐH (Linux, Windows, Solaris) Do có kiến trúc nên hai phần CT kết nối với qua giao thức TCP/IP Cũng có phiên sử dụng dòng lệnh 2.1.2.1 Java Client Ý tưởng chương trình mơ hình hóa hệ thống ô-tô-mát thời gian sử dụng công cụ đồ họa, mô kiểm chứng hoạt động nó, cuối kiểm tra xem có thỏa mãn tính chất cho trước hay khơng GUI Java client thực ý tưởng cách chia lám phần: Khung soạn thảo (Editor), Mô (Simulator) Kiểm chứng (Verifier) xếp vào tab 3 Khung soạn thảo (KST) hệ thống định nghĩa tập hợp ô-tô-mát thời gian tiến hành song song gọi trình Quá trình tạo từ template định trước KST chia làm phần: cửa sổ dạng để chọn template, khai báo khác vẽ Địa điểm dán tên Invariant edge dán điều kiện guard, đồng hay phép gán Sơ đồ bên trái cho phép ta lựa chọn nhiều phần thông tin hệ thống: Mô (Simulator): Mô việc thực thi hệ thống cách ngẫu nhiên, (thông qua mô này, bước đầu ta kiểm tra hệ thống có vận hành khơng, có xung đột khơng) Kiểm chứng (Verifier): Cho phép ta kiểm chứng tính thực hệ thống, tính đến trạng thái mơ hình, tính đắn hệ thống, kiểm tra trạng thái có bị deadlock khơng câu lệnh cụ thể theo ngôn ngữ Uppaal 2.1.2.2 Stand-alone Verifier Khi thực toán lớn, khó làm hết GUI Khi ta dùng kiểm chứng riêng dòng lệnh chương trình verifier Nó cho phép ta thực chức tương tự GUI dòng lệnh Cách thích hợp cho máy có cấu hình yếu phải chia sẻ nhớ cho ứng dụng khác 2.2 Ơ-tơ-mát thời gian Uppaal 2.2.1 Định nghĩa ô-tô-mát thời gian Một ô-tô-mát thời gian (Time automata-TA) tập gồm thành phần (L, l0, C, A, E, I) Trong đó: - L: tập trạng thái l0: trạng thái ban đầu C: tập đồng hồ A: tập hành động - E  L  A  B(C )   L : tập cạnh trạng thái C - I: L  B(C ) : định bất biến cho trạng thái 2.2.2 Mơ tả Ơ-tơ-mát thời gian Uppaal Ơ-tơ-mát thời gian thực máy hữu hạn trạng thái với tập đồng hồ Mỗi đồng hồ hàm số ánh xạ vào tập số thực khơng âm, ghi lại thời gian trôi qua kiện Các đồng hồ đồng hóa mặt thời gian Trong UPPAAL, hệ thống đượ c mơ hình mạng củ a automat thời gian xếp son g song Mơ hình mở rộng với biến rời rạc bị chặn trạng thái Những biến sử dụng ngơn ngữ lập trình: đọc, ghi thực phép tính số học Một trạng thái hệ thống định nghĩa vị trí automat, giá trị đồng hồ biến rời rạc Mỗi automat thay đổi (khơng nên hiểu chuyển tiếp) độc lập hay đồng với automat khác, dẫn đến trạng thái khác 2.3 Đặc tả Uppaal Một hệ thống Ơ-tơ-mát thời gian đặc tả Uppaal thông qua khung soạn thảo trình bày dạng ơ-tơ-mát thời gian xếp song song, hoạt động độc lập đồng với thông qua kênh đồng Để đặc tả hệ thống ô-tô-mát thời gian Uppaal khung soạn thảo ta cần tiến hành bước: Bước 1:Phân tích nhận diện khn mẫu có hệ thống: Cần xác định hệ thống có khuân mẫu nào, khuân mẫu ứng với q trình biểu diễn ơ-tơ-mát thời gian khung soạn thảo Bước 2: Mơ hình hóa khuân mẫu Mỗi khuân mẫu cần xác định rõ: - Có trạng thái nào? - Bước chuyển trạng thái sao? - Có cần truyền tham số khơng? Từ xác định biến tồn cục biến địa phương hệ thống Bước 3: Vẽ mô hình: 2.4 Kiểm chứng Uppaal 2.4.1 Kiểm chứng qua mô hoạt động hệ thống Sau biên tập hệ thống phần soạn thảo, Uppaal cho phép kiểm chứng hoạt động hệ thống qua chức Simulator 5 Ở chức này, bước đầu người dùng phát lỗi thiết kế Ơ-tơ-mát, lỗi mã nguồn Nếu bước Editor gặp lỗi chạy Simulator máy báo lỗi rõ lỗi mắc phải qua hộp hội thoại đánh dấu lỗi Editor chuyển phông chữ sang màu đỏ gạch chân Khi đó, người dùng biết lỗi đâu sửa lỗi Chỉ đến phần biên tập khơng lỗi soạn thảo chạy Simulator Trong trình chạy Simulator người dùng bước đầu kiểm tra vận hành hệ thống qua dịch chuyển trạng thái mô ngẫu nhiên trạng thái Ơ-tơ-mát song song theo thời gian Ở bước hệ thống bị deadlock phát 2.4.2 Kiểm chứng dòng lệnh Uppaal cho phép ta kiểm chứng khả hoạt động ơ-tơ-mát qua trạng thái, tính an tồn, khả rơi vào trạng thái deadlock (không chịu chuyển trạng thái) chức Verifier Chức cho phép kiểm chứng qua dòng lệnh (ngơn ngữ C++) Kiểm chứng tính đạt (khả tới trạng thái định) - Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) Kiểm tra tính an tồn (một điều ln ln đúng) - Cú pháp: A[] E[] Kiểm tra tính liveness hệ thống (tính chất đảm bảo điều trước sau xảy ra) - Cú pháp: A 𝜑: Chỉ 𝜑 thỏa mãn 𝜑 > : Khi 𝜑 thỏa mãn  thỏa mãn - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay không Cú pháp A[] not deadlock Một số ví dụ áp dụng 3.1 Hệ thống phân loại 3.1.1 Ví dụ1 Hệ thống phân loại bóng theo màu sắc Một hệ thống có đầu vào loại bóng với nhiều màu sắc khác (demo màu), bóng cho chạy qua sensor nhận biết màu sắc, sensor thông báo tín hiệu cho cửa đẩy tương ứng Bóng chạy băng chuyền với vận tốc đảm bảo để di chuyển từ cửa đến cửa khoảng thời gian cố định gặp cửa đẩy khỏi băng chuyền Đặc tả: Một bóng có màu sắc i qua sensor sensor phát màu sắc, sensor phát tín hiệu tới cửa thứ i bóng qua sensor chạy băng chuyền với tốc độ đảm bảo đến cửa thứ i i*5s Sau i*5s kể từ nhận tín hiệu từ sensor cửa thứ i đẩy ra, bóng bị đẩy xuống rãnh tương ứng Phân tích nhận diện đối tượng hệ thống Hệ thống có đèn cảm ứng nhận diện màu sắc (Sensor) cửa đẩy (PushDoor(i), i=1  7) Mơ hình hóa đối tượng Đối tượng Sensor - Gồm trạng thái: Safe SeeColor Safe: trạng thái an tồn, khơng có bóng qua SeeColor: trạng thái nhìn thấy bóng qua - Chuyển trạng thái Khi có bóng (gán số thứ tự tương úng với màu sắc) qua, sensor phát màu nhớ màu (gán y=e) chuyển sang trạng thái Seecolor Sau gửi tín hiệu đến cửa thứ i (i=y) tương ứng (lệnh push[y]!) chuyển sang trạng thái Safe - Ơ-tơ-mát Sensor Đối tượng PushDoor - Gồm trạng thái: Safedoor; Waiter; PushD Safedoor: Trạng thái chưa có yêu cầu báo mở Waiter: Trạng thái có nhận yêu cầu báo mở chờ đến thời gian mở PushD: đẩy cửa - Chuyển trạng thái: Khi cửa thứ i trạng thái Safedoor nhận lệnh có bóng màu thứ i tới, chuyển sang trạng thái Waiter trạng thái Waiter 5*id+5(s) chuyển sang trạng thái PushD Sau 1(s) trở trạng thái an tồn - Ơ-tơ-mát PushDoor - Khai báo template có hệ thống Mô vận hành hệ thống - Mô thay đổi trạng thái đối tượng Mô đồng theo thời gian cá dối tượng Kiểm chứng hoạt động hệ thống - Kiểm chứng tính đạt (khả tới trạng thái định) Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) E Pushdoor(0).PushD: kiểm tra xem cửa có đạt trạng thái PushD hay khơng ESenor.Seecolor Kiển tra xem Sensor có chuyển sang trạng thái nhìn thấy màu khơng có lưu lại màu sắc vừa nhìn khơng? E Pushdoor(0).PushD and (forall (i:id_t) i!=0 imply Pushdoor(i).Safedoor): Kiểm tra xem cửa đẩy cửa khác có trạng thái an tồn khơng (đảm bảo có cửa đẩyr a lúc) - Kiểm tra tính an tồn (một điều ln ln đúng) Cú pháp: A[] E[] A[] forall(i:id_t) forall(j:id_t) Pushdoor(i).PushD and Pushdoor(j).PushD imply i==j Tính chất cửa khác khơng đẩy - Kiểm tra tính liveness hệ thống (tính chất đảm bảo điều trước sau xảy ra) Cú pháp: A 𝜑: Chỉ 𝜑 thỏa mãn 𝜑 > : Khi 𝜑 thỏa mãn  thỏa mãn Pushdoor(0).PushD > Pushdoor(0).Safedoor Kiểm tra cửa thứ i đẩy cửa thứ i trở trạng thái an toàn - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay khơng Cú pháp A[] not deadlock 3.1.2 Ví dụ Hệ thống phân loại sản phẩm (sản phẩm đạt chất lượng hay chưa) Một hệ thống phân loại khoai tây, có đầu vào cử khoai tây sau thu hoạch, củ khoai tây đươci cho qua phễu để chay qua sensor kiểm tra chất lượng (kích thước, cân nặng, màu sắc), sensor thơng báo tín hiệu cho cửa đẩy tương ứng Củ khoai tây chạy băng chuyền với vận tốc đảm bảo để di chuyển từ cửa đến cửa khoảng thời gian cố định gặp cửa đẩy vào rãnh phân loại 9 Đặc tả: Một củ khoai tây qua sensor sensor phát chất lượng thông qua kích thước, cân nặng màu sắc, Nếu đảm bảo kích thước, cân nặng màu sắc tốt củ khoai xếp hạng A sensor phát tín hiệu tới cửa hạng A, lại xếp hạng B báo tín hiệu đến hạng B Củ khoai tây sau qua sensor chạy băng chuyền gặp cửa mở rơi xuống rãnh cửa phân loại Phân tích nhận diện đối tượng hệ thống Hệ thống gồm đèn cảm ứng nhận chất lượng (Sensor) cửa mở (Adoor BDoor), củ khoai xem đối tượng tham gia hệ thống (Potato) Mơ hình hóa đối tượng Đối tượng Potato - Gồm trạng thái Safe, CrossSensor, CrossA, CrossB Safe: Trạng thái không đường truyền CrossSensor: Đi qua sensor CrossA: Vào rãnh A CrossB: Vào rãnh B - Chuyển trạng thái Từ trạng thái safe củ khoai tây chạy qua phễu đến vị trí sensor, bắt đầu kích hoạt đồng hồ, reset Nếu củ khoai đạt chất lượng báo tín hiệu Good! đến cửa A, ngược lại, báo tín hiệu Notgood! đến B Sau giây thoát khỏi cửa trở trạng thái an tồn (đã phân loại) - Ơ-tơ-mát Potato 10 Đối tượng Sensor - Gồm trạng thái: Free, SeeA SeeB Free: trạng thái an toàn SeeA: trạng thái nhìn thấy củ khoai đạt chất lượng loại A SeeB: trạng thái nhìn thấy củ khoai đạt chất lượng loại B - Chuyển trạng thái Khi có củ khoai qua, sensor phát chất lượng nhờ vào kích thước, cân nặng màu (được hiểu củ khoai phát tín hiệu), nhận tín hiệu Good! Thì chuyển sang SeeA, ngược lại chuyển sang SeeB Sau gửi tín hiệu đến cửa tương ứng (OpenA! Hoặc OpenB!) chuyển sang trạng thái Free - Ơ-tơ-mát Sensor Đối tượng ADoor - Gồm trạng thái: Close Open Close: Trạng thái chưa có yêu cầu báo mở Open: Mở cửa - Chuyển trạng thái: Khi cửa trạng thái Close nhận lệnh có củ khoai đạt chất lượng tới (OpenA?), reset đồng hồ chuyển sang trạng thái Open trạng thái khoảng 3s sau chuyển sang trạng thái Close - Ô-tô-mát ADoor 11 Đối tượng BDoor - Gồm trạng thái: Close Open Close: Trạng thái chưa có yêu cầu báo mở Open: Mở cửa - Chuyển trạng thái: Khi cửa trạng thái Close nhận lệnh có củ khoai khơng đạt chất lượng tới (OpenB?), reset đồng hồ chuyển sang trạng thái Open trạng thái khoảng 3s sau chuyển sang trạng thái Close - Ô-tô-mát BDoor Mô vận hành hệ thống - Mô thay đổi trạng thái đối tượng Mô đồng theo thời gian cá dối tượng Kiểm chứng hoạt động hệ thống - Kiểm chứng tính đạt (khả tới trạng thái định) Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) 12 EPotato.CrossSensor kiểm tra xem mọt củ khoai tây có chuyển sang trạng thái CrossSensor không EPotato.CrossADoor or Potato.CrossBDoor: kiểm tra xem củ khoai phải cửa A cửa B ESenor.Seecolor Kiển tra xem Sensor có chuyển sang trạng thái tây có qua cửa A hay cửa B khơng Kiểm tra tính an tồn (một điều ln ln đúng) - Cú pháp: A[] E[] E[]Potato.CrossADoor and Potato.CrossBDoor đảm bảo củ khoai tây không qua hai cửa - Kiểm tra tính liveness hệ thống (tính chất đảm bảo điều trước sau xảy ra) Cú pháp: A 𝜑: Chỉ 𝜑 thỏa mãn 𝜑 > : Khi 𝜑 thỏa mãn  thỏa mãn Sensor.SeeA >ADoor.Open: Đảm bảo sensor phát là củ đạt chất lượng A cửa A phải mở Sensor.SeeB >BDoor.Open: Đảm bảo sensor phát là củ đạt chất lượng B cửa B phải mở - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay không Cú pháp A[] not deadlock 3.2 Hệ thống điều khiển sử dụng vùng tài nguyên 3.2.1 Ví dụ Hệ thống điều khiển việc sử dụng chung vùng tài nguyên (có ràng buộc thời gian sử dụng nguồn tài ngun) Có n q trình (demo 2) có nhu cầu sử dụng vùng tài nguyên, hệ thống đảm bảo việc điều khiển cho thời điểm có trình sử dụng vùng tài nguyên trình gửi u cầu trước bố trí sử dụng trước (giả thiết trình cần sử dụng vùng tài nguyên với thời gian khác nhau) 13 Đặc tả: Có n q trình –Process (demo n=2) có nhu cầu sử dụng nguồn tài nguyên – Resource Khi q trình có nhu cầu sử dụng gửi tín hiệu thơng báo cho điều khiển, điều khiển tiếp nhận tín hiệu tiến hành xử lí tín hiệu đó, thời điểm nguồn tài nguyên rảnh báo lại tín hiệu cho q trình phép sử dụng nguồn tài ngun, có q trình sử dụng nó, điều khiển lưu thứ tự q trình có nhu cầu vào hàng đợi đến nguồn tài nguyên rảnh gọi trình sử dụng trước Khi trình sử dụng xong vùng tài nguyên (mặc định sau khoảng thời gian cho trước tương ứng với q trình đó) báo lại cho điều khiển biết rời khỏi tài nguyên Yêu cầu: Q trình có nhu cầu bố trí sử dụng nguồn tài ngun, khơng có xung đột, đảm bảo thời điểm có trình sử dụng Phân tích nhận diện đối tượng hệ thống Hệ thống có q trình (Process1 Process2) nguồn tài nguyên (Resource) Các Process1 Process2 hoạt động song song, đồng với Resource thơng qua kênh: báo tín hiệu yêu cầu sử dụng (appr[i]), dừng (stop[i]), phép sử dụng(go[i]) rời khỏi vùng tài ngun (leave[i]) Mơ hình hóa đối tượng Đối tượng Process1 Được truyền tham số thời gian mà trình sử dụng vùng tài nguyên (delay1), Biến địa phương đồng hồ x - - Gồm trạng thái: Safe, Appr, Stop, Ready, Using Safe: Trạng thái chưa có nhu cầu sử dụng nguồn tài nguyên Appr: Đăng kí sử dụng nguồn tài nguyên Stop: Chờ đến lượt sử dụng Using: sử dụng nguồn tài nguyên Chuyển trạng thái Quá trình trạng thái Safe, có nhu cầu sử dụng nguồn tài ngun gửi tín hiệu (appr[0]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thời gian delay1 (là thời gian mà trình dùng để sử dụng vùng tài nguyên +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu yêu cầu dừng (stop[0]?) từ điều khiển chuyển sang trạng 14 thái Stop, chờ đến nhận tín hiệu cho phép sử dụng (go[0]?) chuyển sang trạng thái Ready sau 7s sử dụng vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà khơng thấy có tín hiệu (stop[0]) chuyển sang trạng thái sử dụng Using Ở trạng thái Using 5s (thời gian để khỏi vùng tài ngun) báo cho điều khiển tín hiệu sử dụng xong (leave[0]!) chuyển sang trạng thái Safe - Ơ-tơ-mát Process1 Đối tượng Process2 Được truyền tham số thời gian mà trình sử dụng vùng tài nguyên (delay2), Biến địa phương đồng hồ x - - Gồm trạng thái: Safe, Appr, Stop, Ready, Using Safe: Trạng thái chưa có nhu cầu sử dụng nguồn tài nguyên Appr: Đăng kí sử dụng nguồn tài nguyên Stop: Chờ đến lượt sử dụng Using: sử dụng nguồn tài nguyên Chuyển trạng thái Quá trình trạng thái Safe, có nhu cầu sử dụng nguồn tài ngun gửi tín hiệu (appr[1]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thời gian delay1 (là thời gian mà trình dùng để sử dụng vùng tài ngun +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu yêu cầu dừng (stop[1]?) từ điều khiển chuyển sang trạng thái Stop, chờ đến nhận tín hiệu cho phép sử dụng (go[1]?) chuyển sang trạng thái Ready sau 7s sử dụng vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà khơng thấy có tín hiệu (stop[1]) chuyển sang trạng thái sử dụng Using Ở trạng thái Using 5s (thời gian để 15 khỏi vùng tài nguyên) báo cho điều khiển tín hiệu sử dụng xong (leave[1]!) chuyển sang trạng thái Safe - Ơ-tơ-mát Process1 Đối tượng Resource - - Khuân mẫu gồm có trạng thái Free, Occ, RS Free: trạng thái nguồn tài nguyên rảnh Occ: trạng thái tiếp nhận thơng tin đăng kí xếp hàng RS: Xếp hàng cho trình Chuyển trạng thái Nếu nguồn tài nguyên trạng thái rảnh mà số q trình có nhu cầu xử dụng hàng đợi >0 gọi trình cho xử dụng trước Nếu khơng có q trình hàng đợi, đồng thời nhận tín hiệu báo có nhu cầu sử dụng xếp vào hàng đợi chuyển sang trạng thái Occ Từ trạng thái Occ tiếp tục nhận tín hiệu có nhu cầu sử dụng xếp vào hàng đợi chuyển qua trạng thái RS- Trạng thái Commited không cho phép trễ, đồng thời gửi tín hiệu stop! cho q trình trở trạng thái Occ Từ trạng thái Occ nhận tín hiệu leave[i]? xóa q trình khỏi hàng đợi chuyển trạng thái Free - Ơ-tơ-mát Resource 16 Khai báo trình sử dụng hệ thống - Mô vận hành hệ thống Mô thay đổi trạng thái đối tượng Mô đồng theo thời gian đối tượng - Kiểm chứng hoạt động hệ thống - Kiểm chứng tính đạt (khả tới trạng thái định) Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) E P1.Using kiểm tra xem q trình có chuyển sang trạng thái Using không E Resource.Occ: kiểm tra xem q trình có chuyển sang trạng thái Occ khơng? - Kiểm tra tính an tồn (một điều ln ln đúng) Cú pháp: A[] E[] A[]P1.Using && P2.Using: đảm bảo thời điểm có nhiều q trình sử dụng vùng tài ngun (tính khơng xung đột) A[] Resource.list[N] == đảm bảo khơng có q n q trình hàng đợi - Kiểm tra tính liveness hệ thống (tính chất đảm bảo điều trước sau xảy ra) Cú pháp: A 𝜑: Chỉ 𝜑 thỏa mãn 17 𝜑 > : Khi 𝜑 thỏa mãn  thỏa mãn P1.Appr > P1.Using: Đảm bảo trình có nhu cầu sử dụng sử dụng P2.Appr > P2.Using E P1.Using and P2.Using: Đảm bảo q trình khác khơng sử dụng E P1.Using and P2.Stop: E P2.Using and P1.Stop: đảm bảo trình sử dụng tất trình khác trạng thái phải chờ - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay khơng Cú pháp A[] not deadlock 3.2.2 Ví dụ Hệ thống điều khiển việc sử dụng chung vùng tài nguyên (có nhiều nhóm q trình có ràng buộc thời gian sử dụng nguồn tài ngun) Có n q trình (demo 4) có nhu cầu sử dụng vùng tài ngun, có nhiều nhóm q trình muốn sử dụng vùng tài nguyên với thời gian khác (demo nhóm: Nhóm có n1 trình muốn dùng vùng tài nguyên thời gian delay1, nhóm có n2 q trình muốn sử dụng vùng tài nguyên với thời gian delay2), hệ thống đảm bảo việc điều khiển cho thời điểm có q trình sử dụng vùng tài ngun trình gửi yêu cầu trước bố trí sử dụng trước Đặc tả: Có nhóm trình –Process1 Process2 (với mã trình đánh số theo cách: nhóm từ đến n1-1; nhóm từ n1 đến n2-1) có nhu cầu sử dụng nguồn tài nguyên – Resource Khi q trình có nhu cầu sử dụng gửi tín hiệu thơng báo cho điều khiển, điều khiển tiếp nhận tín hiệu tiến hành xử lí tín hiệu đó, thời điểm nguồn tài ngun rảnh báo lại tín hiệu cho trình phép sử dụng nguồn tài nguyên, có q trình sử dụng nó, điều khiển lưu thứ tự trình có nhu cầu vào hàng đợi đến nguồn tài ngun rảnh gọi q trình sử dụng trước Khi trình sử dụng xong vùng tài nguyên (mặc định sau khoảng thời gian cho trước tương ứng với q trình đó) báo lại cho điều khiển biết rời khỏi tài nguyên 18 Yêu cầu: Quá trình có nhu cầu bố trí sử dụng nguồn tài ngun, khơng có xung đột, đảm bảo thời điểm có q trình sử dụng Phân tích nhận diện đối tượng hệ thống Hệ thống có nhóm q trình Process1 Process2 (trong nhóm có n1 q trình, nhóm có n2 q trrình) nguồn tài nguyên (Resource) Các Process1 Process2 hoạt động song song, đồng với Resource thông qua kênh: báo tín hiệu yêu cầu sử dụng (appr1[i] appr2[i]), dừng (stop1[i] stop2[i]), phép sử dụng(go1[i] go2[i]) rời khỏi vùng tài ngun (leave[i]) Mơ hình hóa đối tượng Khai báo biến toàn cục Đối tượng Process1 Được truyền tham số mã trình (đánh số từ đến n1-1), Biến địa phương đồng hồ x - - Gồm trạng thái: Safe, Appr, Stop, Ready, Using Safe: Trạng thái chưa có nhu cầu sử dụng nguồn tài nguyên Appr: Đăng kí sử dụng nguồn tài nguyên Stop: Chờ đến lượt sử dụng Using: sử dụng nguồn tài nguyên Chuyển trạng thái Quá trình trạng thái Safe, có nhu cầu sử dụng nguồn tài ngun gửi tín hiệu (appr1[i]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thời gian delay1(demo 20) (là thời gian mà trình dùng để sử dụng vùng tài ngun +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu u cầu dừng (stop1[i]?) từ điều khiển chuyển sang trạng thái Stop, chờ đến nhận tín hiệu cho phép sử dụng (go1[i]?) chuyển sang trạng thái Ready sau 7s sử dụng vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà khơng thấy có tín hiệu (stop1[i]) chuyển sang trạng thái sử dụng Using Ở trạng thái Using 5s (thời gian để khỏi vùng tài nguyên) báo cho điều khiển tín hiệu sử dụng xong (leave[i]!) chuyển sang trạng thái Safe - Ơ-tơ-mát Process1 19 Đối tượng Process2 Được truyền tham số mã trình (được đánh số thứ tự từ n1 đến n2-1), Biến địa phương đồng hồ x - - Gồm trạng thái: Safe, Appr, Stop, Ready, Using Safe: Trạng thái chưa có nhu cầu sử dụng nguồn tài nguyên Appr: Đăng kí sử dụng nguồn tài nguyên Stop: Chờ đến lượt sử dụng Using: sử dụng nguồn tài nguyên Chuyển trạng thái Q trình trạng thái Safe, có nhu cầu sử dụng nguồn tài ngun gửi tín hiệu (appr2[i]!) đến điều khiển chuyển sang trạng thái Appr, đồng hồ x giới hạn khoảng thời gian delay1 (demo 30s, thời gian mà trình dùng để sử dụng vùng tài nguyên +10s chờ tín hiệu) Nếu vòng 10s nhận tín hiệu u cầu dừng (stop2[i]?) từ điều khiển chuyển sang trạng thái Stop, chờ đến nhận tín hiệu cho phép sử dụng (go2[i]?) chuyển sang trạng thái Ready sau 7s sử dụng vùng tài nguyên chuyển sang trạng thái Using Nếu sau 10s mà khơng thấy có tín hiệu (stop2[i]) chuyển sang trạng thái sử dụng Using Ở trạng thái Using 5s (thời gian để khỏi vùng tài nguyên) báo cho điều khiển tín hiệu sử dụng xong (leave[i]!) chuyển sang trạng thái Safe - Ơ-tơ-mát Process2 20 Đối tượng Resource Khai báo biến hàm sử dụng khuân mẫu - - Khuân mẫu gồm có trạng thái Free, CheckP1, CheckP2, Occ, RS1, RS2 Free: trạng thái nguồn tài nguyên rảnh CheckP1, CheckP2: trạng thái kiểm tra xem trình xếp hàng thuộc nhóm Occ: trạng thái tiếp nhận thơng tin đăng kí xếp hàng RS1, RS2: Xếp hàng cho q trình thuộc nhóm nhóm Chuyển trạng thái Nếu nguồn tài nguyên trạng thái rảnh mà số q trình có nhu cầu xử dụng hàng đợi >0 chuyển sang trạng thái kiểm tra xem q trình thuộc nhóm hay nhóm 2, gọi q trình cho sử dụng trước chuyển sang trạng thái Occ Nếu khơng có q trình hàng đợi chuyển sang trạng thái kiểm tra xem tín hiệu báo nhu cầu sử dụng thuộc nhóm hay nhóm 2, đồng thời nhận tín hiệu báo có nhu cầu sử dụng xếp vào hàng đợi chuyển sang trạng thái Occ Từ trạng thái Occ tiếp tục nhận tín hiệu có nhu cầu sử dụng xếp vào hàng đợi chuyển qua trạng thái RS1- thuộc nhóm RS2-nếu thuộc nhóm 2, đồng thời trạng thái Commited khơng cho phép trễ, đồng thời gửi tín hiệu stop1[i]! - thuộc nhóm stop2[i]! - thuộc nhóm trở trạng thái Occ Từ trạng thái Occ nhận tín hiệu leave[i]? xóa q trình khỏi hàng đợi chuyển trạng thái Free 21 - Ơ-tơ-mát Resource - Khai báo trình sử dụng hệ thống Mô vận hành hệ thống Mô thay đổi trạng thái đối tượng Mô đồng theo thời gian đối tượng - Kiểm chứng hoạt động hệ thống - Kiểm chứng tính đạt (khả tới trạng thái định) Cú pháp: E𝜑 (trong 𝜑 cơng thức trạng thái) EProcess1(0).Using kiểm tra xem q trình có chuyển sang trạng thái Using không EProcess1(2).Using E Resource.Occ: kiểm tra xem q trình có chuyển sang trạng thái Occ khơng? - Kiểm tra tính an tồn (một điều ln ln đúng) Cú pháp: A[] E[] A[]Process1(0).Using && Process2(2).Using: đảm bảo thời điểm có nhiều q trình sử dụng vùng tài ngun (tính khơng xung đột) A[] Resource.list[N1+N2] == đảm bảo khơng có q n q trình hàng đợi 22 - Kiểm tra tính liveness hệ thống (tính chất đảm bảo điều trước sau xảy ra) Cú pháp: A 𝜑: Chỉ 𝜑 thỏa mãn 𝜑 > : Khi 𝜑 thỏa mãn  thỏa mãn Process1(0).Appr > Process1(0).Using: Đảm bảo trình có nhu cầu sử dụng sử dụng Process2(2).Appr > Process2(2).Using EProcess1(0).Using imply Process2(3).Stop: đảm bảo trình sử dụng tất trình khác trạng thái phải chờ EProcess1(0).Using and Process2(2).Using: Đảm bảo q trình khác khơng sử dụng - Kiểm tra ơ-tơ-mát có rơi vào deadlock hay không Cú pháp A[] not deadlock KẾT LUẬN Ngày nay, với phát triển ngày mạnh khoa học, kỹ thuật, quân y tế Các hệ thống có yếu tố thời gian ngày trở nên phổ biến khẳng định vị trí quan trọng lĩnh vực đời sống xã hội Việc đặc tả kiểm chứng hệ thống thời gian thực trở nên cấp thiết hết việc đưa công cụ để đặc tả kiểm chứng tự động cho hệ thống thời gian thực xu tất yếu phù hợp với phát triển vũ bão khoa học công nghệ Công cụ kiểm chứng Uppaal với giao diện thân thiện, khả kiểm chứng tối ưu dựa sở mô vận hành hệ thống theo thời gian kiểm chứng đặc tính quan trọng hệ thống tính an tồn, khả đến được, tính not deadlock thơng qua dòng lệnh đơn giản khiến Uppaal trở thành công cụ kiểm chứng tốt hệ thống có yếu tố thời gian Việc nắm bắt sử dụng công cụ tốt Uppaal có ý nghĩa quan trọng, việc xây dựng nên hệ thống đặc trưng có giá trị ứng dụng thực tế, đặc tả kiểm chứng công cụ Uppaal nhiệm vụ cần thiết 23 Tác giả nghiên cứu xây dựng ví dụ hệ thống thời gian giả định có tính ứng dụng thực tế (hệ thống tự động phân loại sản phẩm hệ thống điều khiển việc sử dụng chung nguồn tài nguyên),vận dụng đặc tả kiểm chứng hệ thống cơng cụ Uppaal Đây bước đầu, ví dụ hệ thống đơn giản Hơn điểm hạn chế công cụ phải mô cá hệ thống thời gian thành hệ ô-tô-mát thời gian (một nhiệm vụ dễ dàng người sử dụng) Trong tương lai, tác giả mong muốn mở rộng hệ thống phức tạp với ràng buộc thời gian chặt chẽ hơn, đồng thời tìm hiểu để tự động hóa nhiều từ khâu đặc tả ... gian thực áp dụng vào đặc tả kiểm chứng hệ thống cơng cụ Uppaal Đối với ví dụ tác giả giả định hệ thống thời gian thực, tiến hành đặc tả, mơ hình hóa hệ ơ-tơ-mát thời gian trình soạn thảo Uppaal. .. dịch vụ (hệ Soft Real-Time) Chính tầm quan trọng yếu tố thời gian hệ thống thời gian nên việc kiểm tra tính đắn hệ thống cần thiết Tuy nhiên, việc đặc tả kiểm chứng hệ thống thời gian thực tốn... lĩnh vực đời sống xã hội Việc đặc tả kiểm chứng hệ thống thời gian thực trở nên cấp thiết hết việc đưa công cụ để đặc tả kiểm chứng tự động cho hệ thống thời gian thực xu tất yếu phù hợp với phát

Ngày đăng: 16/01/2018, 16:48