Subprofile Phân tích hiệu quả (Performance Analysis-PA) quan tâm tới việc thêm chi tiết vào mô hình để tính toán hiệu quả của mô hình. Cụ thể, profile này sử dụng các khái niệm và các thẻ được định nghĩa trong các profile thời gian, concurrency và tài nguyên để tạo các stereotype và các thẻ có ích cho việc thêm các đơn vị đo định lượng của hiệu quả, để từ đó thực hiện phân tích hiệu quả hệ thống
PA dựa vào thể hiện (ngược lại với dựa vào lớp hay kiểu). Các kịch bản, các dãy các bước với ít nhất bước bắt đầu và bước kết thúc rõ ràng và được liên kết với một tải (workload) hay một thời gian phản hồi. Các tải mở (Open workload) được định nghĩa bởi các dòng yêu cầu dịch vụ chúng có các mẫu xuất hiện đặc trưng bởi thống kê như sử dụng phân tán Gausian hay Poisson. Các tải đóng (closed workload) được xác định bởi một số lượng cố định người sử dụng hay client trong số các yêu cầu dịch vụ khách.
Các kịch bản như chúng ta đã thấy được tạo nên từ các bước kịch bản, chúng là các dãy hành động được liên kết với nhau bởi các operator như các nhánh rẽ, vòng lặp, fork, và joins. Các bước kịch bản có thể chính chúng tạo ra các bước nhỏ hơn. Các bước kịch bản có thể sử dụng các tài nguyên thông qua các yêu cầu tài nguyên và phần thú vị nhất mà PA phải làm là chia một tập hữu hạn tài nguyên như thế nào cho các client. Các tài nguyên được mô hình như những server.
Các đơn vị đo hiệu quả thường được mô hình theo những tài nguyên này, chẳng hạn như % sử dụng tài nguyên, hay thời gian phản hồi với một yêu câu tài nguyên của client. Với những định hướng chung như vậy, các đơn vị đo này có thể là trường hợp xấu nhất, trường hợp trung bình, trường hợp ước lượng hay trường hợp đo được thực tế.
PA thường được thực hiện bởi các mô hình hàng đợi hay qua các mô phỏng. Các mô hình hàng đợi giả định rằng các yêu cầu có thể đợi trong một hàng đợi FIFO cho tới khi hệ thống sẵn sàng thực thi chúng. Thời gian đợi là một hàm của tải với các tài nguyên cũng như thời gian cần cho hệ thống đáp ứng các yêu cầu khi mà nó được khởi động. Trong phân tích đơn giản, có thể chỉ cần yêu cầu tỷ lệ đến của các yêu cầu và thời gian phản hồi hay hệ số sử dụng hệ thống cần để phản hồi. Các phân tích chi tiết hơn có thể cần các phân bố của các xuất hiện yêu cầu. Phân tích mô phỏng thực thi hệ thống dưới dạng logic với các tải khác nhau. Một yêu cầu trong quá trình xử lý (in process) được biểu diễn bởi một token logic và khả năng của hệ thống là số tokens như vậy có thể trong quá trình xử lý ở một thời điểm. Do xuất hiện các cổ chai, bị khóa và hàng đợi nên có thể tính toán các thuộc tính xác suất của các phản hồi hệ thống.
Mô hình lĩnh vực của mô hình hóa hiệu quả được trình bày ở hình 5.18. Như đã đề cập ở trên, một kịch bản liên quan tới một tải, tải thì được đặc trưng bởi mọt thời gian phản hồi và một độ ưu tiên. Các kịch bản sử dụng các tài nguyên và được tạo nên từ các bước kịch bản. Các tài nguyên có thể là các tài nguyên bộ xử lý passive hay active. CÁc phần tử của mô hình lĩnh vực này là các lớp con của các phần tử trong các profile khác như được trình bày với các phần tử cơ sở đổ màu và các gói mà chúng được định nghãi trong đó trược trình bày với cặp “::”
Hình 5.18
Các khái niệm lĩnh vực này được sử dụng để xác định các stereotypes của các phần tử UML, và các thuộc tính khái niệm lĩnh vực được định nghĩa dưới dạng các thẻ trong profile PA. Bảng 5.13 tới 5.18 trình bày các stereotypes, các metalclass của UML được dùng, các thẻ liên quan và mô tả ngắn gọn.
Có một số kiểu đặc biệt được sử dụng trong các định nghĩa thẻ ở trên. Cụ thể, SchedulingEnumeration, PAperfType, và PAextOpValue. Kiểu SchedulingEnumeration định nghĩa các chính sách lập lịch khác nhau có thể được
• PreemptResume: Lập lịch đa nhiệm preemtive
• ProcSharing: Chia sẻ bộ xử lý hay lập lịch round-robin
• PrioProSharing: Lập lịch round-robin có sử dụng độ ưu tiên
• LIFO: last in first out.
Bảng 5.13: Các stereotype của PA subprofile
Stereotype Applies to (metaclasses) Tags Description
«PAclosedLoad» Action, ActionExecution, ActionState, SubactivityState, Stimulus, Message, Method, Operation, Reception PArespTime, PApriority, PApopulation, PAextDelay Một workload đóng «PAcontext» Collaboration, Collaboration InstanceSet, ActivityGraph Một bối cảnh phân tích hiệu quả.
«PAhost» Classifier, Node,
ClassifierRole, Instance, Partition PAutilization, PAschdPolicy, PArate, PActxtSwT, PAprioRange, PApreemptible, PAthroughput Một bộ máy t hực thi mà kịch bản được chạy trên đó.
«PAopenLoad» Action, ActionExecution, ActionState, SubactivityState, Stimulus, Message, Method, Operation, Reception PArespTime [0..*,] PApriority, PAoccurrence Một workload mở
«PAresource» Classifier, Node,
ClassifierRole, Instance, Partition PAutilization, PAschdPolicy, PAschdParam, PAcapacity, PAaxTime, PArespTime, Một tài nguyên bị động (passive resource)
Stereotype Applies to (metaclasses) Tags Description
PAwaitTime, PAthroughput «PAstep» Messasge, ActionState,
Stimulus, SubactivityState
PAdemand, PArespTime, PAprob, PArep, PAdelay, PAextOp, PAinterval
Một bước trong kịch bản.
Bảng 5.14
Tag Type Multiplicity Description
PArespTime PAperfValue [0..*] Thời gian cần thiết để hoàn thành kịch bản kể từ thời điểm bắt đầu kịch bản đó.
PApriority Integer [0..1] Độ ưu tiên của workload
PApopulation Integer [0..1] Kích thước của workload (i.e., Số lượng người dùng hệ thống)
PAextDelay PAperfValue [0..1] Trễ giữa sự hoàn thành của một phản hồi và sự bắt đầu của phản hồi tiếp theo ứng với mỗi thành viên của nhóm người dùng hệ thống.
Bảng 5.15
Tag Type Multiplicity Description
PAutilization Real [0..*] Số lượng người sử dụng song song trung bình.
PSschdPolicy Scheduling Enumeration
[0..1] Chính sách lập lịch các tải của host
PArate Real [0..1] Tỷ lệ xử lý của thực thi kịch bản. PActxtSwT PAperfValue [0..1] Thời gian chuyển đổi ngữ cảnh PAprioRange Integer range [0..1] Dải hợp lệ của các độ ưu tiên của các
Tag Type Multiplicity Description
đơn vị thời gian.
Bảng 5.16
Tag Type Multiplicity Description
PArespTime PAperfValue [0..*] Thời gian cần để hoàn thành một kịch bản từ thời điểm bắt đầu kịch bản đó
PApriority Integer [0..1] Độ ưu tiên của tải. PAoccurrence RTarrivalPattern [0..1] Mẫu đến của tải.
Bảng 5.17
Tag Type Multiplicity Description
PAutilization Real [0..*] Số lượng trung bình người sử dụng song song.
PAschdPolicy Scheduling Enumeration
[0..1] Chính sách mà host sử dụng để lập lịch cho các tải.
PAcapacity Integer [0..1] Số lượng tải có thể được xử lý đồng thời, nghĩa là tương đương với số lượng người sử dụng đồng thời của hệ thống.
PAaxTime PAperfValue [0..1] Thời gian truy cập tài nguyên, nghĩa là thời gian cần để có được hay giải phóng tài nguyên.
PArespTime PAperfValue [0..1] Thời gian cần để tài nguyên hoàn thành phản hồi của nó.
PAwaitTime PAperfValue [0..1] Thời gian giữa thời điểm tài nguyên được yêu cầu và thời điểm nó được cấp phát.
Tag Type Multiplicity Description
PAthroughput Real [0..1] Số lượng tải có thể được hoàn thành trong một đơn vị thời gian.
Table 5-18. PAstep Tagged Values
Tag Type Multiplicity Description
PAdemand PAperfValue [0..*] Tổng số nhu cầu của một bước trong kịch bản khi nó sở hữu tài nguyên
PArespTime PAperfValue [0..*] Tổng lượng thời gian thực thi một bước, gồm cả thời gian để truy xuất và giải phóng tài nguyên.
PAprob Real [0..1] Trong các mô hình xác suất, thẻ này cho biết xác suất bước này được thực thi (so với các bước khác).
PArep Integer [0..1] Số lượng lần bước này được lặp lại.
PAdelay PAperfValue [0..*] Trễ giữa thực thi của các bước.
PAextOp PAextOpValue [0..*] Tập các thao tác của tài nguyên được sử dụng trong quá trình thực thi một bước
PAinterval PAperfValue [0..*] Khoảng thời gian giữa những lần thực thi liên tiếp của một bước khi nó được lặp lại trong kịch bản.
• ‘assm’ (giả sử/giả định)
• ‘pred’ (dự đoán trước được)
• ‘msr’ (lượng hóa được)
Type-modifier có thể một trong các biểu thức sau:
• ‘mean’ <integer> cho kiểu tính trung bình
• ‘sigma’ <integer> cho kiểu tính phương sai
• ‘kth mom’ <integer> cho kth moment
• ‘max’ <real> cho kiểu tính max
• ‘percentile’ <real> cho kiểu giá trị phần trăm
• ‘dist’ cho kiểu hàm mật độ
Giá trị thời gian được định nghĩa bởi đặc tả của RTtimeValue như ở trên. Ví dụ: {PAdemand = ‘msr’, ‘mean’, (20, ‘ms’))}
{PAdelay = ‘req’, ‘max’, (500, ‘ns’))}
{PArespTime = ‘mean’, ‘sigma’, (100, ‘ms’))}
PAestOpValue là một xâu dùng để xác định một phép toán từ bên ngoài và hoặc một số lượng các lần lặp của phép toán hay là giá trị thời gian thực hiện. Nó có dạng:
“(“ <string> "," <integer> | <time-value> ")"
Trong đó, xâu cho biết tên của phép toán từ bên ngoài và integer cho biết số lượng lần phép toán được gọi. Giá trị thời gian (time-value) có kiểu PAperValue và định rõ thuộc tính thực hiện của phép toán từ bên ngoài.
Các hình từ 5.19 tới 5.21 minh họa một ví dụ về mô hình có thể phân tích hiệu quả hoạt động. Hình 5.19 cho biết mô hình cấu trúc đối tượng của hệ thóng được phân tích – một hệ thống điều khiển máy gồm có một cảm biến Doppler để phát hiện tốc độ của tàu, một đối tượng lưu tốc độ hiện tại và một bộ điều khiển máy sử dụng thông tin thu được để điều khiển tốc độ cảu máy – thêm vào đó là hai khung nhìn cho người điều khiển tàu, một khung nhìn dạng text để thể hiện tốc độ hiện tại (sau khi được làm mịn) và một biểu đồ tần số cho biết lịch sử gần đây về tốc độ.
Hình 5.20 trình bày những đối tượng này được triển khai ra sao. Trong trường hợp này, có 4 môi trường xử lý độc lập. Một module thu thập có tốc độ thấp đọc ánh sáng phát ra sau khi nó được phản chiếu ở đường ray và tính toán tốc độ hiện thời dựa vào ánh sáng này, dựa vào góc và thông tin về vật phản chiếu (đường ray). Tiến trình này chạy ở tốc độ tương đối 10. Vì sử dụng bus 1Mbit nên có thể xem tốc độ tương đối này là 10MHz. Chú ý ràng buộc “$Util” được gắn với bộ xử lý – đây chính là vị trí mà phân tích hiệu quả sẽ chèn vào hệ số tính toán được khi mà nó thực hiện phân tích toán học.
Máy tính điều khiển thực thi đối tượng TrainSpeed và các dữ liệu liên quan. Thực thi với tốc độ như là module lấy dữ liệu. Các đối tượng Engine Controller và Engine thực thi trên máy tính Engine, cũng chạy với tốc độ 10MHz. Máy tính cuối cùng thì nhanh hơn, có tốc độ bus hơn 2000 lần, 2Ghz. Nó thực hi phần mềm hiển thị cho biết tốc độ hiện tii thông qua đối tượng SpeedView và biểu đồ tần số thông qua đối tượng SpeedHistory.
Cuối cùng, hình 5.21 cho ví dụ về thực thi dưới dạng biểu đồ trình tự và các thẻ cùng giá trị đính kèm.