1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN

73 676 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

Định dạng
Số trang 73
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cuối cùng mô hình Sapi là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile Cấu trúc luận văn: Luận văn gồm các phần: 4 chương, kết luận và tài liệu tham khảo.Các phần cò

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



NGUYỄN TÀI TUẤN

KIỂM CHỨNG CÁC TÍNH CHẤT THỜI GIAN THỰC CHO HỆ THỐNG ĐỒNG THỜI BẰNG RT - SPIN

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

Hà Nội, 2013

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



NGUYỄN TÀI TUẤN

KIỂM CHỨNG CÁC TÍNH CHẤT THỜI GIAN THỰC CHO HỆ THỐNG ĐỒNG THỜI BẰNG RT - SPIN

Ngành: Công nghệ Thông tin

Chuyên ngành: Công nghệ phần mềm

Mã số: 60 48 10

LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Trường Thắng

Hà Nội, 2013

Trang 3

MỤC LỤC

Nội dung

Lời cảm ơn i

Lời cam đoan ii

MỤC LỤC iii

Danh mục hình vẽ v

Danh mục ký hiệu, từ viết tắt vi

Chương 1: Mở đầu 1

Chương 2 Cơ sở kiểm chứng mô hình 3

2.1 Kiểm chứng dựa trên mô hình 3

2.1.1 Khái niệm 3

2.1.2 Các bước thực hiện 5

2.2 Ngôn ngữ Promela và Spin 5

2.2.1 Ngôn Ngữ Promela 5

2.2.2 Spin 7

2.3 Giới thiệu về hệ thống thời gian thực 11

2.3.1 Khái niệm 11

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

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

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

2.4 Kết luận 13

Chương 3 - Otomat thời gian 15

3.1 Giới thiệu 15

3.2 Otomat ω 16

3.3 Otomat thời gian 18

3.3.1 Ngôn ngữ thời gian 19

3.3.2 Bảng chuyển trạng thái với các ràng buộc thời gian 20

3.3.3 Các ràng buộc đồng hồ và đồng hồ biên dịch 22

3.3.4 Các bảng chuyển trạng thái thời gian 22

3.3.5 Ngôn ngữ hình thức thời gian 23

Trang 4

3.3.6 Các tính chất của ngôn ngữ hình thức thời gian 25

3.3.7 Otomat Muller thời gian 27

3.4 Kiểm tra tính rỗng 28

3.4.1 Giới hạn đến các hằng nguyên 28

3.4.2 Các miền Đồng hồ 28

3.3.3 Otomat miền 30

3.3.4 Cấu trúc không thời gian 33

3.5 Otomat thời gian xác định 34

3.5.1 Định nghĩa 34

3.5.2 Các tính chất đóng 36

3.5.3 Sự biểu cảm 37

3.6 Ví dụ về kiểm chứng 38

3.7 Kết luận 41

Chương 4 Tích hợp thời gian với Spin 42

4.1 Giới thiệu 42

4.2 Mở rộng Spin và Promela với thời gian thực 43

4.2.1 Ngôn ngữ thời gian và Otomat Buchi thời gian 43

4.2.2 Ngữ nghĩa trong Promela không có thời gian và có thời gian 44

4.2.3 Mở rộng Spin với thời gian thực 45

4.2.4 Định nghĩa TBA dựa trên chương trình Promela thời gian thực 46

4.3 Mở rộng Spin và Promela với thời gian rời rạc 47

4.3.1 Mô hình thời gian rời rạc 47

4.3.2 Cú pháp Spin với mô hình thời gian rời rạc 48

Chương 5 Thực nghiệm Spin với hệ thống thời gian thực 51

5.1 Thực nghiệm kiểm chứng giao thức truyền và nhận thông báo song song 51

5.2 Thực nghiệm kiểm chứng giao thức hệ thống Sapi 57

5.1 Thực nghiệm kiểm chứng Train-Gate-Controller 61

5.4 Kết luận 64

KẾT LUẬN 66

TÀI LIỆU THAM KHẢO 67

Trang 5

Hình 3.1 : Otomat Buchi chấp nhận (a+b)*aω

Hình 3.2 : Otomat Muller xác định chấp nhận (a+b)*aω

Hình 3.3 : Ví dụ bảng chuyển trạng thái thời gian

Hình 3.4 : Bảng chuyển trạng thái thời gian với 2 đồng hồ (đồng hồ) Hình 3.5 : Otomat Buchi thời gian chấp nhận Lcrt

Hình 3.6 : Otomat thời gian mô hình hóa hành vi lặp định kỳ

Hình 3.7 : Otomat thời gian chấp nhận ngôn ngữ Lconverge

Hình 3.8 : Otomat Muller thời gian

Trang 6

Danh mục ký hiệu, từ viết tắt

SPIN Simple Promela Interpreter Biên dịch ngôn ngữ Promela đơn

LTL Linear time logic Logic thời gian tuyến tính

TS Transition system Hệ thống chuyển trạng thái

RTS Real Time System Hệ thống thời gian thực

TBA Timed Buchi Automata Otomat Buchi thời gian

MTA Muller Timed Automata Otomat Muller thời gian

DTMA Deterministic Timed Muller

Automata

Otomat Muller thời gian xác định

DTBA Deterministic Timed Buchi

Automata

Otomat Buchi thời gian xác định

TTS Timed transition system Hệ thống chuyển trạng thái theo

thời gian

Trang 7

Chương 1: Mở đầu

Kiểm chứng mô hình là một kỹ thuật kiểm chứng tự động các hệ thống hữu hạn trạng thái Kiểm chứng mô hình xác minh tính đúng đắn của một mô hình bằng việc xác định xem các thuộc tính người dùng mong muốn có được thỏa mãn bởi mô hình

đó hay không [8] Về nguyên tắc hoạt động, hệ thống cần kiểm chứng sẽ được mô hình hóa Công cụ kiểm chứng sẽ kiểm tra mô hình có thỏa mãn các thuộc tính được cho hay không Nhờ khả năng duyệt qua tất cả các trạng thái trong mô hình mà tính đúng đắn của kết quả kiểm chứng mô hình luôn được đảm bảo Tuy nhiên cho đến nay, kiểm chứng mô hình chủ yếu tập trung bào các hệ phi thời gian hoặc các tính chất thời điểm của hệ thời gian thực, tính chất khoản vẫn còn ít và hầu như các thuật toán này chỉ giải quyết bài toán theo ngữ nghĩa đã thu hẹp của tính chất cần kiểm chứng Promela là ngôn ngữ mô hình mức cao nhằm đặc tả hệ thống Thứ tự thởi gian của các hành động trong chương trình promela dựa trên trình tự của các lệnh trong tiến trình Tuy nhiên ngôn ngữ không cho phép đo lường chính xác khoảng thời gian giữa hai sự kiện [10] Thực tế rất nhiều hệ thống bao gồm các giao thức giao tiếp, các mạch không đồng bộ, các bộ điều khiển đèn hay giao thông và các hệ thống thực hiện thời gian thực cần được mô tả như các hệ thống thời gian thực

Do đó thúc đẩy cần mở rộng Promela cho thời gian thực trong đó thời gian liên tục và số các sự kiện có thể xảy ra giữa hai khoảng thời gian không bị chặn Hiện tại

có hai công cụ tích hợp thời gian với Spin DtSpin và RtSpin [5][13] Cả hai công cụ đều dựa trên lý thuyết Otomat thời gian (timed Otomat) RtSpin có thể mô hình Otomat thời gian với các đồng hồ thời gian thực nhưng khá cồng kềnh Hạn chế của RtSpin không tương thích với thuật toán giảm số lượng không gian trạng thái của hệ thống DtSpin dựa trên Otomat thời gian lý tưởng, thời gian được chia thành các khoảng thời gian bằng nhau và thời gian được biểu thị là các số tự nhiên DtSpin tương thích với thuật toán giảm số lượng không gian trạng thái của hệ thống Tuy nhiên DtSpin chỉ mở rộng với thời gian rời rạc

Nội dung nghiên cứu: Tìm hiểu Spin, hệ thống thời gian thực, lý thuyết Otomat thời gian và tích hợp thời gian với công cụ Spin

Phần đầu của luận văn ta nghiên cứu về Spin, hệ thống thời gian thực và lý thuyết mô hình kiểm chứng Ta cũng đưa ra những khái niệm cơ bản về kiểm chứng mô hình và

hệ thống thời gian thực là cơ sở nên tảng để thực hiện tích hợp và các công cụ tích hợp thời gian thực với Spin nhằm định lượng khoảng thời gian giữa các sự kiện và các ràng buộc về thời gian Hai công cụ này dựa trên lý thuyết Otomat thời gian Trong đó RtSpin dựa trên mô hình thời gian liên tục, DtSpin dựa trên mô hình thời gian rời rạc Cuối cùng ta đưa ra một số thực nghiệm với công cụ RtSpin và DtSpin bao gồm: mô

Trang 8

hình train-gate-controller được đặc tả trong phần lý thuyết Otomat thời gian, bài toán này là bài toán kinh điển và là tiền đề để kiểm chứng các hệ thổng điều khiển giao thông Tiếp đến ta cũng kiểm chứng giáo thức truyền nhận song song dựa trên các kênh truyền và gửi thông thông báo có thể mất mát thông tin Cuối cùng mô hình Sapi

là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile

Cấu trúc luận văn: Luận văn gồm các phần: 4 chương, kết luận và tài liệu tham

khảo.Các phần còn lại của luận văn có cấu trúc như sau:

Chương 2: Đầu tiên ta tìm hiểu Cơ sở lý thuyết cho kiểm chứng mô hình, một công nghệ tự động trong đó mô hình với tập trạng thái hữu hạn của hệ thống và một tính chất logical, hệ thống sẽ kiểm tra xem tính chất đó Spin một công cụ kiểm chứng

mô hình Spin là công cụ nhằm phân tích tính logic của hệ thống đồng thời, các giao thức giao tiếp dữ liệu Hệ thống được mô hình hóa bởi ngôn ngữ Promela Tiếp đến ta cũng trình bày các hệ thống thời gian thực

Chương 3: Atomat thời gian mô hình hóa các hành vi hệ thống thời gian thực Cung cấp các định nghĩa, đồ thị chuyển trạng thái với ràng buộc thời gian sử dùng nhiều đồng hồ giá trị thực Otomat thời gian chấp nhận chấp nhận từ ký tự và thời gan – trình tự vô hạn với giá trị thời gian liên kết với ký tự vào Chúng ta cung xem xét các tính chất đóng với Otomat xác định và không xác đinh Cuối cùng xem xét ứng dụng của lý thuyết nhằm kiểm thử các yêu cầu của hệ thống với các trạng thái hữu hạn

Chương 4: Vì Promela truyền thống không chứa thời gian Trong chương này giới thiệu mở rộng thời gian thực với công cụ spin và Promela, có hai thành công bao gồm RtSpin (Real-time Spin) và DtSpin (Discrete time Spin) nhằm mở rộng Spin với thời gian Trong đó RtSpin dựa trên mô hình thời gian liên tục, DtSpin dựa trên mô hình thời gian rời rạc

Chương 5: Dựa trên cơ sở của chương 4 Trong chương này ta đưa ra một số thực nghiệm với công cụ RtSpin và DtSpin bao gồm: mô hình train-gate-controller được đặc tả trong phần lý thuyết Otomat thời gian, bài toán này là bài toán kinh điển

và là tiền đề để kiểm chứng các hệ thổng điều khiển giao thông Tiếp đến ta cũng kiểm chứng giáo thức truyền nhận song song dựa trên các kênh truyền và gửi thông thông báo có thể mất mát thông tin Cuối cùng mô hình Sapi là mô hình có giá trị thực tiễn của hệ thống tính cước của G-Mobile

Trang 9

Chương 2 Cơ sở kiểm chứng mô hình

Quá trình thiết kế mô hình của hệ thống bằng ngôn ngữ mô hình Promela làm việc dựa trên các khái niệm về kiểm chứng mô hình Chương này sẽ lần lượt trình bày những khái niệm cơ bản về kiểm chứng mô hình và hệ thống thời gian thực

2.1 Kiểm chứng dựa trên mô hình

2.1.1 Khái niệm

Nhằm kiểm tra xem hệ thống phần mềm có đáp ứng được các yêu cầu đề ra, một nhiệm vụ thách thức là hệ thống phải đảm bảo tính đồng thời (concurrency) Tính đồng thời của hệ thống nhằm đảm bảo các tiến trình chạy song song và xen kẽ lẫn nhau sử dụng tài nguyên chung Các công nghệ kiểm chứng bao gồm Dijkstra, Floyd, Gries, Hoare, Owicki, Manna and Plueni Kiểm chứng là một mô hình lý thuyết và được thực hiện dựa trên khả năng tính toán của máy tính [4]

Trong quá trình phát triển phần mềm, càng phát hiện ra lỗi sớm thì việc phát triển sẽ dễ dàng hơn Tuy nhiên, việc phát hiện lỗi nhờ kiểm chứng thường rất muộn Một giải pháp nhằm cải thiện, chúng ta nên thực hiện kiểm chứng để có thể phát hiện lỗi sớm hơn

Hình 2.1: Vấn đề với kiểm chứng

Requirement Analyis

System Design

Operation And Mantenance

Acceptance Testing

System Testing

Program Design Unit and Integration

Testing

Coding

Trang 10

Kiểm chứng dựa trên mô hình là một kỹ thuật kiểm chứng mà các hoạt động của hệ thống được chạy thử trong một thời gian sẽ được dự đoán trước, nó được thực hiện bởi một đặc tả hình thức hoặc một mô hình của hệ thống

Các mẫu thiết kế hay mô hình là mô tả đơn giản của hệ thống dựa trên yêu cầu

hệ thống và chức năng xác định, giúp chúng ta có thể hiểu và dự đoán được hành vi của hệ thống

Năm 1981 Clarke and Emerson đã đưa ra định nghĩa: Kiểm chứng mô hình là một kỹ nghệ tự động trong đó mô hình với tập trạng thái hữu hạn của hệ thống và một tính chất logical, hệ thống sẽ kiểm tra xem tính chất đó (với trạng thái đã cho) trong

mô hình Được phát minh cách đây 20 năm bởi các nhóm nghiên cứu, được sử dụng trong đơn vị công nghiệp chuyên biệt [10]

Hình 2.2: Kiểm chứng mô hình Thông thường có hai cách tiếp cận với ứng dụng của kiểm chứng mô hình Cách tiếp cận verification: luôn luôn bảo đảm sự đúng đắn của mô hình chi tiết M của

hệ thống dưới dạng tính đúng đắn Cách tiếp cận Debugging: luôn luôn đi tìm lỗi trong mô hình M

Kiểm chứng mô hình là phương pháp hiệu quả nhất trong việc tiếp cận gỡ lỗi thiết kế Mô hình không chỉ tốt trong gỡ lỗi mà còn tìm lỗi bugs rất sớm trong việc thiết kế một hệ thống mới

Các bước thực hiện xây dưng Kiểm chứng mô hình Đầu tiên ta mô hình hóa hệ thống (xây dựng mô hình M cho hệ thống) Tiếp đến ta xây dựng yêu cầu dưới dạng

Mô hình M Byte n Property anp() do

od

Property Φ [] (n <5)

Model Checker

YES Tính chất thỏa mãn

No + Vêt lỗi

Trang 11

biểu thức Ф Cuối cùng ta quyết định (deciding) và các thuật toán kiểm tra (được thực hiện trong các công cụ kiểm chứng mô hình)

2.1.2 Các bước thực hiện

Quá trình kiểm chứng dựa trên mô hình được bắt đầu bằng việc xác định yêu cầu của hệ thống từ đó xây dựng mô hình dựa vào các yêu cầu và chức năng của hệ thống Việc xây dựng mô hình còn phải dựa trên các yếu tố dữ liệu đầu vào và đầu ra

Mô hình này được sử dụng để sinh ra các ca kiểm thử Chúng ta có thể biết kết quả đầu ra mong đợi từ mô hình hoặc từ quy định chuẩn (oracle) Khi chạy kịch bản và kết quả thu được sẽ được so sánh với kết quả mong đợi Từ đó quyết định hành động tiếp theo như sửa đổi mô hình hoặc dừng kiểm thử,…

Các bước để thực hiện kiểm thử dựa trên mô hình Xây dựng mô hình dựa trên các yêu cầu và chức năng của hệ thống Tiếp đến tạo đầu ra dự kiến từ mô tả bài toán Sau đó ta chạy kịch bản kiểm chứng và so sánh kết quả đầu ra thực tế với kết quả đầu

ra dự kiến Cuối cùng ta 1uyết định hành động tiếp theo (Sửa đổi mô hình, tạo thêm ca kiểm chứng, dừng kiểm chứng, đánh giá chất lượng của phần mềm)

2.2 Ngôn ngữ Promela và Spin

Spin (Simple Promela Interpreter) là công cụ nhằm phân tích tính logic của hệ thống đồng thời, các giao thức giao tiếp dữ liệu Hệ thống được mô hình hóa bởi ngôn ngữ Promela

Ngôn ngữ Promela cho phép tạo các tiến trình giao tiếp với nhau trên các kênh đồng bộ hoặc không đồng bộ Ngôn ngữ Promela nhúng ngôn ngữ lập trình C và là ngôn ngữ đặc tả để mô hình hóa hệ thống trạng thái hữu hạn

2.2.1 Ngôn Ngữ Promela

Với Spin, ngôn ngữ Promela đựợc sử dụng để xây dựng mô hình của hệ thống và các tính chất của nó Promela là ngôn ngữ không tất định, là một trong các ngôn ngữ

có cú pháp và ngữ nghĩa tương tự ngôn ngữ C

Một chương trình Promela bao gồm khai báo định nghĩa kiểu, biến, kênh, một hay nhiều tiến trình, mỗi tiến trình chứa một chuỗi các câu lệnh Các tiến trình có thể

có tham số hoặc không.Các tiến trình được khai báo với từ khóa kích hoạt sẽ được khởi tạo và gán một giá trị pid (process id) duy nhất

Một tiến trình thực hiện đồng thời với các tiến trình khác và giao tiếp với các tiến trình khác bằng cách sử dụng biến chung phần hay giao tiếp qua các kênh Trạng thái của tiến trình được đặc trưng bởi vị trị lệnh tiến trình đang thực hiện và nội dung

Trang 12

của các biến Tiến trình được khởi tạo bởi hàm run() hoặc khai báo kích hoạt khi định nghĩa tiến trình Tiến trình không xác định thời gian thực hiện các lệnh, các tiến trình được giao nhau tuy nhiên các lệnh khác nhau của các tiến trình không xảy ra cùng lúc ngoại trừ kênh giao tiếp đồng thời Mỗi tiến trình ở mỗi điểm có thể thực hiện lựa các hành đồng khác nhau

Một tiến trình bao gồm trình tự các câu lệnh Mỗi câu lệnh có thể thực hiện được ngay lập tức hoặc không thực hiện được Tất cả các câu lệnh là nguyên tử và khi thực hiện không giao với các tiến trình khác Để kiểm chứng các tính chất chắc chắn đúng trong chương trình thường dùng lệnh assert (expr) trong mô hình Promela Lệnh này luôn thực hiện được và nếu biểu thức trả vê 0 thì Spin thông báo một lỗi “has been violated” [12]

mtype = {MSG, ACK}

chan toS = … chang toR = … bool flag;

proctype Sender() {

… } Init {

… }

Hình 2.3: Mô hình promela

Phần thân tiến trình

Khởi tạo các tiến trình

Trang 13

Cú pháp của promela tổng kết như Bảng sau:

expression Thực hiện được nếu biểu thức tra về khác 0

assignment Luôn luôn thực hiện được

if Thực hiện được nếu it nhất một bảo đảm

do Thực hiện được nếu it nhất một bảo đảm

Break Luôn thực hiện được (thoát câu lệnh do)

Send (ch!) Thực hiện được nếu kênh không đầy

Receive (ch?) Thực hiện được nếu kênh không rỗng

Bảng 2.1: Khả năng thực hiện của các câu lệnh trong Promela

2.2.2 Spin

Trong chế độ giả lập, Spin biên dịch và chạy một chương trình promela, sau đó

in ra các trạng thái của chương trình [17]

Một trạng thái của chương trình là một bộ các giá trị gồm của các biến, các giá trị của biến đếm vị trí của các tiến trình Một tính toán của chương trình là chuỗi các trạng thái bắt đầu bởi trạng thái khởi tạo và tiếp tục với những trạng thái xuất hiện khi mỗi câu lệnh được thực hiện

Trong ví dụ 2.1 biến n được khởi tạo với giá trị 0, chương trình bao gồm 2 tiến trình: P và Q tương ứng gán biến n giá trị 1 hoặc 2 và in ra giá trị của n cùng tên tiến trình

Ví dụ 2.1.Chương trình với 2 tiến trình

Spin là công cụ kiểm tra mô hình kiểm thử tính chất trong dó M là mô hình của

hệ thống với số trạng thái hữu han và Φ là tính chất cần kiểm thử được quy định dưới dạng một số ký hiệu hình thức

Trang 14

Với Spin có thể kiểm tra những loại tính chất: khóa chết (Deadlocks) là trạng thái có một tiến trình chiếm hữu tài nguyên lâu dài làm cho các tiến trình có nhu cầu

sử dụng tài nguyên này luôn ở trạng thái đợi mãi mãi hay còn gọi trạng thái kết thúc không hợp lệ, tính khẳng định (assertions) là cách đơn giản để kiểm tra chương trình Một assertion là một mệnh đề được đặt trong 1 chương trình mà ta cho rằng mệnh đề

sẽ luôn đúng tại vị trí đó Spin sẽ tính toán các assertion trong quá trình tìm kiếm phản

ví dụ trong không gian trạng thái của chương trình, code không đạt được (unreachable code) là cách kiểm tra có những đoạn mã lệnh trong tiến trình nhưng không bao giờ được thực hiện, công thức LTL, tính chất sống động (liveness properties) Tính chất sống động bao gồm: không có vòng lặp tiến trình (non-progress cycles) và vòng lặp chấp nhận được (acceptance cycles) Khi kiểm tra tính chất không có vòng lặp tiến trình, bộ kiểm chứng sẽ cảnh báo nếu có một thực hiện không đi qua vô hạn lần trạng thái tiến trình Trong đó trạng thái tiến trình là trạng thái hệ thống mà một số tiến trình đang thực hiện lệnh được gán nhãn với tiền tố "progress" Khi kiểm tra tính chất có vòng lặp chấp nhận được, bộ kiểm chứng sẽ cảnh báo nếu có một thực hiện đi qua vô hạn lần trạng thái chấp nhận được Trong đó trạng thái chấp nhận được là trạng thái hệ thống mà một số tiến trình đang thực hiện lệnh được gán nhãn với tiền tố

"acceptance"

Spin sẽ tính toán assertion tại một vị trí nhất định trong chương trình mà ở đó assertion được thêm vào, do vậy assertion có hạn chế trong việc biểu diễn tính chất của mô hình

Ta cần dùng đến logic thời gian tuyến tính (LTL), LTL mạnh mẽ hơn trong việc biểu diễn tính chất của mô hình (hệ thống) Với LTL ta có thể diễn tả những tính chất chung cần được thỏa mãn mà không liên quan đến một vị trí nào trong chương trình LTL đặc biệt phù hợp với các hệ thống tương tác khi tính đúng đắn của hệ thống không chỉ thể hiện ở kết quả tính toán mà ta phải kiểm tra sự giao tiếp và thực thi các tiến trình trong hệ thống

[ ] A: hệ thống luôn luôn mang tính chất A

<> A: nếu hệ thống có tính chất A tại một thời điểm nào đó trong tương lai thì ta nói hiện tại hệ thống có tính chất <> A

A U B: tại thời điểm hiện tại hệ thống có tính chất A U B có nghĩa là: nếu trong một thời điểm nào đó trong tương lai hệ thống có tính chất B thì hệ thống có tính chất

A tại tất cả các thời điểm từ hiện tại cho tới khi nó mang tính chất B

Trong nhiều trường hợp, hệ thống xây dựng phải thỏa mãn một tính chất bất biến nào đó Với LTL ta biểu diễn tính chất đó bởi toán tử []

Trang 15

Chẳng hạn có thể biểu diễn một số tính chất bằng LTL

 Safety (tính an toàn): Tính an toàn của một chương trình đảm bảo rằng sẽ không bao giờ xảy ra tình huống xấu trong chương trình (“something bad never happen”)

Tính an toàn có thể được biểu diễn bằng temporal logic như sau:

G ϕ trong LTL

Trong đó ϕ là một biểu thức logic

Ví dụ của tính an toàn:

- Nhiệt độ của phản ứng không bao giờ quá 100 độ C

- Bất kì lúc nào chìa khóa xe chưa vặn tới vị trí khởi động, xe sẽ không nổ máy

 Liveness (tính sống động): Tính liveness của một chương trình đảm bảo rằng

nó có thể thực thi được một chức năng “tốt” nào đó đã đặt ra (“something good will happen eventually”)

Thuộc tính liveness có thể được biểu diễn bằng các phép kết hợp AF hoặc F trong temporal logic:

- Khi chìa khóa xe vặn tới vị trí khởi động, xe sẽ nổ máy

- Bóng đèn sẽ chuyển sang màu xanh

 Fairness (tính công bằng) Tính công bằng đảm bảo rằng nếu một sự kiện nào

đó ở trạng thái sẵn sàng được thực thi thì đến một lúc nào đó nó sẽ được thực thi

Thuộc tính công bằng có thể được biểu diễn bằng các toán tử AF và phép suy ra:

AG (san_sang=0 → AF thuc_thi=0)

AG (san_sang=1→ AF thuc_thi =1)

Trang 16

Một ví dụ cho tính công bằng trong một hệ thống truyền-nhận tin là khi một gói tin được gửi đi thì đến một lúc nào đó nó sẽ đến được đích

Trong Spin ta chỉ cần biểu diễn tính chất của hệ thống dưới dạng một biểu thức LTL sau đó đưa vào Spin với lênh spin và tham số -f, Spin sẽ tự động chuyển biểu thức LTL sang cấu trúc never claim của Promela dùng vào việc kiểm chứng

Có những tính chất mà ta mong muốn nó không bao giờ được xuất hiện trong hệ

thống Trong Promela nó được biểu diễn bởi never claim Khi thuật toán của chúng ta

là đúng và chương trình không chứa lỗi, Spin sẽ kết thúc sau khi sinh ra tất cả các trạng thái và thông báo không có trạng thái nào vi phạm được tìm thấy

Trang 17

Nhãn To_init đảm bảo trong khi chương trình được chạy (và sinh ra các trạng thái), cho đến khi nào A còn đúng, lệnh goto thứ hai luôn luôn được chọn và Spin sẽ liên tục

Nhưng nếu chương trình tính toán đến một trạng thái mà ở đó A sai, Spin nhảy tới nhãn accept_all và kết thúc chương trình

SPIN sử dụng thuật toán tìm kiếm theo độ sâu (depth first search algorithm DFS)

để tạo và thực hiên không gian trạng thái đầy đủ [11]

đó với mỗi kênh trong hệ thống chứa Các biến cục bộ và Bộ đếm tiến trình

2.3 Giới thiệu về hệ thống thời gian thực

2.3.1 Khái niệm

Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thống thời gian thực không phải lúc nào cũng được hiểu một cách thống nhất Nhiều người cho rằng hệ thống thời gian thực là một hệ thống phải làm việc với yêu cầu thời gian rất nhanh Ví dụ các hệ thống điều khiển tay máy, điều khiển động cơ,… Lại có người cho rằng thời gian thực là thời gian tuyệt đối, hệ thống thời gian thực là một hệ thống

có khả năng làm việc với thời gian tuyệt đối theo giờ phút giây ngày tháng Vậy chúng

ta nên hiểu thế nào là hệ thống thời gian thực?

Hệ thống thời gian thực (RTS – Real Time System) là một hệ thống mà tính đúng đắn của nó không chỉ phụ thuộc vào các kết quả logic nó tạo ra mà còn phụ thuộc vào các thời điểm các kết quả được tạo ra

Các trạng thái được lưu trong bảng băm

Yêu cầu trạng thái hợp lệ

Chỉ làm việc với các

tính chất trạng thái

Các trạng thái cũ được lưu trong ngăn xếp tương ứng với một đường thực hiện đầy đủ

Trang 18

Như vây, hệ thống thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó chỉ phụ thuộc vào sự chính xác của kết quả mà còn phụ thuộc vào thời điểm đưa ra kết quả Hệ thống có lỗi khi yêu cầu về thời gian không được thỏa mãn

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 thời gian rất ngắn vào khoảng vài mili giây, thời gian mà hệ thống trả lời lại yếu tố kích thích đó tốt nhất vào khoảng dưới một giây, khoảng thời gian để xử lý một sự kiện như vậy được gọi là dealtime, 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 RTS cũng cần quan tâm xem những công việc thời gian thực có tuần hoàn hay không Đối với real-time được hiểu công việc tuần hoàn dealtime ấn định theo từng chu kì xác định, đối với công việc không tuần hoàn dealtime xác định vàolúc bắt đầu công việc Các biến cố kích hoạt công việc không tuần hoàn thường dựa trên kỹ thuật xử lý ngắt của hệ thống phần cứng

Một hệ thống realtime được hiểu là một hệ thống làm việc với các sự kiện tức thời (realtime) Tuy nhiên không phải mọi hệ thống đều có thể thực hiện được những qui định tức thời hay đáp trả lại sự kiện một cách tức thời như chúng ta mong muốn Khi bắt tay xây dựng các ứng dụng phần mềm chúng ta luôn mong muốn thời gian trễ

để đưa ra một lệnh hay một quyết định là nhỏ nhất, hay khi xây dựng các ứng dụng phần cứng chúng ta lại muốn thời gian đưa ra một tín hiệu đáp trả một sự kiện là phải gần như tức thời, nhưng sự thực không được như vậy vì các hệ thống đáp ứng sự kiện bao giờ cũng có một thời gian trễ nhất định Khái niệm “hệ thống thời gian thực”,ở đây hiểu ngầm như một hệ thống đáp ứng sự kiện với một thời gian trễ chấp nhận được hay nói cách khác, hệ thời gian thực là hệ thống có các ràng buộc về thời gian đối với các hành động của hệ thống

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

Tính bị động: hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm thường không biết trước Ví dụ: Sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đưa

ra kết quả phản ứng một cách kịp thời Tuy tính nhanh nhạy là một đặc điểm tiêu biểu nhưng một hệ thống có tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu, tác động bên ngoài

Tính đồng thời: hệ thống phải có khả năng phản ứng và xử lý đồng thời nhiều sự kiện diễn ra Có thể cùng một lúc bộ điều khiển được yêu cầu thực hiện nhiều vòng

Trang 19

điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ

Tính tiền định: Dự đoán được thời gian phản ứng tiêu biểu, thời gian phản ứng chậm nhất cũng như trình tự đưa ra các phản ứng Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ ta phải tham gia quyết định được về trình tự thực hiện các công việc và đánh giá được thời gian xử lý mỗi công việc Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng tính thời gian thực của hệ thống

2.3.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 nhằm cung cấp thông tin thời gian thực Bộ điều khiển ngắt nhằm quản lý các biến cố không theo chu

kỳ Bộ định biểu nhằm quản lý các quy trình thực hiện Bộ quản lý tài nguyên nhằm cung cấp các tài nguyên máy tính Bộ điều khiển thực hiện nhằm khởi động các tiến trình

Các thành tố trên có thể được phân định là thành tố cứng hay mềm tùy thuộc vào

hệ thống và ý nghĩa sử dụng Thông thường, các RTS được kết hợp vào phần cứng có khả năng tốt hơn so với hệ thống phần mềm có khả năng tương ứng và tránh được chi phí quá đắt cho việc tối ưu hóa phần mềm

Hệ thống thời gian thực là hệ thống có ràng buộc về thời gian, tuy nhiên nếu thời gian ràng buộc này bị vi phạm (thời gian trả lời vượt quá giới hạn cho phép) hệ thống vẫn tiếp tục hoạt động bình thường, tác hại không đáng kể

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

Có thể nói tất cả các hệ thống điều khiển là hệ thời gian thực Ngược lại một số lớn các hệ thống thời gian thực là các hệ thống điều khiển, không hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian

Hệ thống thời gian thực được ứng dụng phổ biến trong rất nhiều lĩnh vực như thương mại, quân đội, y tế, giá o dục, cơ sở hạ tầng… và ngày nay đang phát triển mạnh mẽ mà một số lĩnh vực tiêu biểu: Các hệ thống phương tiện như : ô tô, xe điện ngầm, máy bay, tàu hỏa… Các hệ thống điều khiển giao thông: điều khiển không lưu, điều khiển tàu biển…

2.4 Kết luận

Trong chương này chúng tôi trình bày về mô hình kiểm thử với ngôn ngữ Promela và công cụ Spin Kiểm chứng mô hình khảo sát tất cả các trạng thái có thể của hệ thống là kiểm tra rằng chúng chứa sự đúng đắn đã được đặc tả Việc sinh ra các

Trang 20

trạng thái và kiểm tra có thể được thực hiện một cách tự động bằng phần mềm và Spin

là một trong những bộ kiểm chứng (model checker) được sử dụng rộng rãi Các bộ kiểm chứng không kiểm tra trực tiếp chương trình mà kiểm tra một mô hình là thể hiện mức cao của hệ thống Mô hình này mô tả hành vi của hệ thống Để áp dụng được các công cụ kiểm chứng mô hình, việc đầu tiên là phải xây dựng mô hình của hệ thống Các mô hình này cùng với đặc tả của thuộc tính cần kiểm tra là đầu vào của các

bộ kiểm chứng

Chương này ta cũng giới thiệu về hệ thống thời gian thực Ở phần sau chúng ta

sẽ tìm hiểu sâu về otomat thời gian để mô hình hóa và kiểm chứng hệ thống thời gian thực

Trang 21

Chương 3 - Otomat thời gian

3.1 Giới thiệu

Chúng ta giới thiệu otomat thời gian để mô hình hóa hành vi của hệ thống thời gian thực theo thời gian Các định nghĩa được cung cấp một cách đơn giản nhưng mạnh mẽ, chú giải đồ thị chuyển trạng thái với các ràng buộc thời gian sử dụng các đồng hồ giá trị thực Otomat thời gian chấp nhận các từ ký tự theo thời gian – thời gian với giá trị thực được liên kết với mỗi kí tự [1]

Trong mô hình thời gian tuyến tính với giả thiết một thực hiện hoàn toàn có thể được mô hình hóa bởi trình tự các trạng thái của các sự kiện của hệ thống hay còn gọi

là excution trace (hoặc trace) Hành vi của hệ thống là tập trình tự thực hiên Hơn nữa tập các trình tự là ngôn ngữ hình thức nên dẫn đến sử dụng otomat trong việc đặc tả và kiểm chứng hệ thống Nếu hệ thống là hữu hạn trạng thái sẽ tương ứng với otomat hữu hạn Đặc biệt sự đa dạng với nhiều loại otomat Bu chi, otomat không xác định, otomat Muller xác định và không xác định, biểu thức hình thức ω có cùng chức năng nhằm định nghĩa lớp các ngôn ngữ hình thức ω Từ đó có rất nhiều lý thuyết kiểm chứng dựa trên lý thuyết ngôn ngữ hình thức ω [2]

Để đơn giản chỉ mô hình các thực hiện là trình tự vô hạn các sự kiện Mỗi sự kiện gắn liền với thời gian, thành phần thứ i của trình tự thời gian tương ứng với thời gian xảy ra của sự kiện thứ i

Mô hình thời gian đơn giản nhất là mô hình thời gian rời rạc (discrete-time) trong

đó trình tự thời gian tăng tuyến tính với trình tự các số nguyên Mô hình này tương ứng với mạch kỹ thuật số đồng bộ, các tín hiệu thay đổi chính xác khi có tín hiệu đồng

hồ (signal clock) Các hành vi thời gian rời rạc có thể được thực hiện sử dụng otomat hữu hạn Tuy nhiên các sự kiện tiến trình không luôn luôn xảy ra với thời gian giá trị nguyên trong các hệ thống vật lý

Mô hình đồng hồ lý tưởng (fictitious-clock) tương tự với mô hình thời gian rời rạc ngoại trừ mô hình này chỉ yêu cầu trình tự thời gian số nguyên và không giảm Sự biên dịch của vết thực hiện thời gian trong mô hình là các sự kiện xảy ra theo thứ tự được quy đinh với thời gian giá trị thực, tuy nhiên thời gian thực sự được đọc bởi đồng hồ số Mô hình này dễ dàng chuyển đổi đến ngôn ngữ hình thức Trong mô hình này có thêm khái niệm tick Chẳng hạn ti+1 – ti số tick giữa sự kiện i và sự kiện i+1 Tuy nhiên mô hình này khá đơn giản và chỉ thực hiện với nhưng hành vi sử dụng otomat hữu hạn

Mô hình thời gian dày đặc (dense-time) trong đó thời gian là tập dày đặc vì vậy thích hợp mô hình các tiến trình vật lý theo thời gian liên tục Trong mô hình này, thời

Trang 22

gian của các sự kiên là các số thực, tăng đơn điệu và không có cận biên Với thời gian dày đặc (dense-time) otomat hữu hạn không thích hợp Thay thế ta phát triển lý thuyết ngôn ngữ hình thức thời gian và otomat thời gian nhằm ứng dụng cho hệ thống như vậy

Otomat thời gian chấp nhận các từ thời gian (timed words) – trình tự vô hạn các

sự kiện, mỗi sự kiện tương ứng với một ký tự và thời gian giá trị thực Otomat thời gian là otomat với tập hữu hạn các đồng hồ giá trị thực (real-valued đồng hồs) Đồng

hồ có thể được thiết lập lại 0 với các bước chuyển trạng thái của otomat hay theo dõi thời gian trôi kể từ lần cuối được thiết lập Các bước chuyển của otomat bao gồm ràng buộc giá trị đồng hồ (clock values): một thực hiện có thể đạt được nếu giá trị hiện tại của đồng hồ thỏa mãn các ràng buộc liên kết Vì vậy ta có thể mô hình tính chất thời gian chẳng hạn “kênh chuyển tiếp thông báo trong 3 đên 5 đơn vị thời gian kể từ khi nhận” Otomat thời gian mô hình hóa hệ thống thời gian thực và duy trì các tính chất thời gian thực: đặc điểm tính chất như tính sống động, tính công bằng và không xác định; đặc điểm số lượng như : tính tuần hoàn, biên và độ trễ thời gian

Ta xem xét tính xác định và không xác định với otomat Buchi và otomat Muller

Ta cũng chỉ ra otomat thời gian không xác định đóng với phép hợp và giao nhưng không đóng với phép bù Tính chất đóng cho lớp otomat thời gian xác định tương tự với otomat không chứa thời gian: otomat Muller thời gian xác định đóng với tất các phép boolean trong khi đó otomat Buchi thời gian xác định đóng chỉ với các phép Boolean tích cực Vì vậy otomat Muller thời gian xác định khả năng diễn đạt ngôn ngữ kém hơn so với otomat không xác định

Cuối cúng ta áp dụng lý thuyết otomat thời gian để chứng minh tính đúng đắn của các hệ thống thời gian thực với trạng thái hữu hạn

cơ bản giống như Otomat trạng thái hữu hạn đa định và điều kiện chấp nhận xử lý các

ký tự vào Có nhiều loại Otomat nhưng trong luận văn này chúng xem xét đến Bu chi Otomat và Muller Otomat

Một bảng chuyển A là một bộ (∑,S,S0, E) với ∑ là các ký tự vào, S là tập hữu hạn các trạng thái của Otomat, S0⊆ S là tập các trạng thái bắt đầu, E ⊆ S X S X ∑ là

Trang 23

tập các cung Otomat bắt đầu bằng trạng thái khởi tạo và nếu (s, s’, a) Є E thì Otomat

có thể đổi thạng thái từ s đến s’ khi đọc dữ liệu đàu vào a

Cho một từ σ = σ1 σ2… bao gồm các ký tự ∑ ta nói rằng:

r: s0 s1 σ1 s2 σ2 σ3 …

là một thực hiện của Otomat A trên từ σ, với s0 Є S0, và (si-1, si , σi) Є E với i

≥ 1 Với một thực hiện tập inf(r) bao gồm các trạng thái s Є S để s = si cho vô hạn lần

i ≥ 1

Các loại Otomat ω khác nhau được định nghĩa bằng cách thêm điều kiện chấp nhận được đến định nghĩa của các bảng chuyển trạng thái (transition tables) Otomat Buchi A là một bảng chuyển (∑,S,S0, E) với tập thêm vào F ⊆ S là các trạng thái chấp nhận được Một thực hiện r của Otomat A trên từ σ Є ∑ω là thực hiện chấp nhận được nếu như inf(r) Λ F ≠ Ø Mặt khác một thực hiện r đang chấp nhận nếu một số trạng thái từ tập F xuất hiện vô hạn lần trên thực hiện r Ngôn ngữ L(A) của Otomat A bao gồm các từ σ Є ∑ω để A có một thực hiện chấp nhận được trên từ σ

Ví dụ 3.1: Xem xét Otomat bao gồm 2 trạng thái của Hình 3.1 qua ký tự {a,b} Trạng thái s0 là trạng thái khởi tạo, s1 là trạng thái chấp nhận Tất cả các thực hiện của Otomat có dạng

r: s0 s1 σ1 s2 σ2 σ3 … σn s0 s1a s1… a

với σi Є {a,b} cho i ≤ 1 ≤ 𝑛 với n ≥ 1 Otomat chấp nhận tất cả các từ chỉ với

số hữu hạn của ký tự b ngôn ngữ L0 = (a+b)* aω

Hình 3.1: Otomat Buchi chấp nhận (a+b)*aω Ngôn ngữ ω được gọi là ngôn ngữ hình thức ω nếu được chấp nhận bởi ít nhất một Otomat Buchi Vì vậy ngôn ngữ L0 của ví dụ 1 là ngôn ngữ hình thức ω

Lớp các ngôn ngữ hình thức ω là đóng dưới dạng phép toán Boolean Ngôn ngữ được thực hiện bởi xây dựng Otomat Buchi

Buchi Otomat được sử dụng để mô hình các tiến trình đồng thời hữu hạn trạng thái Vấn đề kiểm thử suy dẫn đến vấn đề ngôn ngữ Để kiểm tra liệu ngôn ngữ của Otomat được chứa trong Otomat kia, chúng ta kiểm tra có phải là tập rỗng giao của

a

a a,b

Trang 24

hai Otomat gồm Otomat gốc và Otomat bù Kiểm tra tính rỗng là đơn giản, ta chỉ cần tìm kiếm một chu kỳ đạt được từ trạng thái khởi tạo và bao gồm ít nhất một trạng thái chấp nhận được Tuy nhiên bổ sung cho Otomat Buchi là vấn đề bùng nổ tăng đột biến số trạng thái Liệu ngôn ngữ của Otomat được chứa trong ngôn ngữ của Otomat

đa định có thể được thực hiện trên thời gian đa thức

Một bảng chuyển A = bộ (∑,S,S0, E) là đơn định nếu (i) có trạng thái khởi tạo duy nhất |S0| = 1 và (ii) số các cung được gán nhãn a bắt đầu tại s nhiều nhất là 1 cho tất cả các trạng thái s Є S và cho tất cả các ký tự a Є ∑ , Vì vậy bảng chuyển xác định, trạng thái hiện tại và ký tự đầu vào kế tiếp xác định duy nhất trạng thái kế tiếp Kết quả Otomat đơn định có nhiều nhất một thực hiện cho một từ Không giống như Otomat với từ hữu hạn, lớp các ngôn ngữ được được chấp nhận bởi Otomat Buchi xác định sẽ ít hơn lớp các ngôn ngữ hình thức ω Trong ví dụ 2.1 không có Otomat Buchi chấp nhận ngôn ngữ L0 Otomat Muller tránh được nhược điểm này với điều kiện chấp nhận được hiệu quả hơn

Otomat Muller A là một bảng chuyển (∑,S,S0, E) với lớp chấp nhận được F ⊆

2s.Một thực hiện r trên Otomat A qua từ σ Є ∑ω là một thực hiện chấp nhận nếu inf(r)

Є F Nghĩa là một thực hiện r là chấp nhận được nếu tập các trạng thái bằng tập trạng thái Є F Ngôn ngữ được chấp nhận bởi A được định nghĩa như trong trường hợp của Otomat Buchi

Ví dụ 3.2: Lớp các ngôn ngữ được chấp nhận bửi Otomat Muller của hình 2 chấp nhận ngôn ngữ L0 cả các từ qua {a,b} với chỉ một số hữu hạn ký tự b Lớp chấp nhận Muller là {{s1}} Vì vậy các thực hiện chấp nhận có thể viếng thăm trạng thái s0 chỉ với hữu hạn lần Vì vậy Otomat Muller xác định đủ mạnh để trình diễn ngôn ngữ hình thức ω

Hình 3.2: Otomat Muller xác định chấp nhận (a+b)*aω

3.3 Otomat thời gian

Trong phần này ta định nghĩa các từ thời gian (timed word) bằng cách nhóm giá trị thời gian thực với mỗi ký tự trong từ Khi đó ta định nghĩa Otomat ω để chấp nhận

Trang 25

từ thời gian và sử dụng chúng để phát triển lý thuyết ngôn ngữ hình thức thời gian đến

lý thuyết của ngôn ngữ hình thức ω

3.3.1 Ngôn ngữ thời gian

Ta định nghĩa từ thời gian cho một hành vi của hệ thống thời gian thực tương ứng với từ thời gian trên các ký tự của sự kiện Như trong trường hợp mô hình của thời gian liên tục, tập các số thực dương, R, được chọn là miền thời gian Một từ σ được nhóm với trình tự thời gian 𝜏 được định nghĩa như sau [6]

Định nghĩa 3.1: Trình tự thời gian 𝜏 = 𝜏1𝜏2 … là một trình tự vô hạn các giá trị thời gian 𝜏𝑖 Є 𝑅 với 𝜏𝑖 >0 và thỏa mãn các ràng buộc sau:

1 Tính đơn điệu: 𝜏 tăng đơn điệu nghĩa là 𝜏i < 𝜏i+1

2 Tiến trình: cho mọi t Є R thì tồn tại i ≥ 1 để 𝜏i > t

Một từ thời gian với các ký tự (σ, τ) được xem như đầu vào của Otomat biểu diễn σi tại thời điểm τi Nếu mỗi ký tự σi được biểu thị một sự kiện xảy ra thì thành phần tương ứng τi biểu diễn thời gian xẩy ra sự kiện σi Để mở rộng thích hợp cho phép tại một thời điểm với một giá trị thời gian có thể nhiều sự kiện liên tiếp, vì vậy ta

có thể định nghĩa khác một chút về từ thời gian bằng cách yêu cầu trình tự thời gian tăng đơn điệu ( chẳng hạn τi ≤ τi+1 với i ≥ 1)

Ta xem xét ví dụ về ngôn ngữ thời gian

Vị dụ 3.3: cho ký tự {a,b} Định nghĩa ngôn ngữ thời gian L1 bao gồm tất cả các

ký tự thời gian để không có trường hợp ký tự b theo sau thời gian 5.6 Vì vậy ngôn ngũa L1 được cho như sau:

L1 = {(σ, τ) | ∀𝑖 ((τi > 5.6) → (σi=a)) (3.1)

Ví dụ khác của ngôn ngữ L2 bao gồm các từ thời gian trong đó a và b là chuyển đổi liên tục và các cặp a và b, thời gian khác biệt giữa a và b luôn tăng Ngôn ngữ L được cho như sau

L2 ={((ab)ω, τ) | ∀𝑖 ((τ2i - τ2i-1) < (τ2i+2 - τ2i+1)) (3.2) Các toán tử lý thuyết ngôn ngữ chẳng hạn phép giao, hợp, bù được định nghĩa cho ngôn ngữ thời gian áp dụng như ngôn ngữ không có thời gian Thêm vào đó ta định nghĩa toán tử Untime Phép toán này lược bỏ thời gian được liên kết với các ký

tự, hay phép chiếu của vết thời gian (σ, τ) trên thành phần σ

Định nghĩa 3.2 Cho một ngôn ngữ thời gian L trên ∑, Untime(L) là ngôn ngữ ω bao gồm σ Є ∑ω sai cho (σ, τ) Є L theo trình tự thời gian τ

Trang 26

Với ví dụ 3.2 Untime(L1) là ngôn ngữ ω (a+b)*aω và Untime(L2) là bao gồm các

từ đơn (ab)ω

3.3.2 Bảng chuyển trạng thái với các ràng buộc thời gian

Ta cần mở rộng các bảng chuyển trạng thái đến bảng chuyển trạng thái thời gian

để có thể đọc các từ thời gian Khi một Otomat thực hiện một bước chuyển trạng thái, lựa chọn của trạng thái phụ thuộc vào đầu vào được đọc Trong trường hợp bảng chuyển trạng thái thời gian, để lựa chọn trạng thái kế tiếp phụ thuộc vào yếu tố thời gian của ký tự đầu vào liên quan đến thời gian của ký tự được đọc trước Để đáp ứng yếu tố này, một tập hữu hạn các đồng hồ (đồng hồ) ( với giá trị thực) được liên kết với bảng chuyển trạng thái Một đồng hồ (đồng hồ) có thể được thiết lập về 0 đồng thời với bước chuyển trạng thái Với mỗi bước chuyển trạng sẽ liên kết ràng buộc về đồng

hồ (đồng hồ) và yêu cầu phép chuyển thực hiện được nếu giá trị hiện tại đồng hồ thỏa mãn ràng buộc Trước khi định nghĩa bảng chuyển trạng thái thời gian, ta xem xét ví

dụ sau

Ví dụ 3.4: Xem xét bảng chuyển trạng thái thời gian của hình 3.3 Trạng thái khởi tạo s0 Có một đồng hồ (đồng hồ) x Một chú thích dạng x:=0 trên cung tương tứng bước chuyển với việc thiết thập lại đồng hồ (đồng hồ) x khi cung được thực hiện Tương tự chú thích (x<2) trên cung là một ràng buộc về đồng hồ liên kết với cung

Hình 3.3: Ví dụ bảng chuyển trạng thái thời gian Trạng thái s0 di chuyển đến trạng thái s1 khi đọc ký tự đầu vào a Đồng hồ x thiết lập về 0 với bước chuyển trạng thái Trong khi đó trạng thái s1, giá trị của đồng hồ x chỉ thời gian được thiết lập với sự kiện đọc ký tự cuối a Việc chuyển trạng thái từ s1

về s0 được thực hiện nếu giá trị của đồng hồ nhỏ hơn 2 Toàn bộ chu kỳ được lặp lại thì Otomat chuyển ngược về trạng thái s0 Vì vậy ràng buộc thời gian được trình bày bởi bảng chuyển trạng thái cộng thêm với độ trễ giữa a và theo sau là b luôn luôn nhỏ hơn 2, ngôn ngữ hình thưc như sau:

Trang 27

các đồng hồ có thể được thiết lập không đồng bộ với nhau nghĩa là các đồng hồ khác nhau có thể được khởi động tại các thời điẻm khác nhau và không có cận dưới cho việc khởi tạo giữa các lần đọc ký tự Nhiều đồng hồ cho phép nhiều độ trễ đồng thời trong ví dụ sau

Ví dụ 3.5 Bảng chuyển trạng thái thời gian của hình 3.4 sử dụng hai đồng hồ x và

y, chấp nhận ngôn ngữ

L ={((abcd)ω, τ) | ∀𝑗 ((τ4j+3 < τ4j+1+1) Λ ((τ4j+4 > τ4j+2+2)) (3.4)

Hình 3.4: Bảng chuyển trạng thái thời gian với 2 đồng hồ (đồng hồ)

Các chu kỳ Otomat giữa các trạng thái s0, s1, s2 và s3 Đồng hồ x nhận hàm thiết lập về 0 mỗi lần di chuyển từ trạng thái s0 đến s1 khi đọc ký tự a Việc kiểm tra đồng

hồ (x <1) được liên kết với bước chuyển trạng thái từ s2 đến s3 đảm bảo ký tự được đọc trong thời gian 1 đơn vị trước khi đọc ký tự a Cơ chế tương tự để thiết lập về 0 cho đồng hồ khác y trong khi đọc ký tự b và kiểm tra giá trị của nó khi đọc ký tự d, đảm bảo độ trễ giữa b và d là luôn lớn hơn 2

Để ý trong ví dụ trên để ràng buộc giữa độ trễ a và c và giữa b và d Otomat không đưa vào cận biên rõ ràng nào trên a tiếp theo b hay c tiếp theo d Điểm thuận lợi của nhiều đồng hồ ta có thể được thiết lập độc lập lẫn nhau Ngôn ngữ L3 là giao của hai ngôn ngữ L31 và L32 được định nghĩa như sau:

L31 ={((abcd)ω, τ) | ∀𝑗 ((τ4j+3 < τ4j+1+1)} (3.5)

L32 ={((abcd)ω, τ) | ∀𝑗 (τ4j+4 > τ4j+2+2)} (3.6) Mỗi ngôn ngữ ngữ L31 và L32 có thể được trình diễn bởi một Otomat sử dụng chỉ một đồng hồ, tuy nhiên để diễn tả sự giao nhau ta cần 2 đồng hồ

Cần ghi nhớ các đồng hồ của Otomat không tương ứng với đồng hồ cục bộ của các thành phần khác trong hệ thống phân tán Các đồng hồ tăng giá trị thời gian dưới

tỉ lệ thống nhất, đếm thời gian với khung thời gian cố định toàn cục Ta đề cập đến đồng hồ hư cấu (fictitous clock) để trình diễn các tính chất thời gian của hệ thống Thay thế chúng ta có thể xem xét Otomat được trạng bị với số hữu hạn các stop-watch

Trang 28

để có thể đƣợc bắt đầu và đƣợc kiểm tra độc lập với các stop-watch khác, nhƣng tất cả stop-watch đề cập đến cùng đồng hồ

3.3.3 Các ràng buộc đồng hồ và đồng hồ biên dịch

Để định nghĩa Otomat thời gian, ta cần liệt kê các loại ràng buộc đồng hồ đƣợc phép trên các cung chuyển trạng thái Dạng đơn giản nhất của ràng buộc là so sánh giá trị đồng hồ với một hằng thời gian Ta cho phép chỉ các phép kết nối Boolean của các ràng buộc đơn giản nhƣ vây [7]

Định nghĩa 3.3: Cho tập X là các biến đồng hồ, tập Φ(X) của các ràng buộc đồng

hồ δ đƣợc định nghĩa quy nạp nhƣ sau:

δ := x ≤ c | c ≤ x | ¬ δ | δ1 Λ δ2 Trong đó x là đồng hồ trong X và c là hằng trong Q Quan sát các ràng buộc chẳng hạn true (x =c), x Є [2,5) là định nghĩa tắt

Một đồng hồ biên dịch (interpretation clock) v cho một tập X các đồng hồ gán một giá trị thực đến mỗi đồng hồ, nghĩa là ánh xạ từ X đến R Ta nói rằng 1 đồng hồ biên dịch (đồng hồ interpretation) v cho X thỏa mãn 1 ràng buộc đồng hồ δ trên X nếu

δ có giá trị đúng dựa trên các giá trị đƣợc ánh xạ bởi đồng hồ biên dịch v

Cho t Є R, v + t nghĩa là ánh xạ các đồng hồ x đến giá trị v(x) +t và đồng hồ biên dịch t.v gán mỗi đồng hồ x đến giá trị t.v(x) Cho Y ⊆ X , [Y → t] v có nghĩa đồng hồ biên dịch cho X gán t đến x Є Y và thỏa mãn v với các đồng hồ còn lại

3.3.4 Các bảng chuyển trạng thái thời gian

Định nghĩa 3.4 một bảng chuyển trạng thái thời gian là một bộ (∑,S,S0,C,E) với

Trang 29

tiếp tục đếm thời gian Hành vi được giữ bởi định nghĩa “run” của các bảng chuyển trạng thái thời gian Một thực hiện “run” ghi lại trạng thái với giá trị của các đồng hồ tại các điểm chuyển trạng thái Cho trình tự thởi gian τ = τ1 τ2 τ3… với định nghĩa τ0

Khởi tạo: s0 Є S0 và v0(x) = 0 cho tất cả x Є C

Cho tất cả i ≥ 1 có một cung trong E với dạng (si-1, si, σi ,λi , δi) sao cho (vi-1 + τi – τi-1 ) thỏa mãn δi và vi bằng [λi → 0] (vi-1 + τi – τi-1 )

Để thiết lập inf(r) bao gồm các trạng thái s Є S để s = si cho vô hạn lần i ≥ 0

Ví dụ 3.6: Xem xét bảng chuyển trạng thái thời gian của ví dụ 3.5

và τi+1 được cho bởi biên dịch (vi + t – τi) Khi đó bước chuyển trạng thái từ si đến si+1 xảy ra Ta sử dụng giá trị (vi + τi+1 – τi) để kiểm các ràng buộc đồng hồ, tuy nhiên tại thời điểm τi+1 giá trị của đồng hồ nhận được và thiết lập lại về 0

Để ý bảng chuyển trạng thái (∑, S, S0 , E) có thể được xem như một bảng chuyển trạng thái thời gian A’ Ta chọn tập các đồng hộ được thiết lập rỗng và thay thế các cung (s,s’,a) bởi (s,s’,a ,Ø,true) Thực hiện A’ rõ ràng tương ứng với các thực hiện của

A

3.3.5 Ngôn ngữ hình thức thời gian

Ta có thể nhóm mục chấp nhận với các bảng chuyển trạng thái thời gian và sử dụng bảng chuyển trạng thái thời gian để định nghĩa ngôn ngữ thời gian

Định nghĩa 3.6: Otomat Buchi thời gian (viết tắt TBA) là một bộ (∑, S, S0 ,C, E,F) với bộ (∑, S, S0 ,C ,E) là bảng chuyển trạng thái thời gian và F ⊆ S là tập các trạng thái chấp nhận

Trang 30

Một thực hiện r = (𝑠 , 𝑣 ) của TBA trên từ thời gian (σ, τ) được gọi là thực hiện chấp nhận được nếu inf(r) Λ F ≠ Ø

Cho một TBA A , ngôn ngữ L(A) là các từ thời gian mà TBA chấp nhận được định nghĩa bằng cách thiết lập {(σ, τ) | A có một thực hiện chấp nhận trên (σ, τ) } Tương tự với lớp các ngôn ngữ được chấp nhận bởi Otomat Buchi, ta gọi lớp ngôn ngữ thời gian được chấp nhận bởi ngôn ngữ hình thức TBA

Hình 3.5: Otomat Buchi thời gian chấp nhận Lcrt Định nghĩa 3.7 Ngôn ngữ thời gian L là ngôn ngữ hình thức thời gian nếu L = L(A) cho các TBA A

Ví dụ 3.7: Ngôn ngữ L3 của ví dụ 3.5 là ngôn ngữ hình thức thời gian Bảng chuyển trạng thái thời gian của hình 3.4 được nhóm với tập chấp nhận bao gồm tất cả các trạng thái

Cho tất cả các ngôn ngữ hình thức ω trên ∑ , ngôn ngữ thời gian {(σ, τ) | σ Є L}

là hình thức Ví dụ điển hình của ngôn ngữ thời gian không hình thức là ngôn ngữ L2

của ví dụ 3.3 yêu cầu sự khác biệt thời gian giữa các cặp liên tiêp a và b với trình tự tăng

Một ngôn ngữ không hình thức là {(aω, τ) | ∀i (τi = 2i) (3.7) Otomat của ví dụ 3.7 kết hợp điều kiện chấp nhận Buchi với ràng buộc thời gian

để đặc tả tính chất:

Ví dụ 3.8: Otomat hình 3.5 chấp nhận ngôn ngữ thời gian Lcrt với các ký tự {a,b}

Lcrt = {((ab)ω, τ) | ∃ i ∀ j ≥ i (τ2j < τ2j-1 +2)} (3.8) Trạng thái khởi tạo là s0, trạng thái chấp nhận là s2 và có một đồng hồ x Otomat bắt đầu trạng thái s0 và chu kỳ giữa trạng thái s0 và s1 Sau đó di chuyển đến trạng thái

s2 thiết lập đồng hồ x đến 0 Chu kỳ giữa trạng thái s2 và s3, Otomat thiết lập đồng hồ trong khi đọc ký tự a và đảm bảo ký tự b kế tiếp trong 2 đơn vị thời gian Otomat mô hình hệ thống với thời gian đáp ứng hội tụ, thời gian đáp ứng cuối cùng luôn bé hơn 2 đơn vị thời gian

Trang 31

Ví dụ kế tiếp chỉ Otomat thời gian có thể chỉ định hành vi xác định

Ví dụ 3.9 Otomat của hình 6 chấp nhận ngôn ngữ sau với các ký tự {a,b}

{(σ, τ) | ∀i ∃j (τj= 3i Λ σj = a)} (3.9) Otomat có một trạng thái s0 và một đồng hồ x Đồng hồ thiết lập với với chu kỳ 3 đơn vị thời gian Otomat yêu cầu khi đồng hồ bằng 3 thì có ký tự đầu vào a Vì vậy

mô hình mô tả tính chất a xảy tại các thời điểm giá trị thời gian là bội số của 3

Hình 3.6: Otomat thời gian mô hình hóa hành vi lặp định kỳ

3.3.6 Các tính chất của ngôn ngữ hình thức thời gian

Các lớp ngôn ngữ hình thức thời gian được đóng dưới (hữu hạn) phép hợp và giao

Xem xét TBA (∑, Si, Si0 ,Ci, Ei,Fi), i = 1,2,…n Giả thiết không làm mất tính tổng quát tập các đồng hồ là riêng rẽ Ta xây dựng TBA chấp nhận các phép hợp và giao của L(Ai)

Vì TBA là không xác định, trường hợp của phép hợp là rõ ràng TBA được yêu cầu đơn giản là phép hợp riêng rẽ của tất cả các Otomat

Phép giao có thể được thực hiện bằng cách xây dựng Buchi Otomat Tập các đồng hồ cho Otomat A là ∪iCi Các trạng thái của A có dạng (s1, , sn,k) với mối si Є Si

và 1 ≤ k ≤ n Thành phần thứ i phản ánh trạng thái của Ai, thành phần cuối cùng là bộ đếm với tất cả otomat cho trạng thái thỏa mãn điều kiện chấp nhận được của từng Otomat riêng rẽ Khởi tạo bộ đếm là 1 và bộ đếm tăng từ k đến (k + 1) nếu trạng thái của Otomat thứ k là trạng thái chấp nhận

Các trạng thái khởi tạo của A có dạng (s1, , sn,1) với mỗi si là trạng thái khởi tạo của Ai. Một bước chuyển của A đạt được bởi nhóm các bước chuyển của các Otomat

có cùng nhãn Cho {(si,si’,a,𝜆i, δi} Є Ei | i = 1,…,n} là tập các bước chuyển trạng thái, mỗi một Otomat với cùng nhãn a Tương ứng với cung chuyển trạng thái của A từ

S0

a,b, (x<3) ?

a, (x = 3) ? , x:=0

Trang 32

trạng thái dạng (s1, , sn,k) được gán nhãn a Trạng thái mới (s1’, , sn’,j) với j = (k+1) mod n nếu sk Є Fk và j = k ngược lại Tập các đồng hồ được thiết lập với bước chuyển

là ∪iCi và ràng buộc đồng hồ là Λiδi

Giá trị bộ đếm theo chu kỳ với phạm vi từ 1…n vô hạn lần nếu các điều kiện chấp nhận của tất cả các Otomat được đáp ứng Kết qủa ta định nghĩa tập chấp nhận của A bao gồm các trạng thái (s1, , sn,n) với sn Є Fn

Hình 3.7: Otomat thời gian chấp nhận ngôn ngữ LconvergeQuan sát sự kiện cho các ngôn ngữ hình thức thời gian nhiều sự kiện tùy ý có thể xảy ra trong một khoảng chu kỳ thời gian hữu hạn Hơn nữa các ký tự có thể được tự ý gần ký thự khác Xem xét ví dụ sau

Ví dụ 3.10 Ngôn ngữ được chấp nhận bởi Otomat của hình 10 là:

Lconverge = {((ab)ω, τ) | ∀i (τ2i-1 = i Λ (τ2i - τ2i-1 > τ2i+2 - τ2i+1))} (3.10) Tất các các từ được chấp nhận bởi Otomat có tính chất trình tự thời gian giữa a

và theo sau b là giảm dần Từ mẫu được chấp nhận bởi Otomat

(a,1) → (b,1.5) → (a,2) → (b, 2.25) → (a,3) → (b, 3.125) → …

Ví dụ này mô tả mô hình số thực và khác với mô hình thời gian rời rạc Ta yêu cầu các giá trị thời gian τi là bội số của hằng 𝜀 , ngôn ngữ chấp nhận được của Otomat hình 10 là rỗng

Mặt khác Otomat thời gian không phân biệt giữa tập các số thực và tập các quan

hệ Q Đặt biệt nếu ta yêu cầu các giá trị thời gian theo thứ tự thời gian là các số tỉ lệ, ngôn ngữ không thời gian Untime[L(A)] là Otomat thời gian A không thay đổi

Cho L là ngôn ngữ hình thức thời gian Với các từ σ, σ Є Untime (L ) nếu tồn tại trình tự thời gian τ để τ i Є Q với i ≥ 1 và (σ, τ) Є L

Xem xét một Otomat thời gian A và từ σ Nếu tồn tại trình tự thời gian τ với tất các giá trị thời gian tỉ lệ để (σ, τ) Є L(A) thì rõ ràng σ Є Untime[L(A)]

b, (y<1)? ,x:=0

a, (x=1)? , x := 0

y := 0

b (x=1) ?

a, x:= 0

Trang 33

Cho một trình tự thời gian tùy ý τ , (σ, τ) Є L(A) Cho 𝜀 Є Q để các hằng xuất hiện trong các ràng buộc đồng hồ của A là bội số thiếu của 𝜀 Cho τ’

0 = 0 và τ0 = 0 Nếu τi = τi +n 𝜀 Mặt khác chọn τ’

i Є Q để cho với mọi 0 ≤ j < i cho tất cả n Є N (τ’

τ’i-1) kết qua A cấp nhận (σ, τ’)

3.3.7 Otomat Muller thời gian

Ta có thể định nghĩa Otomat với các điều kiện chấp nhận Muller

Định nghĩa 3.8 Otomat Muller thời gian (TMA) là một bộ (∑,S,S0,C,E,F) với (∑,S,S0,C,E) là bảng chuyển trạng thái thời gian và F ⊆ 2S đặc tả lớp chấp nhận (acceptance family)

Một thực hiện r = (𝑠 , 𝑣 ) của A với (σ, τ) là một thực hiện chấp nhận nếu inf(r) Є

F

Cho TMA A , ngôn ngữ L(A) của các từ thời gian mà TMA chấp nhận đƣợc định nghĩa là tập {(σ, τ) | A có một thực hiện chấp nhận trên (σ, τ)}

Hình 3.8: Otomat Muller thời gian

Ví dụ 3.11: Xem xét Otomat hình 11 trên các ký tự {a,b,c} Trạng thái khởi tạo

là s0 Lớp các trạng thái chấp nhận Muller bao gồm tập đơn (s0, s2) Vì vậy bất cứ thực hiện chấp nhận đƣợc sẽ thực hiện vòng lặp giữa s0 và s1 hữu hạn lần và thực hiện chuyển trạng thái giữa s0 và s2 vô hạn lần Cac từ (𝜎, 𝜏) đƣợc chấp nhận bởi Otomat thỏa mãn : (1) σ Є (a(b+c)*(ac)ω) và (2) với i ≥ 1 sự khác biệt giữa (τ2i-1 - τ2i-2) nhở hơn 2 nếu ký tự thứ 2i là c, mặt khác nhỏ hơn 5

Ngôn ngữ thời gian được chấp nhận bởi một số Otomat Buchi thời gian nếu nó được chấp nhận bởi một số Otomat Muller thời gian

Trang 34

3.4.1 Giới hạn đến các hằng nguyên

Xem lại định nghĩa của Otomat thời gian cho phép các ràng buộc bao gồm so sánh với các hằng Bổ đề sau cho việc kiểm tra tính rỗng, ta có thể giới hạn đến Otomat thời gian với các ràng buộc đồng hồ bao gồm chỉ các hằng nguyên Cho một trình tự thời gian τ và t Є Q khi đó t.τ đề cập đến trình tự thời gian đạt được bởi bội số của τi bởi t

Bổ đề: Xét một bảng chuyển trạng thái thời gian A, một từ thời gian (σ,τ), và t Є

Q (s , v ) là một thực hiện của A trên (σ,τ) nếu (s ,t v ) là một thực hiện của At qua (σ,t.τ) với At là bảng chuyển trạng thái đạt được bằng cách thay thế mỗi hằng d trong mỗi ràng buộc đồng hồ gán nhãn của A bởi t.d

Có một đẳng cấu giữa thực hiện của A và At Nếu ta chọn t là bội số chung nhỏ nhất của tất cả các hằng xuất hiện trong các ràng buộc đồng hồ của A, thì các ràng buộc của At sử dụng chỉ các hằng số nguyên Trong bước chuyển nay các hằng số là bội số của các hằng gốc Ta giả thiết mã hóa nhị phân cho các hằng số

Hơn nữa L(A) là rỗng nếu L[At] là rỗng Vì vậy để xác định tính rỗng của ngôn ngữ L(A) ta xem xét At Tương tự Untime[L(A)] bởi Untime[L(At)] Trong phần còn lại của phần này ta giả thiết các ràng buộc của đồng hồ chỉ sử dụng các hằng số nguyên

Trang 35

tương tự nhau Phần nguyên của các giá trị đồng hồ cần được xác định có hay không ràng buộc đồng hồ được đáp ứng, cũng như trật tự của các phần lẻ sẽ quyết định đồng

hồ nào sẽ thay đổi phần nguyên trước Cho ví dụ, nếu 2 đồng hồ x và y có giá trị giữa

0 và 1 trong một trạng thái mở rộng, thì một bước chuyển trạng thái với ràng buộc đồng hồ (x =1) có thể được theo sau bởi một bước chuyển với ràng buộc đồng hồ (y= 1) phụ thuộc có hay không giá trị các đồng hồ thỏa mãn (x < y)

Các phần nguyên của các giá trị đồng hồ có thể lớn tùy ý Nhưng nếu đồng hồ x không bao giờ được so sánh với một hằng lớn hơn c, thì giá trị thực sự của nó khi vượt quá c, không ảnh hưởng trong việc quyết định đường được phép

Ta có thể hình thức hóa luận điểm trên Với bất cứ t Є R, fract(t) biểu thị lẻ của t,

và 𝑡 biểu thị phần nguyên của t nghĩa là t = 𝑡 + fract(t) Ta giả thiết các đồng hồ trong C xuất hiện trong một số ràng buộc đồng hồ

Định nghĩa 3.10: cho A = (∑,S,S0,C,E) là một bảng chuyển trạng thái thời gian Với mỗi x Є C, cho cx là số nguyên lớn nhất để (x ≤c) hay (c≤x) là một biểu thức con cho một số ràng buộc đồng hồ xuất hiện trong E

Quan hệ tương đương ~ được định nghĩa trên tập các đồng hồ biên dịch cho C v

~v' nếu các điều kiện sau thỏa mãn

1 Tất cả x Є C, hoặc 𝑣(𝑥) và 𝑣(𝑥′) là giống nhau, hay v(x) và v(x’) lớn hơn cx

2 Với x, y Є C với v(x) ≤cx và v(y) ≤cy , fract(v(x)) ≤ fract(v(y)) nếu fract(v’(x)) ≤ fract(v’ (y))

3 Với x Є C và v(x) ≤cx , fract(v(x)) = 0 nếu fract(v’(x)) = 0

Miền đồng hồ của A là một lớp các đồng hồ biên dịch tương đương được biểu thị bởi ~

Hình 3.9: Miền đồng hồ

Ta sử dụng [v] để biểu thị miền đồng hồ của v Mỗi miền có thể được đặc trưng duy nhất bởi tập hữu hạn các ràng buộc đồng hồ được thỏa mãn Ví dụ xem xét đồng

hồ biên dịch trong [v] thỏa mãn ràng buộc (0 < x < y < 1) ta sẽ trình diễn bởi [0 < x <

y < 1] Bản chất của các lớp tương đương có thể được hiểu qua ví dụ

6 điểm góc: chẳng hạn [(0,1)]

14 đoạn kẻ mở: chẳng hạn [ 0< x=y < 1]

8 miền mở: chẳng hạn [0 < x < y < 1]

Trang 36

Ví dụ 3.10 Xem xét một bảng chuyển trạng thái thời gian với hai đồng hồ x và y với cx = 2 và cy = 1 Các miền đồng hồ được chỉ trong hình 12

Để ý chỉ có hữu hạn một số các miền Với một ràng buộc δ trong A nếu v ~ v’ thì v thỏa mãn δ nếu v’ thỏa mãn δ Ta nói rằng miền đồng hồ α thỏa mãn ràng buộc δ nếu mọi v Є α thỏa mãn δ Mỗi miền có thể được trinh diễn bằng cách chuyên biệt

(1) Cho các đồng hồ x, một ràng buộc đồng hồ từ tập:

{x = c | c = 0 , 1, cx} U {c-1 < x < c | c = 1,… cx} U {x > cx}

(2) Mỗi cập đồng hồ x và y sao cho c -1 , x < c và d -1 < y < d ở trong (1) với

c và d xác định, khi đó fract(x) nhỏ hơn, bằng hay lớn hơn fract(y) xác định miền đồng hồ

3.3.3 Otomat miền

Bước đầu tiên trong thủ tục quyết định để kiểm tra tính rỗng xây dựng một bảng chuyển trạng thái với các đường của bảng chuyển trạng thái bắt chước các thực hiên của A theo cách nhất định Ta biểu diễn bảng chuyển trạng thái mong muốn bởi R(A) Otomat miền của A Mỗi trạng thái của các bản ghi R(A) bao gồm trạng thái của bảng chuyển trạng thái A, và lớp tương đương của các giá trị hiện tại của đồng hồ dưới dạng (s,α) với s Є S và α thuộc miền đồng hồ Biên dịch dự định là bất cứ khi nào trạng thái mở rộng A là (s,v) thì trạng thái của R(A) là (s,[v]) Otomat miền bắt đầu từ trạng thái (s0,[v0]) với s0 là trạng thái khởi tạo của A, và đồng hồ biên dịch v0 gán giá trị 0 đến các đồng hồ Quan hệ chuyển của R(A) được định nghĩa bước giả lập cần tuân thủ Có một cung từ (s,α) đến (s,α’) được gán nhãn a nếu A trong trạng thái S với các giá trị đồng hồ v Є α có thể thực hiện một bước chuyển trên a đến trạng thái mở rộng (s’, v’) sao cho v’ Є α’

Để thuận tiện quan hệ cung được định nghĩa như là quan hệ time-succesor trên các miền đồng hồ Time-succesors của một miền đồng hồ α là tất cả các miền đồng hồ được thăm bởi đồng hồ biên dịch v Є α trong các tiến trình thời gian

Định nghĩa 3.11: Một miền đồng hồ α’ là time-successor của miền đồng hồ α nếu cho mỗi v Є α thì tồn tại số dương t Є R sao cho v + t Є α’

Ví dụ 3.11: Xem xét các miền đồng hồ được chỉ trong hình 12 Time-successor của miền α là các miền có thể đạt được bằng cách vẽ đường thẳng di chuyển thời gian

từ một số điểm trong miền α theo hướng chéo lên trên Ví dụ miền [(1 <x < 2), (0 < y

< x – 1)] các miền liền kề là time-successor : [(x=2), (0 < y < x – 1)], [(x>2), (y=1)]

và [(x>2), (y>1)]

Kế tiếp xem xét để xây dựng tất cả các time-successor của miền đồng hồ Từ định nghĩa miền đồng hồ α được đặc tả trong phần (1) cho các đồng hồ x, một ràng

Ngày đăng: 25/03/2015, 09:46

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
11. Theo C. Ruys, Advanced SPIN Tutorial http://www.cs.utwente.nl/~ruys 12. Theo C. Ruys, SPIN Beginners’ Tutorial http://www.cs.utwente.nl/~ruys Link
14. F. Vaandrager, Two Simple Communication Protocols, in Baeten, J.C.M., ed., Ap- plications of Process Algebra, pp.23-44,Cambridge University Press, 1990.15. http://spinroot.com Link
1. R. Alur, D.L. Dill, A Theory of Timed Automata, Theoretical Computer Science, 126, pp.183-235, 1994 Khác
2. R. Alur. Techniques for Automatic Verification of Real-Time Systems. PhD thesis, Stanford University, 1991 Khác
3. R. Alur, C. Courcoubetis, and D. Dill. Model-checking for real-time systems. In Proceedings of the 5th Symposium on Logic in Computer Science, pages 414-425, Philadelphia, June 1990 Khác
4. R. Alur, C. Courcoubetis, D. Dill, N. Halbwachs, and H. Wong-Toi. An implementation of three algorithms for timing verification based on automata emptiness. In RTSS 1992, proceedings, 1992 Khác
5. D. Bosnacki, Implementing Discrete Time in Promela and Spin, International Con- ference on Logic in Computer Science, LIRA '97, University of Novi Sad, Yu- goslavia, 1997. (Copy also available from the author) (4 DTSpin) Khác
6. D. Bosnacki, Integrating Real Time into Spin: A Prototype Implementation Khác
7. D. Bosnacki, Partial Order Reduction for Region Automata (abstract), Proceed- ings of the 11th Nordic Workshop on Programming Theory NWPT'99, Uppsala, Sweden, October 1999 Khác
8. E. M. Clarke, Orna Grumberg and Doron A. Peled. Model Checking. MIT Press, 1999, ISBN 0-262-03270-8 Khác
9. Gerard Holzmann. The Spin Model Checker. Primer and Reference Manual. Addison Wesley, 2003 Khác
10. Dang Van Hung, Model-Checking and the Spin Modelchecker, The United Nations University, International Institute for Software Technology Khác
13. S. Tripakis, C. Courcoubetis, Extending Promela and Spin for Real Time,TACAS '96, LCNS 1055, Springer Verlag, 1996 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Vấn đề với kiểm chứng - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 2.1 Vấn đề với kiểm chứng (Trang 9)
Hình 2.2: Kiểm chứng mô hình - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 2.2 Kiểm chứng mô hình (Trang 10)
Bảng 2.1: Khả năng thực hiện của các câu lệnh trong Promela - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Bảng 2.1 Khả năng thực hiện của các câu lệnh trong Promela (Trang 13)
Hình 2.4: Thuật toán tìm kiếm không gian trạng thái trong Spin - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 2.4 Thuật toán tìm kiếm không gian trạng thái trong Spin (Trang 17)
Hình 3.2: Otomat Muller xác định chấp nhận (a+b) * a ω - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.2 Otomat Muller xác định chấp nhận (a+b) * a ω (Trang 24)
3.3.2  Bảng chuyển trạng thái với các ràng buộc thời gian - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
3.3.2 Bảng chuyển trạng thái với các ràng buộc thời gian (Trang 26)
Hình 3.5: Otomat Buchi thời gian chấp nhận L crt - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.5 Otomat Buchi thời gian chấp nhận L crt (Trang 30)
Hình 3.7: Otomat thời gian chấp nhận ngôn ngữ L converge - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.7 Otomat thời gian chấp nhận ngôn ngữ L converge (Trang 32)
Hình 3.10 : Otomat A 0  và Otomat miền tương ứng - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.10 Otomat A 0 và Otomat miền tương ứng (Trang 38)
Bảng 3.1: Các loại Otomat thời gian - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Bảng 3.1 Các loại Otomat thời gian (Trang 44)
Hình 3.13: Mô hình cổng - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.13 Mô hình cổng (Trang 45)
Hình 3.12: Mô hình Tàu - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.12 Mô hình Tàu (Trang 45)
Hình 3.15: Tính chất an toàn - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 3.15 Tính chất an toàn (Trang 47)
Hình 5.1: Các thực thể của giao thức gửi và nhận song song - Kiểm chứng các tính chất thời gian thực cho hệ thống đồng thời bằng RT-SPIN
Hình 5.1 Các thực thể của giao thức gửi và nhận song song (Trang 57)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w