Lập lịch các tác vụ không có chu kỳ mềm

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

Chúng tối giới thiệu những thuật toán quan trọng nhất giải quyết các tác vụ không có chu kỳ mềm. Phương pháp đơn giản nhất là lập lịch background, nhưng hiệu quả tương đối thấp. Thời gian phản hồi trung bình của các tác vụ không có chu kỳ có thể được cải thiện thông qua sử dụng server. Cuối cùng, thuật toán ăn trộm thời gian trống cung cấp những cải thiện đáng kể cho thời gian phản hồi của các tác vụ không có chu kỳ bằng cách “ăn trộm” thời gian xử lý từ các tác vụ có chu kỳ.

Lập lịch background

Các tác vụ không có chu kỳ được lập lịch ở background trong khi không có các tác vụ có chu kỳ sẵn sàng thực thi. Các tác vụ không có chu kỳ được xếp hàng theo chiến lược first come first served. Hình 2.10 minh hoạ một ví dụ trong đó có hai tác vụ có chu kỳ

τ1(r0 = 0, C = 2, T = 5), τ2(r0 = 0, C = 2, T = 10) được lập lịch với thuật toán Rm, và 3 tác vụ khôgn có chu kỳ: τ3(r = 4, C = 2), τ4(r = 10, C = 1) và τ5(r = 11, C = 2) được thực thi trong background. Các thời điểm nhàn dỗi của lịch biểu RM là

các khoảng thời gian [4, 5], [7, 10], [14, 15] và [17, 20]. Vì vậy tác vụ không có chu kỳ τ3 được thực thi ngay lập lịch và kết thúc trong khoảng thời gian nhàn dỗi giữa thời điểm t = 7 và t = 8. Tác vụ không có chu kỳ τ4 đi vào hệ thống tại thời điểm t = 10 và chờ cho tới khi thời gian nhàn dỗi [14, 15] để được thực thi. Và cuối cùng, tác vụ khôgn có chu kỳ τ5 được thực thi trong khoảng thời gian nhàn dỗi cuối [17, 20].

Hình 2.10: Lập lịch background

Ưu điểm chính của lập lịch background là tính đơn giản của nó. Tuy nhiên, yếu điểm chính là với tải lớn của các tác vụ có chu kỳ, thời gian phản hồi các yêu cầu không có chu kỳ có thể cao.

gian tính toán gọi là khả năng của server (server capacity). Server được lập lịch với thuật toán được sử dụng cho các tác vụ có chu kỳ, và một khi nó ở trạng thái hoạt động (active) thì nó phục vụ các yêu cầu không có chu kỳ trong phạm vi giới hạn khả năng của nó.Thứ tự các yêu cầu không có chu kỳ không phụ thuộc vào thuật toán lập lịch được sử dụng cho các tác vụ có chu kỳ.

Một số kiểu server đã được định nghĩa. Kiểu server đơn giản nhất được gọi là polling server, phục vụ các yêu cầu không có chu kỳ đang đợi (pending) vào những khoảng thời gian thường xuyên bằng với khoảng thời gian của nó. Các kiểu server khác (server hoãn được – deferrable server, server trao đổi độ ưu tiên – priority exchange server, server rời – sporadic server) cải thiện kỹ thuật phục vụ polling cơ bản này và cung cấp sự phản hồi các tác vụ không có chu kỳ tốt hơn. Phần này chỉ giới hiệu polling server, deferrable server và sporadic server. Chi tiết về các loại server khác có thể được tìm trong cuốn sách của Buttazzo (1997).

Polling server: polling server trở nên hoạt động vào những khoảng thời gian thường xuyên bằng với khoảng thời gian của nó và phục vụ các yêu cầu không có chu kỳ đang đợi trong giới hạn khả năng của nó. Nếu như không có yêu cầu không có chu kỳ nào đang đợi thì polling server tạm ngưng cho tới khi bắt đầu khoảng thời gian mới của nó và thời gian được giành cho các yêu cầu khôgn có chu kỳ được sử dụng cho các tác vụ có chu kỳ.

Hình 2.11 minh hoạ một ví dụ của việc phục vụ các tác vụ không có chu kỳ thu được nhờ sử dụng một polling server. Tập tác vụ có chu kỳ được tạo thành bởi 3 tác vụ:

τ1 (r0 = 4, C = 3, T = 20), τ2 (r0 = 0, C = 2, T = 10) và τs (r0 = 0, C = 2, T = 5).

τs là tác vụ server: nó có độ ưu tiên cao nhất vì nó lf tác vụ có khoảng thời gian nhỏ nhất. 3 tác vụ có chu kỳ được lập lịch với thuật toán RM. Hệ số sử dụng CPU là 3/20 + 2/10 + 2/5 = 0.75 < 3(21/3 – 1) = 0.779.

Vào thời điểm t = 0, bộ xử lý được gán cho polling server. Tuy nhiên hiện tại không có yêu cầu của tác vụ không có chu kỳ nào đang đợi, server tự ngưng nó lại và mất khả năng phục vụ các tác vụ không có chu kỳ, và được sử dụng bởi các tác vụ có chu kỳ. Vì thế bộ xử lý được gán cho tác vụ τ2 và sau đó là τ1. Vào thời điểm t = 4, tác vụ τ3 đi vào hệ thống và đợi cho tới khi bắt đầu khoảng thời gian mới của server ( t = 5) để thực thi. Khả năng đầy đủ của server được sử dụng để

t = 11. Tác vụ τ5 sử dụng phần còn lại trong khả năng của server và sau đó phải đợi tới khoảng thời gian tiếp theo của server để hoàn thành việc thực thi. Chỉ có nửa khả năng của server được sử dụng và phần nửa còn lại mất đi do không có tác vụ không có chu kỳ nào nữa đợi.

Yếu điểm chính của kỹ thuật polling server là khi polling server trở nên hoạt động thì nó tự ngưng nó lại cho tới khi bắt đầu khoảng thời gian mới của nó nếu như không có yêu cầu không có chu kỳ nào đang đợi và thời gian giành cho các yêu cầu không có chu kỳ bị bỏ qua. Vì thế, nếu như các tác vụ không có chu kỳ đi vào hệ thống ngay khi polling server tự ngưng chính nó thì nó phải đợi cho tới khi bắt đầu khoảng thời gian tiếp theo của server để được thực thi.

Defferrable server (server có thể hoãn được). Server hoãn được là một mở

rộng của polling server nó cải thiện thời gian phản hồi của các yêu cầu không có chu kỳ. Server hoãn được giống như polling server. Tuy nhiên, server hoãn được giữ nguyên khả năng của nó nếu như không có yêu cầu không có chu kỳ nào đang đợi vào đầu khoảng thời gian. Vì thế, một yêu cầu không có chu kỳ đi vào hệ thống ngay sau khi server tự ngưng nó có thể được thực thi ngay. Tuy nhiên, server hoãn lại được vi phạm giả định cơ bản của thuật toán RM là: một tác vụ không có chu kỳ phải thực thi bất kỳ khi nào nó là tác vụ có độ ưu tiên cao nhất sẵn sàng chạy, nếu không một tác vụ có độ ưu tiên thấp hơn có thể lỡ một thời hạn. Vì thế hành vi của server hoãn được tạo nên một cậy trên thấp của hệ số sử dụng bộ xử lý cho tập tác vụ có chu kỳ và khả năng lập lịch được của tập tác vụ có chu kỳ được đảm bảo với thuật toán RM nếu:

∑ ∈ = =     + + ≤ P T i i i s s s s s T C U T C U U U U 1 2 2 ln (2.16)

Us là hệ số sử dụng bộ xử lý của server hoãn được τs(Cs, Ts). U là hệ số sử dụng bộ xử lý của tập tác vụ có chu kỳ. TP là tập chỉ số tác vụ có chu kỳ.

Sporadic server (server rời) server rời là một kỹ thuật sử dụng server khác cải thiện thời gian phản hồi của các yêu cầu không có chu kỳ mà không làm giảm hệ số sử dụng bộ xử lý của tập tác vụ có chu kỳ. Giống như server hoãn được, server rời giữ lại khả năng cho tới khi một yêu cầu không có chu kỳ xuất hiện, tuy

nhiên nó hoãn lại theo cách nó replenish khả năng này. Vì thế sporadic server không khôi phục toàn bộ giá trị khả năng của nó vào đầu mỗi khoảng thời gian mới cho tới khi nó được sử dụng bởi thực thi một tác vụ không có chu kỳ. Cụ thể hơn, server rời replenish khả năng của nó mỗi lần tR nó trở nên hoạt động và khả năng của nó lớn hơn 0. Thời replenishment được đặt là tR cộng với khoảng thời gian của server. Lượng thời gian replenishment được đặt là khả năng đã sử dụng trong khoảng tR và khi sporadic server trở nên nhàn dỗi hay khả năng của nó đã bị vượt quá.

Hình 2.12 đưa ra một ví dụ minh hoạ việc phụ vụ các tác vụ không có chu kỳ nhờ sử dụng sporadic server. Tập tác vụ có chu kỳ được tạo nên bởi 3 tác vụ: τ1 (r0 = 0, C = 3, T = 20), τ2 (r0 = 0, C = 2, T = 10) và τs (r0 = 0, C = 2, T = 5). τs là tác vụ server. tập tác vụ không có chu kỳ được tạo bởi 3 tác vụ τ3 (r = 4, C = 2), τ4 (r = 10, C = 1), τ5 (r = 11, C = 2). Vào thời điểm t = 0, server trở nên hoạt động và tự ngưng chính nó vì không có yêu cầu không có chu kỳ nào đợi. Tuy nhiên, nó giữ lại toàn bộ khả năng của nó. Vào thời điểm t = 4, tác vụ τ3 đi vào hệ thống và được thực thi ngay lập tức trong khoảng [4, 6]. Khả năng của server được sử dụng toàn bộ để phục vụ tác vụ không có chu kỳ. Vì server đã được thực thi nên thời diểm replenishment được đặt là tR = 4 + 5 = 9. Lượng thời gian replenishment là 2. Vào thời điểm t = 9, server replenish khả năng của nó, tuy nhiên nó lại tự ngưng lại vì không có yêu cầu không có chu kỳ nào đợi. Vào thời điểm t = 10, tác vụ τ4 đi vào hệ thống và được thực thi ngay lập tức. Vào thời điểm t = 11, tác vụ τ5 đi vào hệ thống và cũng được thực thi ngay lập tức. Nó sử dụng phần còn lại trong khả năng của server. Thời gian replenishment được tính lại và đặt là tR = 15. Tác vụ τ5 được thực thi cho tới khi hoàn thành khi server replenishes khả năng của nó, nghĩa là trong khoảng [15, 16]. Vào thời điểm t = 20, sporadic server sẽ replenish khả năng của nó với lượng thơi gian là 1, bị sử dụng bởi tác vụ τ5.

Hình 2.12 Ví dụ về server rời

Cũng có một phiên bản động của server rời dựa vào lập lịch EDF.Phiên bản này khác phiên bản tĩnh dựa vào lập lịch EDF ở chỗ khả năng của server được khởi tạo lại. Cụ thể là thời gian replenishment khả năng của server được đặt sao cho một deadline có thể được gán cho mỗi thực thi server. Chi tiết hơn có thể được thao khảo trong tài liệu của Buttazzo.

Trộm thời gian trống và các kỹ thuật lập lịch kết hợp

Hai kỹ thuật này khá quen thuộc và cả hai sử dngj độ trễ của các tác vụ có chu kỳ để lập lịch các tác vụ không chu kỳ. Với phương pháp đầu tiên, được gọi là trộm thời gian trống, các tác vụ được lập lịch với thuật toán RM. Phương pháp thứ 2, gọi là lập lịch nối/kết hợp, các tác vụ được lập lịch với thuật toán EDF.

Không giống như những kỹ thuật sử dụng server, những kỹ thuật này không đòi hỏi sử dụng một tác vụ có chu kỳ để phục vụ tác vụ không có chu kỳ. Mỗi lần một yêu cầu không có chu kỳ đi vào hệ thống, thời gian phục vụ yêu cầu này được lất bằng cách trộm thời gian xử lý từ các tác vụ có chu kỳ mà không làm lỡ thời

hạn. Vì thế, độ trễ của các tác vụ có chu kỳ được sử dụng để lập lịch các yêu cầu không có chu kỳ càng sớm càng tốt.

Với kỹ thuật lập lịch nối/kết hợp, một thời hạn hư cấu fd được định nghĩa cho mỗi tác vụ không có chu kỳ để tác vụ không có chu kỳ có được thời gian phản hồi ngắn nhất có thể. fd được đặt ở thời điểm sớm hơn t, sao cho lượng thời gian xử lý của tác vụ bằng thời gian nhàn dỗi của bộ xử lý trong khi tất cả các thời hạn của các tác vụ đợi vẫn được thoả mãn.

Hình 2.13 minh hoạ một ví dụ của việc phục vụ tác vụ không có chu kỳ thu được nhừo kỹ thuật ăn trộm thời gian trống. Tập tác vụ có chu kỳ được tạo nên từ 2 tác vụ τ1 (r0 = 0, C = 2, T = 5) và τ2 (r0 = 0, C = 2, T = 10). Tập tác vụ không có chu kỳ được tạo nên từ 3 tác vụ τ3 (r = 4, C = 2), τ4 ( r= 10, C = 1) và τ5 (r= 11 , C = 2). Vào thời điểm t = 4, tác vụ không có chu kỳ được đưa vào hệ thống. Độ trễ của tác vụ τ1, tác vụ này sẽ trở nên hoạt động vào thừoi điểm t = 5, bằng 3; và việc thực thi tác vụ τ1 có thể được hoãn tới khi t = 6 và tácv ụ không có chu kỳ có thể được thực thi trong khoảng [4, 6]. Tương tự như vậy, yêu cầu thứ 3 của tác vụ có chu kỳ (adsbygoogle = window.adsbygoogle || []).push({});

τ1 có thể hoãn thực thi tới thời điểm t = 13 vì thế tác vụ không có chu kỳ τ4 và τ5 được thực thi ngay khi đi vào hệ thống. Chú ý rằng các tác vụ không có chu kỳ có thời gian phản hồi nhỏ nhất có thể.

Hình 2.14 minh hoạ một ví dụ của việc phục vụ các tác vụ không có chu kỳ nhờ sử dụng kỹ thuật lập lịch nối/kết hợp. Tập tác vụ có chu kỳ gồm 2 tác vụ: τ1 (r0 = 0, C = 2, D = 4, T = 5) và τ2 (r0 = 0, C = 1, D = 8, T = 10) và được lập lịch với thuật toán EDF. Tập tác vụ không có chu kỳ được tạo nên từ 3 tác vụ τ3 (r = 4, C = 2), τ4 ( r= 10, C = 1) và τ5 (r= 11 , C = 2). Vào thời điểm t = 4, tác vụ không có chu kỳ được đưa vào hệ thống. Độ trễ của tác vụ τ1, tác vụ này sẽ trở nên hoạt động vào thừoi điểm t = 5, bằng 3; và việc thực thi tác vụ τ1 có thể được hoãn tới khi t = 6 và tácv ụ không có chu kỳ có thể được thực thi trong khoảng [4, 6]. Vì vậy mà deadline giả định được đặt là 6 cho tác vụ không có chu kỳ τ3.

Tương tự, yêu cầu thứ 3 của tác vụ có chu kỳ τ1 có thể trì hoãn thực thi tới thời điểm t = 11 nên yêu cầu của tác vụ không có chu kỳ τ4 được thực thi ngay khi vào trong hệ thống. Deadline giả định được gán cho τ4 là 11. Tác vụ τ5 đi vào hệ thống vào thời điểm t = 11 không thể được thực thi cho tới khi hoàn thành yêu cầu lần 3 của τ1. Nó được thực thi trong khoảng [13, 15]. Vì thế deadline giả định được gán cho tác vụ τ5 là 15. Chú ý rằng, với kỹ thuật lập lịch kết hợp/nối thì các tác vụ không có chu kỳ có thời gian phản hồi nhỏ nhất có thể.

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