Các thuật toán gán độ ưu tiên động

Một phần của tài liệu Cac He Thong TGThuc ppsx (Trang 53 - 57)

Hình 2.7 minh hoạ một ví dụ của lập lịch đảo ngược thời hạn với một tập 3 tác vụ có chu kỳ: τ1(r0 = 0, C = 3, D = 7, T = 20), τ2(r0 = 0, C = 2, D = 4, T = 5),

τ3(r0 = 0, C = 2, D = 9, T = 10). Tác vụ τ2 có độ ưu tiên cao nhất và tác vụ τ3 có độ ưu tiên thấp nhất. Chú ý điều kiện đủ (2.13) không được thoả mãn vì hệ số tải bộ xử lý là 1.15. Tuy nhiên, tập tác vụ là lập lịch được, lịch biểu được cho với chu kỳ chính của tập tác vụ.

Hình 2.7: Lịch biểu đảo ngược thời hạn

2.1.3 Các thuật toán gán độ ưu tiên động

Với các thuật toán gán độ ưu tiên động, các độ ưu tiên được gán cho các tác vụ dựa trên các tham số động có thể thay đổi trong quá trình thực thi tác vụ. Các

thuật toán quan trọng nhất trong loại này là thời hạn sớm nhất trước (earliest deadline first) và độ trễ ít nhất trước (least laxity first).

Thuật toán thời hạn sớm nhất trước

Thuật toán thời hạn sớm nhất trước (earliest deadline first - EDF) gán độ ưu tiên cho các tác vụ theo thời hạn tuyệt đối của chúng: tác vụ với thời hạn sớm nhất sẽ được thực thi với độ ưu tiên cao nhất. Thuật toán này tối ưu theo nghĩa tính khả thi: nếu như tồn tại một lịch biểu khả thi cho tập tác vụ thì thuật toán EDF sẽ có khả năng tìm ra lịch biểu đó.

Cần chú ý rằng một điều kiện lập lịch được cần và đủ tồn tại cho các tác vụ có chu kỳ với các thời hạn bằng các khoảng thời gian. Một tập tác vụ có chu kỳ với các thời hạn bằng các khoảng thời gian là lập lịch được với thuật toán EDF nếu và chỉ nếu hệ số sử dụng bộ xử lý nhỏ hơn hay bằng 1

∑ = ≤ n i i i T C 1 1 (2.14)

Một tập tác vụ kết hợp là lập lịch được với thuật toán EDF nếu (điều kiện đủ): 1 1 ≤ ∑ = n i i i D C (2.15)

Một điều kiện cần được cho ở công thức 2.14. Thuật toán EDF không có giả định nào về tính chu kỳ của các tác vụ, vì thế có thể sử dụng nó cho các tác vụ có chu kỳ và không có chu kỳ.

Hình 2.8 đưa ra ví dụ về một lịch biểu EDF cho tập 3 tác vụ có chu kỳ τ1(r0 = 0, C = 3, D = 7, T = 20), τ2(r0 = 0, C = 2, D = 4, T = 5), τ3(r0 = 0, C = 1, D = 8, T = 10). Tại thời điểm t = 0, 3 tác vụ đều sẵn sàng được thực thi và tác vụ có thời hạn tuyệt đối nhỏ nhất là τ2. Vậy nên τ2 được thực thi. Vào thời điểm t = 2, tác vụ τ2 hoàn thành. Tác vụ hiện thời có thời hạn tuyệt đối nhỏ nhất τ1. Vậy nên τ1 được

Hình 2.8

Thuật toán độ trễ nhỏ nhất trước

Thuật toán độ trễ nhỏ nhất trước (least laxity first - LLF) gán độ ưu tiên cho các tác vụ theo độ trễ tương đối của chúng: Tác vụ với độ trễ nhỏ nhất sẽ được thực thi với độ ưu tiên cao nhất. Thuật toán này tối ưu và khả năng lập lịch được của tập tác vụ có thể được đảm bảo sử dụng kiểm tra khả năng lập lịch được EDF.

Khi một tác vụ được thực thi, thì độ trễ tương đối là hằng số. Tuy nhiên, độ trễ tương đối của các tác vụ sẵn sàng giảm. Vì vậy, khi độ trễ của các tác vụ chỉ được tính toán vào thời điểm đến (arrival time hay release time), lịch biểu LLF tương đương với lịch biểu EDF. Tuy nhiên nếu độ trễ được tính toán ở mọi thời điểm t thì chuyển ngữ cảnh sẽ là cần thiết.

Hình 2.9 minh hoạt một ví dụ của một lịch biểu LLF với tập 3 tác vụ có chu kỳ τ1(r0 = 0, C = 3, D = 7, T = 20), τ2(r0 = 0, C = 2, D = 4, T = 5), τ3(r0 = 0, C = 1, D = 8, T = 10). Độ trễ tương đối của các tác vụ chỉ được tính ở thời điểm tác vụ đến. Vào thời điểm t = 0, cả 3 tác vụ đều sẵn sàng thực thi. Các giá trị độ trễ tương đối của các tác vụ là:

Trường hợp a: vào thời điểm t = 5, tác vụ τ3 được thực thi

Trường hợp b: vào thời điểm t = 5, tác vụ τ2 được thực thi. Hình 2.9: Các lịch biểu độ trễ nhỏ nhất trước

Vậy tác vụ với độ trễ tương đối nhỏ nhất là τ2. Vì thế τ2 được thực thi. Vào thời điểm t = 5, một yêu cầu mới của tác vụ τ2 đi vào hệ thống. Giá trị độ trễ tương đối của nó bằng độ trễ tương đối của tác vụ τ3. Vì vậy, tác vụ τ3 hay tác vụ τ2 được thực thi (hình 2.9).

EDF. Các ví dụ về finishing jitter sẽ được quan sát với tác vụ τ3 với lịch biểu cảu bài tập 2.4, câu hỏi 3.

Một phần của tài liệu Cac He Thong TGThuc ppsx (Trang 53 - 57)