MỞ ðẦU Tóm tắt – ðể xác ñịnh và kiểm chứng hệ thống lai phân tán thời gian thực kết nối ñồng bộ distributed synchronously communication real-time hybrid system, bộ ba Hoare cổ ñiển cla
Trang 1TRƯỜNG ðẠI HỌC CÔNG NGHỆ
LƯƠNG THANH HOÀI
THẨM ðỊNH CÁC THÀNH PHẦN CỦA HỆ THỐNG LAI THỜI GIAN THỰC
KẾT NỐI ðỒNG BỘ DỰA TRÊN LOGIC TÍNH TOÁN KHOẢNG DC
Trang 2LỜI CAM ðOAN
Tôi xin cam ñoan các thông tin, số liệu, kiến thức trích dẫn trong luận văn là thu thập
từ các nguồn chính thống, ñăng tải trên các tạp chí chuyên ngành, sách, báo…
Các giải pháp ñưa ra là của bản thân rút ra từ quá trình nghiên cứu tổng hợp
Tác giả ký tên
Lương Thanh Hoài
Trang 3MỞ ðẦU 1
Chương 1 – Phép Tính Toán Khoảng 4
1.1 Phép Tính Toán Khoảng Có Lặp 4
1.2 Phép Tính Toán Khoảng Có Lặp Với Thời Gian ðơn ðiệu Yếu 5
Chương 2 - Xây dựng chương trình thời gian thực 12
2.1 Bộ ba Hoare mở rộng 12
2.2 Cú pháp và ngữ nghĩa phi hình thức 13
2.3 Ngữ nghĩa hình thức của ngôn ngữ lập trình 14
2.4 Các luật kiểm chứng 17
Chương 3 - Kỹ thuật thiết kế hệ thống ñiều khiển thời gian thực 22
3.1 Hình thức hóa giao diện rời rạc 23
3.2 Các luật kiểm chứng thiết kế mức cao 24
Chương 4 - Kiểm chứng việc tránh xung ñột trong hệ thống ñiều khiển tàu ñiện 26
4.1 Tổng quan về ETCS 26
4.2 Thiết kế chương trình ñiều khiển 28
4.2.1 Hình thức hóa yêu cầu hệ thống 28
4.2.2 Design Decision – Quyết ñịnh thiết kế 29
4.2.3 Discrete Design – Thiết kế rời rạc 31
4.2.4 Chương trình 34
KẾT LUẬN 37
TÀI LIỆU THAM KHẢO 38
Trang 4
MỞ ðẦU
Tóm tắt – ðể xác ñịnh và kiểm chứng hệ thống lai phân tán thời gian thực kết nối
ñồng bộ (distributed synchronously communication real-time hybrid system), bộ ba Hoare cổ ñiển (classical Hoare triples) ñược mở rộng với việc nhúng hành vi (behavior) thời gian thực của chương trình Nhờ vào việc mở rộng này một Hệ Thống Chứng Minh Có Tính Kết Hợp (Compositional Proof System) dựa trên Sự Mở Rộng
về Thời Gian ðơn ðiệu Yếu (Weakly Monotonic Time Extention) của DC* (WDC*)
ñã ñược hình thành Lợi thế của luật chứng minh kết hợp (compositional) là nó thực hiện việc chia một hệ thống lớn thành các phần nhỏ có thể quản lý ñược sau ñó chứng minh tính ñúng của toàn bộ hệ thống từ việc chứng minh tính ñúng của các thành phần
hợp thành WDC* cung cấp bản chất ñơn giản trong việc lý luận về thiết kế của những
chương trình thời gian thực bằng những phương tiện của giả thuyết ñồng bộ lý tưởng (true synchrony) và tính toán siêu trù mật (super-dense computation) ðiều này ñược
mô phỏng bằng quá trình kiểm chứng những thuộc tính an toàn của việc tránh xung ñột trong Hệ Thống ðiều Khiển Tàu ðiện Châu Âu (European Train Control System – ETCS), phiên bản ñầy ñủ các tham số
Giới thiệu - Với sự tăng trưởng nhanh chóng của mạng cùng sự phát triển mạnh về
khả năng tính toán, nhu cầu cho các hệ thống quy mô lớn và phức tạp ñã tăng lên ñáng
kể Nhiều hệ thống hỗ trợ hoặc thay thế kiểm soát của con người trong các hệ thống ñòi hỏi an toàn cao như: Hệ thống ñiều khiển ñiện tử trên máy bay, hệ thống ñiều khiển tàu, hệ thống ñiều khiển nhà máy năng lượng hạt nhân v…v Lỗi trong các hệ thống ñòi hỏi an toàn cao này có thể dẫn ñến những thảm họa lớn và lấy ñi mạng sống của con người Vì vậy, hệ thống an toàn cao cần duy trì những thuộc tính ñảm bảo cao
ðể phù hợp với những thuộc tính ñảm bảo cao, những hệ thống này thường chia sẻ tài nguyên giữa nhiều tác tử tính toán chủ ñộng ñồng thời và phải tuân thủ chặt chẽ những ràng buộc thời gian thực Hệ thống lai thời gian thực phân tán dựa trên kết nối ñồng bộ
là một trong những hệ thống an toàn cao, nó ñóng một vai trò rất quan trọng trong những hệ thống có qui mô lớn
Tuy nhiên, tính ñồng thời, sự ràng buộc thời gian, giao diện liên tục và rời rạc làm cho
sự phát triển và kiểm chứng những hệ thống lai an toàn cao trở lên khó khăn hơn nhiều ðầu tiên, việc chứng minh thuộc tính an toàn tổng thể của hệ thống an toàn cao ñối với một tập những tác tử thành phần (component agent) là rất khó bởi vì mỗi tác tử thành phần là (mô hình bởi) một hệ thống lai với một số (rời rạc) các chế ñộ và các biến ñổi liên tục khác nhau ở mỗi chế ñộ Thứ hai, sự phát triển của ngôn ngữ ñặc tả hình thức với khả năng (mô hình hóa) thời gian ñã và vẫn là một nhiệm vụ thách thức ðặc biệt, việc kiểm chứng các ràng buộc thời gian bởi Explicit Clock Temporal Logic
Trang 5và Duration Calculus ([1], [2]) cổ ñiển thay vì sử dụng sự trừu tượng hóa của ñồng bộ lí tưởng (nghĩa là, coi tính toán và liên lạc không mất thời gian, ñây là sự ñơn giản bản chất trong việc hiểu và lí giải về hành vi của những hệ thống thời gian thực)
ñã làm nó trở lên rất phức tạp trong việc hiểu và lí giải về hành vi của hệ thống lai thời gian thực [3] Cuối cùng, những phương pháp kiểm chứng thời gian thực truyền thống không phải dạng kết hợp (non-compositional), yêu cầu một sự xem xét tổng thể toàn
bộ hệ thống, không có khả năng mở rộng ñủ tốt ñể kiểm chứng một hệ thống thực sự lớn do sự bùng nổ không gian trạng thái Từ ñó, việc phát triển của những luật chứng minh thời gian thực có tính kết hợp ñóng một vai trò quan trọng ñể duy trì các thuộc tính bảo ñảm ở mức cao cho hệ thống lai thời gian thực kết nối ñồng bộ phân tán Trong bài luận này, một số công việc sẽ ñể xác ñịnh vấn ñề Trong [1] Hooman ñã mở rộng bộ ba Hoare (Hoare triples) bằng cách thêm vào tham số thời gian và biểu diễn một hệ thống chứng minh có tính kết hợp cho thời gian thực phân tán kết nối ñồng bộ Pandya và những người khác trong [4] ñã xem xét một ngôn ngữ lập trình lai bao gồm những cấu trúc lập trình tuần tự bình thường kết hợp với những câu lệnh pha (phase) ñây là những công thức khoảng (duration) diễn tả một vài yếu tố ñộng phụ thuộc thời gian Francois và những người khác thì mở rộng bộ ba Hoare ñể nhúng thêm hành vi thời gian thực của chương trình và phát triển một tập những luật kết hợp dựa trên
WDC* sử dụng trong thiết kế và kiểm chứng hệ thống phân tán với những biến chia sẻ [5] Damm và những người khác trình diễn một cấu trúc phân tầng ñiển hình trong một tiến trình thiết kế dựa trên mô hình của hệ thống ñiều khiển tàu ñiện ñể chia việc kiểm chứng toàn bộ vấn ñề của hệ thống thành các phần nhỏ hơn có thể kiểm chứng ñược bằng các công cụ kiểm chứng tự ñộng ñối với các lớp con của những hệ thống thời gian thực [6], [7]
Tuy nhiên trong những trường hợp trên một số hệ thống chứng minh có tính kết hợp ñược ñề xuất dựa trên ECTL (Existential Computation Tree Logic) thay vì sự trừu tượng hóa ñồng bộ lí tưởng, ñã dẫn ñến việc hiểu và lí giải hành vi của hệ thống lai thời gian thực rất phức tạp Một số khác ñược ñề xuất cho những biến chia sẻ dựa trên lược ñồ kết nối ñồng bộ thay vì truyền thông ñiệp dựa trên lược ñồ kết nối ñồng bộ Một số kết quả khác ñưa ra những luật phân chia chỉ tương thích tốt trong một số trường hợp ñặc biệt (như là kiểm chứng tự ñộng của các tác tử giao thông (traffic)) Và một số kết quả không thể giải quyết ñược vấn ñề không nhất quán giữa mô hình liên tục sử dụng trong ñặc tả và mô hình rời rạc sử dụng trong cài ñặt
Thay vào ñó, chúng ta biểu diễn một hệ thống những luật kiểm chứng có tính kết hợp
dựa trên WDC* cho hệ thống lai thời gian thực kết nối ñồng bộ Sự ñóng góp của bài
luận này là:
1) Sử dụng logic khoảng dựa trên WDC* ñể thích ứng với sự trừu tượng của ñồng bộ lí tưởng, ñây là yếu tố cơ bản trong việc ñơn giản hóa về mặt bản chất cho việc hiểu và lí giải về hành vi của hệ thống thời gian thực
Trang 62) Làm cho việc sử dụng những luật ñối với giao diện rời rạc tương thích tốt trong quá trình phân tích và kiểm chứng hệ thống lai từ ñó giải quyết sự không nhất quán giữa những mô hình liên tục sử dụng trong ñặc tả và mô hình rời rạc sử dụng trong cài ñặt
3) Theo cú pháp và những ngữ nghĩa của những ngôn ngữ kết nối ñồng bộ, chúng ta mô tả hệ thống chứng minh có tính kết hợp cho những hệ thống lai thời gian thực, nó giúp giải quyết một cách hiệu quả tiến trình phân tích và kiểm chứng những
hệ thống qui mô lớn
Bài luận ñược tổ chức như sau: chương 1 ñưa ra tổng quan vắn tắt về Phép Tính Toán
Khoảng Có Lặp (DC*), Phép Tính Toán Khoảng Có Lặp Với Thời Gian ðơn ðiệu Yếu
(WDC*) Trong chương 2 chúng ta sẽ xem xét kết nối ñồng bộ dựa trên ngôn ngữ thời
gian thực, cho nó một ngữ nghĩa hình thức trong logic WDC*, và công thức hóa những luật chứng minh có tính kết hợp Chương 3 ñưa ra thiết kế rời rạc Như là một áp dụng, chương 4 ñưa ra chương trình kiểm chứng cho bài toán thời gian thực ETCS Cuối cùng là kết luận của bài luận và danh sách các tài liệu tham khảo
Trang 7Chương 1 – Phép Tính Toán Khoảng
1.1 Phép Tính Toán Khong Có Lp
Trong phần này ta sẽ trình bày vắn tắt về DC* Bạn ñọc có thể tham khảo thêm [2] ñể
có thêm chi tiết về phép tính toán khoảng (DC - duration calculus)
Một ngôn ngữ cho DC* ñược xây dựng bắt ñầu từ tập các ký hiệu sau: một tập những
ký hiệu constant {a,b,c, …}, một tập các biến riêng lẻ (individual variables) {x,y,z,…},
một tập các biến trạng thái (state variables) {P,Q,…}, một tập các biến khoảng (temporal variable) {u,v,…}, một tập các ký hiệu hàm (function symbols) {f,g…}, một tập các ký hiệu quan hệ (relation symbols) {R,U,…}, và một tập các kí tự mệnh ñề trên
khoảng (temporal propositional letters) {A,B,….}
Một ñịnh nghĩa về ngôn ngữ DC * về mặt bản chất bao gồm các tập: những biểu thức trạng thái (state expression) S, những hạng tử (terms) t và những công thức ϕ của
ngôn ngữ Những tập này có thể ñược ñịnh nghĩa bằng dạng BNF như sau:
Một biến trạng thái P ñược thông dịch như hàm I(P) : ℝ+→ {0,1} (một trạng thái)
I(P)(t) =1 có nghĩa rằng trạng thái P hiện hữu tại thời ñiểm t, và ngược lại Chúng ta
giả sử rằng một trạng thái có hữu hạn biến ñổi trong một khoảng thời gian giới hạn Một biểu thức trạng thái ñược thông dịch như là một hàm với các biến trạng thái và các phép toán logic
Với một biểu thức trạng thái bất kỳ S, duration của nó ñược ký hiệu bởi ∫ S Cho một
thông dịch I của các biến trạng thái và một khoảng, duration ∫ S ñược thông dịch như
là tổng ñộ dài thời gian trong một khoảng mà tại ñó S hiện hữu Vì vậy bất kỳ ñoạn [t,t’], trình dịch I(∫ S)([ , '])t t ñược ñịnh nghĩa là t' ( )( )
t I S t dt
Một công thức ϕ ñược thỏa mãn bởi một trình thông dịch trong một khoảng thời gian
[t,t’] khi nó ñược ñánh giá là ñúng với trình thông dịch ñó trên khoảng thời gian ñã
cho Ta kí hiệu ñiều này bởi: I t t,[ , '] | =ϕ
Cho một máy thông dịch I, một biểu thức ϕψ là ñúng trên [t,t’’] nếu tồn tại t’ sao cho t≤t’≤t’’ và ϕ và ψ là ñúng lần lượt trên [t,t’] và [t’,t’’]
Chúng ta cần chú ý các ký hiệu viết tắt sau:
Trang 81, ( ) ( 0), ,
l≙∫ S ≙ ∫ P= ∧ >l l ⋄ϕ≙true ϕ true □ ≙ϕ ¬ ¬⋄ ϕ
Thêm nữa, ta kí hiệu PREF( ϕ) là một công thức (ñơn giản) ñúng với mọi ñoạn trước
của một ñoạn ñúng trên công thức ϕ
Hệ thống chứng minh cho DC * bao gồm toàn bộ hệ thống chứng minh Hilbert-style ñối với First Order Logic, các tiên ñề và luật cho Interval Logic, những luật và tiền ñề Phép Tính Toán Khoảng (tham khảo trong [2]) và những tiên ñề về lặp ([12]) Chúng
ta chỉ trình bày lại một số luật và tiên ñề của hệ thống chứng minh của DC *
true A
S IR
IR
true A
DC l DC
ϕ ϕ
1.2 Phép Tính Toán Khong Có Lp Vi Thi Gian ðn ðiu Y u
Macro-time Chúng ta tham số hóa logic với macro-time frame TM = (T, <) Với giả
sử rằng TM ñược sắp thứ tự tuyến tính (=thứ tự toàn phần) Logic thu ñược trên ñó sẽ ñược gọi là WDC(TM) Trong trình thông dịch với thời gian rời rạc, TM lấy giá trị
Trang 9trong (ω, <), ñây là tập các số tự nhiên Trong trình thông dịch thời gian liên tục,
TM lấy giá trị là (R0, <), ñây là tập các số thực không âm
ðịnh nghĩa (Stepped Time) Cho một time frame TM, stepped time frame trên TM là
một cặp WTM=(WT,<) thỏa mãn những ñiều kiện sau:
• Past closure π2 (WT) ñóng dưới ñối với “<” trên ω
Theo trên, mỗi ñiểm macro-time ñược chia thành một hoặc nhiều ñiểm micro-time
Mỗi ñiểm micro-time (t,i) bao gồm macro-time t và một pha-ñếm tương ứng với số
bước vừa xẩy ra trước khi chạm tới thời ñiểm micro-time này
Interpretation Cho Pvar là tập các biến mệnh ñề, và Gvar là tập các biến toàn cục
Một máy thông dịch trên TM là một cặp I= (WTM, )θ trong ñó WTM là stepped time frame ñối với TM và θ gán mỗi hàm boolean của stepped time với một biến p∈Pvar
Do vậy, θ( )p ∈WT → {0,1} Thêm vào ñó, θ phải thỏa mãn ñiều kiện ổn ñịnh (stability)
nghĩa là với mọi i∈π2(WT), chúng ta có θ( )( )p b =θ( )( )p e cho tất cả b e, ∈Per WT i( , ) (Trong ñó Per WT i( , ) ≙ { | ( , )t t i ∈WT} ám chỉ khoảng thời gian của pha thứ i)
Hành vi θ cũng gán một số thực với mỗi biến toàn cục x∈Gvar Vì vậy,
Trang 10Chú ý rằng θ c( )P là không xác ñịnh tại tập rời rạc các ñiểm Tuy nhiên, với
0
TM = ℝ < , hàm θ c( )P là liên tục từng phần và bị chặn Từ ñó chúng ta có thể xác ñịnh tích phân Reimann
2
1 ( )( )
t c t
P t dt θ
∫ theo cách thông thường
Syntax Chúng ta có hai dạng logic ứng với hạng tử (term) của số nguyên và số thực
Kí hiệu P, Q là các trạng thái, ti ti1, 2 là các hạng tử trên tập số nguyên, tr tr1, 2 là các hạng tử trên tập số thực, và D D1, 2là các công thức Ta sẽ sử dụng t ñể kí hiệu cho hạng
trong ñó, các phép so sánh giữa các hạng tử t t1, 2cần cùng kiểu
Ngữ nghĩa (Semantics) Tập các khoảng trên WT ñược ñịnh nghĩa như sau:
Intv WTM = b e ∈WT WT b× ≤e
Một mô hình (model) là một cặp ( , , )I b e[ ] trong ñó Ilà một trình thông dịch (WTM, )θ
và [b e, ] là một khoảng trong Intv WTM( ) Ta sẽ kí hiệu giá trị của một hạng tử t trong
một mô hình (WTM, ,[ , ])θ b e bởi V ( )(t WTM, ,[ , ])θ b e , và kí hiệu tính thỏa ñược
(sactisfaction) của công thức D bởi (WTM, ,[ , ]) |θ b e =D ðể cho gọn ta viết tắt chúng
Trang 11Các trường hợp khác có thể tham khảo trong [2], [5], và ựược bỏ qua
P P Unit P Ext P Ext
TM =D iff WTM θ =D với tất cả mô hình (WTM, )θ trên macro time frame TM
Rõ ràng là có một tương ứng giữa những mô hình WDC và mô hình DC đó là, bằng
cách chiếu một ựiểm thời gian trong WTM vào thành phần ựầu tiên của nó, mỗi ựiểm
thời gian trong WTM tương ứng với một ựiểm thời gian trong thời gian thực đối với trạng thái P trong WDC, P WTM: → {0,1}, tương ứng với trạng thái trong DC
Proof Rules Những luật chứng minh của WDC khá tương tự với những luật chứng
minh của DC (xem [2] ựể có chi tiết) Tất cả các tiên ựề cho Durations (nghĩa là A1 tới DC-A6 trong [2]) là ựúng và ựược bao gồm trong WDC Luật qui nạp
DC-(induction rule) sẽ ựược thảo luận riêng bên dưới
Một formula D ựược gọi là rigid nếu nó không chứa biến khoảng hoặc hạng tử
Trang 12Mệnh ñề sau chỉ ra mối quan hệ giữa khoảng và ñộ dài
Trang 13Phép chiếu (projection) Những ngữ nghĩa hình thức của một chương trình là một
công thức WDC * Tuy nhiên công thức khoảng trong một bộ ba (Hoare) là một công
thức DC * Vì vậy chúng ta liên hệ hai loại logic này với nhau Ta ñịnh nghĩa một hàm
Π → , gọi là phép chiếu, cho tương ứng mỗi WDC * formula D với một DC *
tương ứng với phép chiều của D trên mô hình thời gian thực Cho ≺ ∈ = < { , }
Trang 14Ta dễ dàng có ñược những bổ ñề sau:
Bổ ñề 1 Với mọi công thức D trong WDC và với mọi mô hình (WTM, ,[ , ])θ b e , ta luôn có: (WTM, ,[ , ]) |θ b e =D iff (Time,θ DC,[b DC,e DC]) | = Π ( )D
Bổ ñề 2 (ðơn ñiệu – Monotonicity)
Cho ϕ và ψ là hai công thức trong WDC * : nếu ϕ⇒ψ thì Π ( )ϕ ⇒ Π ( )ψ
Trang 15Chương 2 - Xây dựng chương trình thời gian thực
2.1 B" ba Hoare m( r"ng
Cho P là một tiến trình, pre và post là vị từ (khẳng ñịnh) trên các biến chương trình
Một công thức trong Hoare logic có dạng {pre P post} { }, ñược gọi là bộ ba Hoare, với ý
nghĩa rằng nếu ñiều kiện trước pre ñược giữ trong trọng thái ban ñầu và P kết thúc, thì ñiều kiện sau post ñược giữ trong trạng thái kết thúc Bộ ba này ñược gọi là công thức
tính ñúng bộ phận (partial correctness formula) khi mà nó không ñảm bảo việc kết
thúc của chương trình P Hoare logic với tính ñúng tổng thể (total correctness) ñảm
bảo tính dừng của chương trình Logic này cung cấp một hệ thống chứng minh ñầy ñủ cho việc lí giải về hành vi chức năng của những chương trình tuần tự [16, 15] Rất nhiều lí thuyết liên quan tới tính dừng của chương trình ñã ñược nghiên cứu Những chương trình không dừng không thể lí giải ñược, và thông thường ñược coi là không xác ñịnh (undefined) Một số mở rộng của logic Hoare tới những ngôn ngữ lập trình song song chia sẻ biến ñã ñược ñề xuất [18,17] Tuy nhiên ta sẽ xem xét giới hạn sau trên việc truy cập vào những biến chia sẻ Bất kỳ biến chia sẻ nào cũng có thể ñược ñọc bởi bất k ỳ tiến trình Một số biến chia sẻ có thể ñược ghi bởi bất kỳ tiến trình nào Một số khác có thể chỉ ñược ghi bởi một tiến trình và chỉ ñọc bởi một tiến trình khác
Ta mở rộng logic Hoare ra lập trình song song thời gian thực với biến chia sẻ ñể lí giải
về tính dừng cũng như không dừng của những chương trình thời gian thực Không giống với những chương trình máy tính thông thường, những chương trình ñiều khiển thời gian thực nói chung sẽ thực thi mãi mãi Vì vậy không dừng là thuộc tính quan trọng ñể lí giải cho những loại chương trình như vậy Sự mở rộng bộ ba Hoare của chúng ta có hai dạng Dạng thứ nhất là {pre P}[ , ]{ϕ post} tức là nếu tiền ñiều kiện pre ñúng trong trạng thái ban ñầu và P kết thúc, thì hậu ñiều kiện post ñúng trong trạng
thái cuối và trong khoảng thời gian thực thi chương trình công thức Duration ϕ luôn
ñược thỏa mãn Dạng thứ hai là {pre P}[ , ]{}ϕ , tức là nếu tiền ñiều kiện pre ñúng trong trạng thái ban ñầu và P không dừng, thì bất kỳ khoảng thời gian trước của một khoảng
thời gian không giới hạn của chương trình ñều thỏa mãn công thức duration ϕ Cặp bộ
ba này ñược sử dụng ñể lí giải về các thuộc tính của những chương trình thời gian thực Vì vậy, {true P true}[ , ]{false} diễn tả rằng P không kết thúc, và {true P false}[ , ]{}
nói lên rằng P không có hành vi không kết thúc Chú ý rằng có thể nhận dạng theo cú
pháp rằng một bộ ba ñang diễn tả những thuộc tính của những hành vi giới hạn hay ñang diễn tả những thuộc tính của hành vi vô hạn cho một chương trình
Trang 162.2 Cú pháp và ng, nghĩa phi hình th0c
Trong mục này ta sẽ xem xét một ngôn ngữ lập trình thời gian thực ñơn giản tựa OCCAM [8] với các tiến trình song song và kết nối thông qua việc truyền thông ñiệp dọc theo các kênh không vô hướng, mỗi kênh kết nối hai tiến trình Thời gian thực
hình thành từ những câu lệnh delay (trì hoãn việc thực thi trong một khoảng thời gian
nhất ñịnh) Một câu lệnh delay như vậy cũng cho phép thêm vào ñiều kiện canh (guard) ðiều này cho phép chúng ta lập trình một khoảng thời gian time-out, nhờ ñó giới hạn khoảng thời gian chờ cho việc kết nối và thực hiện câu lệnh khác nếu không
có kết nối nào là có thể xẩy ra trong khoảng thời gian cho trước ñó Cú pháp và ngữ nghĩa của ngôn ngữ này sẽ ñược trình bày tại ñây
Cho CHAN là một tập không rỗng tên những kênh liên lạc, VAR là tập không rỗng những biến chương trình, và VAL là miền ñếm ñược các giá trị Cú pháp của ngôn ngữ
lập trình ñược ñưa ra trong ngôn ngữ mô tả dạng Backus-Naur Form (BNF) bên dưới,
nó bao gồm những khái niệm cơ sở của ngôn ngữ lập trình tuần tự và thêm vào những câu lệnh ñiều khiển thời gian và xử lý song song Cú pháp của ngôn ngữ lập trình thời
gian thực ñược ñưa ra bên dưới, với S ñại diện cho những chương trình, P và Q ñại diện cho các tiến trình, e ñại diện cho các biểu thức số học, c ñại diện cho các kênh (CHAN), g ñại diện cho biến canh (biểu thức boolean), d ñại diện cho các số tự nhiên (d>0), và x ñại diện cho các biến chương trình (VAR)
• Skip: một tiến trình trong ñó không hành ñộng nào ñược thực thi và kết thúc
ngay lập tức, vì vậy giá trị của tất cả các biến ñược giữ nguyên
• x: =e : câu lệnh gán thay ñổi giá trị của biến x tới giá tương ứng của biểu thức e
• delay d: ñưa tiến trình vào trạng thái ngủ trong d ñơn vị thời gian Trong khoảng thời gian này, tiến trình không thể làm gì
• c x c e? , ! : tiến trình vào dữ liệu c x? gán dữ liệu vào từ kênh c cho biến x,
tương tự như vậy, tiến trình xuất dữ liệu c e! tính toán giá trị biểu thức e và gửi thông qua kênh c Nhưng trước khi kết nối có thể xẩy ra thì cả kênh
nhập và xuất phải sẵn sàng ñể kết nối, do ñó trong trường hợp cần thiết các
Trang 17kênh nhập hoặc xuất phải chờ tới khi tài nguyên nguồn hoặc
ñích ñã sẵn sàng
• P Q; : kết hợp tuần tự P Q; thực hiện P trước tới khi kết thúc thì thực hiện Q
i=b c i i x i→S i delay e→S
: câu lệnh ñiều kiện Nếu không ñiều kiện tại
câu lệnh canh của biến vào nào ñược thỏa mãn trong khoảng thời gian e thì
0
S ñược thực thi, ngược lại, nó sẽ chờ cho tới khi một câu lệnh nhập (tương ứng biến canh mở) ñược thực thi và thực hiện tiếp chương trình S i tương ứng Ở ñây, một ñiều kiện canh là mở nếu việc tính toán giá chị chân lí cho
kết quả ñúng
• While g do P od: câu lệnh lặp lặp lại việc thực thi P khi mà g vẫn còn ñúng
và kết thúc khi g là sai
• P1 ||P2 || ||P n: một tiến trình thực thi song song nhiều tiến trình, trong ñó tất
cả những tiến trình con chạy song song và việc thực thi của chúng cũng ñược khởi tạo ñồng thời Tiến trình song song kết thúc khi tiến trình con với
thời gian thực thi lâu nhất kết thúc
Ta cung cấp một hệ thống chứng minh có tính kết hợp cho việc l í giải về thiết kế và tính ñúng ñắn của những chương trình thời gian thực ñối với cả chức năng và ñặc tả thời gian thực Mục ñích của chúng ta là cung cấp cho những người thiết kế giao diện kết hợp dựa trên cú pháp cho việc thiết kế và kiểm chứng những chương trình thời gian thực, ẩn ñi bớt chi tiết về ngữ nghĩa
2.3 Ng, nghĩa hình th0c c4a ngôn ng, l7p trình
Ở ñây ta ñưa ra những ngữ nghĩa hình thức ñể lập trình những bước xây dựng công
thức trong WDC * ðể ñơn giản, ta sử dụng x\ ch cho dãy thu ñược từ việc gỡ bỏ tất cả
các kết nối trên kênh ch từ dãy x, x↓CH ≙ x\ CHAN\CH phép chiếu vết (trace) trên kênh
CH, và x ≤y dãy x là tiền tố của dãy y
Cho một hệ thống thời gian thực, giờ ta ñã sẵn sàng ñể diễn tả việc giám sát theo thời gian bằng bộ:
(s,v,v’,tr) (1) trong ñó
• s : Time → R n là một hàm số thực của thời gian, ñược sử dụng ñể mô tả trạng thái vật lý của hệ thống Ta sử dụng s. ñể kí hiệu cho ñạo hàm của s
Trang 18• tr : Time → chan*, kí hiệu cho việc ghi vết (trace), xác ñịnh những sự kiện kết nối một hệ thống gặp phải trên khoảng thời gian dọc theo kênh trong
chan(P) Ở ñây, chan(P) ñược ñịnh nghĩa là tên của các kênh trong tiến trình P
Nó phải thỏa mãn những luật sau:
( )
tr tr tr
≤
=〈〉
□
trong ñó chan* là tập hữu hạn dãy các kết nối trên các kênh của tập CHAN
• v biểu thị những giá trị ban ñầu của những biến chương trình v, và v’ là những
giá trị cuối cùng tại thời ñiểm kết thúc
Trong những ngữ nghĩa hình thức ta ñịnh nghĩa thêm await(c?) và await(c!) ñể biểu thị
cho việc chờ một kênh ñược ñồng bộ trước khi kết nối như sau:
await c intv c await c intv c
trong ñó intv là kí tự mệnh ñề khoảng thỏa mãn intv[a,b] = true khi và chỉ khi a,b ∈
Integer và a < b Thêm nữa, mỗi kênh ñược ánh xạ tới một tập các giá trị theo thời
gian bởi ánh xạ C: Channel → Time → Value
C(c)(t)=v
trong ñó v ∈ Type(c) là giá trị vừa ñược xuất tới c
Ta ghi lại hành vi của tiến trình P với công thức WDC*, M(P) là công thức tương ứng với hành vi dừng và M’(P) là công thức tương ứng với hành vi không dừng Từ ñó,
nếu (θ, [0,e]) ⊨ M(P) thì (θ, [0,e]) biểu thị một thực thi ñầy ñủ, trong ñó P kết thúc tại
thời ñiểm cuối của khoảng ñã cho Nói cách khác, với hành vi không kết thúc của một tiến trình, nếu ∀e > 0 (θ, [0,e]) ⊨ M’(P) thì θ biểu thị một thực thi không kết thúc
Những ngữ nghĩa của ngôn ngữ ñược ñưa ra bởi những ñịnh nghĩa tiếp theo Ta ñịnh
nghĩa thêm Idle, ñể biểu thị một khoảng không phải ñiểm nơi mà không có sự kiện nào
ñang xẩy ra hoặc ñược mong ñợi xẩy ra theo tiến trình thời gian, nghĩa là tất cả các kênh và trạng thái/giá trị của các biến ñược giữ nguyên
Trang 19ðịnh nghĩa thời gian kết thúc của tiến trình Pi(1 ≤ i ≤ n) là ∏(ϕ i ) (1 ≤ i ≤ n), thì
m=max(m 1 , …, m n ) nghĩa là giá trị lớn nhất của thời gian kết thúc các tiến trình P i (1≤i≤ n);
Trang 20nghĩa là nếu chúng ta chiếu
1 2
( ||P P|| ||P n)
trM trong khoảng [0,b], lưu vết của những tiến trình tổ hợp, lên các kênh của chan(Pi) (1 ≤ i ≤ n) thì ta thu ñược vết của P i khi b nhỏ hơn thời gian kết thúc của P i, ngược lại thu ñược tập rỗng
2.4 Các lu7t ki:m ch0ng
Những luật cho các câu lệnh nguyên tử và các câu lệnh kết hợp ñược liệt kê dưới ñây
Luật 1 nói rằng việc thực thi của câu lệnh skip không thay ñổi trạng thái cũng như
không tốn thời gian
Luật 1 (Skip)
{post}[skip , ]{post}
Luật 2 nói rằng việc thực thi của câu lệnh gán có thể thay ñổi trạng thái nhưng không tốn thời gian Một công thức duration không thể thể hiện sự thay ñổi ngay lập tức của biến chương trình
Luật 3 nói rằng việc thực thi của câu lệnh delay là tốn thời gian, và trong khoảng thời
gian này tiến trình không thể làm gì khác
Luật 3 (Delay) trong tiến trình P i
{post}[delay d l, = ∧d post ]{post}
giả sử COND1, COND2 ñúng
Luật 5 (Input) trong tiến trình P i
Trang 21giả sử COND1, COND2 ñúng
Luật 6 cho phép làm mạnh hơn tiền ñiều kiện, và làm yếu ñi hậu ñiều kiện hoặc yếu ñi biểu thức duration trong một bộ ba
Luật 7 diễn tả kết hợp tuần tự của những chương trình Nó nhấn mạnh tính tương tự
giữa kết hợp tuần tự của chương trình và toán tử chop của công thức duration Tiếp
theo ñó hệ thống chứng minh cũng có thể ñược sử dụng ñể lí giải về hành vi của những chương trình không xác ñịnh thời gian.Vì vậy mở rộng bộ ba Hoare của chúng ta là
ñược bảo tồn (conservative) Luật 7-a nói rằng một dãy P Q; kết thúc nếu cả P và Q
kết thúc Luật 7-b, 7-c, và 7-d nói rằng một dãy P Q; không kết thúc thành công khi P
hoặc Q không kết thúc thành công
Luật 7 (Sequences) trong tiến trình P i
pre P Q pre P c
pre P Q post pre P mid pre Q mid Q d