Xây dựng cây trạng thái

Một phần của tài liệu Phương pháp đánh giá hiệu năng hệ thống sử dụng umlstate machine và stochastic petri nets (Trang 39)

Cây trạng thái của hệ thống được thể hiện thông qua tập hình trạng của SPN, với mỗi hình trạng đại diện cho một trạng thái. Gọi:

RS (Reachability Set) là tập hình trạng của hệ thống. NM (New Marking) là tập hình trạng mới chưa được xét. Et(M0) là tập các transition có khả năng kích hoạt tại hình trạng m.

Thuật toán xây dựng cây trạng thái với tư tưởng của thuật toán là [12]: Xuất phát từ hình trạng ban đầu, ta xác định các transition có khả năng kích hoạt (chính là các sự kiện có thể xảy ra trong hệ thống), lần lượt kích hoạt các transition để tạo ra các hình trạng mới (trạng thái mới của hệ thống), đồng thời lưu trữ các thông tin về phép chuyển đổi hình trạng đó để tạo ra ma trận Q'. Công việc được tiếp tục lặp lại với các hình trạng mới (theo nghĩa không có trong tập các hình trạng đã có), đến khi không thể nảy sinh ra một hình trạng mới nào.

1. input {P, T, I, O, M0, λ} 2. NM := {M0}; RS := {M0}

32

3. while NM ≠

4. begin 5. let m ∈ NM

6. NM := NM - {m} 7. for all t Et(m)

8. begin 9. let m →t m' 10. store_Q’(m,m',W(t,m)) 11. if m' ∉ RS 12. then NM := NM ∪ {m'} 13. RS := RS ∪ {m'} 14. else mark(m’) 15. end 16. end 17. p(0) = (1,0,...,0) 18. Output RS, Q’, p(0)

Với đầu vào là SPN trải qua thuật toán trên chúng ta thu được tập hình trạng của SPN, đồng thời thu được ma trận Q’ có số chiều bằng số trạng thái trong hệ thống và xác suất thời điểm ban đầu p(0) phục vụ cho quá trình xây dựng CTMC sau này.

CTMC – Continuous Time Markov Chain – được xác định theo quan hệ sau: P {Xn+1=xn+1/Xn=xn,...,X0=x0} = P {Xn+1=xn+1/Xn=xn} (1)

Với Xi∈Τ là trạng thái tại thời điểm ti, T là tập trạng thái, t0 < t1 <… < tn+1 . Do thời gian là liên tục mà không gian trạng thái lại rời rạc, nên khi đạt đến một trạng thái thái CTMC sẽ “ở” trạng thái đó trong một khoảng thời gian gọi là thời gian trễ (residence time).

tuân theo phân bố xác suất mũ với hàm phân bố:

33

Vì vậy một CTMC được đại diện bởi ma trận Q và véc-tơ xác suất thời điểm ban đầu p(0), trong đó, các phần tử của ma trận Q chính là thành phần tốc độ (µi)

dùng để xác định thời gian trễ tại mỗi trạng thái i

Trong SPN do yếu tố thời gian được gắn với t- transition nên các phần tử của ma trận Q lúc này chính là tốc độ kích hoạt của t-transition. Q được xây dựng từ Q' sau khi đã loại các phần tử tương ứng với các hình trạng (trạng thái) vô hình (định nghĩa 3) (do trạng thái này thực tế không tồn tại, hệ thống sẽ ngay lập tức chuyển sang trạng thái hữu hình kế tiếp). Cơ sở để xây dựng Q được mô tả thông qua hình 3.7:

Hình 3.7. Ma trận đặc trung Q từ cây trạng thái 3.5. Phân tích đặc tính hành vi của mạng SPN.

3.5.1. Tính đạt được (reachability)

Tính đạt được là cơ sở để nghiên cứu các đặc tính động của bất kỳ hệ thống nào.

Tính đạt được là số các đánh dấu có thể đạt dược nhờ một chuỗi kích hoạt liên tiếp các chuyển tiếp từ đánh dấu ban đầu M.

Một đánh dấu Mn được gọi là đạt được từ một đánh dấu ban đầu Mo nếu tồn tại một chuỗi các kích hoạt б = t1t2...tn chuyển đánh dấu Mo đến đánh dấu Mn.

Hình 3.8 minh họa các đánh đấu đạt được t1 từ đánh dấu ban đầu M0 =(1,1,0,0,0,1) nhờ kích hoạt liên tiếp chuyển tiếp t1 và t2.

34

Hình 3.8. Các đánh dấu nhờ đạt đƣợc nhờ lần lƣợt kích hoạt các chuyển tiếp t1 và t2

3.5.2. Tính an toàn (safety)

Một trong những đặc tính quan trọng của MPN để mô hình hóa các thiết bị thực tế, đó là tính an toàn (safety).

Một vị trí của PN (N, Mo) được gọi là an toàn nếu số lượng thẻ trong vị trí đó bằng 0 hay bằng 1 (nghĩa là nó có thể thực hiện bằng một Flip – Flop).

Một PN (N, Mo) được gọi là an toàn nếu với đánh dấu ban đầu Mo và đối với bất kỳ vị trí pj ∈ P của nó, các đánh dấu ở bất kỳ vị trí Pi luôn thỏa mãn Mi (pj) ≤ 1.Tính an toàn là điều kiện bắt buộc.

Cách dánh dấu hình 3.8 là an toàn vì đánh dấu ban đầu M0 = (1,1,0,0,0,1) ≤ 1, đánh dấu lần thứ nhất M1 =(0,1,1,1,0,0)≤ 1 và đánh dấu lần thứ hai M2 = (1,0,1,0,1,0) ≤ 1 đều không có vị trí nào nhận thêm quá một dấu hiệu.

Đánh dấu M0 ở hình 3.9 là không an toàn, vì nếu chuyển tiếp t1 được kích hoạt, vị trí p2 sau đó có hai thẻ, tức là nó đã nhận thêm một thẻ vượt quá. Có thể nhận thấy rằng, tất cả các đánh dấu đạt được từ M0 có thể được coi là có giới hạn và tồn tại.

35

Hình 3.9. Đánh dấu M0 là không an toàn

3.5.3. Tính tích cực (liveness)

Đánh dấu được coi là tích cực (live marking) nếu bắt đầu từ đánh dấu ban đầu M0 và không quan trọng chuỗi kích hoạt các chuyển tiếp sẽ xảy ra như thế nào, có thể kích hoạt một chuyển tiếp bất kỳ nào cho trong chuỗi kích hoạt tiếp theo. Nếu đánh dấu M0 là tích cực thì không quan trọng chuỗi kích hoạt xảy ra như thế nào, mạng Petri sẽ không bao giờ bị khóa chết và có thể kích hoạt bất kỳ chuyển tiếp nào nhờ tiếp tục thêm chuỗi kích hoạt. Đặc tính tích cực (liveness) của đánh dấu chính là sự đảm bảo không có trạng thái bị khóa chết trong mạng Petri.

3.5.4. Tính hữu hạn (boundness)

Tính hữu hạn của mạng Petri là số thẻ giới hạn của các vị trí và do đó cần có sự đảm bảo không bị tràn dung lượng của các vị trí. An toàn là trường hợp riêng của tính hữu hạn.

Đánh dấu M được gọi là hữu hạn (bounded marking) nếu trong bất kỳ một chuỗi kích hoạt tiếp theo nào, không có vị trí nào tiếp nhận thêm số thẻ lớn hơn số n - một số nguyên dương.

Nếu đánh dấu M có giới hạn và trong bất kỳ chuỗi kích hoạt nào không có vị trí nào nhận thêm một thẻ nữa thì đánh dấu M cũng được gọi là đánh dấu an toàn.

Vị trí k - an toàn (hay k - hữu hạn):

Một vị trí pj∈ P của PN (N, M0) với đánh dấu ban đầu M0 được gọi là k - an toàn nếu số thẻ ở vị trí pj trong đánh dấu đạt được M’ từ M0 không vượt một số k nguyên dương, M’ (pj) ≤ k, đối với tất cả M’ ∈ R(M0).

36

Nếu vị trí pj là k - an toàn thì nó phải là k’ - an toàn đối tất cả k’ ≥ k.

Bởi vì số lượng thẻ có giới hạn, nên có thể chọn k bằng giá trị tối đa từ các vị trí và xác định mạng Petri là k - an toàn nếu từng vị trí là k - an toàn.

Một vị trí được gọi là hữu hạn nếu nó là k - an toàn đối với k.

Mạng Petri được gọi là hữu hạn nếu tất cả các vị trí của nó đều hữu hạn. Tính hữu hạn có thể áp dụng trong truyền thông như: đảm bảo dung lượng kênh, dung lượng bộ đệm hay các thanh ghi trong các hệ thống xử lý thông tin được mô hình bởi PN.

3.5.5. Tính bảo toàn (conservative).

Mạng Petri được coi là bảo toàn (conservative Petri Net) nếu nó không bị mất đi hoặc thêm vào bất kỳ một đánh dấu nào. Nghĩa là các thẻ chỉ di chuyển từ vị trí này sang vị trí khác sau đánh dấu mới để bảo toàn tổng số thẻ trong mạng Petri bằng đánh dấu ban đầu.

Số thẻ trong từng vị trí xác định vector trọng số (không âm).

Mạng Petri được gọi là bảo toàn theo quan hệ với vector trọng số, nếu tổng số thẻ không đổi với tất cả các đánh dấu đạt được.

Đặc tính bảo thủ có thể ứng dụng cho mô hình các hệ thống phối tài nguyên. Ví dụ mô hình mạng Petri các yêu cầu, phân phối và giải phóng các thiết bị vào ra (ổ đĩa D, máy in). Khi đó, các thẻ biểu thị các tài nguyên, phải sẵn có và không bao giờ được tạo mới thêm và bị hủy bỏ đi.

Nếu coi wj ≥ 0 – là trọng số của từng vị trí pj ∈ P, thì mạng Petri có vector trọng số W = (w1, w2, …., wm) và ta có trường hợp chung để xét điều kiện mạng bảo toàn. Đó là tổng trọng số của tất cả các đánh dấu đạt được cần phải không đổi. Các thẻ có thể được gán trọng số bằng 0, các thẻ còn lại có thể gán cho các trọng số bằng 1, 2, 3 hay bất kì số nguyên nào.

3.5.6. Tính phủ (coverability).

Một đánh dấu M trong PN (N, M0) được gọi là phủ nếu tồn tại một đánh dấu M’ trong R (M0) mà M’ (p) ≥ M(p) đối với tất cả các vị trí p trong mạng.

Tính phủ liên quan chặt chẽ với mức tích cực 1 (có tiềm năng kích hoạt). Cho rằng M là đánh dấu nhỏ nhất cần thiết để cho phép một chuyển tiếp t. Thì t chết

37

(không tích cực cấp 1) nếu và chỉ nếu M không phủ. Như vậy, t có mức tích cực 1 nếu và chỉ nếu M phủ.

3.5.7. Tính cố chấp (persistence).

Một PN (N, M0) được gọi là cố chấp nếu đối với bất kỳ hai chuyển tiếp được phép, sự kích hoạt của một chuyển tiếp sẽ không làm mất trạng thái được phép của chuyển tiếp còn lại. Một chuyển tiếp trong mạng cố chấp, một khi nó được phép, thì sẽ ở trong trạng thái được phép cho đến khi nào nó kích hoạt.

Tính cố chấp có thể áp dụng cho mô phỏng các hệ thống có đụng độ. Mạng Petri cố chấp an toàn có thể được chuyển thành một đồ thị có đánh dấu (MG) nhờ sao chép một số chuyển tiếp và vị trí. Chú ý rằng, tất cả các MG đều là cố chấp, nhưng không phải tất cả mạng cố chấp là MG.

3.6. Phân tích định lƣợng.

Nền tảng của phân tích định lượng là việc tính xác suất trạng thái p của hệ thống tại giai đoạn bền vững (steady-state).

Giai đoạn bền vững là giai đoạn mà tại đó xác suất để hệ đạt đến một trạng thái trong không gian trạng thái không phụ thuộc vào yếu tố thời gian (chú ý: từ state trong steady-state nên hiểu là “giai đoạn” thay vì “trạng thái” do nó không phải là một trạng thái nằm trong không gian trạng thái hệ thống).

P được xác định thông qua :

∈ ( )

Công đoạn này đơn giản nhưng đòi hỏi nhiều tài nguyên. Phương pháp tiếp cận song song được trình bày trong [7, 12] là một giải pháp hữu ích đối với các hệ thống phức tạp, có số trạng thái lớn (tương ứng số phần tử của Q lớn).

Từ xác suất p, các thông số hiệu năng định lượng sẽ được tính theo các công thức sau:

− Số lượng token trung bình tại vị trí pi là n hữu hạn (n=1,…,k):

∑( [ ( )])

− Thông lượng ở một chuyển tiếp:

3-3

38

∑ ( )

∈ ( )

− Hiệu suất sử dụng tài nguyên:

∑ ( )

Trong đó:

m0: Hình trạng ban đầu

R(M0): Tập hình trạng của SPN. #P: Số lượng token tại place P.

3.7. Kết luận chƣơng 3.

Trong chương này nói về tính đặc thù khi đánh giá hiệu năng sử dụng mạng Petri Nets. Đưa ra các đặc tính của mạng PN đem lại câu trả lời về các tính chất, thuộc tính của hệ thống, các bước mô phỏng hệ thống, xây dựng cây trạng thái phục vụ công tác đánh giá hiệu năng. Dựa trên đó phân tích được đặc tính hành vi đưa ra kết quả hoạt động của một hệ thống.

3-5

39

CHƢƠNG 4. ÁP DỤNG VÀ THỬ NGHIỆM ĐÁNH GIÁ HIỆU NĂNG HỆ THỐNG SHARE MEMORY

4.1. Giới thiệu hệ thống Share Memory

4.1.1. Chức năng chính của hệ thống Share Memory

Bài toán: Xây dựng hệ thống đáp ứng được xử lý song song được n công việc. Yêu cầu đặt ra là 2 Process được định nghĩ từ trước. Được sử dụng chung trên bộ nhớ chia sẻ. Đáp ứng được thời gian theo yêu cầu. Từ đó đưa ra mức độ sử dụng, xác suất một tiến trình phải đợi truy cập vào bộ nhớ.

Hệ thống được xây dựng gồm: + Process: mô tả quá trình công việc

+ Bộ nhớ chia sẻ: thể hiện trạng thái của bộ nhớ đáp ứng được truy cập

Share Memory giải quyết bài toán nhiều xử lý có thể được đồng thời truy cập và bộ nhớ thực hiện công việc. Hệ thống là phương tiện hiệu quả của việc chuyển dữ liệu giữa các chương trình. Tùy thuộc vào hoàn cảnh, chương trình có thể chạy trên một bộ xử lý đơn hoặc nhiều bộ xử lý riêng biệt.

40

4.1.2. Mô hình UML State Machine thành SPN.

Hình 4.2. Mô hình UML State Machine sang SPN của Process 1

41

Hình 4.4. Mô hình SPN của hệ thống Share Memory

Hệ thống được chia thành 3 phần : Processor1, Sharememory, Processor 2. Trong đó các processor có thành phần giống nhau.

Ban đầu Processor 1 có yêu cầu truy cập bộ nhớ, request_p1 được gửi đi, yêu cầu được lưu tại vùng đệm wait_p1. Khi đến acquire_p1 tiếp thu yêu cầu và sẽ có 2

trường hợp xảy ra share_memory_busy yêu cầu được lưu lại chờ đợi. Ngược lại, share_memory_Idle ở trạng thái rỗi tiến trình được chuyển sang trạm kế tiếp truy

cập vào bộ nhớ thực hiện công việc trả lời lại Processor và giải phóng bộ nhớ tại

free_p1 trả lại trạng thái share_memory_idle phục vụ tiến trình tiếp theo.

Processor 2 cơ bản hoạt động giống Processor 1.

4.2. Thực nghiệm áp dụng đánh giá hiệu năng

4.2.1. Các bước tiến hành Yêu cầu đánh giá: Yêu cầu đánh giá:

Hệ thống share memory

Đánh giá hiệu năng ứng dụng của hệ thống share memory, sử dụng công cụ TimeNet nhằm xác định:

- Mức độ sử dụng bộ nhớ - Thông lượng

- Thời gian chờ truy cập bộ nhớ - Mức độ đáp ứng của bộ nhớ chia sẻ

42

Công cụ được cài đặt và thực hiện đánh giá trên môi trường hệ thống như sau:

+ Trình khách: Máy tính Dell N5010, CPU Intel Core i5 M480 2.67GHz,

RAM 8.0GB, Windows 7 Ultimate 64 bit

+ Công cụ: TimeNet được phát triển bởi nhóm tác giả tại Đại học Berlin. Phiên bản sử dụng cho Solaris là 5.9 và Linux là 3. Phiên bản cho Windows là 4.3. Công cụ được tải miễn phí tại https://www.tu-ilmenau.de

Thực thi đánh giá hệ thống khi vừa được khởi động, để giảm tối thiểu các ứng dụng cùng chạy đồng thời có thể làm nhiễu hoặc ảnh hưởng đến kết quả đánh giá.

4.2.2. Kết quả và đánh giá

Kịch bản 1: số lượng đơn vị xử lý ở hai processor là 1

Lần 1:

- Thời gian tổng cả quá trình xử lý là: 20ms - Thời gian xử lý yêu cầu truy cập bộ nhớ: 5ms

43

 Mức độ sử dụng bộ nhớ của 2 processor là 76,92%, thời gian chờ đợi truy cập bộ nhớ là 59,17ms, mức độ sử dụng của bộ nhớ dụng bộ nhớ chia sẻ là 38,46%, throughput là 3,85B/giây.

- Lần 2:

- Thời gian quá trình xử lý 1 là: 50ms

- Thời gian quá trình xử lý 2: là 25ms

- Thời gian xử lý yêu cầu truy cập vào bộ nhớ là: 5ms

 Mức độ sử dụng bộ nhớ của processor 1 là 89,55%, thời gian processor 1 chờ đợi truy cập bộ nhớ là 66,83ms, throughput 1 là 1,79B/giây. Mức độ sử dụng bộ nhớ của processor 2 là 82,08%, thời gian processor 2 chờ đợi truy cập bộ nhớ là 30,63ms, throughput 2 là 3,28B/giây, mức độ sử dụng của bộ nhớ dụng bộ nhớ chia sẻ là 25,37%

44

- Lần 3:

- Thời gian quá trình xử lý 1 là: 50ms

- Thời gian quá trình xử lý 2: là 25ms

- Thời gian xử lý 1 yêu cầu truy cập vào bộ nhớ là: 50ms - Thời gian xử lý 1 yêu cầu truy cập vào bộ nhớ là: 5ms

 Mức độ sử dụng bộ nhớ của processor 1 là 49,49%, thời gian processor 1 chờ đợi truy cập bộ nhớ là 25,12ms, throughput 1 là 0,98B/giây. Mức độ sử dụng bộ nhớ của processor 2 là 55,83%, thời gian processor 2 chờ đợi truy cập bộ nhớ là 460,58ms, throughput 2 là 2,22B/giây, mức độ sử dụng của bộ nhớ dụng bộ nhớ chia sẻ là 60,65%

Kết luận:

Sau 3 lần đánh giá theo kịch bản một có một đơn vị xử lý ta nhận thấy bộ

Một phần của tài liệu Phương pháp đánh giá hiệu năng hệ thống sử dụng umlstate machine và stochastic petri nets (Trang 39)