Đặc tả và kiểm chứng các hệ thống thờI gian thực sử dụng uppaal Đặc tả và kiểm chứng các hệ thống thờI gian thực sử dụng uppaal Đặc tả và kiểm chứng các hệ thống thờI gian thực sử dụng uppaal Đặc tả và kiểm chứng các hệ thống thờI gian thực sử dụng uppaal Đặc tả và kiểm chứng các hệ thống thờI gian thực sử dụng uppaal
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶC TẢ VÀ KIỂM CHỨNG CÁC HỆ THỐNG THỜI GIAN THỰC SỬ DỤNG UPPAAL LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà Nội – 2017 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ TỐ NGA ĐẶC TẢ VÀ 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 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 i MỤC LỤC LỜI CAM ĐOAN iii LỜI CẢM ƠN iv DANH MỤC HÌNH VẼ v CHƯƠNG GIỚI THIỆU 1.1 Đặt vấn đề .1 1.2 Mục tiêu phạm vi đề tài 1.3 Cấu trúc luận văn CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Đặc tả hệ thống .4 2.2 Kiểm chứng hệ thống phần mềm 2.3 Ô-tô-mát thời gian CHƯƠNG ĐẶC TẢ VÀ KIỂM CHỨNG TRONG UPPAAL 3.1 Bộ công cụ Uppaal 3.1.1 Giới thiệu công cụ Uppaal 3.1.2 Tổng quan công cụ Uppaal .9 3.1.2.1 Java Client 10 3.1.2.2 Stand-alone Verifier 16 3.2 Mạng Ơ-tơ-mát thời gian Uppaal 16 3.2.1 Ơ-tơ-mát thời gian Uppaal 16 3.2.2 Mô hình mạng ơ-tơ-mát thời gian Uppaal .17 3.3 Đặc tả Uppaal 19 3.4 Kiểm chứng Uppaal 22 3.4.1 Mô hoạt động hệ thống .22 3.4.2 Kiểm chứng dòng lệnh 23 CHƯƠNG ÁP DỤNG ĐẶC TẢ VÀ KIỂM CHỨNG MỘT SỐ HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ UPPAAL .26 4.1 Hệ thống phân loại .26 4.1.1 Ví dụ1 Hệ thống phân loại bóng theo màu sắc (Hệ thống Bong7mau) 26 4.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) 32 4.2 Hệ thống điều khiển sử dụng vùng tài nguyên 37 4.2.1 Ví dụ Hệ thống điều khiển việc sử dụng chung vùng tài nguyên Process ResourceV1 (có ràng buộc thời gian sử dụng nguồn tài nguyên) 37 4.2.2 Ví dụ Hệ thống điều khiển việc sử dụng chung vùng tài nguyên Process Resource V2(có nhiều nhóm q trình có ràng buộc thời gian sử dụng nguồn tài nguyên) 45 ii KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 54 iii LỜI CAM ĐOAN Tôi xin cam đoan luận văn tốt nghiệp với đề tài “Đặc tả kiểm chứng hệ thống thời gian thực sử dụng Uppaal” cơng trình nghiên cứu riêng hướng dẫn PGS.TS Phạm Ngọc Hùng Các kết tơi trình bày luận văn hồn tồn trung thực chưa cơng bố cơng trình khác Tơi trích dẫn đầy đủ tài liệu tham khảo, cơng trình nghiên cứu liên quan nước quốc tế phần tài liệu tham khảo Ngoại trừ tài liệu tham khảo này, luận văn hoàn tồn cơng việc riêng tơi Nếu có phát gian lận chép tài liệu, cơng trình nghiên cứu tác giả khác mà không ghi rõ phần tài liệu tham khảo, tơi xin chịu hồn tồn trách nhiệm kết luận văn Hà nội, tháng 10 năm 2017 Học viên Phạm Thị Tố Nga iv LỜI CẢM ƠN Tơi xin bày tỏ lịng cảm ơn chân thành sâu sắc đến PGS.TS Phạm Ngọc Hùng hướng dẫn bảo tận tình với định hướng, lời khuyên, kiến thức vô q giá Thầy q trình tơi theo học làm luận văn Tôi xin gửi lời cảm ơn tới Thầy Cô khoa Công nghệ thông tin trường Đại học Công Nghệ- Đại học Quốc gia Hà Nội trang bị cho kiến thức q báu q trình tơi theo học khoa Đây tiền đề để m có kiến thức cần thiết để hoàn thiện luận văn Tôi xin gửi lời cảm ơn tới Thầy Cô giáo anh chị em bạn bè theo học môn Công nghệ Phần mềm tận tình bảo tạo điều kiện tốt để làm việc môn với đầy đủ trang thiết bị cần thiết để tơi hồn thiện tốt luận văn Tôi xin gửi lời cảm ơn chân thành đến lãnh đạo anh chị em đồng nghiệp trường Đại học Đại Nam nơi công tác gia đình, bạn bè, người thân giúp đỡ vật chất lẫn tinh thần để tơi hồn thành luận văn Mặc dù cố gắng luận văn chắn không tránh khỏi thiếu sót, tơi mong nhận ý kiến đánh giá phê bình từ phía Thầy Cơ để luận văn hồn thiện Tôi xin chân thành cảm ơn! Hà nội, tháng 11 năm 2017 Học viên Phạm Thị Tố Nga v DANH MỤC HÌNH VẼ Hình 2.1 Sơ đồ việc kiểm chứng hệ thống……………………………………….5 Hình 2.1 Sơ đồ hoạt động phương pháp kiểm tra mơ hình…………………….6 Hình 3.1 Màn hình khung soạn thảo Uppaal………………………………….9 Hình 3.2 Màn hình khung mơ bước chuyển trạng thái trình hệ thống Train-Gate Uppaal ………………………………… 10 Hình 3.3 Màn hình khung mơ bước chuyển hệ thống theo thời gian Train-Gate Uppaal ………………………………… …………………….11 Hình 3.4 Màn hình khung kiểm chứng hệ thống Train-Gate………………11 Hình 3.5 Mạng ơ-tơ-mát thời gian hệ thống điều khiển đèn……………17 Hình 3.6 Ơ-tơ-mát tích ơ-tơ-mát cơng tắc đèn người dùng (hình 2.5)…….18 Hình 3.7 Màn hình thể việc dùng nút Add location vẽ trạng thái……….19 Hình 3.8 Màn hình dùng chức Edit để khai báo cho nút……………………19 Hình 3.9 Màn hình dùng lệnh Add Edge………………………………… …… 20 Hình 3.10 Màn hình dùng chức Edit Edge để khai báo cho cạnh…………21 Hình 3.11 Màn hình thể chức kiểm chứng………………………… 24 Hình 4.1 Ơ-tơ-mát Sensorcủa hệ thống Bong7mau……………………………….26 Hình 4.2 Ơ-tơ-mát PushDoor hệ thống Bong7mau…………………………27 Hình 4.3 Màn hình chức mô Simulation hệ thống Bong7mau… 28 Hình 4.4 Màn hình chức mơ Simulation hệ thống Bong7mau… 29 Hình 4.5 Màn hình chức kiểm chứng Verifier hệ thống Bong7mau… 30 Hình 4.6 Ơ-tơ-mát Potato hệ thống Potato…….…….…….…….…….…….32 Hình 4.7 Ơ-tơ-mát Sensor…….…….…….…….…….…….…….…….…….… 33 Hình 4.8 Ơ-tơ-mát Adoor hệ thống Potato…….…….…….…….…….…… 33 Hình 4.9 Ơ-tơ-mát Bdoor hệ thống Potato…….…….…….…….…….…… 34 Hình 4.10 Màn hình chức mơ Simulation hệ thống Potato………34 vi Hình 4.11 Màn hình chức mơ Simulation hệ thống Potato……35 Hình 4.12 Ơ-tơ-mát Process1 hệ thống Process ResourceV1……… 38 Hình 4.13 Ơ-tơ-mát Process2 hệ thống Process ResourceV1…….…… 39 Hình 4.14 Ơ-tơ-mát Resource hệ thống Process ResourceV1…….……….41 Hình 4.15 Màn hình mô vận hành hệ thống Process ResourceV1 42 Hình 4.16 Ơ-tơ-mát Process1 hệ thống Process-Resource V2…….…….…45 Hình 4.17 Ơ-tơ-mát Process2 hệ thống Process-Resource V2…….…….…46 Hình 4.18 Ơ-tơ-mát Resource hệ thống Process Resource V2…….…….….49 Hình 4.19 Màn hình mơ vận hành hệ thống Process ResourceV2 50 Hình 4.20 Màn hình mơ vận hành hệ thống Process ResourceV2 .50 CHƯƠNG 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ịn 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 yêu cầu thời gian hệ thống sụp đổ gây hậu nghiêm trọng (hệ thời gian thực cứng: Hard RealTime) bị suy giảm chất lượng dịch vụ (hệ thời gian thực mềm: Soft Real-Time) [6, 9] 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 Việc kiểm tra tính đắn hệ thống thực khâu kiểm thử kiểm chứng Tuy nhiên, với hệ thống có ràng buộc thời gian tầm quan trọng hệ thống mà việc kiểm thử không kiểm tra hết mà chủ yếu tập chung khâu kiểm chứng [10] Việc kiểm chứng tính đắn hệ thống nhằm kiểm tra xem hệ thống có vận hành u cầu khơng, muốn cần phải có mơ vận hành hệ thống, cần có bước kiểm tra quy trình vận hành có đảm bảo tính chất hệ thống như: tính đến trạng thái, tính an tồn, tính liên tục theo thời gian (không bị dừng – not deadlock) [10, 11] Muốn làm điều cần phải có cơng cụ mơ tả vận hành hệ thống, qua mơ vận hành từ kiểm tra vận hành có thỏa mãn yêu cầu hệ thống hay không Đây thực mối quan tâm lớn vấn đề kiểm chứng nói riêng cơng nghệ phần mềm nói chung Hiện có nhiều công cụ cho phép kiểm chứng tự động hệ thống phần mềm có yếu tố thời gian như: SPIN, LTSmin, mCRL2, MRMC, PAT, TAPAL, DREAM, ROMEO, UPPAAL … Trong cơng cụ Uppaal thể tính mạnh mà cơng cụ khác khơng có việc mô vận hành hệ thống thời gian thực kiểm chứng vận hành hệ thống câu lệnh đơn giản Công cụ giúp ta kiểm chứng hệ thống mơ hình hóa thành hệ thống ơ-tơ-mát 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 Nhưng bên cạnh việc sử dụng công cụ Uppaal kiểm chứng hệ thống có yếu tố thời gian địi hỏi người sử dụng có trình độ định việc đặc tả hệ thống dạng ô-tô-mát thời gian điều khiển vận hành tương tác ơ-tơmát thơng qua ngơn ngữ lập trình [7, 8] 1.2 Mục tiêu phạm vi đề tài 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 cách đặc tả hệ thống phần mềm dạng ô-tô-mát thời gian điều khiển vận hành hệ thống thơng qua ngơn ngữ lập trình C++, 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 1.3 Cấu trúc luận văn Phần cịn lại luận văn trình bày thành ba chương: Ở chương 2, tác giả trình bày sở lí thuyết cần thiết cho việc nghiên cứu đề tài Sang chương 3, tác giả nêu hiểu biết tác giả công cụ Uppaal cách đặc đả hệ thống phần mềm dạng ô-tô-mát thời gian phương pháp mô kiểm chứng Uppaal Chương 4, tác giả trình bày số ví dụ áp dụng mà tác giả xây dựng sau tìm hiểu cơng cụ Uppaal Chương tác giả trình bày bốn ví dụ mà tác giả xây dựng bốn hệ thống thời gian tiến hành đặc tả kiểm chứng hệ thống qua cơng cụ Uppaal Cuối phần kết luận, tác giả tóm tắt cơng việc mà tác 41 Hình 4.13 Ơ-tơ-mát Process2 hệ thống Process ResourceV1 Khn mẫu Resource khai báo biến hàm sử dụng khuôn mẫu sau: id_t list[N+1]; int[0,N] len; // Put an element at the end of the queue void enqueue(id_t element) { list[len++] = element; } // Remove the front element of the queue void dequeue() { int i = 0; len -= 1; 42 while (i < len) { list[i] = list[i + 1]; i++; } list[i] = 0; } // Returns the front element of the queue id_t front() { return list[0]; } // Returns the last element of the queue id_t tail() { return list[len - 1]; } Khn mẫu gồm có ba trạng thái Free; Occ; RS Trong đó: 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 trạng thái xếp hàng cho trình (trạng thái trạng thái Committed) Các bước chuyển trạng thái khuôn mẫu diễn tả sau: Nếu nguồn tài nguyên trạng thái rảnh mà số trình có nhu cầu xử dụng hàng đợi lớn khơng gọi q trình cho sử 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 43 Hình 4.14 Ơ-tơ-mát Resource hệ thống Process ResourceV1 tiếp tục nhận tín hiệu từ q trình khác có nhu cầu sử dụng xếp q trình 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 Dựa vào phân tích trạng thái bước chuyển trạng thái, ô-tô-mát Resource thiết kế sau (xem hình 4.14) Khai báo trình sử dụng hệ thống mục System declaration sau: const int delay1=20; // thời gian trình sử dụng vùng tài nguyên; const int delay2=30;// thời gian trình sử dụng vùng tài nguyên; P1=Process1(delay1); P2=Process2(delay2); system P1, P2, Resource; Bước Mô vận hành hệ thống Khi kết thúc bước mà khơng có lỗi hệ thống cho phép chạy mô vận hành hệ thống hai hình thức khác thay đổi trạng thái đối tượng mô đồng theo thời gian đối tượng (xem hình 4.15) 44 Hình 4.15 Màn hình mơ vận hành hệ thống Process ResourceV1 Bước Kiểm chứng hoạt động hệ thống Chức Verifier Uppaal cho phép kiểm chứng tính chất hệ thống thơng qua câu lệnh cụ thể như: - Kiểm chứng tính đạt (khả tới trạng thái định) E P1.Using kiểm tra xem trình có chuyển sang trạng thái Using khơng Tương tự cho trình 2, ta sử dụng câu lệnh: E P2.Using E Resource.Occ kiểm tra xem trình Resource có chuyển sang trạng thái Occ khơng - Kiểm chứng tính an tồn (một điều ln đúng) 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) P1.Appr > P1.Using: Đảm bảo q trình có nhu cầu sử dụng sử dụng Tương tự cho trình ta sử dụng câu lệnh: P2.Appr > P2.Using 45 E P1.Using and P2.Using: Đảm bảo trình khác khơng sử dụng Hoặc câu lệnh: E P1.Using and P2.Stop hay 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 chứng ơ-tơ-mát có rơi vào deadlock hay không ta sử dụng cú pháp A[] not deadlock 4.2.2 Ví dụ Hệ thống điều khiển việc sử dụng chung vùng tài nguyên Process Resource V2(có nhiều nhóm q trình có ràng buộc thời gian sử dụng nguồn tài nguyên) Ví dụ mở rộng ví dụ 3, ta giả thiết lúc hệ thống có n q trình (demo 4) có nhu cầu sử dụng chung vùng tài nguyên, 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 q trình muốn dùng vùng tài nguyên thời gian delay1, nhóm có N2 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 nguyên trình gửi yêu cầu trước bố trí sử dụng trước Đặc tả: Hệ thống có nhóm q 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 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 nguyên, 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 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 ngun 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ó q trình sử dụng Phân tích nhận diện đối tượng hệ thống 46 Hệ thống có nhóm q trình Process1 Process2 (trong nhóm có N1 q trình, nhóm có N2 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 const int N1 = 2; // # Process1 const int N2 = 2; // # Process2 typedef int[0,N1-1] id_t1; // Mã trình typedef int[N1,N1+N2-1] id_t2; // Mã trình typedef int[0,N1+N2-1] id_t3; chan appr1[N1], stop1[N1], leave[N1+N2], appr2[N1+N2], stop2[N1+N2]; //các tín hiệu đồng mơ hình urgent chan go1[N1],go2[N1+N2]; // khơng có trễ đồng chuyển tiếp Khuôn mẫu Process1 Được truyền tham số mã trình (đánh số từ đến N1-1), biến địa phương đồng hồ x Quá trình gồm nă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 trạng thái đăng kí sử dụng nguồn tài nguyên; Stop trạng thái chờ đến lượt sử dụng; Using trạng thái sử dụng nguồn tài nguyên Các bước chuyển trạng thái trình diễn tả sau: Process1 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 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 (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ó 47 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 ngun) 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 Hình 4.16 Ơ-tơ-mát Process1 hệ thống Process-Resource V2 Dựa vào phân tích trạng thái bước chuyển trạng thái ô-tô-mát Process1 thiết kế sau (xem hình 4.16): Khn mẫu 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 Khuôn mẫu 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 trạng thái đăng kí sử dụng nguồn tài nguyên; Stop trạng thái chờ đến lượt sử dụng; Using trạng thái sử dụng nguồn tài nguyên Các bước chuyển trạng thái khuôn mẫu diễn tả sau: Process2 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 delay2 (demo 30s, 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 (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 48 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 Với phân tích trạng thái bước chuyển trạng thái trên, ô-tô-mát Process2 thiết kế sau (xem hình 4.17): Hình 4.17 Ơ-tơ-mát Process2 hệ thống Process-Resource V2 Khuôn mẫu Resource Khuôn mẫu khai báo biến hàm sau: id_t3 list[N1+N2+1]; int[0,N1+N2] len; // Put an element at the end of the queue void enqueue(id_t3 element) { list[len++] = element; } // Remove the front element of the queue void dequeue() 49 { int i = 0; len -= 1; while (i < len) { list[i] = list[i + 1]; i++; } list[i] = 0; } // Returns the front element of the queue id_t3 front() { return list[0]; } // Returns the last element of the queue id_t3 tail() { return list[len - 1]; } Khuôn mẫu gồm có sáu 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 nào; Occ trạng thái tiếp nhận thơng tin đăng kí xếp hàng; RS1, RS2 trạng thái xếp hàng cho q trình thuộc nhóm nhóm Các bước chuyển trạng thái diễn tả sau: 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 lớn khơng chuyển sang trạng thái kiểm tra xem q trình thuộc nhóm 50 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 Ơ-tơ-mát Resource thiết kế sau (xem hình 4.18): Hình 4.18 Ơ-tơ-mát Resource hệ thống Process Resource V2 Việc khai báo trình sử dụng hệ thống thực câu lệnh sau: system Process1, Process2, Resource; Mô vận hành hệ thống 51 - Mô thay đổi trạng thái đối tượng (xem hình 4.19) Hình 4.19 Màn hình mô vận hành hệ thống Process ResourceV2 - Mô đồng theo thời gian đối tượng (xem hình 4.20) Hình 4.20 Màn hình mô vận hành hệ thống Process ResourceV2 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) 52 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 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 q 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 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 53 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 Tác giả tìm hiểu sử dụng thành thạo công cụ kiểm chứng Uppaal đồng thời 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 đặc tả kiểm chứng cho 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ả 54 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [1] Đỗ Đức Giáo (2000), Toán rời rạc, NXB Đại học Quốc Gia Hà Nội, Hà Nội [2] Phan Đình Diệu (1997), Lý thuyết ơ-tơ-mát thuật tốn, NXB Đại học Trung học chuyên nghiệp, Hà nội [3] Vũ Đức Thi (1999), Thuật toán tin học, NXB Khoa học Kỹ thuật, Hà Nội TIẾNG ANH [4] A Belinfante, J Feenstra, R d Vries, J Tretmans, N Goga, L Feijs, S Mauw, and L Heerink (1999), “Formal test automation: A simple experiment” In 12th Int Workshop on Testing of Communicating Systems, pp 179–196 [5] Christel Baier, Joost - Pieter Katoen (2008), Principles of Model Checking, The MIT Press Cambridge, Massachusetts London, England, chepter 1,9 [6] Edmund M Clarke (2008), “The Birth of Model Checking”, Book 25 Years of Model Checking, pp 1-26 [7] Gerd Behrmann, Alexandre David, and Kim G Larsen (2006), “A Tutorial on Uppaal 4.0”, Department of Computer Science, Aalborg University, Denmark [8] Johan Bengtsson Kim Larsen, Fredrik Larsson, Paul Pettersson, Wang Yi (1996), “UPPAAL — a Tool Suite for Automatic Verification of Real–Time Systems”, Proceedings of the DIMACS/SYCON workshop on Hybird systems III: verification and control, pp 232-243 [9] Kim G Larsen, Paul Pettersson, Wang Yi 1991 Model - Checking for Real Time Systems Proceedings of the 18th international colloquium on Automata, languages and programming Page 115-126 [10] Kim G Larsen, Paul Pettersson, and Wang Yi (1996), “Diagnostic ModelChecking for Real-Time Systems” Appears in Alur, Henzinger and Sontag, editors, DIMACS Workshop on Verification and Control of Hybrid Systems, HYBRID ’96 Proceedings, pp 575–586 55 [11] Le Vo Hue Quan (2012) “Model Checking Real-Time Systems with Schedulers” Japan Adv anced Institute of Science and Technology [12] Luca de Alfaro and Thomas A Henzinger (2001), “Interface Automata”, Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering, pp 109-120 [13] Marius Mikucionis Kim G, Larsen Brian Nielsen (2004), “T-UPPAAL: Online Model-based Testing of Real-time Systems” Proceeding ASE '04 Proceedings of the 19th IEEE international conference on Automated software engineering, pp 396-397 [14] Rajeev Ah and David L Dill (1994), “A theory of timed automata”, Theoretical Computer Science 126 (1994), pp 183-235 [15] Wang Yi, Paul Pettersson, and Mats Daniels (1995), “Automatic Verification of Real-Time Communicating Systems by Constraint-Solving”, Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII, pp 243-258 [16] UPPAAL W S www.uppaal.com ... 3.3 Đặc tả Uppaal Việc đặc tả hệ thống thời gian thực Uppaal đặc tả hình thức Trong cơng cụ Uppaal hệ thống có yếu tố thời gian mơ hình hóa thành mạng ơ-tơ-mát thời gian gồm ơ-tơ-mát thời gian. .. 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. .. 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 Nhưng bên cạnh việc sử dụng cơng cụ Uppaal kiểm chứng hệ thống có yếu tố thời gian địi