Với một tập tác vụ có chu kỳ, gán các độ ưu tiên theo thuật toán đơn nguyên tỷ lệ (rate monotomic algorithm) có nghĩa là các tác vụ với khoảng thời gian ngắn (tần số yêu cầu cao hơn) sẽ có độ ưu tiên cao hơn.
Tính tối ưu của thuậ toán đơn nguyên tỷ lệ
Vì chúng ta không thể phân tích tất cả các mối quan hệ giữa các thời điểm giải phóng của tập tác vụ, chúng ta phải xác định sự kết hợp xấu nhất của các thời điểm giải phóng theo nghĩa khả năng lập lịch của tập tác vụ. Trường hợp này xảy ra khi tất cả các tác vụ được giải phóng đồng thời. Trong thực tế, trường hợp này tương úng với thời điểm quan trọng (critical instant), được định nghĩa là thời điểm mà việc giải phóng tác vụ sẽ tạo ra thời gian phản hồi lớn nhất cho tác vụ đó.
Vì thế, nếu một tập tác vụ là lập lịch được vào thời điểm quan trọng của mỗi tác vụ trong tập thì tập tạc vụ đó là lập lịch được với các thời điểm đến (hay thời điểm giải phóng)bất kỳ. Điều này được minh hoạ ở hình 2.1. Chúng ta xét hai tác vụ có chu kỳ với các tham số sau τ1(r1, 1, 4, 4) và τ2(0, 10, 14, 14). Theo như thuật toán RM thì tác vụ τ1 có độ ưu tiên cao hơn. Tác vụ τ2 thường bị trễ bởi sự chen vào của các thể hiện liên tiếp của tác vụ τ1 với độ ưu tiên cao hơn. Khi phân tích thời gian phản hồi của tác vụ τ2 như một hàm của thời điểm giải phóng r1 của tác vụ
τ1 ta thấy nó tăng khi các thời điểm giải phóng của các tác vụ càng gần nhau:
• Nếu r1 = 4 thì thời gian phản hồi của τ2 là 12;
• Nếu r1 = 2 thì thời gian phản hồi của τ2 là 13 (cũng có cùng thời gian phản hồi nếu r1 = 3 và r1 = 1);
Hình 2.1 Phân tích thời gian phản hồi của tác vụ τ2 (0, 10, 14, 14) như một hàm của thời điểm giải phóng tác vụ τ1 (r1, 1, 4, 4)
Trong bối cảnh này, chúng ta muốn cải thiện tính tối ưu của thuật toán gán độ ưu tiên RM. Đầu tiên chúng ta minh hoạ thuộc tính độ tối ưu cho hai tác vụ và sau đó sinh ra kết quả này cho một tập tuỳ ý n tác vụ.
Chúng ta hãy xét trường hợp lập lịch hai tác vụ τ1 và τ2 với T1≤ T2 và các thời hạn tương đối bằng với khoảng thời gian ( D1 = T1, D2 = T2). Nếu như các độ ưu tiên không được gán theo thuật toán RM thì độ ưu tiên của tác vụ τ2 có thể cao hơn độ ưu tiên của tác vụ τ1. Chúng ta xét trường hợp mà tác vụ τ2 có độ ưu tiên cao hơn độ ưu tiên của τ1. Vào thời điểm T1 tác vụ τ1 phải hoàn thành. Vì độ ưu tiên của nó thấp hơn, tác vụ τ2 đã được hoàn thành trước đó. Như được trình bày ở hình 2.2, bất phương trình sau phải được thoả mãn:
Giờ xét trường hợ độ ưu tiên được gán theo thuật toán RM. Tác vụ τ1 sẽ nhận độ ưu tiên cao hơn tác vụ τ2. Trong tình huống này chúng ta phải phải phân biệt hai trường hợp để phân tích chính xác sự chen ngang của hai tác vụ này (như hình 2.3).
Hình 2.2 Dãy thực thi gồm 2 tác vụ τ1 và τ2, τ2 có độ tưu tiên cao hơn.
Hình 2.3. Dãy thực thi của 2 tác vụ τ1 và τ2. Với 2 trường hợp khác nhau.
T2/T1
=
β là số khoảng thời gian của tác vụ τ1 được nằm hoàn toàn trong khoảng thời gian của tác vụ τ2. Trường hợp đầu tiên tương ứng với một thời gian tính tón của tác vụ τ1 đủ ngắn cho tất cả các thể hiện (instances) của tác vụ τ1 được hoàn thành trước lần yêu cầu thứ 2 của tác vụ τ2. Nghĩa là:
C1≤ T2 - β . T1 (2.2)
Trong trường hợp 1 như minh hoạ ở hình 2.3, thời gian thực thi tối đa của tác vụ τ2 được tính bởi:
C2, max = T2 – (β + 1) . C1 (2.3) Có thể được viết lại như sau: C2 + ( β + 1) . C1≤ T2 (2.4)
Trường hợp 2 tương ứng với thời gian tính toán của tác vụ τ1 đủ lớn để yêu cầu cuối cùng của tác vụ τ1 không được hoàn thành trước khi yêu cầu thứ hai của tác vụ τ2. Nghĩa là:
C1≥ T2 - β. T1 (2.5)
Trong trường hợp 2, như minh hoạ ở hình 2.3, thời gian thực thi tối đa của tác vụ τ2 được tính bởi:
C2, max = β.(T1 – C1) (2.6) Có thể được viết lại như sau:
β.C1 + C2≤β.T1 (2.7)
Để cải thiện độ tối ưu của gán độ ưu tiên RM thì chúng ta phải chứng minh bất phương trình 2.1 hàm ý bất phương trình 2.4 hay 2.7. Vì thế chúng ta bắt đầu với giả sử rằng C1 + C2≤ T1, được minh hoạ khi gán ưu tiên không được tiến hành theo thuật toán RM. Bằng cách nhân cả hai vế của 2.1 với β chúng ta có β.C1 + β.C2
≤β.T1
Chúng ta đã có β =T2/T1 lớn hơn hay bằng 1. Vì thế ta có được: β.C1 + C2 ≤β.C1 + β. C2≤β. T1
Bằng cách thêm C1 vào mỗi thành phần của bất phương trình, chúng ta có (β + 1). C1 + C2≤β.T1 + C1
Bằng cách sử dụng bất phương trình 2.2 đã chứng minh trong trường hợp 1 ta có thể viết (β + 1).C1 + C2≤ T2. Kết quả này tương ứng với bất phương trình 2.4, vì vậy chúng ta đã chứng minh được kết quả sau, kết quả này cho thấy tính tối ưu
Cũng tương tự như vậy, bắt đầu với bất phương trình 2.1 chúng ta nhân β
vào mỗi thành phần của bất phương trình và sử dụng tính chất β≥1. Chúng ta có được
B.C1 + C2≤β.T1. Kết quả này tương ứng với bất phương trình 2.7, vì thế mà chúng ta chứng minh được suy luận ở dưới, suy luận này cho thấy tính tối uuw của việc gán độ ưu tiên sử dụng thuật toán RM trong trường hợp 2:
C1 + C2≤ T1⇒β.C1 + C2≤β.T1 (2.9)
Như vậy chúng ta đã chứng minh rằng với một tập 2 tác vụ τ1 và τ2 với T1 < T2 và các thời hạn tương đối bằng với khoảng thời gian ( D1 = T1 và D2 = T2), nếu như lịch biểu là khả thi bởi một việc gán độ ưu tiên tuỳ ý thì nó cũng là khả thi nhờ sử dụng thuật toán RM. Kết quả này có thể được mở rộng với một tập n tác vụ có chu kỳ.
Kiểm tra khả năng lập lịch được của thuật toán đơn nguyên tỷ lệ
Bây giờ chúng ta nghiên cứu cách tính cận trên nhỏ nhất Umax của hệ số sử dụng bộ xử lý cho thuật toán RM. Cận này đầu tiên được xác định bởi hai tác vụ có chu kỳ τ1 và τ2 với T1 < T2 và ( D1 = T1 và D2 = T2): 2 max , 2 1 1 max T C T C U = +
Trong trường hợp 1, chúng ta xét thời gian thực thi tối đa của tác vụ τ2 cho bởi bất phương trình 2.3, Vậy hệ số sử dụng bộ xử lý, kỹ hiệu bởi Umax,1 được tính bởi: ( ) + − − = 1 2 2 1 1 max, 1 . 1 T T T C U β (2.10)
Chúng ta có thể quan sát thấy hệ số sử dụng bộ xử lý giảm trong C1 vì
[(β+1) – (T2/T1)] > 0. Hàm của C1 này chạy từ C1 = 0 tới giới hạn giữa hay trường hợp nghiên cứu ở trên bởi 2 bất phương trình 2.2 và 2.5. Hình 2.4 mô tả hàm này.
Trong trường hợp 2, chúng ta xét thời gian thực thi tối đa của tác vụ τ2 cho bởi bất phương trình 2.6. Vậy hệ số sử dụng bộ xử lý U được cho bởi:
− + =β β 1 2 2 1 2 1 2 max, . . T T T C T T U (2.11) Hình 2.4: Phân tích hàm hệ số sử dụng bộ xử lý của C1
Chúng ta có thể quan sát thấy hệ số sử dụng bộ xử lý giảm trong C1 vì
[(T2/T1) – β]> 0. Hàm của C1 này chạy từ giới hạn giữa hay trường hợp nghiên cứu ở trên bởi 2 bất phương trình 2.2 và 2.5 tới C1 = T1. Hình 2.4 mô tả hàm này.
Điểm giao của hai đường này tương đương với giá trị lớn nhất của hệ số xử dụng bộ xử lý với C1 = T2 - β.T1. Vậy chúng ta có: β α β α + + = 2 lim max, U Trong đó α = T2/T1 - β và 0 ≤α < 1
Với giới hạn Umax,lim chúng ta có thể khẳng định rằng tập tác vụ là lập lịch được. Nhưng giá trị này lại phụ thuộc vào các tham số α và β. Để có được môt cặp cận độc lập (α, β), chúng ta phải tìm giá trị nhỏ nhất của giới hạn này. Tối thiểu Umax, lim với α ta có:
2 lim
max, =α +2αβ −β
Vì thế, cận trên nhỏ nhất được tính bởi Umax,lim =2.[ β(1+β)−β]
Với giá trị nhỏ nhất của β=1 chúng ta được: Umax,lim = 2.[21/2-1]≈ 0.83
Và với giá trị bất kỳ của β chúng ta có một giá trị trên 0.83: Với mọi β, Umax,lim = 2.{[β(1+β)]1/2 - β} ≤ 0.83
Hình 2.5: Ví dụ lịch biểu đơn nguyên tỷ lệ với 3 tác vụ có chu kỳ
τ1(0, 3, 20, 20), τ2(0, 2, 5, 5) và τ3(0, 2, 10, 10)
Chúng ta có thể mở rộng kết quả này với tập n tác vụ có chu kỳ bất kỳ và chúng ta có được điều kiện đủ để lập lịch.
( ) ∑ = − ≤ = n i n i i n T C U 1 / 1 1 2 . (2.12)
Cận trên nay hội tụ tới ln(2) =0.69 với giá trị n lớn. Một nghiên cứu với các tập tác vụ ngẫu nhiên cho thấy cận hệ số sử dụng bộ xử lý là 88%. Hình 2.5 đưa ra ví dụ về một lịch biểu RM với một tập 3 tác vụ có chu kỳ, trong đó thời hạn tương đối bằng khoảng thời gian: τ1(0, 3, 20, 20), τ2(0, 2, 5, 5) và τ3(0, 2, 10, 10). Tác vụ
τ2 có độ ưu tiên cao nhất và tác vụ τ1 có độ ưu tiên thấp nhất. Lịch biểu được đưa ra với tập tác vụ nằm trong khoảng [0,20]. 3 tác vụ đều thoả mãn các thời hạn và hệ số sử dụng bộ xử lý là:
Vì việc gán độ ưu tiên là dựa trên các khoảng thời gian của các tác vụ, thuật toán R nên được sử dụng để lập lịch các tác vụ có thời hạn tương đối bằng với các khoảng thời gian. Đây là trường hợp có thể sử dụng điều kiện đủ 2.12. Với các tác vụ có thời hạn tương đối không bằng các khoảng thời gian, thì nên sử dụng thuật toán đảo ngược thời hạn.
Một ví dụ khác có thể được nghiên cứu với mọt tập 3 tác vụ có chu kỳ mà có các thời hạn tương đối bằng với các khoảng thời gian: τ1(0, 20, 100, 100), τ2(0, 40, 150, 150) và τ3(0, 100, 350, 350). Tác vụ τ1 có độ ưu tiên cao nhất và tác vụ τ3 có độ ưu tiên thấp nhất. Chu kỳ chính của tập tác vụ là bội chung nhỏ nhất của (100, 150, 350) = 2100. Hệ số sử dụng bộ xử lý là:
20/100 + 40/150 + 100/350 = 0.75 < 3(21/3 – 1) = 0.779
Vậy chúng ta có thể khẳng định tập tác vụ này là lập lịch được; tất cả các 3 tác vụ đều thoả mãn các thời hạn của chúng. Thời gian nhàn dỗi của bộ xử lý là 520 với chu kỳ chính. Mặc dù việc xây dựng dãy lập lịch không hữu ích, chúng ta minh hoạ ví dụ này trong hình 2.6, nhưng chỉ là một phần nhỏ trong chu kì chính.
Hình 2.6: ví dụ lịch biểu đơn nguyên tỷ lệ với 3 tác vụ có chu kỳ: τ1(0, 20, 100, 100), τ2(0, 40, 150, 150) và τ3(0, 100, 350, 350)