Phân tích khả năng lập lịch của hệ thời gian thực sử dụng biểu đồ xấp xỉ

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích xấp xỉ khả năng lập lịch của hệ thời gian thực trong trường hợp độ ưu tiên cố định với kỳ hạn không ràng buộc và độ trễ phát hành (Trang 35 - 40)

CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

3.3. Phân tích khả năng lập lịch của hệ thời gian thực sử dụng biểu đồ xấp xỉ

3.3.1. Thuật toán: Approx (𝝉, 𝒊, 𝒌)

Một nhiệm vụ thời gian thực τ𝑖 có khả năng lập lịch khi và chỉ khi nó hoàn thành trong kỳ hạn và khoảng thời gian bận rộn mức 𝑖 đã kết thúc. Tuy nhiên, với khoảng thời gian nguyên tố cuối cùng trong 𝑆 𝑖 là 𝑡𝑚𝑎𝑥, ∞ (với 𝑡𝑚𝑎𝑥 = max𝑗 <𝑖 𝑘 − 1 𝑇𝑗 − 𝐽𝑗 ), không cần thiết để xác minh khoảng thời gian bận rộn mức i đã kết thúc hay chưa. Mặt khác, 𝐼𝑖(𝑡) cũng không thể áp dụng cho trường hợp 𝑡 = ∞. Do đó, với các tác vụ hoàn thành trước hoặc ở thời điểm 𝑡𝑚𝑎𝑥 (nghĩa là hoàn thành trong các khoảng thời gian nguyên tố của 𝑆 𝑖 mà không phải là khoảng cuối cùng), ngoài việc kiểm tra xem nhiệm vụ có hoàn thành trong kỳ hạn hay không, chúng ta cần xác định khoảng bận rộn đã kết thúc hay chƣa. Với các tác vụ hoàn thành sau thời điểm 𝑡𝑚𝑎𝑥

(nghĩa là hoàn thành trong khoảng thời gian nguyên tố cuối cùng của 𝑆 𝑖) thì ta chỉ cần kiểm tra các tác vụ có hoàn thành trong kỳ hạn hay không. Trong giai đoạn sau này, với mọi 𝑗 < 𝑖, hàm 𝑅𝐵𝐹 (τ𝑗, 𝑡) là hàm tuyến tính.

Input: τ = C[n], T[n], D[n], J[n]: các mảng số nguyên /* Các tham số của hệ */

i: integer /* Chỉ số của nhiệm vụ cần phân tích */

k: integer /* Số bước chính xác cần xét */

Output: f: boolean /* Xác định nhiệm vụ lập lịch được hay không */

Gọi last_active: integer /* Chỉ số của tác vụ cuối cùng hoàn thành trong mỗi khoảng thời gian nguyên tố của 𝑆𝑖 */

Xây dựng tập 𝑆 𝑖 theo định nghĩa 6 /* Tập các điểm lập lịch cần xét */

last_active = 0; f = true;

Foreach 𝑡𝑎 ∈ 𝑆 𝑖 − 0 − {}

If 𝐼𝑖 𝑡𝑎 > 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 then /* Tồn tại 𝜏𝑖,𝑙 hoàn thành trong (𝑡𝑎−1, 𝑡𝑎] */

𝑚𝑖𝑛 = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 𝑚𝑎𝑥 = 𝐼𝑖(𝑡𝑎)

/*Kiểm tra tác vụ đầu tiên hoàn thành trong khoảng có lập lịch được không*/

Gọi ta-1 là điểm liền kề trước ta trong 𝑆𝑖;

If (𝑑𝑖,𝑚𝑖𝑛 ≤ 𝑡𝑎−1 𝑜𝑟 𝑊𝑖,𝑚𝑖𝑛 𝑑𝑖,𝑚𝑖𝑛 > 𝑑𝑖,𝑚𝑖𝑛) then 𝑓 = 𝑓𝑎𝑙𝑠𝑒;

Return (f) End if

/* Kiểm tra khoảng bận rộn đã kết thúc hay chưa */

If 𝑊𝑖,𝑚𝑎𝑥 𝑎𝑖,𝑚𝑎𝑥 +1 ≤ 𝑎𝑖,𝑚𝑎𝑥 +1 𝑜𝑟 (𝑎𝑖,𝑚𝑎𝑥 +1 ≥ 𝑡𝑎) then Return (f)

End if

𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 = 𝑚𝑎𝑥 End if

End foreach

ℎ = last_active + 1;

If 𝑑𝑖,ℎ ≤ 𝑡𝑚𝑎𝑥 𝑜𝑟 𝑊𝑖,ℎ 𝑑𝑖,ℎ > 𝑑𝑖,ℎ then 𝑓 = 𝑓𝑎𝑙𝑠𝑒;

Return (𝑓)

Thuật toán nhận đầu vào là các tham số của hệ 𝜏 và chỉ số 𝑖 của nhiệm vụ cần phân tích. Từ đó, ta xây dựng đƣợc tập các điểm lập lịch 𝑆 𝑖 theo định nghĩa 6. Tại mỗi điểm 𝑡𝑎 ∈ 𝑆 𝑖− 0 − , trước tiên ta xét xem có tác vụ nào hoàn thành trong khoảng (𝑡𝑎−1, 𝑡𝑎] hay không. Nếu có, ta tiếp tục kiểm tra tác vụ đầu tiên hoàn thành trong khoảng này có đáp ứng kỳ hạn hay không. Cuối cùng, ta kiểm tra xem khoảng bận rộn mức 𝑖 đã kết thúc hay chƣa. Nếu tác vụ đầu tiên hoàn thành trong khoảng không đáp ứng đƣợc kỳ hạn hoặc khoảng thời gian bận rộn đã kết thúc thì ta dừng thuật toán và kết luận khả năng lập lịch của nhiệm vụ. Ngƣợc lại, ta tiếp tục với các khoảng thời gian nguyên tố tiếp theo.

Hình 3.4. Tác vụ đầu tiên hoàn thành trong khoảng thời gian nguyên tố.

Hình 3.4 cho thấy, tại mỗi khoảng (𝑡𝑎−1, 𝑡𝑎], để kiểm tra tác vụ đầu tiên hoàn thành trong khoảng này có lập lịch đƣợc hay không ta chỉ cần dựa vào kỳ hạn 𝑑𝑖,𝑚𝑖𝑛 của nó. Trường hợp 𝑑𝑖,𝑚𝑖𝑛 ≤ 𝑡𝑎−1, nghĩa là nếu trong khoảng (𝑡𝑎−1, 𝑡𝑎] tồn tại điểm cắt (điểm nhiệm vụ hoàn thành) thì điểm này sẽ nằm sau 𝑑𝑖,𝑚𝑖𝑛. Với trường hợp 𝑊𝑖,𝑚𝑖𝑛 𝑑𝑖,𝑚𝑖𝑛 > 𝑑𝑖,𝑚𝑖𝑛, dễ dàng nhận thấy điểm cắt cũng nằm sau 𝑑𝑖,𝑚𝑖𝑛. Do đó, trong cả 2 trường hợp, tác vụ đầu tiên đều không lập lịch được trong khoảng này.

Để kiểm tra khoảng bận rộn mức 𝑖 đã kết thúc trong khoảng (𝑡𝑎−1, 𝑡𝑎] hay chƣa, ta chỉ cần dựa vào thời điểm hoàn thành của tác vụ cuối cùng trong khoảng này.

Trường hợp 𝑟𝑖,𝑚𝑎𝑥 +1 ≥ 𝑡𝑎, nghĩa là nếu trong khoảng (𝑡𝑎−1, 𝑡𝑎] tồn tại điểm cắt thì

𝑡𝑎−1

𝑑𝑖,𝑚𝑖𝑛 𝑡𝑎

𝑦 = 𝑡

𝑊𝑖,𝑙 𝑡

𝐶𝑖

𝐶𝑖

điểm này sẽ nằm trước 𝑟𝑖,𝑚𝑎𝑥 +1. Với trường hợp 𝑊𝑖,𝑚𝑎𝑥 𝑟𝑖,𝑚𝑎𝑥 +1 ≤ 𝑟𝑖,𝑚𝑎𝑥 +1, dễ dàng nhận thấy điểm cắt cũng nằm trước 𝑟𝑖,𝑚𝑎𝑥 +1. Do đó, trong cả 2 trường hợp, điểm cắt nếu có đều nằm trước 𝑟𝑖,𝑚𝑎𝑥 +1, tức là khoảng bận rộn mức 𝑖 đã kết thúc.

Hình 3.5. Tác vụ cuối cùng hoàn thành trong khoảng thời gian nguyên tố.

Sau khi kiểm tra hết các khoảng thời gian nguyên tố (𝑡𝑎−1, 𝑡𝑎] trong 𝑆 𝑖 với 𝑡𝑎 ∈ 𝑆 𝑖 − 0 − , nếu khoảng bận rộn mức 𝑖 chƣa kết thúc, ta tiếp túc xét khoảng thời gian nguyên tố cuối cùng trong 𝑆 𝑖. Với last_active là chỉ số của tác vụ cuối cùng hoàn thành trong khoảng thời gian nguyên tố trước đó thì ℎ = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 chính là chỉ số của tác vụ đầu tiên hoàn thành trong khoảng thời gian này. Do đó, ta chỉ cần kiểm tra xem ℎ có hoàn thành kỳ hạn trong khoảng này hay không để xác định nhiệm vụ 𝜏𝑖 có lập lịch đƣợc không.

Thuật toán trả về giá trị 𝑓 xác định khả năng lập lịch của nhiệm vụ 𝜏𝑖. Nếu 𝑓 = 𝑡𝑟𝑢𝑒 thì kết luận 𝜏𝑖 có khả năng lập lịch, ngƣợc lại 𝜏𝑖 không có khả năng lập lịch.

Hệ nhiệm vụ 𝜏 gọi là có khả năng lập lịch khi mọi 𝜏𝑖 ∈ 𝜏 đều có khả năng lập lịch.

3.3.2. Ví dụ minh họa

Trong phần này, tôi sẽ đƣa ra 1 ví dụ áp dụng thuật toán ở trên để phân tích khả năng lập lịch của hệ thời gian thực có độ ƣu tiên cố định với kỳ hạn không ràng buộc và độ trễ phát hành. Các thông số của hệ đƣợc cho nhƣ trong bảng 3.1.

Bảng 3.1. Hệ với kỳ hạn không ràng buộc và độ trễ phát hành 𝐶𝑖 𝑇𝑖 𝐷𝑖 𝐽𝑖

𝑦 = 𝑡

𝑡𝑎−1 𝑎𝑖,𝑚𝑎𝑥 +1

𝑡𝑎

𝑊𝑖,𝑙 𝑡

𝐶𝑖

𝐶𝑖

𝜏1 3 10 10 2

𝜏2 15 100 50 5

𝜏3 15 200 200 5

𝜏4 40 400 450 50

𝜏5 30 1000 1200 50

Áp dụng thuật toán lập lịch DM, ta có thứ tự ƣu tiên của các nhiệm vụ lần lƣợt là 𝜏1, 𝜏2, 𝜏3, 𝜏4, 𝜏5. Chọn 𝜀 = 1 ⁄ 4 ⟹ 𝑘 = 3.

1. Xét nhiệm vụ 𝜏2:

Để xác định nhiệm vụ 𝜏2 có khả năng lập lịch hay không, ta thực hiện theo các bước sau:

- Ta có: 𝑆 2 = 𝑏𝑇𝑎 − 𝐽𝑎 | 𝑎 = 1; 𝑏 = 1,2 ∪ 0 ∪ ∞ ⟹ 𝑆 2 = 0, 8, 18, ∞ - Ban đầu, 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 = 0 và 𝑓 = 𝑡𝑟𝑢𝑒.

- Với 𝑡 = 8, ta có:

𝐼2 8 = 8 − 𝑗 <2𝑅𝐵𝐹(τ𝑗, 8)

15 = 8 − 3 15 = 0

⟹ Không có tác vụ nào của 𝜏2 hoàn thành trong khoảng thời gian nguyên tố (0, 8].

- Với 𝑡 = 18, ta có:

𝐼2 18 = 18 − 𝑗 <2𝑅𝐵𝐹(τ𝑗, 18)

15 = 18 − 6 15 = 0

⟹ Không có tác vụ nào của 𝜏2 hoàn thành trong khoảng thời gian nguyên tố (8, 18].

- Với khoảng nguyên tố cuối cùng trong 𝑆 2 là (18, ∞), ta có:

ℎ = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 = 1 chính là chỉ số của tác vụ đầu tiên hoàn thành trong giai đoạn này.

𝑑2,1 = 1 − 1 𝑇2+ 𝐷2 − 𝐽2 = 50 − 5 = 45

𝑊2,1 45 = 1 ∗ 𝐶2+ 𝑅𝐵𝐹 τ1, 45

= 15 + 45 + 2 + 10 − 1 ∗ 3 10

= 16.8 < 45 => 𝜏2 có khả năng lập lịch.

2. Xét nhiệm vụ 𝜏3:

- 𝑆 3 = 𝑏𝑇𝑎 − 𝐽𝑎 | 𝑎 = 1,2; 𝑏 = 1,2 ∪ 0 ∪ ∞ ⟹ 𝑆 3 = 0, 8, 18, 95, 195, ∞

- Ban đầu, 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 = 0 và 𝑓 = 𝑡𝑟𝑢𝑒.

- Với 𝑡 = 8, ta có:

𝐼3 8 = 8 − 𝑗 <3𝑅𝐵𝐹(τ𝑗, 8)

15 = 8 − 3 − 15

15

⟹ Không có tác vụ nào của τ3 hoàn thành trong khoảng thời gian nguyên tố (0, 8].

- Với 𝑡 = 18, ta có:

𝐼3 18 = 18 − 𝑗 <3𝑅𝐵𝐹(τ𝑗, 18)

15 = 18 − 6 − 15

15

⟹ Không có tác vụ nào của τ3 hoàn thành trong khoảng thời gian nguyên tố (8, 18].

- Với 𝑡 = 95, ta có:

𝐼3 95 = 95 − 𝑗 <3𝑅𝐵𝐹(τ𝑗, 95)

15 = 95 − 31,8 − 15

15 = 3 > 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒

⟹ Tồn tại tác vụ 𝜏3,𝑙 hoàn thành trong khoảng thời gian nguyên tố (18, 95].

⟹ 𝑚𝑖𝑛 = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 = 1 và 𝑚𝑎𝑥 = 3.

+ 𝑑3,1 = 1 − 1 𝑇3+ 𝐷3− 𝐽3 = 200 − 5 = 195 + 𝑊3,1 195 = 𝐶3 + 𝑅𝐵𝐹 τ1, 195 + 𝑅𝐵𝐹 τ2, 195 = 15 + 61,8 + 30 = 106,8

⟹ 𝑊3,1 195 < 195 + 𝑟3,4 = 4 − 1 𝑇3− 𝐽3 = 600 − 5 = 595

𝑊3,3 595 = 3 ∗ 𝐶3+ 𝑅𝐵𝐹 τ1, 595 + 𝑅𝐵𝐹 τ2, 595 = 45 + 181,8 + 104,85 = 331,65

⟹ 𝑊3,3 595 < 595

⟹ Khoảng bận rộn đã kết thúc. Do đó, 𝜏3 có khả năng lập lịch trong khoảng nguyên tố (18, 95]. Ta dừng thuật toán ở đây và kết luận 𝜏3có khả năng lập lịch.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phân tích xấp xỉ khả năng lập lịch của hệ thời gian thực trong trường hợp độ ưu tiên cố định với kỳ hạn không ràng buộc và độ trễ phát hành (Trang 35 - 40)

Tải bản đầy đủ (PDF)

(55 trang)