Chương 2 Kiến thức nền tảng
3.5. Thể thức tương tác thời gian thực ràng buộc tài nguyên
3.5.2. Mơ hình hóa và sự tn thủ thể thức thời gian-tài nguyên
Môi trường muốn sử dụng các dịch vụ của thành phần phần mềm C cung cấp thì tất các các chuỗi hành vi của môi trường phải tuân thủ thể thức ℘ của
C. Mơ hình được sử dụng phổ biến và tốt nhất để giải quyết bài toán trong luận án này là ôtômát trọng số (Priced/Weighted Timed Automata) [32,33,74]. Cho thành phần phần mềm C và một mơ hình ơtơmát trọng số A của môi trường. Một câu hỏi đặt ra là liệu tất cả ngơn ngữ của A có tn thủ thể thức ℘ của thành phần phần mềm C hay không? Nếu tn thủ, ký hiệu A |=℘.
3.5.2.1 Ơtơmát trọng số ràng buộc tài nguyên
Phần này luận án trình bày ơtơmát trọng số ràng buộc tài nguyên, được sử dụng để mơ hình hóa các chuỗi hành vi của mơi trường với ràng buộc tài nguyên. Ơtơmát trọng số ràng buộc tài ngun là ơtơmát trọng số được bổ sung hai bộ thành phần tài nguyên vào hàm gán nhãnλ là ràng buộc tài nguyên res∈RES
trên các hành động và bộ giá trị tài nguyên R trên các vị trí của ơtơmát trọng số. Luận án sử dụng các ký hiệu và các khái niệm như được trình bày trong
Phần 2.2.2. Ký hiệu { là tập các đồng hồ, x là một đồng hồ bất kỳ trong {,
phép gán giá trị của các đồng hồ ν, ν : {→ R≥0. Đặt t ∈R≥0, phép gán giá trị
ν +t được định nghĩa bởi (ν +t)(x) = ν(x) +t với mọi x ∈ {. Ơtơmát trọng số tài ngun được sử dụng trong việc mơ hình hóa và lập luận cho tính sử dụng hiệu quả tài nguyên hệ thống của thành phần phần mềm thời gian thực. Luận án giới hạn bộ giá trị tài nguyên R trên tập vị trí L và thành phần RES
trên tập các dịch chuyển T. Định nghĩa ôtômát trọng số ràng buộc tài nguyên được khái quát như sau:
Định nghĩa 3.9 (Ơtơmát trọng số tài ngun). Một ôtômát trọng số trên tập hữu hạn đồng hồ { và tập hữu hạn các thành phần tài nguyên R là một bộ
M = (L, `0,Σ,{, T, λ,Γ), trong đó L là tập các vị trí, `0 là vị trí khởi tạo, T ⊆ L×Σ×Φ({)×2{×L là tập các dịch chuyển, Γ là tập vị trí chấp nhận được, λ : L∪T → R ∪RES gán mỗi cạnh một bộ giá trị của thành phần tài nguyên RES tương ứng với hành động trong bảng chữ cái Σ, và gán mỗi vị trí
một bộ giá trị R.
Một trạng thái của ôtômát trọng số ràng buộc tài nguyên là một bộ h`, νi,
trong đó ` ∈ L, ν ∈ R{≥0. Ánh xạ λ gán nhãn giá trị tài nguyên ðR(ai) = resi
được sử dụng cho hành động ai lên cạnh của ôtômát và gán giá trị tài nguyên còn lại ri ∈ R của hệ thống cho vị trí `i của ơtơmát. Như vậy, hành vi của ôtômát trọng số được biểu diễn bằng từ trọng số ràng buộc tài nguyên là chuỗi
ω = (a1, t1, r1)(a2, t2, r2). . .(am, tm, rm),m≥ 1. Luận án nhắc lại ðR là một ánh xạ cho biết đặc tả tĩnh tài nguyên của một dịch vụ được gọi thì hệ thống chi phí
mất bao nhiêu tài nguyên. Dịch chuyển trong ôtômát trọng số tài nguyên cũng giống như ôtômát trọng số ngun thủy, đó là có hai hình thức dịch chuyển, tuy nhiên chi phí cho từng loại dịch chuyển được tính trên tập tài ngun:
Thời gian trơi: h`, νi−→ h`, νd +di nếu với mọi d∈ R≥0,
λ(h`, νi) =λ(h`, νi−→ h`, νd +di). Ánh xạ λ gán r |c (d⊗ðR) lên vị trí `,
trong đó phép tốn ⊗, d được nhân lần lượt với các thành phần tiêu thụ trong res, giá trị của các thành phần chiếm dụng được giữ nguyên.
Dịch chuyển rời rạc: h`, vi −→,e h`0, ν0i nếu tồn tại một dịch chuyển e =
h`, a, φ,~, `0i ∈ T sao cho ν |= φ, ν0 = [~7→ 0]ν, và λ(h`0, ν0i) =λ(h`, νi−→e h`0, ν0i), trong đó r0 =r ðR(a).
3.5.2.2 Ơtơmát trọng số tài ngun vùng
Cho một ôtômát trọng số ràng buộc tài nguyên M. Một trạng thái đến
được của một ôtômát vùng trọng số tài nguyên là một cặp h`, Zi, trong đó Z
là một vùng và ` là một vị trí. Trạng thái h`, Zi biểu diễn tập tất cả các trạng thái h`, νi trong đó ν ∈ Z. Khi Z là một vùng và ~ là một tập con đồng hồ,
~ ⊆ {. Ký hiệu Zd là tập các phép gán giá trị đồng hồ trong trường hợp thời gian trôi và Z~ là tập các phép gán trên các đồng hồ được thiết lập lại giá trị. Đó là, Zd = {ν +d | ν ∈ Z, d ∈ R≥0} và Z~ = {[~ 7→ 0]ν | ν ∈ Z}. Cho một
trạng thái h`, Zi, đặt ∆Z là phép định giá đồng hồ duy nhất của vùng Z thỏa
∀ν ∈Z.∀x ∈{.∆Z(x) ≤ ν(x).
Định nghĩa 3.10 (Vùng trọng số tài nguyên). Một vùng trọng số tài nguyên
Z là một bộ (Z, µ, η), trong đó Z là một vùng, µ ∈N miêu tả độ lệch tương đối
∆Z của vùng Z, và η : {→ R tính giá trị tài nguyên η(x) cho bất kỳ đồng hồ x nào. Đặt ν ∈ Z mỗi khi ν ∈Z. Với bất kỳ ν ∈ Z chi phí của phép gán ν trong
Z, ký hiệu bởi Cost(ν,Z), được tính bằngµ⊗ðR⊕Lx∈{η(x)⊗(ν(x)−∆Z(x)). Như vậy, một trạng thái của ôtômát vùng trọng số tài nguyên là một bộ (`,Z), trong đó ` là một vị trí vàZ là một vùng trọng số ràng buộc tài nguyên, hay nói cách khác Z là một cấu hình của ơtơmát vùng trọng số ràng buộc tài nguyên. Một dãy trạng thái của ôtômát vùng trọng số ràng buộc tài nguyên
ωz = ((`0,Z0)(`1,Z1). . .(`n,Zn)), i = 1, n, trong đó `i là một vị trí, Zi là một vùng trọng số ràng buộc tài nguyên được biểu diễn bởi một bộh`i, Zii, ở đâyZi
3.5.2.3 Sự tuân thủ thể thức thời gian - tài ngun
Mơi trường hệ thống được mơ hình hóa bằng một ơtơmát trọng số tài nguyên A. Môi trường muốn sử dụng các dịch vụ trong thành phần phần mềm
C với thể thức tương tác tương tranh℘ có ràng buộc tài ngun thì chuỗi hành vi của mơi trường phải tn thủ thể thức ℘ của C. Nghĩa là chuỗi hành vi của mơi trường phải tn thủ trình tự các lời gọi trong thể thức ℘ và qua mỗi bước tính tốn, mơi trường phải cung cấp đủ các tài nguyên cho các dịch vụ trong C hoạt động.
Như vậy, bài toán quy về kiểm tra ngơn ngữ của ơtơmát trọng số tài ngun
Acó thỏa thể thức℘ của thành phần phần mềm đã cho. Nếu thỏa ký hiệu bằng
A |=℘. Đặt P Z(A) là ôtômát vùng trọng số ràng buộc tài nguyên của A. Giả
sử ω = (a1, t1, r1)(a2, t2, r2). . .(am, tm, rm), m≥ 1.
Để kiểm chứng dãy hành vi của mơi trường có tn thủ thể thức tương tác ℘ của một thành phần phần mềm đã cho hay không. Luận án tiến hành xây dựng ơtơmát đốn nhận ngơn ngữ phần bù của ngôn ngữ trong thể thức ℘,
với mỗi biểu thức chính quy Ei, i = 1, k, xây dựng ơtơmát Bi đốn nhận ngơn ngữ phần bù của L(Ei) là ¯L(Ei). Xây dựng ôtômát vùng trọng số ràng buộc tài nguyên cho ôtômát trọng số Alà P Z(A). Áp dụng bài toán kiểm tra tính rỗng của ngơn ngữ tích đồng bộ P Z(A)× Bi, với mọi i = 1, k. Nếu tất cả ngơn ngữ của các tích đồng bộ này rỗng chứng tỏ ôtômát A thỏa thể thức ℘. Luận án
khái quát kết quả bằng Định lý 3.4.
Định lý 3.4. Cho một mơi trường E được mơ hình hóa bằng ơtơmát trọng số ràng buộc tài nguyên A và thành phần phần mềm C với thể thức ℘. E cắm được vào C khi và chỉ khi L(A) |=℘.
Chứng minh. 1. Xây dựng ơtơmát đốn nhận ngôn ngữ phần bù của ngôn ngữ trong thể thức ℘, với mỗi biểu thức chính quy Ei, i = 1, k, xây dựng ôtômát Bi
đốn nhận ngơn ngữ phần bù của L(Ei) là ¯L(Ei).
2. Xây dựng ôtômát vùng trọng số ràng buộc tài nguyên cho ôtômát trọng sốA
là P Z(A).
3. Áp dụng bài tốn kiểm tra tính rỗng của ngơn ngữ tích đồng bộ P Z(A)× Bi, với mọi i = 1, k. Nếu tất cả ngơn ngữ của các tích đồng bộ này rỗng chứng tỏ
Để kiểm tra tính tn thủ của chuỗi hành vi của mơi trường đối với với thể thức tương tác có ràng buộc tài nguyên của một thành phần phần mềm thời gian thực. Luận án đưa ra thủ tục để kiểm tra sự tuân thủ bằng các thuật toán sau.
Thuật toán 3.5: ERC: Kiểm tra tính rỗng của A với ℘
Input: Thể thức thời gian tài nguyên ℘ =h(Σ1,E1), . . . ,(Σk,Ek),ði và một ôtômát trọng số tài nguyên A= hL,Σ, `0,{, T, λ,Γi.
Output: “true” nếu tích đồng bộ của Avới ℘ rỗng, “false” trong các trường hợp cịn lại.
1 begin
2 Xây dựng ơtơmát vùng trọng số tài nguyên của ôtômát trọng số A, ký
hiệu P Z(A);
3 for i = 1, k do
4 Xây dựng ôtômát Bi đốn nhận ngơn ngữ chính quy ¯L(Ei);
5 Xây dựng tích đồng bộ P Z(A)×Σi Bi; 6 if L(P Z(A)×ΣiBi) ,∅ then 7 stop(); 8 return “false”; 9 end 10 end 11 return “true”; 12 end
Thuật toán 3.5kiểm tra tính tn thủ của ơtơmát trọng số Avới thể thức tương tác có ràng buộc tài nguyên trong trường hợp Mục 1 của Định nghĩa 3.6.
Ý nghĩa của thuật toán này giống với Thuật toán 3.1, tuy nhiên đầu vào của
thuật tốn này là một thể thức có đặc tả ràng buộc tài nguyên và một ôtômát trọng số tài nguyên. Câu lệnh2cho biết phải xây dựng ôtômát vùng trọng số tài nguyên cho ôtômát A, ký hiệu bằng P Z(A). Việc xây dựng ơtơmát này chính là sự biểu diễn hữu hạn ôtômát trọng số tài nguyên A.
Khối lệnh for từ dịng thứ 3 đến dịng 10, trong đó, với mỗi biểu thức
chính quy Ei, câu lệnh 4 là bước xây dựng ơtơmátBi đốn nhận ngơn ngữ phần bù ¯L(Ei) của L(Ei). Câu lệnh số 5 xây dựng tích đồng bộ P Z(A) với Bi, ký hiệuP Z(A)×ΣiBi. Ý nghĩa của câu lệnh này để tìm ngơn ngữ giao giữa ơtơmát vùng trọng số với ngơn ngữ phần bù của ngơn ngữ chính quy ¯L(Ei) tương ứng với bảng chữ cái Σi. Dòng 6 đến dịng 9 lần lượt kiểm tra xem ngơn ngữ của
ơtơmát tích đồng bộ có rỗng hay khơng? Nếu khơng rỗng, thuật tốn dừng và trả kết quả “false”. Ngược lại, nếu duyệt tồn bộ các tích đồng bộ mà các ngơn ngữ của chúng đều rỗng, thuật toán dừng và trả kết quả “true”.
Để kiểm tra một chuỗi hành vi của mơi trường có vi phạm ràng buộc thời gian và ràng buộc tài nguyên với thể thức tương tác ℘, luận án đề xuất thuật
tốn tìm đường đi vi phạm trong ơtơmát thời gian đối với thể thức tương tác của thành phần phần mềm.
Thuật toán 3.6: PTRViolationCheck: Kiểm tra một đường đi trong Acó vi phạm với thể thức tương tác ℘
Input: Một đường đi của ôtômát trọng số tài nguyên dưới dạng một từ thời gian - tài nguyên ω và thể thức tương tác ℘
Output: “true” nếu ω vi phạm π, “false” trong các trường hợp còn lại.
1 begin 2 for i = 1, k do 3 if untimedresource(ω)|Σi ∈ L(Ei) then 4 stop(); 5 return “true”; 6 end 7 forj = 1,|L(Ei)| do 8 Đặt untimedresource(ω)|Σi =aj1aj2. . . ajmi ; 9 for l = 1, mi do 10 if tjl+1 −tjl ðt(ajl) or rjl+1 rjl ðR(ajl) then 11 stop(); 12 return “true”; 13 end 14 end 15 end 16 end 17 return “false”; 18 end
Thuật toán 3.6 kiểm tra một chuỗi hành vi của mơi trường có vi phạm điều kiện ràng buộc thời gian và ràng buộc tài nguyên đối với thể thức tương tác ℘ của thành phần phần mềm hay không? Khối lệnh f or từ câu lệnh 2 đến
lệnh 2 đến câu lệnh 6 kiểm tra chuỗi hành vi của mơi trường có thỏa ngơn ngữ của thể thức hay khơng? Nếu khơng thỏa thì thuật tốn dừng trả ra kết quả “true”, tức là có vi phạm, ngược lại thuật tốn kiểm tra tiếp với các ràng buộc thời gian và ràng buộc tài nguyên. Khối lệnh f or từ câu lệnh 7 đến câu lệnh 15
kiểm tra một từ ω có vi phạm về ràng buộc thời gian và ràng buộc tài nguyên hay không? Nếu vi phạm, thuật toán dừng và trả kết quả “true”, ngược lại trả kết quả “false” tức là không vi phạm.
Tiếp theo, luận án kết hợp thuật toán 3.6 vào thuật tốn 3.7 để kiểm tra tính thỏa được của ơtơmát trọng số ràng buộc tài nguyên vởi thể thức ℘.
Thuật toán 3.7: TRC: Kiểm tra sự vi phạm ràng buộc thời gian và tài nguyên của A với ℘.
Input: Thể thức thời gian ℘ =h(Σ1,E1), . . . ,(Σk,Ek),ði và một ôtômát thời gian A=hL,Σ, `0,{, T, λ,Γi.
Output: “true” nếu A không vi phạm ℘, “false” trong các trường hợp
còn lại.
1 begin
2 for i = 1, k do
3 Xây dựng ôtômát trọng số A0 =hL,Σ, `0,{∪ {ci}, T0, λ,Γi từ ôtômát Abằng cách bổ sung biến đồng hồ ci, trong đó
T0 ={e0 = (`, a, φ,~∪ {ci}, `0) | e= (`, a, φ,~, `0) ∈T ∧a∈
Σi} ∪ {e0 = (`, a, φ,~, `0) | e= (`, a, φ,~, `0) ∈T ∧a< Σi};
4 Xây dựng ôtômát vùng P Z(A0), và bổ sung tất cả các dịch chuyển với ràng buộc “thời gian và tài nguyên” vào P Z(A0) và làm đơn giản nó bằng cách loại bỏ các trạng thái khơng đến được;
5 if PTRViolationCheck() then 6 stop(); 7 return “false”; 8 end 9 end 10 return “true”; 11 end
Thuật toán 3.7 sẽ kiểm tra hai yếu tố là ràng buộc thời gian và ràng buộc tài nguyên của ôtômát A với thể thức ℘. Đối với kiểm tra ràng buộc thời
vùng thời gian trong Thuật toán 3.3. Đối với ràng buộc tài ngun, thì ánh xạ
λ : L∪T → R∪RES trong ơtơmát vùng trọng số tài nguyên P Z(A0) sẽ gán thành phần resi tương ứng với hành động ai trong các dịch chuyển thuộc T0, và gán thành phần tài nguyên ri, ri ∈ R, lên vị trí `i, i = 1, n. Thuật tốn này kiểm tra được tính tuân thủ cả ràng buộc thời gian và ràng buộc tài nguyên cho các hoạt động của ôtômát trọng số tài nguyên A đã cho.
Từ hai Thuật toán 3.5 và Thuật toán 3.7, luận án kết hợp với các trường
hợp cịn lại để đưa ra thuật tốn kiểm tra tính tuân thủ các chuỗi hành vi của một ôtômát trọng số tài nguyên đối với một thể thức ℘ của một thành phần phần mềm thời gian thực đã cho và được trình bày trong Thuật tốn 3.8.
Thuật tốn 3.8: Kiểm tra tính thỏa được ơtơmát trọng số tài ngun với thể thức ℘
Input: Một thể thức tương tranh thời gian tài nguyên
℘ =h(Σ1,E1), . . . ,(Σk,Ek),ði, trong đó ðt : Ski=1Σi→ N≥,
ðR: Ski=1Σi → RES, và Ei là một biểu thức chính quy trên bảng chữ cái Σi với i = 1, k, và một ôtômát trọng số tài nguyên
A=hL,Σ, `0,{, T, λ,Γi mà thỏa Σi ⊆ Σ với mọi i ≤ k.
Output: “true” nếu L(A) |=℘, “false” trong các trường hợp còn lại.
1 begin
2 if ERC(A, π) , true then 3 return "false";
4 end
5 else
6 foreach ∀a ∈Sk
i=1Σi, do
7 if (ðt(a), 0 hoặc ðR(a), null) then
8 stop();
9 return "false";
10 end
11 end
12 if T RC(A, π) , true then 13 return "false";
14 end
15 end
16 return “true”;
17 end
Thuật tốn trên đã kiểm tra được tính tn thủ của một ơtơmát trọng số tài nguyên đối với thể thức tương tranh của một thành phần phần mềm. Độ phức tạp thuật tốn về thời gian được tính như sau O(|P Z(A0)|.|L(Ei)|).
3.6 Tổng kết chương
Chương 3 đã đề xuất mơ hình phần mềm thời gian thực dựa trên thành phần và đề xuất thể thức tương tác được sử dụng để biểu diễn sự tương tác giữa các thành phần phần mềm và giữa các thành phần phần mềm với mơi trường trên cả khía cạnh chức năng và phi chức năng.
Mơ hình thành phần phần mềm thời gian thực trong luận án được chia thành hai phần gồm phần chủ động và phần thụ động. Dựa trên cách chia mơ hình thành hai phần giúp cho các hệ thống được phát triển dựa trên mơ hình này có thể triển khai nhanh, độ chính xác cao và kiểm sốt được các tiến trình