8 Các demo khác trong Uppaal
7.6 Khi loại bỏ phần tử đầu từ hàng đợi, tất cả các phần tử khác phải bị dịch xuống.
này làm xong trong vòng lặp trong vị trí Shiftdown. Để tránh việc chèn không cần thiết, vị trí này được đánh dấu là chuyển tiếp (committed). Chú ý rằng cạnh vào Shiftdown đồng bộ trên kênh rem. Điều quan trọng là vị trí đích của cạnh đồng bộ trên rem trong các quá trình khác không được đánh dấu là chuyển tiếp.
sử dụng mẫu này trong thực tế
Việc mã hóa một cấu trúc điều khiển, một cách dùng phổ biến khi mã hóa cấu trúc điều khiển( giống như mã hóa của vòng lặp for dùng trong quá trình hàng đợi IntQueue của ví dụ cổng xe lửa) : Trong những trường hợp này việc chèn thường không được ưa thích.
Một cách dùng phổ biến khác trong mô hình đồng bộ phức tạp. Cơ chế đồng bộ chuẩn trong Uppaal chỉ hỗ trợ nhị phân hoặc phát sóng đồng bộ hóa, nhưng bằng cách dùng vị trí chuyển
CHƯƠNG 7. CÁC THIẾT KẾ MẪU 7.6. URGENT EDGES (CẠNH KHẨN CẤP)
tiếp có thể đồng bộ hóa nguyên tử với vài quá trình. Một ví dụ của việc này là ví dụ cổng xe lửa: Quá trình cổng xe lửa ở đây hoạt động như một người dàn xếp giữa các xe lửa và hàng đợi, sự đồng bộ đầu tiên với một và sau đó với những cái khác- dùng một vị trí chuyển tiếp để đảm bảo tính nguyên tử.
7.6 Urgent Edges (Cạnh khẩn cấp)
Mục đích Để đảm bảo một cạnh được thực hiện không có trễ ngay khi nó được kích hoạt.
Hỗ trợ từ Uppaal
Uppaal cung cấp vị trí khẩn cấp như một phương tiện để nói rằng một vị trí phải rời đi không chậm trễ. Uppaal cung cấp các kênh khẩn cấp với ý nghĩa nói rằng một sự đồng bộ phải được thực thi ngay khi guard của cạnh liên quan được kích hoạt. Không có cách nào để diễn tả trực tiếp rằng một cạnh không có sự đồng bộ nên được thực hiện không có trễ. Mô hình này cung cấp một cách để mã hóa hoạt động này.
Cấu trúc