Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
0,96 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶCTẢVÀKIỂMCHỨNGCÁCHỆTHỐNGTHỜIGIANTHỰCSỬDỤNGUPPAAL 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ờigianđặc biệt hệthốngthờigianthự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ốngthờigianthự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ụnghệthốngthờigianthự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ốngthờigian thực, công vệc tác vụ cần phải hoàn thành khoảng thờigian cho phép (deadline), khơng đáp ứng u cầu thờigianhệ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ờigianhệthốngthờigian nên việc kiểm tra tính đắn hệthống cần thiết Tuy nhiên, việc đặctảkiểmchứnghệthốngthờigianthực tốn khó mối quan tâm lớn làm để đặctảkiểmchứng tự động cho hệthốngthờigianthực Bộ công cụ Uppaal đời phần đáp ứng u cầu đó, cơng cụ giúp takiểm định hệthống mơ hình hóa thành hệthống automata thờigian 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 đặctảkiểmchứnghệthốngthờigianthự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ểmchứng Uppaal, sâu vào tìm hiểu ngơn ngữ đặctảUppaal tìm hiểu chế kiểmchứng cơng cụ cho hệthốngthờigianthự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ốngthờigianthực áp dụng vào đặctảkiểmchứnghệthống cơng cụ Uppaal Đối với ví dụ tác giả giả định hệthốngthờigian thực, tiến hành đặc tả, mơ hình hóa hệ ơ-tơ-mát thờigian trình soạn thảo Uppaal sau chạy mô kiểmchứ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: ĐặctảkiểmchứngUppaal Trình bày hiểu biết tác giả công cụ Uppaal cách đặc đả kiểmchứngUppaal Chương 3: Một số ví dụ áp dụng Trình bày ví dụ mà tác giả xây dựnghệthốngthờigian tiến hành đặctảkiểmchứnghệ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ụ UppaalUppaal phần mềm để kiểm tra hệthốngthờigian 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ờigian 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ờigian 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ụ UppaalUPPAALsử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ốngkiể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ờigiansửdụng công cụ đồ họa, mô kiểmchứ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ểmchứ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ờigian 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 takiểm tra hệthống có vận hành khơng, có xung đột khơng) Kiểmchứng (Verifier): Cho phép takiểmchứng tính thựchệ 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 tadùngkiểmchứng riêng dòng lệnh chương trình verifier Nó cho phép tathự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ờigianUppaal 2.2.1 Định nghĩa ô-tô-mát thờigian Một ô-tô-mát thờigian (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ờigianUppaal Ơ-tơ-mát thờigianthự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ờigian trôi qua kiện Các đồng hồ đồng hóa mặt thờigian Trong UPPAAL, hệthống đượ c mơ hình mạng củ a automat thờigian 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 ĐặctảUppaal Một hệthống Ơ-tơ-mát thờigianđặctảUppaalthông qua khung soạn thảo trình bày dạng ơ-tơ-mát thờigian xếp song song, hoạt động độc lập đồng với thông qua kênh đồng Để đặctảhệthống ô-tô-mát thờigianUppaal 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ờigian 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ểmchứngUppaal 2.4.1 Kiểmchứ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ểmchứ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ờigian Ở bước hệthống bị deadlock phát 2.4.2 Kiểmchứng dòng lệnh Uppaal cho phép takiểmchứ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ểmchứng qua dòng lệnh (ngơn ngữ C++) Kiểmchứ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ờigian 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ốngHệ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ờigian 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ờigian cá dối tượng Kiểmchứng hoạt động hệthống - Kiểmchứ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ờigian 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ốngHệ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! Và đế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ờigian cá dối tượng Kiểmchứng hoạt động hệthống - Kiểmchứ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ụngchung vùng tài nguyên (có ràng buộc thờigiansử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ờigian 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ờigian 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ốngHệ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ờigian 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ờigian delay1 (là thờigian 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ờigian 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ờigian delay1 (là thờigian 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ụnghệthống - Mô vận hành hệthống Mô thay đổi trạng thái đối tượng Mô đồng theo thờigian đối tượng - Kiểmchứng hoạt động hệthống - Kiểmchứ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ụngsử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ụngchung vùng tài nguyên (có nhiều nhóm q trình có ràng buộc thờigiansử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ờigian khác (demo nhóm: Nhóm có n1 trình muốn dùng vùng tài nguyên thờigian delay1, nhóm có n2 q trình muốn sửdụng vùng tài nguyên với thờigian 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ờigian 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ốngHệ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ờigian delay1(demo 20) (là thờigian 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ờigian delay1 (demo 30s, thờigian 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ụnghệthống Mô vận hành hệthống Mô thay đổi trạng thái đối tượng Mô đồng theo thờigian đối tượng - Kiểmchứng hoạt động hệthống - Kiểmchứ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ụngsử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áchệthống có yếu tố thờigian 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 đặctảkiểmchứnghệthốngthờigianthực trở nên cấp thiết hết việc đưa công cụ để đặctảkiểmchứng tự động cho hệthốngthờigianthự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ểmchứngUppaal với giao diện thân thiện, khả kiểmchứng tối ưu dựa sở mô vận hành hệthống theo thờigiankiểmchứ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ểmchứng tốt hệthống có yếu tố thờigian 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ụngthực tế, đặctảkiểmchứ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ốngthờigian giả định có tính ứng dụngthự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ụngchung nguồn tài nguyên),vận dụngđặctảkiểmchứnghệ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ốngthờigian thành hệ ô-tô-mát thờigian (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ờigian chặt chẽ hơn, đồng thời tìm hiểu để tự động hóa nhiều từ khâu đặctả ... 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