1. Trang chủ
  2. » Thể loại khác

Luận văn tìm hiểu về ôtomat thời gian và ứng dụng trong đặc tả các hệ thống thời gian thực

41 7 0

Đ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

Thông tin cơ bản

Tiêu đề Luận Văn Tìm Hiểu Về Ôtomat Thời Gian Và Ứng Dụng Trong Đặc Tả Các Hệ Thống Thời Gian Thực
Tác giả Đặng Thanh Tâm
Người hướng dẫn Thầy Đỗ Văn Chiểu
Trường học Học viện Kỹ thuật Quân sự
Chuyên ngành Công nghệ thông tin
Thể loại khóa luận
Năm xuất bản 2010
Thành phố Hải Phòng
Định dạng
Số trang 41
Dung lượng 1,16 MB

Cấu trúc

  • CHƯƠNG 1: TÌM HIỂU VỀ MODEL CHECKING VÀ LÝ THUYẾT VỀ HỆ THỜI GIAN THỰC (6)
    • 1.1 ĐÔI NÉT VỀ MÔ HÌNH KIỂM TRA (MODEL CHECKING) TRONG CÔNG NGHỆ PHẦN MỀM (6)
      • 1.1.1 Các yêu cầu của mô hình hệ thống (7)
    • 1.2 GIỚI THIỆU VỀ HỆ THỜI GIAN THỰC (7)
      • 1.2.1 Khái niệm (7)
      • 1.2.2 Đặc điểm của hệ thống thời gian thực (8)
      • 1.2.3 Cấu tạo hệ thời gian thực (9)
      • 1.2.4 Hệ điều hành thời gian thực (9)
      • 1.2.5 Vì sao chọn hệ thời gian thực (10)
  • CHƯƠNG 2: LÝ THUYẾT VỀ OTOMAT THỜI GIAN (12)
    • 2.1 ĐỊNH NGHĨA OTOMAT THOI GIAN (12)
    • 2.2 KHÁI NIỆM VỀ OTOMAT THỜI GIAN (12)
      • 2.2.1 Mô tả cách dịch chuyển các trạng thái từng thành phần của TRAIN, GATE, CONTROLLER như sau (12)
      • 2.2.2 Định nghĩa 2 (ngữ nghĩa của TA) (15)
      • 2.2.3 Định nghĩa của một mạng otomat thời gian (Semantics of a (16)
  • CHƯƠNG 3: THỬ NGHIỆM ĐẶC TẢ HỆ THỐNG VỚI CÔNG CỤ (17)
    • 3.1 GIỚI THIỆU (17)
      • 3.1.1 Phát hành (17)
      • 3.1.2 Cài đặt (17)
      • 3.1.3 UPPAAL trợ giúp (18)
      • 3.1.4 Mô hình hệ thống EDITOR (Biên tập) (18)
      • 3.1.5 SIMULATOR (Mô phỏng) (19)
      • 3.1.6 VERIFIER (Xác minh) (19)
      • 3.1.7 Mô tả hệ thống (19)
      • 3.1.8 TEMPLATES (Các mẫu) (19)
      • 3.1.9 Tham số (20)
      • 3.1.10 Các dòng lệnh (Command Line) (22)
      • 3.1.11 Help (23)
      • 3.1.12 Vẽ (23)
      • 3.1.13 Thanh công cụ (Tool Bar) (25)
    • 3.2 VÍ DỤ ĐẶC TẢ MÔ HÌNH TRAIN – GATE BẰNG UPPAAL (31)
      • 3.2.1 Mô tả Train Gate (35)
      • 3.2.2 Mô hình trong Upaal ....................................................................... 36 3.2.3 Thẩm định ....................................... Error! Bookmark not defined (36)

Nội dung

TÌM HIỂU VỀ MODEL CHECKING VÀ LÝ THUYẾT VỀ HỆ THỜI GIAN THỰC

ĐÔI NÉT VỀ MÔ HÌNH KIỂM TRA (MODEL CHECKING) TRONG CÔNG NGHỆ PHẦN MỀM

Trong lĩnh vực khoa học máy tính, kiểm tra mô hình (model checking) là một phương pháp tự động để xác minh xem một mô hình hệ thống có đáp ứng các đặc điểm kỹ thuật nhất định hay không Đặc biệt, trong các hệ thống phần cứng và phần mềm, yêu cầu về an toàn (safety) là rất quan trọng, bao gồm việc ngăn chặn deadlocks và các trạng thái nguy hiểm có thể dẫn đến sự cố hệ thống Để thực hiện kiểm tra này, cả mô hình hệ thống và đặc điểm kỹ thuật được diễn đạt bằng ngôn ngữ toán học chính xác Cuối cùng, nhiệm vụ kiểm tra là xác định xem liệu một công thức logic có thỏa mãn cấu trúc của mô hình hay không.

Model checking là một kỹ thuật kiểm định hiệu quả cho các hệ thống hữu hạn trạng thái đồng thời, như thiết kế mạch tuần tự và giao thức giao tiếp So với các phương pháp truyền thống như mô phỏng và lập luận, model checking mang lại nhiều lợi ích vượt trội Kỹ thuật này hoàn toàn tự động và nhanh chóng; nếu phát hiện lỗi trong thiết kế, model checking sẽ cung cấp phản ví dụ giúp xác định nguồn gốc của lỗi.

Thách thức lớn nhất trong Model checking là xử lý vấn đề bùng nổ trạng thái, đặc biệt trong các hệ thống có nhiều thành phần tương tác hoặc cấu trúc dữ liệu phức tạp với khả năng giả định nhiều dữ liệu khác nhau Trong những trường hợp này, số lượng trạng thái toàn cục có thể trở nên rất lớn Tuy nhiên, các nhà nghiên cứu đã đạt được những tiến bộ đáng kể trong việc giải quyết các bài toán này trong những năm gần đây.

1.1.1 Các yêu cầu của mô hình hệ thống

Safety (an toàn): Hệ thống sẽ không phát sinh lỗi (some thing bad will never happen).

Liveness: Thuộc tính này đảm bảo rằng thuộc tính tốt nhất định sẽ xảy ra.(something “good” will happen but we don’t know when)

GIỚI THIỆU VỀ HỆ THỜI GIAN THỰC

Trong tài liệu và thực tế, khái niệm thời gian thực và hệ thống thời gian thực thường không được hiểu thống nhất Nhiều người cho rằng hệ thống thời gian thực yêu cầu xử lý nhanh chóng, như trong các hệ thống điều khiển tay máy hay động cơ Ngược lại, một số người lại định nghĩa thời gian thực là thời gian tuyệt đối, với hệ thống thời gian thực hoạt động theo giờ, phút, giây, ngày, tháng Vậy, cách hiểu đúng về hệ thống thời gian thực là gì?

Hệ thống thời gian thực (RTS - Real Time System) là một loại hệ thống mà tính chính xác không chỉ dựa vào các kết quả logic mà còn phụ thuộc vào thời điểm mà những kết quả này được sản xuất.

Hệ thống thời gian thực là một hệ thống mà tính đáng tin cậy không chỉ dựa vào độ chính xác của kết quả mà còn phụ thuộc vào thời điểm cung cấp kết quả Nếu không đáp ứng được yêu cầu về thời gian, hệ thống sẽ bị coi là có lỗi.

Hệ thống thời gian thực được thiết kế nhằm trả lời lại các yếu tố kích thích phát sinh từ các thiết bị phần cứng

Trong thực tế, các yếu tố kích thích xảy ra trong khoảng thời gian rất ngắn, chỉ vài mili giây Hệ thống phản ứng tốt nhất với các yếu tố kích thích này trong vòng dưới một giây Thời gian cần thiết để xử lý một sự kiện như vậy được gọi là dealtime, được xác định bởi thời gian bắt đầu và thời gian hoàn tất công việc.

Trong hệ thống thời gian thực (RTS), việc xác định tính tuần hoàn của các công việc là rất quan trọng Các công việc tuần hoàn có dealtime được xác định theo chu kỳ cụ thể, trong khi công việc không tuần hoàn có dealtime được xác định tại thời điểm bắt đầu Thông thường, các sự kiện kích hoạt công việc không tuần hoàn dựa vào kỹ thuật xử lý ngắt của phần cứng.

Hệ thống thời gian thực là hệ thống hoạt động với các sự kiện tức thời, nhưng không phải mọi hệ thống đều có khả năng đáp ứng ngay lập tức như mong muốn Khi phát triển ứng dụng phần mềm, mục tiêu là giảm thiểu thời gian trễ trong việc đưa ra lệnh hoặc quyết định Tương tự, trong ứng dụng phần cứng, thời gian phản hồi cho một sự kiện cũng cần gần như tức thời Tuy nhiên, thực tế cho thấy rằng các hệ thống đáp ứng sự kiện luôn có một mức độ trễ nhất định Do đó, khái niệm "hệ thống thời gian thực" được hiểu là hệ thống có khả năng đáp ứng sự kiện trong một khoảng thời gian trễ chấp nhận được, với các ràng buộc thời gian đối với hành động của hệ thống.

1.2.2 Đặc điểm của hệ thống thời gian thực

Tính bị động trong hệ thống yêu cầu phản ứng kịp thời trước các sự kiện xảy ra vào những thời điểm không thể dự đoán Chẳng hạn, khi giá trị đo vượt ngưỡng hoặc trạng thái của thiết bị quá trình thay đổi, bộ điều khiển cần thực hiện các phản ứng thích hợp để đảm bảo hoạt động ổn định.

Tính nhanh nhạy của hệ thống là khả năng xử lý thông tin nhanh chóng để đưa ra kết quả phản ứng kịp thời Mặc dù đây là một đặc điểm quan trọng, một hệ thống thời gian thực không nhất thiết phải có tốc độ đáp ứng nhanh mà cần phải phản ứng đúng lúc với các yêu cầu và tác động từ bên ngoài.

Tính đồng thời trong hệ thống cho phép phản ứng và xử lý nhiều sự kiện cùng lúc Điều này có nghĩa là bộ điều khiển có thể thực hiện nhiều vòng điều chỉnh, giám sát ngưỡng giá trị từ nhiều đầu vào và theo dõi trạng thái làm việc của một số động cơ đồng thời.

Tính tiền định trong hệ thống điều khiển cho phép dự đoán thời gian phản ứng tiêu biểu và thời gian phản ứng chậm nhất, đồng thời xác định trình tự thực hiện các nhiệm vụ Khi một bộ điều khiển phải xử lý nhiều nhiệm vụ đồng thời, việc quyết định trình tự thực hiện và đánh giá thời gian xử lý cho mỗi công việc là rất quan trọng Nhờ đó, người sử dụng có thể đánh giá khả năng đáp ứng thời gian thực của hệ thống một cách chính xác.

1.2.3 Cấu tạo hệ thời gian thực

RTS có cấu tạo từ các thành tố chính sau: Đồng hồ thời gian thực: cung cấp thông tin thời gian thực

Bộ điều khiển ngắt: quản lý các biến cố không theo chu kỳ

Bộ định biểu: quản lý các quy trình thực hiện

Bộ quản lý tài nguyên: cung cấp các tài nguyên máy tính

Bộ điều khiển thực hiện: khởi động các tiến trình

Các thành tố có thể được phân loại thành cứng hoặc mềm dựa trên hệ thống và mục đích sử dụng Thông thường, các RTS tích hợp vào phần cứng hoạt động hiệu quả hơn so với hệ thống phần mềm tương ứng, giúp tiết kiệm chi phí tối ưu hóa phần mềm.

Hệ thống thời gian thực là những hệ thống có yêu cầu về thời gian cụ thể Tuy nhiên, nếu thời gian phản hồi vượt quá giới hạn cho phép, hệ thống vẫn có thể hoạt động bình thường mà không gây ra tác động nghiêm trọng.

1.2.4 Hệ điều hành thời gian thực

Các hệ thống thông thường tập trung vào tính chính xác và năng lực thực hiện ở mức chấp nhận được Ngược lại, các hệ thống thời gian thực nhấn mạnh vào tính chính xác, tính kịp thời và sự nhất quán trong hoạt động.

Hệ điều hành thời gian thực chia sẻ nhiều chức năng với các hệ điều hành thông thường, nhưng đặc biệt hơn, chúng phải đáp ứng các tiêu chí riêng biệt của hệ thống thời gian thực.

Hệ điều hành thời gian thực yêu cầu khả năng dự đoán chính xác và nhận biết, điều khiển tất cả các thành phần hệ thống, điều này khác biệt so với các hệ điều hành truyền thống nơi phần cứng thường bị ẩn hoặc trừu tượng hóa Người sử dụng cần truy cập và kiểm soát hành vi của các thành phần hệ thống để đảm bảo tính tiên đoán được Ngoài ra, hệ điều hành thời gian thực cần phải là hệ thống mở, định nghĩa một tập hợp các cơ chế mềm dẻo và linh hoạt, thay vì tập trung vào một chiến lược cụ thể.

1.2.5 Vì sao chọn hệ thời gian thực

LÝ THUYẾT VỀ OTOMAT THỜI GIAN

ĐỊNH NGHĨA OTOMAT THOI GIAN

Một otomat thời gian (timed automata-TA) là một tập gồm 6 thành phần ( L, l 0,

L là tập các trạng thái (locations) l 0 L là trạng thái ban đầu

C là tập các đồng hồ

A là tập các hành động (actions)

E L×A×B(C)×2 C × L là một tập các cạnh giữa các trạng thái với một hành động, một ràng buộc là bộ đồng hồ phải được Reset về 0

I : L → B(C) chỉ định bất biến cho các trạng thái.

KHÁI NIỆM VỀ OTOMAT THỜI GIAN

Otomat thời gian thực là một máy hữu hạn trạng thái có các đồng hồ, mỗi đồng hồ là một hàm ánh xạ vào tập số thực không âm, ghi lại thời gian giữa các sự kiện Các đồng hồ này được đồng bộ hóa về mặt thời gian.

Hệ thống điều khiển tự động cho việc mở và đóng cổng tại giao nhau đường sắt bao gồm ba thành phần chính: tàu (TRAIN), cổng (GATE) và bộ điều khiển (CONTROLLER).

2.2.1 Mô tả cách dịch chuyển các trạng thái từng thành phần của TRAIN, GATE, CONTROLLER nhƣ sau :

 Mô tả mô hình TRAIN (tàu):

+ Tập các hành động là A = approach, exit, in, out, id T trạng thái bắt đầu là s 0 + Với L là tập các vị trí s 0 L là vị trí ban đầu

+ E là một ràng buộc đồng hồ phải reset về 0

+ I : L → B(C) chỉ định bất biến cho các trạng thái

Tại vị trí ban đầu s0, tàu thực hiện hành động id T để thời gian trôi qua trước khi vào cổng Tàu sẽ truyền tín hiệu đến bộ điều khiển (controller) với hai hành động chính là tiếp cận.

Khi tàu tiếp cận vị trí s1, bộ điều khiển sẽ reset đồng hồ thời gian về 0 Nếu trong khoảng thời gian x > 2, tàu sẽ tiếp tục di chuyển đến vị trí s2 Ngay sau đó, tàu sẽ rời khỏi vị trí s2 và tiến thẳng đến vị trí s3 Lúc này, nếu đồng hồ thời gian chạy với x < 5, bộ điều khiển sẽ nhận lệnh cho tàu thoát và đồng hồ lại được reset về 0.

 Mô tả mô hình GATE (cổng)

+ Tập các hành động là A = {lower, down, raise, up}

+ Với L là tập các vị trí s 0 L là vị trí ban đầu

+ E là một ràng buộc đồng hồ phải reset về 0

+ I : L → B(C) chỉ định bất biến cho các trạng thái

Tại vị trí s0, cổng (GATE) chưa nhận tín hiệu từ bộ điều khiển với hành động id G, đồng hồ thời gian y được reset về 0 Khi tàu chuyển sang trạng thái s1, cổng nhận tín hiệu từ bộ điều khiển với hành động hạ xuống (lower) Tại s1, nếu đồng hồ trong khoảng thời gian y < 1, bộ điều khiển phát tín hiệu cho tàu đi xuống (down) và cổng chuyển sang trạng thái s2 Tại s2, cổng ở trạng thái id G, bộ điều khiển sẽ reset đồng hồ thời gian y về 0 để tiếp tục nhận tín hiệu với hành động kéo lên (raise) và chuyển sang vị trí s3 Trong khoảng thời gian 1 < y < 2, tàu được đi lên và cổng quay về trạng thái ban đầu s0 với hành động id G.

 Mô hình mô tả bộ điều khiển(CONTROLLER)

+ Tập các hành động là A = {approach, exit, raise, lower, idC}

+ Với L là tập các vị trí s 0 L là vị trí ban đầu

+ E là một ràng buộc đồng hồ phải reset về 0

+ I : L → B(C) chỉ định bất biến cho các trạng thái

Tại vị trí s0, bộ điều khiển (CONTROLLER) bắt đầu với hành động id C, thiết lập đồng hồ z = 0 và chuyển sang trạng thái s1 Khi ở trạng thái s1, nếu trong khoảng thời gian z = 1 xảy ra hành động hạ xuống từ cổng GATE (lower), bộ điều khiển sẽ chuyển sang trạng thái s2 và đồng hồ z được thiết lập lại.

Khi giá trị z nhỏ hơn 1, bộ điều khiển sẽ chuyển sang trạng thái s3 khi gặp hành động thoát Sau đó, khi nhận được hành động kéo lên từ cổng GATE, bộ điều khiển sẽ trở về vị trí ban đầu s0 với hành động id C.

Hình 5 Mô hình CONTROLLER 2.2.2 Định nghĩa 2 (ngữ nghĩa của TA)

Cho (L, l0, C, A, E, I) là một Otomat thời gian, trong đó ngữ nghĩa của TA được định nghĩa như một hệ dịch chuyển có gán nhãn Tập các trạng thái S là L × R, với s0 = (l0, u0) là trạng thái ban đầu Sự truyền → giữa các trạng thái được xác định bởi mối quan hệ S × {IR≥0 A} × S.

− (l’, u’ ) nếu có e = (l, a, g, r, l’ ) E sao cho u g, u’ = [r → 0] u, và u’ I

(l) mà d R ≥0 , u + d ánh xạ mỗi đồng hồ x trong C đến giá trị u (x) + d, và [r → 0] u biểu thị giá trị đồng hồ ,mỗi giá trị trên đồng hồ là r = 0 và u nếu u thuộc C \ r

Một mạng Otomat là một Otomat bao gồm nhiều các Otomat thành phần được biểu diễn như sau: Cho A i = (L i , l i 0 ,C, A, E i, l i )

Trong đó 1≤ i≤ n, một vector trạng thái l= (l 1 , …,l n)

Các trạng thái bất biến l(l) =l(l 1 ) ,và ….,l(l n ) l[l i /l’ i ] kí hiệu vector trạng thái này là trạng thái l’ i thay thế cho trạng thái l i

2.2.3 Định nghĩa của một mạng otomat thời gian (Semantics of a Network of Timed Automata)

A i = (L i , l 0 i , C, A,E i, l i ) là một Otomat thời gian Trong đó l0 = (l 1 0 ,…,l n 0

Ngữ nghĩa của hệ chuyển dịch được xác định bởi các vector trạng thái, ký hiệu là < S, s0, → > Trong đó, S = (L1 x … x Ln) x R C đại diện cho tập hợp các trạng thái, s0 = (l0, u0) là trạng thái khởi đầu, và quan hệ truyền → S x S mô tả cách thức chuyển đổi giữa các trạng thái.

 (l, u) → (l [l’j / l j ,l’i / l i ], u’) với li → l’ i và l j gj, rj l’j s,t,u (g i và g j ), u’=[r i r j →0] và u’ I(l)

Một ví dụ cho mạng otomat thời gian:

Hình 6 Ví dụ về đèn điện đơn giản

Hình 6 Cho thấy mô hình một otomat thời gian là một đèn đơn giản

(Lamp.off,y=0) →(Lamp.off, y=3) →(Lamp.low, y=0) →(Lamp.low, y=3)

→(Lamp.low, y=0) →(Lamp.low, y=0.5) →(Lamp.bright, y=0.5) →(Lamp.bright, y00)…

THỬ NGHIỆM ĐẶC TẢ HỆ THỐNG VỚI CÔNG CỤ

GIỚI THIỆU

UPPAAL là một môi trường tích hợp cho mô hình hóa, mô phỏng và kiểm tra hệ thống thời gian thực, được phát triển bởi Đại học Aalborg ở Đan Mạch và Đại học Uppsala ở Thụy Điển Nó phù hợp cho các hệ thống có thể được mô hình hóa dưới dạng tập hợp các quy trình phi xác định với cấu trúc kiểm soát hữu hạn và giá trị thực tế đồng hồ, cho phép giao tiếp qua các kênh hoặc chia sẻ biến Các lĩnh vực ứng dụng tiêu biểu bao gồm điều khiển thời gian thực và các giao thức truyền thông, đặc biệt là những nơi mà yếu tố thời gian đóng vai trò quan trọng.

UPPAAL là một môi trường tích hợp mạnh mẽ dành cho việc mô hình hóa, xác nhận và xác minh các hệ thống thời gian thực Nó hỗ trợ các mô hình như mạng lưới automata hẹn giờ và mở rộng khả năng với nhiều loại dữ liệu khác nhau, bao gồm số nguyên và mảng.

Việc phát hành chính thức hiện nay UPPAAL 4.0.1 (ngày 11 tháng 2 năm

Phiên bản UPPAAL 4.0, phát hành vào năm 2010, là kết quả của việc cải tiến và bổ sung nhiều tính năng mới Để hỗ trợ các mô hình từ phiên bản trước, UPPAAL 4.0 cho phép chuyển đổi trực tiếp các mô hình cũ từ giao diện người dùng Ngoài ra, phiên bản này có thể chạy trong chế độ tương thích bằng cách sử dụng biến môi trường UPPAAL – OLD – SYNTAX từ ngày 26/02/2008 Hiện tại, phiên bản phát triển tiếp theo là UPPAAL 4.2, trong khi phiên bản hiện tại là 4.1.2, được phát hành vào ngày 11/09/2009.

3.1.2 Cài đ ặt Để cài đặt, giải nén zip-file Điều này sẽ tạo thư mục uppaal-4.0.7 có chứa ít nhất các tập tin uppaal, uppaal.jar, vàthư mục lib, bin-Linux, Win32-bin, lib, và demo Các bin-thư mục tất cả cần có các verifyta hai tập tin (exe) Và máy chủ (exe) cộng với một số tập bổ sung, tùy thuộc vào nền tảng Các thư mục demo-nên chứa một số demo file với xml và hậu tố q

Java 2 có sẵn cho các hệ điều hành như SunOS, Windows 95/98/Me/NT/2000/XP và Linux, và có thể tải xuống từ trang web chính thức của Java.

Các phiên bản hiện tại của UPPAAL không có hỗ trợ chính thức và yêu cầu môi trường Java (JRE) để hoạt động Người dùng cần sử dụng phiên bản JRE mới nhất tương thích với nền tảng của mình Đã có báo cáo về vấn đề tương thích với Windows Vista, tuy nhiên, nguyên nhân có thể do JRE Trước khi báo cáo bất kỳ vấn đề nào với UPPAAL trên Windows Vista, hãy kiểm tra hạn sử dụng của JRE mới nhất Đối với hệ thống Linux, UPPAAL chạy thông qua kịch bản 'uppaal', trong khi trên Windows 95/98/ME/NT/2000/XP, người dùng chỉ cần nhấn đúp vào tập tin uppaal.jar để khởi động.

Công cụ UPPAAL bao gồm ba phần chính:

Một giao diện người dùng đồ họa (GUI)

Một máy chủ xác định

Một công cụ dòng lệnh

Các giao diện đóng vai trò quan trọng trong mô hình, mô phỏng và xác minh Cả hai quá trình này đều sử dụng máy chủ xác minh, trong đó máy chủ được dùng để tính toán các trạng thái kế tiếp nhau trong mô phỏng.

3.1.4 Mô hình h ệ thống EDITOR (Biên t ập )

Các biên tập viên hệ thống giúp tạo và chỉnh sửa hệ thống để phục vụ cho phân tích Một mô tả hệ thống bao gồm các quy trình mẫu và có thể kèm theo các tờ khai cục bộ, giúp định nghĩa hệ thống một cách rõ ràng Phần này hướng dẫn cách sử dụng khung bên trái của trình biên tập, gọi là cây chuyển hướng, và cách vẽ automata bằng công cụ biên tập viên.

Ngôn ngữ mô tả hệ thống được sử dụng trong UPPAAL được mô tả trong các ngôn ngữ tham khảo

Mô phỏng là một công cụ quan trọng trong việc xác nhận và kiểm tra tính năng động của hệ thống trong giai đoạn thiết kế ban đầu Nó giúp phát hiện lỗi một cách hiệu quả và tiết kiệm trước khi tiến hành xác minh mô hình Ngoài ra, mô phỏng còn được sử dụng để hình dung và theo dõi quá trình hành quyết của hệ thống.

Xác minh là quá trình kiểm tra tính an toàn của hệ thống Phần này sẽ hướng dẫn cách sử dụng các công cụ, chỉ định và xác minh các yêu cầu Các yêu cầu về đặc điểm kỹ thuật ngôn ngữ và quy trình xác minh sẽ được trình bày trong các phần riêng biệt.

Mô hình hệ thống trong UPPAAL được cấu thành từ một mạng lưới các quy trình, được mô tả như là các automata mở rộng theo thời gian Các mô tả của mô hình bao gồm ba phần chính: khai báo cục bộ và toàn cục, các mẫu automata, và định nghĩa hệ thống.

UPPAAL cung cấp một ngôn ngữ phong phú cho việc xác định các mẫu trong các hình thức mở rộng theo thời gian Khác với otomat cổ điển, otomat trong UPPAAL cho phép sử dụng ngôn ngữ biểu thức để kiểm tra và cập nhật đồng hồ, biến, loại hồ sơ, và gọi các hàm do người dùng định nghĩa Các mẫu otomat bao gồm địa điểm và các cạnh, đồng thời có thể khai báo các biến cục bộ và biến toàn cục.

Hình 6 Ví dụ về mẫu

Các mẫu và chức năng được parameterised Cú pháp cho các tham số được xác định bởi ngữ pháp cho tham số:

Tham số :: = [ tham số ( ',' Các thông số ) *]

Tham số :: = loại [' & '] ID ArrayDecl*

Danh sách tham số không được kết thúc bởi dấu “;”

Chú ý: thông số mảng phải được bắt đầu = 1 dấu “&” được thông qua tham chiếu

Q (đồng hồ & x, đồng hồ &y, int i1$i2, chan chan $a, $b)

Qui trình mẫu Q có 6 tham số: 2 đồng hồ, 2 biến nguyên (với phạm vi mặc định) và 2 kênh

Hình 7 Ví dụ về khai báo

Khai báo trong lập trình bao gồm các thành phần như đồng hồ, số nguyên, kênh, mảng, hồ sơ và các loại dữ liệu khác Cú pháp cho các khai báo này được mô tả bằng ngữ pháp, với định nghĩa là: khai báo:: = (VariableDecl | TypeDecl | Chức năng | ChanPriority ) *.

TypeDecls:: = 'typedef' ID * Loại ArrayDecl (',' ID ArrayDecl *) * ';'

Các ví dụ const int a = 1; bool b [8], c [4]; int a [2] [3] = ((1, 2, 3), (4, 5, 6)); chan d; // một kênh d chan e; // một kênh e struct (int a; bool b;) s1 = (2, true); meta int

Các từ khoá typedef được sử dụng để đặt tên các kiểu

Khai báo S ghi có chứa một số nguyên a, b boolean một và đồng hồ một c: typedef struct

3.1.10 Các dòng lệnh (Command Line)

UPPAAL có thể được thực hiện từ dòng lệnh bằng cách sử dụng các lệnh sau đây trên unix : uppaal [ OPTION ] [ FILENAME ]

Trên cửa sổ, các lệnh sau đây có thể được sử dụng (ví dụ, bằng cách sử dụng

To run the UPPAAL application, use the command "java -jar [full path to uppaal.jar] [OPTION] [FILENAME]," ensuring you specify the complete path to the uppaal.jar file, as well as the full path to the Java executable.

Các tùy chọn tên tập tin đề cập đến một mô hình được nạp lúc khởi động

Các tùy chọn dòng lệnh có sẵn là:

(Mặc định trên) engineName

Tên máy chủ xác minh, mặc định là máy chủ trên Unix và server.exe trên Windows, sẽ được sử dụng bởi các giao diện người dùng đồ họa (GUI) Để chỉ định đường dẫn đến máy chủ xác minh, bạn có thể sử dụng tham số enginePath , ví dụ như bin - Win32, để các GUI có thể truy cập.

Hiển thị một bản tóm tắt các tùy chọn serverHost serverPort splashScreen ngày | off

Vô hiệu hóa hoặc cho phép màn hình giật exportToEPS templateName Đưa ra mẫu để đặt tên EPS psColors ngày | off

VÍ DỤ ĐẶC TẢ MÔ HÌNH TRAIN – GATE BẰNG UPPAAL

Công cụ này được thiết kế để mô hình hóa hệ thống bằng timed automata thông qua biên tập đồ họa, nhằm đảm bảo hoạt động như mong muốn và xác minh tính đúng đắn với một tập hợp các đặc tính Giao diện đồ họa của Java đa uuClient phản ánh ý tưởng này, được chia thành ba phần chính: biên tập, mô phỏng và xác minh, có thể truy cập dễ dàng qua ba tab.

Hình 15.Ví dụ về Train-Automata của Train-Gate

Nút Select đã được kích hoạt trên thanh công cụ, cho phép người dùng di chuyển địa điểm và các cạnh, cũng như chỉnh sửa các nhãn Ngoài ra, còn có các chế độ khác để thêm địa điểm, cạnh và đỉnh (nail) Lưu ý rằng vị trí mới sẽ không có tên mặc định và người dùng có thể sử dụng hai trường văn bản để đặt tên mẫu và tham số của nó Một mẹo hữu ích là sử dụng nút chuột giữa để nhanh chóng thêm các yếu tố mới; chỉ cần nhấn nó trên các miền, vị trí hoặc cạnh để thêm một vị trí, cạnh hoặc nail tương ứng.

Trình biên tập (The Editor) là một hệ thống mạng timed-automata, được gọi là tiến trình của công cụ và được xếp song song Tiến trình này được thể hiện từ một tham số mẫu Hệ thống trình biên tập bao gồm hai phần chính: khung cây để truy cập vào các mẫu khác và sự công bố, cùng với miền vẽ/soạn thảo văn bản Hình 15 minh họa trình biên tập với ví dụ về Train-Gate trong phần 4, trong đó các vị trí được đặt tên và giữ nguyên, trong khi các cạnh được đánh tên với điều kiện an toàn, đồng bộ và sự phân công.

Cây ở phía bên trái cho phép truy cập đến các bộ phận hệ khác của hệ thống mô tả như sau:

Global declaration (sự khai báo toàn cục): chứa các biến toàn cục kiểu interger (số nguyên), đồng hồ, các kênh đồng bộ, và các hằng số

Templates such as Train, Gate, and IntQueue represent different parameters of timed automata Each template can include local variables, channels, and constants.

Hình 16 Khung nhìn của tab mô phỏng cho ví dụ về Train-Gate

Hình 17 Sự khác nhau giữa khai báo toàn cục và khai báo cục bộ trong ví dụ về

Chúng ta đưa một vài ảnh màn hình (screenshoot) của công cụ để thể hiện sự khai báo một cách xúc tích

Các tiến trình được phân công là mẫu hiển thị trong các quá trình, trong đó phần phân công tiến trình chứa các khai báo cần thiết cho từng trường hợp cụ thể.

System definition (Định nghĩ hệ thống): Một danh sách các tiến trình của hệ thống

Cú pháp được sử dụng trong các nhãn và khai báo có thể tìm thấy trong phần trợ giúp hệ thống của công cụ Sự phân biệt giữa khai báo cục bộ và khai báo toàn cục được minh họa trong Hình 17 Cú pháp đồ họa được áp dụng trực tiếp từ các mô tả của timed-automata được trình bày trong phần 2.

Sự mô phỏng có thể được sử dụng theo ba cách khác nhau: người dùng có thể vận hành hệ thống một cách thủ công và chọn kiểu chuyển đổi để thực hiện, hoặc kích hoạt chế độ ngẫu nhiên để hệ thống tự chạy Ngoài ra, người dùng cũng có thể làm theo hướng dẫn để tìm hiểu cách truy cập vào một chế độ cụ thể Hình 10 minh họa sự mô phỏng, được chia thành bốn phần.

The control part (Phần điều khiển): được dùng để chọn và kích hoạt sự chuyển đổi, làm theo chỉ dẫn, và bật chế độ mô phỏng ngẫn nhiên

Trong chế độ biến, UPPAAL hiển thị giá trị của các biến kiểu số nguyên và đồng hồ, nhưng không thể hiện chế độ cụ thể cho đồng hồ với các giá trị thực tế Thay vào đó, UPPAAL cung cấp một tập hợp các chế độ tượng trưng, trong đó tất cả các chế độ cụ thể chia sẻ cùng một vị trí vector và giá trị cho các biến riêng biệt Các giá trị khả thi của đồng hồ được mô tả qua một tập các ràng buộc, và đồng hồ trong chế độ tượng trưng chỉ được công nhận khi thỏa mãn tất cả các ràng buộc này.

Ví dụ về Train Gate trong Uppaal mô tả hệ thống điều khiển tàu hỏa liên quan đến việc truy cập và giao cắt giữa các tàu Hệ thống này bao gồm bốn tàu và một bộ điều khiển, trong đó một tàu không thể dừng ngay lập tức và khởi động lại trong cùng một khoảng thời gian Do đó, có các ràng buộc thời gian trước khi tàu vào cầu; cụ thể, một tàu sẽ gửi tín hiệu appr! và có 10 đơn vị thời gian để nhận tín hiệu dừng, cho phép nó dừng an toàn trước khi vào cầu Nếu tàu không dừng, nó cần nhiều hơn 10 đơn vị thời gian để tiếp cận cầu Khi một tàu bị dừng lại, nó sẽ tiếp tục tiến trình của mình khi bộ điều khiển gửi tín hiệu.

1 tín hiệu go cho nó sau khi tàu đằng trước rời khỏi cầu và đã gửi 1 tín hiệu leave

Hình 18 Ví dụ Train - Gate 3.2.2 Mô hình trong Upaal

Mô hình Train Gate có 3 mẫu: Train, Gate, Int Queue

Mẫu Train có 5 trạng thái: Safe, appr, stop, start, và cross Trạng thái khởi tạo là Safe, cho thấy tàu chưa tới cầu và không bị ràng buộc bất biến, cho phép tàu dừng lại bất kỳ lúc nào Khi tàu đến, cần đồng bộ với bộ điều khiển qua kênh appr Tín hiệu appr sẽ reset biến đồng hồ x và thiết lập các biến tham số e để định danh tàu, từ đó bộ điều khiển sẽ biết tàu nào tiếp tục và tàu nào dừng lại Ràng buộc bất biến x< yêu cầu tàu phải dừng trong vòng 20 đơn vị thời gian, và hai dịch chuyển ra ngoài bị chặn bởi ràng buộc x< hoặc x>.

Hai ràng buộc trả về hai vùng trước khi vào cầu có thể bị dừng hoặc không Tại thời điểm chính xác là 10, cả hai dịch chuyển đều được kích hoạt, cho phép lựa chọn các điều khiển trong bất kỳ tình huống nào với một tàu Nếu tàu không dừng x

Ngày đăng: 05/08/2021, 22:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w