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.1. Thể thức thời gian-tài nguyên
Khi môi trường muốn sử dụng các dịch vụ từ các thành phần phần mềm. Các dịch vụ được đưa vào sử dụng cần phải xem xét trên nhiều khía cạnh khác nhau. Ngồi ràng buộc về mặt thời gian thì việc thực thi này cịn phụ thuộc vào các ràng buộc được gọi là tài nguyên. Tài nguyên được môi trường cung cấp cho thành phần phần mềm để các dịch vụ có thể hoạt động được. Do đó, cần phải đặc tả yếu tố tài nguyên trong thể thức của các thành phần phần mềm.
Tương tự như thể thức tương tác tương tranh thời gian ở phần trên, giả sử
C là một thành phần phần mềm. Đặt Σi là một trong những bảng chữ cái biểu diễn tên của các dịch vụ trong C, ký hiệu i = 1, k, biểu diễn dãy số tự nhiên từ 1 đến k, k ∈N. Đặt Ω = Ski=1Σi là tập tất cả các dịch vụ mà C cung cấp.
Mỗi dịch vụ trong Ω tiêu thụ và sử dụng một lượng tài nguyên, và cần một khoảng thời gian để thực thi. Đặt R≥0 là tập số thực không âm biểu diễn miền thời gian. Đặt RES là tập các véctơ, RES = {res1, res2, . . . , resh}, mỗi véctơ
resi, i = 1, h, cón phần tử, mỗi phần tử là một số nguyên đại diện cho đại lượng tài nguyên mà nó biểu diễn. Mỗi véctơ resi liên quan đến dịch vụ thứ i trong một thành phần phần mềm. Các yếu tố thời gian và yếu tố tài nguyên được đặc tả bằng một cặp ánh xạ ð = (b ðt,ðR), trong đó ðt : Ω → R≥0, ðR : Ω → RES.
Do đó, một dịch vụ a ∈ Ω cần tối thiểu ðt(a) đơn vị thời gian và ðR(a) lượng tài nguyên để hoàn thành tác vụ. Mỗi thể thức đặc tả một ràng buộc trên thứ tự thời gian của các dịch vụ trong một bảng chữ cái thứ Σi riêng rẽ và điều này được mơ hình hóa một cách hiệu quả bằng biểu thức chính quy trên bảng chữ cái Σi. Do đó, thể thức được định nghĩa như sau:
Định nghĩa 3.5(Thể thức tương tác thời gian - tài nguyên). Một thể thức tương tác ℘ là một bộ h(Σ1,E1), . . . ,(Σk,Ek),ði, trong đó ð = (b ðt,ðR), ðt : Ω → R≥0,
ðR: Ω → RES, Ω =Ski=1Σi, và với mọi i = 1, k, Ei là biểu thức chính quy trên bảng chữ cái Σi.
Ví dụ 3.5. Ví dụ này minh họa thể thức tương tác thời gian thực có ràng buộc tài nguyên cho hệ thống quan trắc trong Ví dụ 3.1, trong đó
Ωs1 = {S1, A1,Đ1, N1, F1} là tập các dịch vụ trong khối điều khiển cảm biến KĐKCB1 và thể thức ℘s1 = h{S1, A1,Đ1, N1, F1},(S1(A1Đ1N1)∗F1)∗,ði. Các
ràng buộc tài nguyên cho thành phần phần mềm này được miêu tả trong RESs1 lần lượt là các đại lượng năng lực CPU, bộ nhớ trong, băng thông mạng, năng lượng, thiết bị lưu trữ được liệt kê dưới đây:
RESs11 ={(S1(1%,5KB,1%,1µW,0KB)),(A1(1%,10KB,1%,1µW,20KB)), ..., (N2(1%,10KB,1%,1µW,20KB))(F1(1%,10KB,1%,1µW,20KB))}.
Chúng ta có thể thức ℘s1 của KĐKCB1: ℘s1 =h(Σs1,Es1),ði, trong đó
(Σs1,Es1) = ({S1, A1,Đ1, N1, F1}, pref(S1(A1Đ1N1)∗F1)∗), và
1Dữ liệu trong ví dụ này chỉ mang tính minh họa. Trên thực tế, các thống số phụ thuộc vào những hệ thống cụ thể.
ðt(S1) = ðt(F1) = 1 đơn vị thời gian, và ðt(χs) = 5, ở đây χs là tập các dịch vụ còn lại. Ràng buộc tài nguyên cho từng phương thức trong thành phần phần mềm dựa vào hàm ðR. Hàm ðR(S1) = (1%,5KB,1%,5%,1µW,0KB) và tính tương tự cho các thành phần cịn lại trong Ωs1.
Khi môi trường yêu cầu các dịch vụ của thành phần phần mềm nào thì mơi trường phải tn thủ thể thức tương tác thời gian thực của thành phần phần mềm đó, tức là tuân thủ các yếu tố về thứ tự thực hiện, ràng buộc thời gian và tài nguyên. Để biểu diễn ngữ nghĩa của các hoạt động này, luận án dùng ơtơmát trọng số làm mơ hình của mơi trường. Một từ của ơtơmát trọng số với ràng buộc tài nguyên là một chuỗi ω = (a1, t1, r1)(a2, t2, r2). . .(an, tn, rn) trong đó ti−1 ≤ ti, i = 1, n, t0 = 0, ri là lượng tài nguyên mà hệ thống dành cho dịch vụ ai, ai ∈ Ω. Dãy hành vi này thể hiện hành động thứ ai xảy ra tại thời điểm thứ ti và hệ thống dành cho hành động này một lượng tài nguyên ri. Sự chênh lệch giá trị giữa ri vàri−1 thể hiện rằng dịch vụ đã sử dụng một lượng tài nguyên cho bước thực thi thứ i.
Đối với tài nguyên hệ thống, luận án chia các tài nguyên thành hai loại gồm: Loại chiếm dụng là loại tài nguyên được hệ thống sử dụng trong quá trình thực thi, khi kết thúc loại tài nguyên này được trả về cho hệ thống như hiệu năng CPU, bộ nhớ, băng thông mạng, v.v. Loại tiêu thụ là loại tài nguyên được sử dụng trong quá trình hệ thống hoạt động và bị tiêu hao trong quá trình thực thi đó như năng lượng, dung lượng của thiết bị lưu trữ, v.v.
Các ràng buộc tài nguyên bị tăng hoặc giảm trong quá trình hệ thống hoạt động. Luận án cần bổ sung các phép tốn và việc tính tốn sẽ tùy thuộc vào các thành phần tài nguyên cụ thể được sử dụng trong hệ thống, tức là phụ thuộc vào loại tài nguyên làtiêu thụ hay là chiếm dụng và phép ghép song song hoặc nối tiếp của các thành phần phần mềm. ĐặtR là một tập các thành phần biểu diễn giá trị các thành phần tài nguyên của môi trường sẽ cung cấp cho thành phần phần mềm khi gọi dịch vụ của chúng. Đặt ⊕ là phép tốn hai ngơi thực hiện trên R. Đối với phép ghép song song của hai thành phần, mọi chi phí
cho thành phần ghép này là tổng chi phí cho cả hai thành phần. Đối với phép ghép nối tiếp, chi phí cho thành phần chiếm dụng là chi phí lớn nhất cho hoạt động của hai thành phần và chi phí cho loại thiêu thụ là tổng chi phí cho hoạt động của hai thành phần.
Ví dụ 3.6. Giả sử cho R, R1, R2 là các bộ đặc tả tài nguyên với các thành phần lần lượt là: Hiệu năng CPU, bộ nhớ trong, băng thông mạng, năng lượng, và dung
lượng lưu trữ ngoài. Hai bộ đặc tả thông tin tài nguyên của hai dịch vụ bất kỳ với giá trị R1 = (1%,10KB,1%,1µW,20KB), R2 = (1%,10KB,1%,1µW,20KB).
Phép tốn ⊕ tiêu chuẩn trên R1, R2 là R = R1 ⊕ R1 được tính như sau: R = R1|u + R2|u ∪ R1|c + R2|c = (2%,20KB,2%,2µW,40KB).
Đối với phép ghép song song của hai dịch vụ R|| = R1|u + R2|u ∪ R1|c +
R2|c = (2%,20KB,2%,2µW,40KB). Cịn đối với phép ghép nối tiếp R◦ =
M ax(R1|u, R2|u)∪R1|c+R2|c = (1%,10KB,1%,2µW,40KB).
Ngồi phép tốn ⊕, luận án bổ sung phép toán giảm, ký hiệu bằng , để
tính tốn cho việc giảm các thành phần tài nguyên. Phép toán là phép tốn hai ngơi trên R. Phép tốn này được sử dụng khi tính tốn lượng tài nguyên hệ
thống còn lại sau khi đã dành cho các dịch vụ đang thực thi. Tài nguyên hệ thống cung cấp cho việc thực thi các dịch vụ được trừ lần lượt cho các dịch vụ tham gia quá trình hoạt động của hệ thống. Phép toán này cũng phụ thuộc vào cách thức thực hiện các dịch vụ, tức là ghép nối tiếp hay ghép song song.
Ví dụ 3.7. Giả sử cho R = (40%,1024KB,60%,3W,1024KB) là tài nguyên hệ thống dành cho hai dịch vụ nào đó cần thực hiện, trong đó dịch vụ thứ nhất sử dụng lượng tài nguyên được mô tả trong R1 = (1%,10KB,1%,1µW,20KB)
và dịch vụ thứ hai cần lượng tài nguyên R2 = (1%,10KB,1%,1µW,20KB) để thực thi. Sau khi hai dịch vụ thực thi theo cách song song thì tài nguyên hệ thống dành lại cho các dịch vụ khác như sau R = R|u −R1|u −R2|u ∪R|c −R1|c −
R2|c = (38%,1004KB,58%,2999998µW,984KB). Đối với phép ghép nối tiếp
của hai dịch vụ, tài nguyên hệ thống dành cho các dịch vụ cịn lại R = R|u −
M ax(R1|u, R2|u)∪R|c−R1|c−R2|c = (39%,1014KB,59%,2999998µW,984KB). Đối với phép ghép nối tiếp, phép toán sẽ trừ giá trị lớn nhất của phần tài nguyên thuộc nhóm chiếm dụng và trừ từng thành phần với nhóm tiêu thụ. Phép tốn ⊕ và được minh họa trong Bảng 3.2.
Bảng 3.2: Các toán tử tăng giảm các thành phần tài nguyên
Toán tử Loại tài nguyên Tiêu chuẩn Ghép song song Ghép nối tiếp
⊕ Chiếm dụng R1|u +R2|u +R1|u +R2|u +M ax(R1|u, R2|u)
Tiêu thụ R1|c +R2|c +R1|c +R2|c +R1|c +R2|c Chiếm dụng R1|u −R2|u −R1|u −R2|u −M ax(R1|u, R2|u) Tiêu thụ R1|c −R2|c −R1|c −R2|c −R1|c−R2|c
Ký hiệu u và c trong bảng trên tương ứng với nhóm tài nguyên tiêu thụ (Consume) và nhóm chiếm dụng (Utilize). Luận án định nghĩa sự tuân thủ thể thức đối với các ràng buộc tài nguyên như sau:
Định nghĩa 3.6 (Sự tuân thủ thể thức thời gian tài nguyên). Một từ trọng số ω = (a1, t1, r1)(a2, t2, r2). . .(an, tn, rn) tuân thủ thể thức ℘, ký hiệu ω |= ℘ khi và chỉ khi với mọi i ≤ k thì
(i) untimedresource(ω)|Σi ∈ L(Ei), và
(ii) đặt untimedresource(ω)|Σi = aj1aj2. . . ajmi, thì tjl+1 − tjl ≥ ðt(ajl), thì
rjl+1 rjl ≥ ðR(ajl), với mọi l < mi.
Trong định nghĩa này, điều kiện (i) thể hiện sự tuân thủ trình tự lời gọi các dịch vụ trong thành phần phần mềm, khi thực hiện theo trình tự này thì thành phần phần mềm đảm bảo sẽ hoàn thành dãy thực thi. Điều kiện (ii) cho biết thành phần phần mềm có đủ thời gian và tài nguyên để cung cấp các dịch vụ.
Ví dụ 3.8. Ví dụ này minh họa một chuỗi hành vi của môi trường tuân thủ thể thức của khối cảm biến KĐKCB2. Giả sử khối KĐKTT trong Ví dụ 3.1 muốn lấy thơng tin của mơi trường từ vị trí 2,3. Khối KĐKTT gửi một chuỗi hành động yêu cầu cho khối KĐKCB2 ω = (S2,0, rS2)(A21,6, rA21)(A22,7, rA22)(Đ21,11, rĐ21)(Đ22,14, rĐ22)(N21,18, rN21) (N22,20, rN22)(F2,25, rF2) và một biến chứa một tập tài nguyên khả năng đủ lớn cho hệ thống hoạt động r0 = (100%,1024KB,100%,3W,2GB). Các ràng buộc
tài nguyên cho thành phần phần mềm này được miêu tả trong RESs2 lần lượt là các đại lượng năng lực CPU, bộ nhớ trong, băng thông mạng, năng lượng, thiết bị lưu trữ được liệt kê dưới đây:
RESs22 ={(S2(1%,5KB,1%,1µW,0KB)),(A21(1%,10KB,1%,1µW,20KB)),
...,(N22(1%,10KB,1%,1µW,20KB))(F2(1%,10KB,1%,1µW,20KB))}. Tính
tn thủ được kiểm tra như sau: untimedresource(ω)|Σs
21 =S2A21Đ21N21F2 ∈ L(Es21).
Xét tA21 −tS2 = 6−0 = 6 ≥ δ(S2) = 1, ràng buộc tài nguyên được tính
rA21 = r0 ⊕ rS2 = (99%,1019KB,99%,2999999µW,2GB). Do đó, nguồn
tài ngun dành cho hành động A21 là rA21, rA21 ≥ δR(A21). Tiếp tục với
cách tính tương tự, chúng ta khẳng định rằng ω tuân thủ πs21.
2Dữ liệu trong ví dụ này chỉ mang tính minh họa. Trên thực tế, các thống số phụ thuộc vào những hệ thống cụ thể.
Trong mỗi bước tính tốn, khơng nhất thiết tất cả các tài nguyên hệ thống đều được huy động. Do đó, những loại tài nguyên nào được đưa vào sử dụng thì giá trị bị thay đổi, cịn những loại khơng được sử dụng thì giá trị tài nguyên sẽ được cập nhật lại sau từng bước tính tốn.
Giả sử có hai thành phần phần mềm C1 và C2 với hai chuỗi hành vi tương ứng là ω1 và ω2. Thành phần C1 hoạt động song song với C2, thì thể thức của thành mềm ghép, ký hiệu bởi ℘1||℘2, và chuỗi thực thi ω1||ω2 biểu diễn tiến trình hoạt động song song của hai thành phần phần mềm này và ω1||ω2 phải thỏa ℘1||℘2, ký hiệu ω1||ω2 |= ℘1||℘2. Luận án định nghĩa phép toán ghép song song của hai thể thức trong Định nghĩa 3.7.
Định nghĩa 3.7 (Ghép song song ràng buộc tài nguyên). Cho hai thể thức ℘ = h(Σ1,E1), . . . ,(Σk,Ek),ði và ℘0 = h(Σ0
1,E01), . . . ,(Σh0,E0h),ð0i. Phép ghép
song song của ℘ với ℘0 là một thể thức ℘||, ký hiệu ℘|| = ℘||℘0, ℘|| = h(Σi ∪
Σ0j,Ei∪E0j),ð||i, trong đó i = 1, k, j = 1, h và ðt|| : S
i=1,k,j=1,h(Σi∪Σ0j) 7→ R≥0,
ðR|| : S
i=1,k,j=1,h(Σi∪Σ0j) 7→ (RESi ∪RESj0), tức là với mọi từ trọng số ω|| =
ω||ω0, ω |= ℘ và ω0 |=℘0 thì ω|| |= ℘||.
Trong trường hợp C1 ghép nối tiếp với C2 thì chuỗi thực thi, ký hiệu bởi
ω1◦ω2, phải lần lượt tuân thủ thể thức ℘1 và ℘2 một cách tương ứng, tức là
ω1◦ω2 |=℘1◦℘2. Phép ghép nối tiếp của hai thể thức được xác định trong Định nghĩa 3.8.
Định nghĩa 3.8 (Ghép nối tiếp ràng buộc tài nguyên). Cho hai thể thức π = h(Σ1,E1), . . . ,(Σk,Ek),ði và ℘0 = h(Σ01,E01), . . . ,(Σh0,E0h),ð0i. Phép ghép
nối tiếp của ℘ với ℘0 là một thể thức ℘◦, ký hiệu ℘◦ = ℘ ◦℘0, ℘◦ = h(Σi ∪
Σ0j,Ei.E0j),ð◦i, trong đó i = 1, k, j = 1, h và ðt◦ : S
i=1,k,j=1,h(Σi ∪Σ0j) 7→ R≥0,
ðR◦ : S
i=1,k,j=1,h(Σi ∪ Σ0j) 7→ (RESi ∪ RESj0), tức là với mọi từ trọng số
ω◦ =ω◦ω0, ω |=℘ và ω0 |= ℘0 thì ω◦ |= ℘◦.
Trong q trình tính tốn và biểu diễn các hành vi của thành phần phần mềm, luận án áp dụng một số phép chiếu trên các thành phần trong q trình tính tốn các đối tượng, và mở rộng phép chiếu cho các đối tượng khác như giao diện thành phần, tập các biến, tập các phương thức.