Mô hình hàng đợi trong ví dụ cổng tầu dùn g2 lần giảm biến hoạt động Cả ha

Một phần của tài liệu Hướng dẫn sử dụng UPPAAL 4.0 (Trang 32 - 34)

8 Các demo khác trong Uppaal

7.1Mô hình hàng đợi trong ví dụ cổng tầu dùn g2 lần giảm biến hoạt động Cả ha

hợp là trên cạnh từ Shiftdown đến Start: Phần tử tự do trong hàng đợi được reset đến giá trị khởi tạo và cũng như biến đếm i.

CHƯƠNG 7. CÁC THIẾT KẾ MẪU 7.2. TRUYỀN GIÁ TRỊ ĐỒNG BỘ

7.2 Truyền giá trị đồng bộ

Mục đích

Để truyền các dữ liệu đồng bộ giữa hai quá trình.

Hỗ trợ từ Uppaal

Xem xét mô hình của một mạng không dây, các nút trong mạng được mô hình hóa như những quá trình. Nút bên cạnh phải giao tiếp để trao đổi, như là việc gửi thông tin. Coi rằng trễ giao tiếp là không đáng kể, việc bắt tay có thể được mô hình như sự đồng bộ hóa qua các kênh, nhưng bất kì dữ liệu trao đổi nào cũng phải được mô hình bởi những cách thức khác.

Ý tưởng chung là một người gửi và người nhận xảy ra đồng thời trên sự chia sẻ các kênh nhị phân và trao đổi dữ liệu thông qua các biến chia sẻ. Bởi vì Uppaal ước lượng nhiệm vụ của việc gửi đồng bộ trước tiên, người gửi có thể quy một giá trị cho biến chia sẻ đó, và người nhận có thể truy cập trực tiếp sau đó.

Cấu trúc

Có 4 cách khác nhau để truyền giá trị. Xem hình 7.2. Chúng khác nhau ở chỗ dữ liệu được truyền là một chiều hay 2 chiều và dù là việc đồng bộ là không điều kiện hay có điều kiện. Trong việc truyền giá trị một chiều thì một giá trị được truyền từ một quá trình đến một quá trình khác, trái lại việc truyền giá trị hai chiều truyền một giá trị với nhau. Trong việc truyền giá trị không điều kiện, người nhận không khóa kết nối, trái lại việc truyền giá trị có điều kiện cho phép người nhận từ chối việc đồng bộ dựa trên dữ liệu đã truyền.

Trong tất cả 4 trường hợp, dữ liệu được truyền qua biến chia sẻ được khai báo toàn cục var và sự đồng bộ đạt được thông qua kênh toàn cục c và d. Mỗi quá trình có biến cục bộ in và out. Mặc dù giao tiếp thông qua những kênh là luôn đồng thời, chúng ta xem xét c! như là một hành động gửi và c? như là hành động nhận. Chú ý rằng mẫu giảm biến thường reset biến chia sẻ khi nó không cần nữa. Như một sự lựa chọn, biến chia sẻ có thể được khai báo meta, trong trường hợp reset là không cần thiết bởi vì biến này không là một phần của trạng thái. Việc truyền biến một chiều chỉ là một kênh độc lập c và một biến chia sẻ var là cần phải có. Người gửi viết dữ liệu đến biến chia sẻ và thực hiện một hành động gửi.

Người nhận thực hiện hành động đồng thời, bằng cách ấy việc đồng bộ với người gửi. Bởi vì update trên cạnh với hành động gửi luôn được ước lượng trước update của cạnh với hành động nhận, người nhận có thể truy cập dữ liệu viết bởi người gửi trong cùng sự chuyển tiếp. Trong trường hợp có điều kiện, người nhận có thể khóa sự đồng bộ theo một vài thuộc tính cond(in) liên quan đến giá trị truyền bởi người gửi. Sự sắp đặt trực quan của thuộc tính trên guard của cạnh nhận. Không may, điều này sẽ không làm việc như mong đợi, bởi vì guard của những cạnh này được ước lượng trước khi update được thực thi. Ví dụ trước khi người nhận truy cập đến giá trị. Giải pháp là đặt thuộc tính trên sự bất biến của vị trí mục tiêu.

7.2. TRUYỀN GIÁ TRỊ ĐỒNG BỘ CHƯƠNG 7. CÁC THIẾT KẾ MẪU

Một phần của tài liệu Hướng dẫn sử dụng UPPAAL 4.0 (Trang 32 - 34)