Chương 6 Kết luận
4.1 Minh họa sự thực thi theo thời gian của giao diện
Để đơn giản trong biểu diễn, với một cặp p= (Φ,I), luận án cũng ký hiệu
pf = Φ và pτ = I. Một giao diện chuẩn là những giao diện khơng bị bế tắc
(deadlock-freedom), có nghĩa là tất cả các dãy thực thi có thể mở rộng được. Kết quả này đạt được bởi điều kiện với một dãy thực thi bất kỳ s1s2. . . sn, tiền điều kiện in(Φ) trên tập biến đầu vào sau khi thực hiện là thỏa được, ở đây Φ
được xác định, ξ(s1. . . sn) = (Φ,I). Để thay thế trong một số trường hợp, luận án định nghĩa sự tương đương của hai giao diện.
Định nghĩa 4.5 (Giao diện tương đương). Giao diện I = hX, Y, ξi và I0 =
hX,0Y0, ξ0i là tương đương nhau, ký hiệu I ≡I0, nếu X = X0, Y =Y0 và đối với tất cả các dãy trạng thái đến được s ∈S(I)∩S(I0), thì cơng thức ξ(s) ≡ ξ0(s) là đúng.
Định nghĩa này thể hiện rằng nếu hai giao diện tương đương nhau thì tất cả các hành vi và tính chất sẽ giống nhau. Chú ý rằng, cách biểu diễn các giao diện chỉ là khái niệm cú pháp. Do đó, luận án xác định rằng hai giao diện
I = hX, Y, ξi và I0 = hX0, Y0, ξ0i tương đương nhau khi và chỉ khi chúng đồng nhất với nhau về ngữ nghĩa.
Định nghĩa 4.6 (Môi trường). Một môi trường E là một bộ bốn thành phần E = hX, Y, hX, hYi, trong đó X và Y như trong Định nghĩa 4.1, và hX : (V(X∪
Y)×Time)∗ → F(X) và hY : (V(X∪Y)×Time)∗ → F(X∪Y)×Intv. Tập tất cả các dãy thực thi của E được ký hiệu là S(E).
Ánh xạ hX đảm bảo rằng môi trường cung cấp cho tập đầu vàoX tại một trạng thái đã cho, trong khi hY thể hiện điều mong muốn của môi trường trên các tập đầu ra Y và thời gian để nhận giá trị tại đầu ra. Môi trường E hoạt động được nếu hX và hY thỏa tất cả các dãy trạng thái đến được.
Ví dụ 4.2. Ví dụ này minh họa một môi trường E = h{x},{y}, x > 0,(y =
x+1,[1,5])i, trong đóX ={x},Y ={y},hX =x > 0và hY = (y =x+1,[1,5]).
Môi trườngE sẽ cung cấp giá trị trên biến đầu vào thỏa điều kiện x >0và mong đợi kết quả tại đầu ra thỏa điều kiện y =x+ 1 trong khoảng thời gian [1,5].
Định nghĩa 4.7 (Phép cắm). Một môi trường E = hX, Y, hX, hYi có thể cắm được vào giao diện I =hX0, Y0, ξi khi và chỉ khi X0 =X, Y0 =Y và những điều sau đây đúng.
(i) hX() ⇒in(ξf()), ξf()∧hX() ⇒hYf(), và ξτ() ⊆hYτ(). Trạng thái là trạng thái khởi tạo và cũng gọi là trạng thái đến được, và
(ii) Với tất cả các trạng thái đến đượcs∈ S∗sao chohX(s)thỏa được,hX(s)⇒
in(ξf(s)), ξf(s)∧hX(s) ⇒ hYf(s), và ξτ(s) ⊆hYτ(s) đúng. Đối với (a, τ) ∈ S sao cho a |= ξf(s)∧ hX(s) và τ ∈ hYτ(s) dãy trạng thái s.(a, τ) cũng được gọi là đến được.
Luận án ký hiệu tập tất cả các dãy trạng thái đến được của môi trường E cắm vào giao diện I là S(E,I).
Sự cắm được có thể hiểu là E sử dụng dịch vụ của I, tức là sự tương tác giữa môi trường E và giao diện thành phần I. Mục (i) của Định nghĩa 4.7 nói rằng sự tương tác có thể bắt đầu, sau khi nó trải qua dãy trạng thái s, nếu hX(s) khơng thỏa thì mơi trường sẽ dừng lại. Trái lại, nó chọn một phép gán
aX sao cho aX |= hX(s). Từ khi hX(s) ⇒ in(ξf(s)), điều kiện của giao diện là thỏa được bởi aX, giao diện I đưa ra các kết quả aY trong khoảng thời gian I, sao cho (aX ∪aY) |= ξ(s)f và I = ξ(s)τ, vào môi trường như được thiết kế bởi giao diện. Điều kiệnξf(s)∧hX(s) ⇒ hYf(s), và ξτ(s) ∈hYτ(s) suy ra rằng aY là các đầu ra được môi trường E mong đợi trong khoảng thời gian cho phép.
Ví dụ 4.3. Giả sử cho một giao diện I = h{x},{y},(x > 0 ` (x > 0∧y =
x + 1)),[1,3]i và một môi trường E = h{x},{y}, x > 0,(y = x + 1,[1,5])i.
Môi trường E muốn sử dụng dịch vụ từ giao diện I thì môi trường E gán giá trị trên biến đầu vào x > 0 của giao diện I. Nếu phép gán thỏa điều kiện đầu vào củaI, tức là x >0thì I tra kết quả đầu ra y =x+ 1 trong khoảng thời gian [1,3].
Kết quả do I trả ra thỏa điều kiện đầu ra mà E mong muốn, tức là y = x+ 1 và thời gian nằm trong khoảng [1,5]. Vậy trong trường hợp này, E cắm được vào I.
Từ Định nghĩa 4.7, một tính chất rõ ràng và hiển nhiên đối với phép cắm
là tập các dãy trạng thái đến được của nó là tập con của tập các dãy trạng thái đến được của giao diện. Phép cắm chỉ là cách mà môi trường sử dụng giao diện. Môi trường muốn sử dụng dịch vụ từ giao diện thì giao diện phải thỏa yêu cầu của môi trường. Bất kỳ một giao diện nào thỏa các u cầu của mơi trường đều có thể sử dụng được.
Định nghĩa 4.8 (Tương đương về môi trường). Hai giao diện I và I0 tương đương nhau tương ứng với môi trường E, ký hiệu I ≡E I0, khi và chỉ khi E cắm được vào I và E cũng cắm được vào I0. Hai giao diện I và I0 tương đương về mặt môi trường khi và chỉ khi I ≡E I0 đối với mọi môi trường E.
Hai giao diện tương nhau về mặt môi trường, điều này cho phép mơi trường
E có nhiều lựa chọn hơn trong việc gọi các dịch vụ từ các giao diện để thực thi.
Định lý 4.1 (Tương đương môi trường). I≡E I0 đối với mọi môi trường E khi và chỉ khi I ≡ I0.
Chứng minh. Để chứng minh định lý này chúng ta cần chỉ ra rằng nếuI ≡ I0 suy ra I ≡E I0, và theo chiều ngược lại, chúng ta giả sử I ≡E I0 thì chúng ta khẳng định rằng I ≡ I0.
Giả sử I ≡E I0, với mọi trạng thái đến được s ∈ S(I) ∩S(I0), công thức
ξ(s) ≡ξ0(s) đúng. Sử dụng quy nạp theo độ dài của dãy trạng thái.
Bước cơ sở: ∈ S(I) ∩ S(I0), do đó, ta cần chỉ ra rằng ξ() ≡ ξ0(). Từ khi I ≡E I0 công thức hX() ⇒ in(ξf()), ξf() ∧ hX() ⇒ hYf(), và ξτ() ⊆ hYτ() đúng, hX() ⇒ in(ξf0()), ξf0() ∧hX() ⇒ hYf(), và
ξτ0() ⊆ hYτ() cũng đúng. Đặt a là một phép gán sao cho aX là một phép gán trên X chỉ thỏa φaX, ở đây φaX là một tính chất trên X, aY là một phép gán trên Y chỉ thỏa φaY, ở đây φaY là một thuộc tính trên Y và
ξτ() ⊆ hYτ(). Môi trường E được xác định như sau: E = hX, Y, hX, hYi
sao cho hYf() =true, với mọi s, hXf() =φaX chỉ trong trường hợp s=
và hXf() =f alse với mọi s, .
Trường hợp 1: Giả sử aX 2in(ξf0(s)). Từ khi hXf() ⇒ in(ξf()), tiền điều kiện của giao diện được thỏa bởi aX. Điều này khẳng định rằng mơi trường
E chỉ khởi tạo rồi dừng. Có nghĩa là chỉ E |=I nhưng E 2 I0, điều này trái với giả thiết I ≡E I0.
Trường hợp 2: Giả sử aX 2 ξ0(), xét điều kiện ξf() ∧hX() ⇒ hYf(), điều này có nghĩa aY là các kết quả mà E mong muốn trong khoảng thời gian hợp lệ. Suy ra E |= I. Dựa trên giả thiết ban đầu, điều kiện trong I0 là ξf0()∧true⇒ true nhưng aX 2 ξ0() có nghĩa E 2 I0. Điều này trái với giả thiết I ≡E I0.
Trường hợp 3: Xét hai điều kiện ξτ() ⊆hYτ() và ξτ0()⊆ hYτ(). Giả sử a
là một phép gán bất kỳ tại thời điểm τ sao cho τ ∈hYτ() nhưngτ <ξτ0(). Điều này suy ra ξτ0() * hYτ(), do đó E 2 I0 trái với giả thiết. Dựa trên các trường hợp 1, 2, 3 ở trên suy ra ξ()≡ ξ0().
Bước quy nạp: Xét s.(a, τ) ∈ S(I)∩S(I0). Giả sử rằng kết quả này đúng với trạng thái s đã cho. Ta cần chứng minh nó đúng với ξ(s.(a, τ)) ≡ ξ0(s.(a, τ)). Theo cách tương tự như trong bước cơ sở, Giả sử rằng hoặc (a, τ) 2 ξ(a, τ) hoặc (a, τ) 2 ξ0(a, τ) làm cho công thức trong Mục 2 của Định nghĩa 4.7 khơng đúng. Có nghĩa là hoặc E 2 I hoặc E 2 I0, trái với giả thiết I ≡E I0.
Chiều ngược lại: Đặt I =hX, Y, ξi, I0 = hX, Y, ξ0i và giả sử rằng I ≡I0. Ta sử dụng quy nạp trên độ dài của dãy trạng thái s.
Bước cơ sở: Xét trạng thái s = , giả sử E |= I tại trạng thái s = ,
tức là công thức hX() ⇒ in(ξf()), ξf()∧ hX() ⇒ hYf(), và ξτ() ⊆
hYτ() đúng. Từ khi I ≡ I0. Ta cũng có cơng thức hX() ⇒ in(ξf0()),
ξf0()∧hX() ⇒ hYf() và ξτ0() ⊆hYτ() đúng. Đó là E |=I0 tại trạng thái
s =.
Bước quy nạp: Giả sử rằng với mọi trạng thái đến được s ∈ S∗ sao cho
hX(s) thỏa được, hX(s) ⇒ in(ξf(s)), ξf(s)∧hX(s) ⇒ hYf(s) và ξτ(s) ⊆
hYτ(s) đúng. Đặts.(a, τ)∈ S(E,I) sao choa|=ξf(s)∧hX(s) vàτ ∈hYτ(s) điều này khẳng định (a, τ) ∈ S(I), do đó E |=I. Theo giả thiết I ≡I0 suy ra E |=I0.
4.4 Ghép giao diện thành phần
Phép ghép các giao diện thành phần là một trong những nội dung quan trọng trong lý thuyết giao diện. Luận án xét hai trường hợp của phép ghép: Ghép song song và ghép nối tiếp. Cho hai giao diện độc lập I và I0 có thể ghép song song với nhau để nhận được một giao diện mới. Giao diện mới này có thể cung cấp hai dịch vụ cùng một thời điểm miễn thời gian đáp ứng dịch vụ gần giống nhau.
Định nghĩa 4.9 (Ghép song song giao diện). Đặt I = hX, Y, ξi và I0 =
hX0, Y0, ξ0i là hai giao diện sao cho (X ∪ Y) ∩ (X0 ∪ Y0) = ∅. Phép ghép
song song giữa I và I0, ký hiệu I||I0, là giao diện hX ∪ X0, Y ∪ Y0, ξ00i, ở đây
ξ00 : (V(X∪X0∪Y ∪Y0)×Time)∗ → F(X∪X0∪Y ∪Y0) ×Intv được định nghĩa
như sau:
V là tập tất cả các phép gán trên tập các đầu vào và đầu ra X∪X0∪Y ∪Y0. Đối với a ∈ V, a|X biểu thị sự giới hạn của phép gán a trên X (tương tự với X0, Y, Y0).
ξ00((a1, τ1). . .(an, τn)) = (ξf((a1|X∪Y, τ1). . .(an|X∪Y, τn))∧
ξf0((a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn)), ξτ(a|X∪Y, τ)∩ξ0(a|X0∪Y0, τ).
Định lý 4.2 (Dãy trạng thái đến được). Đặt I00 = I||I0. Một dãy trạng thái (a1, τ1). . .(an, τn) là một dãy trạng thái đến được của I00 khi và chỉ khi (a1|X∪Y, τ1). . .(an|X∪Y, τn) là dãy trạng thái đến được của I và
(a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn) là dãy trạng thái đến được của I0.
Chứng minh. Theo Định nghĩa 4.9, ta có I||I0 = hX ∪ X0, Y ∪
Y0, ξ00i, trong đó ξ00((a1, τ1). . .(an, τn)) = (ξf((a1|X∪Y, τ1). . .(an|X∪Y, τn)) ∧
ξf0((a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn)), ξτ(a|X∪Y, τ)∩ξτ0(a|X0∪Y0, τ).
Để ngắn gọn, ta ký hiệu σ là một dãy phép gán, tức là σ = (a1, τ1). . .(an, τn). Với một phép gán hạn chế trên các tập đầu vào đầu ra tương ứng, thì σ|X∪Y = (a1|X∪Y, τ1). . .(an|X∪Y, τn) và σ|X0∪Y0 = (a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn).
Ta dùng quy nạp theo độ dài của dãy các trạng thái.
Bước cơ sở: Kết quả này đúng với trạng tháis =, trạng thái rỗng, vì là trạng thái đến được của bất kỳ giao diện nào. Giả sử rằng kết quả đúng với trạng thái
Bước quy nạp:Đặt alà phép gán bất kỳ hạn chế trên (X∪Y), ký hiệu làai|X∪Y, và hạn chế trên (X0∪Y0) là ai|X0∪Y0, i = 1, n.
Giả sử rằng (a, τ) |= ξ(σ), theo Định nghĩa 4.9 suy ra (a|X∪Y, τ) |=
ξ(σ|X∪Y), do đó (a|X∪Y, τ) ∈ S(I). Từ khi (a, τ) |= ξ(σ), ta cũng nhận
được (a|X0∪Y0, τ) |= ξ0(σ|X0∪Y0), điều này suy ra (a|X0∪Y0, τ) ∈ S(I0). Theo giả thiết, kết quả này đúng với trạng tháissuy ras.(a|X∪Y, τ) |=ξ(σ|X∪Y) và s.(a|X0∪Y0, τ) |= ξ(σ|X0∪Y0).
Chiều ngược lại: Xét cùng một thời điểm. Đặt cặp (a|X∪Y, τ) là một phép gán trên tập biến đầu vào và đầu ra X ∪ Y của giao diện I sao cho (a|X∪Y, τ) |= ξ(σ|X∪Y), trong đó τ ∈ ξ(σ|X∪Y)τ, theo giả thiết quy nạp kết quả đúng cho trạng thái s, điều này suy ra s.(a|X∪Y, τ) ∈ S(I). Đồng thời, đặt (a|X0∪Y0, τ) là một phép gán trên tập biến đầu vào và đầu ra X0 ∪ Y0 của giao diện I0 sao cho (a|X0∪Y0, τ0) |= ξ(σ|X0∪Y0), trong đó
τ0 ∈ξτ(σ|X0∪Y0). Bằng giả thiết quy nạp, kết quả này đúng cho trạng thái
s, điều này suy ra s.(a|X0∪Y0, τ0) ∈ S(I0). Dựa trên Mục 1 của Định nghĩa
4.9, Đặt cặp (a, τ00) là phép gán, trong đó a = a|X∪Y ∪ a|X0∪Y0, đó là,
a =a|X∪Y∪X0∪Y0 và τ00 ∈ ξτ(σ|X∪Y)∩ξτ(σ|X0∪Y0). Dựa theo giả thiết quy nạp suy ra s.(a, τ00) ∈S(I00), do đó (a, τ00) |=ξ00(σ).
Ngồi kỹ thuật ghép các giao diện theo cách song song, chúng ta có thể ghép hai giao diện theo cách ghép nối tiếp với nhau. Tức là, một số đầu vào của giao diện thứ hai nối với một số đầu ra của giao diện thứ nhất. Nhằm đảm bảo tính đúng đắn, luận án giới hạn một biến đầu vào của giao diện thứ hai chỉ nối tối đa một biến đầu ra của giao diện thứ nhất, dù một số biến đầu vào của giao diện thứ hai nối với cùng một đầu ra của giao diện thứ nhất.
Cho hai giao diện I= hX, Y, ξivà I0 =hX0, Y0, ξ0i sao cho (X∪Y)∩(X0∪
Y0) =∅. Một phép ghép nối tiếp từIvàoI0là một tập các cặpθ ⊆Y×X0mà thỏa
∀(y, x),(y0, x0) ∈ θ.(x = x0 ⇒ y = y0). Đặt Xθ = {x ∈ X0|∃y ∈ Y.(y, x) ∈ θ}.
Một phép nốiθ thực hiện một phép gánatrên ((X∪X0)\Xθ)∪Y ∪Y0 trở thành phép gán aθ trên (X∪X0∪Y ∪Y0) khi aθ|((X∪X0)\Xθ)∪Y∪Y0 =a|((X∪X0)\Xθ)∪Y∪Y0, và đối với x ∈ Xθ, luận án định nghĩa aθ(x) = a(y) ở đây y là thành phần duy nhất trong Y sao cho (y, x) ∈θ.
Định nghĩa 4.10 (Ghép nối tiếp giao diện). Phép ghép nối tiếp của I và I0 tương ứng với phép nối θ, ký hiệu I.θI0, là giao diện I00 =hX00, Y00, ξ00i, trong đó
X00= (X ∪X0)\Xθ, Y00 =Y ∪Y0.
Với mọi s = (a1, τ1). . .(am, τm) trong đó ai là một phép gán trên ((X ∪
X0)\Xθ)∪Y ∪Y0, ξf00(s) =∃Xθ.(ξf(((a1)θ|X∪Y, τ1). . .((am)θ|X∪Y, τm))∧
ξf0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm)) ∧ ρθ∧ ∀Y.(ξf(((a1)θ|X∪Y, τ1). . .((am)θ|X∪Y, τm)) ∧ ρθ ⇒
in(ξf0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm))))), ρθ = V
(y,x)∈θx =
y. Phép ghép đối với thời gian ξ00τ(s) = b + I, trong đó ξτ(((a1)θ|X∪Y, τ1). . .((am)θ|X∪Y, τm)) = [b, e], và ξτ0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm)) = I, và b + I là khoảng thời gian nhận được bằng cách dịch chuyển I đi b đơn vị thời gian.
Trong Định nghĩa 4.10, luận án giả sử rằng giao diện thứ hai nhận kết
quả đầu ra của giao diện thứ nhất ngay khi kết quả xuất hiện. Ngoài ra, để sử dụng như các đầu vào của giao diện thứ 2, bất kỳ kết quả đầu ra của giao diện thứ nhất phải thỏa các điều kiện đầu vào của giao diện thứ 2. Điều kiện này được chụp một cách chính xác bởi định nghĩa của ξ00. Phép ghép song song và nối tiếp của hai giao diện I vàI0 được minh họa trong Hình 4.2. Trong hình này,
Phần (a) minh họa phép ghép song song và Phần (b) minh họa cho phép ghép nối tiếp. X1 I1 Y1 X2 I2 Y2 X1 I1 Y1 I2 Y2 X2 D el ay (a) (b)