Với các chính sách trình bày trong phần này, mỗi tác vụ được đặc trưng với một thời hạn để định nghĩa độ khẩn cấp và một giá trị định nghĩa độ quan trọng của việc thực thi tác vụ tương quan với các tác vụ khác trong ứng dụng thời gian thực. Độ quan trọng của tác vụ không liên quan tới thời hạn của nó, vì vậy hai tác vụ khác nhau có cùng thời hạn có thể có độ quan trọng khác nhau.
Các thời điểm đến của các tác vụ không có chu kỳ trong hệ thống để phản ứng lại với một ngoại lệ có thể làm cho bộ xử lý bị quá tải. Các chính sách đảm bảo động, xem chương 2, xử lý các tình huống quá tải bằng cách từ chối những tác vụ không có chu kỳ mới xuất hiện nếu chúng k được đảm bảo kịp thời hạn. Sự từ chối này giả sử rằng hệ thống thời gian thực là một hệ thống phân tán trong đó chính xách lập lịch phân tán cố gắng gán tác vụ bị từ chối cho một bộ xử lý không quá tải (Ramamritham và Stankovic, 1984). Tuy nhiên, lập lịch thời gian thực phân tán đòi hỏi chạy trước thời gian nhiều, vì thế mà các chính sách khác đã được định nghĩa để sử dụng các hệ thống tập trung. Những chính sách này kết hợp một sự đảm bảo động đê dự đoán một tình huốn quá tải và một chính sách từ chối dựa vào giá trị cho biết độ quan trọng để xử lý tính huống quá tải dự đoán được.
Vào thời điểm t bất kỳ có xuất hiện một tác vụ có chu kỳ hay không có chu kỳ, một sự đảm bảo động được chạy để đảm bảo rằng tác vụ mới xuất hiện có thể thực thi mà không làm quá tải bộ xử lý. Sự đảm bảo động tính toán LP (t), độ trễ (laxity) hệ thống ở thời điểm t. Độ trễ hệ thống là một sự tính toán phân số thời gian tối đa mà bộ xử lý ở trạng thái không làm việc khi toàn bộ các tác vụ vẫn thỏa mãn thời hạn của chúng. Gọi τ={τI (t, Ci(t), di}, {i<j ⇔ di < dj} là tập tác vụ sẵn sàng để thực thi tại thời điểm t, được sắp xếp theo thứ tự tăng của thời hạn. Độ trễ điều kiện của tác vụ τI được định nghĩa như sau:
Độ trễ hệ thống được cho bởi:
Một tình huống quá tải được phát hiện ngay khi độ trễ hệ thống LP(t) nhỏ hơn 0. Những tác vụ chậm chễ là những tác vụ có độ trễ điều kiện âm. Giá trị quá tải bằng giá trị tuyệt đối của độ trễ hệ thống |LP(t)|. Sự quá tải được giải quyết nhờ chính sách từ chối dựa vào việc loại bỏ những tác vụ có thời hạn nhỏ hơn hay bằng tác vụ chậm chễ và có giá trị độ quan trọng nhỏ nhất. Trong số các chính sách dựa và những nguyên tắc này, hai lớp chính sách được thảo luận ở dưới: chính sách đa chế độ và chính sách tính toán giá trị độ quan trọng.
Chính sách đa chế độ
Mục tiêu của chính sách này là ủng hộ việc thực thi các tác vụ có giá trị độ quan trọng cao nhất (có nghĩa là các tác vụ được ủng hộ là những tác vụ gặp ít lỗi thời gian hơn và bị bỏ qua ít hơn) (Delacroix 1994, 1996, Delacroix và Kaiser 1998). Hình 4.6 minh họa kết quả của chính sách này (Delacroix 1994). Nhiều thử nghiệm đã được tiến hành sử dụng tập ba tác vụ có chu kỳ và bốn tác vụ không có chu kỳ có hệ số sử dụng lớn. Tập tác vụ ban đầu được lập lịch với thuật toán EDF mà không sử dụng chính sách kiểm soát quá tải. Như trong hình 4.6, số yêu cầu chậm và số yêu cầu bị hủy được biểu diễn cho mỗi tác vụ, được liệt kê theo giá trị độ quan trọng giảm dần, và tương ứng với mỗi lịch biểu. Như bạn có thể thấy từ hình 4.6, thực thi tác vụ không có chu kỳ τ1 và của tác vụ có chu kỳ τ3 rõ dàng được ủng hộ khi sử dụng một chính sách kiểm soát quá tải. Tuy nhiên, tất cả các tác vụ có tỷ lệ lỡ thời hạn cao khi chúng chỉ được lập lịch với thuật toán EDF.
Hình 4.6: kết quả hoạt động khi sử dụng chính sách kiểm soát quá tải. Các tác vụ được biểu diễn theo chiều giảm độ ưu tiên từ τ, τ, …., τ.
Mỗi tác vụ cũng được đặc trưng bởi hai thuộc tính gọi chung là các thuộc tính thực thi (excution properties) cho biết một tác vụ có thể lỡ một lần thực thi ra sao. Thuộc tính đầu tiên được gọi là thuộc tính bỏ dở (abortion property): một tác vụ có thể bị bỏ dở thực thi nếu nó có thể bị dừng lại mà không thể quay lại tiếp tục thực thi tại lệnh mà nó bị dừng lại vào thời điểm sau đó. Thuộc tính thứ hai là thuộc tính hoãn (adjournment property): Một tác vụ có thể bị hoãn nếu yêu cầu của nó có thể bị hủy bỏ hoàn toàn, có nghĩa là tác vụ không thực thi và bỏ qua sự xuất hiện của nó. Khi một tình trạng quá tải được phát hiện, thực thi của tác vụ bị giảm theo thứ tự tăng nghiêm ngặt của giá trị độ quan trọng. Như vậy, tác vụ với giá trị độ quan trọng cao nhất sẵ sàng được thực thi khi quá tải xảy ra được ủng hộ. Một sự mở rộng gần đây của ý tưởng này (Delacroix và Kaiser 1998) mô tả một mô hình được cải tiến của tác vụ trong đó tác vụ được tạo nên từ một số chế độ thực thi: chế độ bình thường là chế độ được thực thi khi tác vụ bắt đầu chạy. Chế độ sống sót được thực thi khi một tác vụ bị hủy bởi tình huống quá tải hay khi nó lỡ thời hạn.
Thời gian tính toán của chế độ sống sót nên ngắn vì nó chỉ chứa những hành động cụ thể cho phép hủy tác tác vụ sao cho ứng dụng vẫn ở trạng thái an toàn. Những hành động cụ thể như vậy có thể gồm các tài nguyên chia sẻ, tiết kiệm một phần tính toán hay hủy bỏ các tác vụ phụ thuộc. Hình 4.7 trình bày mô hình tác vụ này. Một tác vụ được tạo ra có tối đa bốn chế độ: chế độ bình thường, hai chế độ sống sót được thực thi khi chế độ bình thường bị hoãn hay bị bỏ dở và một chế độ sống sót khác được thực thi khi tác vụ lỡ thời hạn. Mỗi chế độ được đặc trưng bởi một thời gian tính toán trường hợp xấu nhất, một giá trị độ quan trọng và hai thuộc tính thực thi cho biết một chế độ có thể bị hủy như thế nào bởi một kỹ thuật xử lý quá tải.
Hình 4.7 Ví dụ của một tác vụ có nhiều chế độ
Chính sách tính toán giá trị độ quan trọng
Với chính sách này, giá trị độ quan trọng được gán cho một tác vụ tùy theo thời điểm tác vụ được hoàn thành: như vậy, một tác vụ cứng tham gia vào một giá trị nếu nó hoàn thành trước thời hạn (Baruah 1991, Clark 1990, Jensen 1985, Koren và Shasha 1992). Hiệu quả của chính sách này được tính nhờ việc tích lũy giá trị của các tác vụ hoàn thành trước thời hạn. Như vậy, khi một tình huống quá tải phải được xử lý chính sách từ chối sẽ nhằm tối đa giá trị tích lũ này, β, hơn là ủng hộ việc thực thi các tác vụ sẵn sàng quan trọng nhất. Một số thuật toán đã được đề
xuất dựa trên chính sách này. Chúng khác nhau về cách chính sách từ chối bỏ các tác vụ để đạt được giá trị tính lũy tối đa β. Hệ số cạnh tranh là một tham số cho biết hiệu quả trong trường hợp xấu nhất của những thuật toán này và cho phép so sánh chúng. Vậy, một thuật toán có một hệ số canh tranh ϕ nếu và chỉ nếu nó có thể đảm bảo một giá trị tích lũy β lớn hơn hay bằng ϕβ* trong đó β* là giá trị tích lũy có được từ một bộ lập lịch tường minh tối ưu. Một bộ lập lịch tường minh llaf một trừu tượng lý thuyết, được sử dụng như một mô hình tham chiếu, nó có kiến thức biết trước (priori knowledge) về các thời điểm đến của các tác vụ.
Thuật toán Dover (Koren và Shasha, 1992) có hệ số cạnh tranh tốt nhất trong số các thuật toán online theo nguyên tắc này. Khi phát hiện một tình huống quá tải, giá trị độ quan trọng Impz của tác vụ đến được so sánh với tổng giá trị Imppriv của toàn bộ các tác vụ đặc quyền (nghĩa là toàn bộ các tác vụ bị trước quyền). Nếu như điều kiện
Thỏa mãn thì một tác vụ mới được thực thi; ngược lại nó bị từ chối. Impcurr là giá trị độ quan trọng của tác vụ đang thực thi hiện thời và k là tỷ lệ của giá trị cao nhất và giá trị thấp nhất.
Trong thuật toán RED (Robust Earliest Deadline) (tác giả Buttazzo và Stankovic 1993), mỗi tác vụ được đặc trưng bởi một thời hạn tương đối Dr và chấp nhận thời hạn M định nghĩa một thời hạn thứ cấp dr = r + Dr + M, trong đó r là thời điểm đến của tác vụ. Các tác vụ được lập lịch dựa trên thời hạn sơ cấp nhưng được chấp nhận dựa vào thời hạn thứ cấp. Một tình huốn quá tải được phát hiện khi các tác vụ lỡ thời hạn thứ cấp của chúng. Vậy chính sách từ chối bỏ qua tác vụ có giá trị độ quan trọng thấp nhất.
4.3.2 Ví dụ
• Và bốn tác vụ không có chu kỳ
- τ3 (r = 4, C = 0.2, d = 5, Imp = 4) - τ4 (r = 5.5, C = 1, d = 10, Imp = 5) - τ5 (r = 6, C = 1, d = 8, Imp = 2) - τ6 (r = 7, C = 1.5, d = 9.5, Imp = 6)
Tập tác vụ này được lập lịch theo thuật toán EDF. Một chính sách kiểm soát quá tải được sử dụng. Chính sách từ chối bỏ qua các tác vụ có các giá trị độ quan trọng thấp. Lịch biểu của tập tác vụ được trình bày trong chu kỳ chính của hai tác vụ có chu kỳ, nghĩa là trong khoảng thời gian [0, 10].
• Tại thời điểm t = 0,tác vụ τ1 và τ2 đi vào hệ thống. Gọi A(t) là tập tác vụ sẵn sàng tại thời điểm t, sắp xếp tăng đần theo thời hạn. Thuật toán phát hiện quá tải tính toán độ trễ điền kiện của mỗi tác vụ trong tập A(t).
A(0) = {τ2 (C(0) = 3, d = 4), τ1 (C(0) – 1, d = 7)} LC2(t) = 4-3-0 = 1
LC1(t) = 7-1-3-0 = 3.
Không có sự quá tải vì tất cả các trễ điều kiện đều lớn hơn 0.
• Tại thời điểm t = 4. Tác vụ τ3 đi vào hệ thống. A(4) = {τ3 (C(4) = 0.2, d = 5)}
LC3 (t) = 5 – 4 – 0.2 = 0.8
Độ trễ điều kiện của τ3 lớn hơn 0; vậy nên không có quá tải.
• Tại thời điểm t = 5, tác vụ τ2 đi vào hệ thống. A(5) = {τ2 (C(5)=3, d=9)}
LC2(t) = 9-5-3-1 = 1.
Độ trễ điều kiện của tác vụ τ2 lớn hơn 0, vậy nên không có quá tải.
• Vào thời điểm t = 5.5, tác vụ τ4 vào hệ thống.
LC2(t) = 9 – 5.5 – 2.5 = 1 LC4(t) = 10 – 5.5 – 1 – 2.5 = 1
Không có quá tải vì không có độ trễ điều kiện nhỏ hơn không.
• Vào thời điểm t = 6, tác vụ τ5 đi vào hệ thống.
A(6) = { τ5 (C(6) = 1, d = 8), τ2(C(6) = 2, d = 9), τ4 (C(6) = 1, d = 10)} LC5(t) 8 – 6 – 1 = 1
LC2(t) = 9 – 6 – 1 – 2 = 0 LC4(t) = 10 – 6 – 1 – 2 – 1 = 0
Không có quá tải vì tất cả các trễ điều kiện đều lớn 0.
• Thời điểm t = 7, tác vụ τ6 đi vào hệ thống
A(7) = {τ2 (C(7) = 2, d = 9), τ6 (C(7) = 1.5, d = 9.5), τ4 (C(7) = 1, d = 10)} LC2(t) = 9 – 7 – 2 = 0
LC6(t) = 9.5 – 7 – 2 – 1.5 = -1
Độ trễ điều kiện của tác vụ τ6 âm. Thế nên xuất hiện điều kiện quá tải được phát hiện. Tác vụ tễ τ6 và giá trị quá tải bằng một thời gian tính toán. Hình 4.8 trình diễn tình huống quá tải.
Để giải quyết tình huống quá tải, chính sách từ chối hủy thực thi các tác vụ mà thời hạn nhỏ hơn hay bằng thời hạn của tác vụ τ6 trong tập A(7). Những sự hủy bỏ này được tiến hành theo tự tự tăng nghiêm ngặt của giá trị độ quan trọng và ngừng khi lượng thời gian tính toán của các thực thi bị hủy lớn hơn hay bằng với giá trị quá tải. Như vậy, chính sách từ chối hủy bỏ tác vụ τ2 bằng với 2.
Hình 4.9 Lịch biểu thu được từ chính sách kiểm soát quá tải với các giá trị quan trọng.
Tiếp đó, các sự hủy bỏ bị dừng lại và thuật toán quá tải xác minh rằng tình huống quá tải sẵn sàng được giải quyết:
A(7) = {τ6 (C(7) = 1.5, d = 9.5), τ4 (C(7) = 1, d = 10) } LC6(t) = 9.5 – 7 – 1.5 = 1
LC4(t) = 0 – 7 – 1 – 1.5 = 0.5
Hình 4.9 trình bày lịch biểu thu được với chu kỳ chính của hai tác vụ có chu kỳ. Hình 4.10 trình bày lịch biểu, thu được từ chiến lược đảm bảo đầu tiên (xem phần 2.2.2) không dùng giá trị độ quan trọng.
Chương 5. Phân tích thiết kế hệ thống thời gian thực với UML Real Time Profile
Trong chương này, chúng ta sẽ nghiên cứu về một profile trong UML hỗ trợ việc phân tích thiết kế các hệ thống thời gian thực. Sinh viên cần có kiến thức trước về phân tích thiết kế hệ thống với UML. Chương này sẽ đi trực tiếp và những nội dung liên quan tới phân tích thiết kế hệ thống thời gian thực, sử dụng UML chứ không giới thiệu chi tiết các loại biểu đồ, các thuật ngữ cơ bản trong XML.
OMG (Nhóm quản lý đối tượng – Object Management Group) đã tạo ra một tập các chuẩn để thu thập tính đúng thời gian (timing), hiệu quả (performance) và khả năng lập lịch được (schedulability) của các hệ thống thời gian thực. Profile này không phát minh ra kỹ thuật mới nào nhưng nó chỉ mã hóa những gì mà người ta đã làm để thu thập được tính đúng thời ra và các đặc điểm liên quan. Profile sử dụng những stereotype, giá trị đính kèm (tagged value) và các ràng buộc với tên cụ thể. Lợi ích chính của nó là khả năng trao đổi tính đúng thời gian giữa những công cụ khác nhau như các công cụ mô hình hóa UML và các công cụ phân tích khả năng lập lịch được.
5.1 UML profiles
Một UML profile là một biến thể của UML được chuyên biệt hóa theo cách nào đó. UML profile được phép chứa những phiên bản riêng biệt (gọi là các stereotype) của các phần tử siêu mô hình (metamodel) được định nghĩa trong siêu mô hình UML, các giá trị người dùng định nghĩa (thuộc tính hay thẻ) được gắn vào những phần tử đó và những luật hình thành tốt (ràng buộc) được bổ sung. Một pofile không được phép phá vỡ những quy tắc ngữ nghĩa UML đã có dù nó được phép chuyên biệt hóa chúng. Một profile có thể cung cấp các biểu tượng đồ họa mới và các biểu đồ mới và những thư viện mô hình cho lĩnh vực cụ thể. Mục đích của profile là cung cấp UML theo cách tùy chỉnh đặc biệt cho một lĩnh vực công
và cho phép các công cụ trao đổi các mô hình sử dụng profile. Tuy nhiên nó cũng có nhược điểm là thiếu công cụ hỗ trợ, thiếu nhân viên giỏi, thiếu tài liệu tham khảo…
5.1.1 Các Stereotype
UML sử dụng stereotype với một số mục đích. Đầu tiên và phổ biến nhất là chỉ ra phần tử siêu mô hình nào đang được sử dụng để xác định phần tử mô hình trong một biểu đồ. Ví dụ, một lớp box trình bày những thao tác trong một giao điện, và stereotype interface chỉ ra rằng đây là một interface chứ không phải một class. Mục đích sử dụng chính thứ hai là chỉ ra một kiểu chuyên biệt của phần tử mô hình được định nghĩa trong một profile. Chú ý là bạn không được thêm những phần tử siêu mô hình mới vào một profile, chúng phải là các chuyên biệt hóa của các siêu lớp đã tồn tại.
Stereotype có thể được trình bày theo một trong hai cách. Một đoạn text được gắn vào siêu lớp được được mô tả, ví dụ như là một class, một quan hệ hay một nút hay biểu tượng mặc định cho siêu lớp được thay thế với một biểu tượng đặc biệt. Hình 5.1 trình bày cả 2 cách thể hiện được sử dụng. Một số stereotype được sử dụng trong hình này. Đầu tiên là stereotype <<active>> cho class. Một active class sở hữu gốc (root) của một luồng và cho biết cách xây dựng một mô hình song song (concurrency) của hệ thống nhờ UML. Các thể hiện “được chứa” nhờ những quan hệ hợp thành (như các thể hiện của Mqueue trong hình vẽ) chạy trong bối cảnh của luồng được sở hữu bởi thể hiện của active class hợp thành. Ký