CƠ SỞ LÝ THUYẾT
Mô hình nhiệm vụ hệ thời gian thực
2.1.1 Hệ thống thời gian thực
Hệ thống thời gian thực là các hệ thống máy tính có khả năng phản ứng nhanh chóng và chính xác với các sự kiện trong môi trường Phản ứng chậm có thể gây nguy hiểm hoặc trở nên vô ích, vì vậy tính đúng đắn của hệ thống không chỉ phụ thuộc vào độ chính xác của kết quả mà còn vào thời điểm đưa ra kết quả Khi yêu cầu về thời gian không được đáp ứng, hệ thống sẽ bị coi là có lỗi.
2.1.1.2 Tầm quan trọng của hệ thời gian thực
Ngày nay, hệ thống thời gian thực đóng vai trò quan trọng trong xã hội, với ngày càng nhiều ứng dụng phức tạp dựa vào sự điều khiển của máy tính Chúng được sử dụng rộng rãi trong nhiều lĩnh vực như tự động hóa công nghiệp, robot, và kiểm soát tiến trình, bao gồm điều khiển nhà máy hạt nhân, hệ thống chuyển mạch đường sắt, và kiểm soát bay, cũng như trong y tế, quân sự và viễn thông.
Một trong những vấn đề quan trọng trong nghiên cứu thời gian thực là điều hành và lập lịch, do vai trò thiết yếu của nó Nhiều vụ tai nạn tại các nhà máy điện hạt nhân và hệ thống phòng thủ thường xuất phát từ lỗi phần mềm trong hệ thống điều khiển Một sai sót trong quá trình lập lịch có thể dẫn đến thảm họa, gây thiệt hại kinh tế lớn và thậm chí mất mát về tính mạng.
2.1.1.3 Phân loại nhiệm vụ thời gian thực Ở cấp độ xử lý, sự khác biệt chính giữa một nhiệm vụ thời gian thực và một nhiệm vụ không phải thời gian thực là nhiệm vụ thời gian thực đƣợc đặc trƣng bởi một kỳ hạn (deadline) Đó là khoảng thời gian tối đa mà nhiệm vụ phải hoàn thành Tùy thuộc vào những hậu quả có thể xảy ra do kỳ hạn bị lỗi, các nhiệm vụ thời gian thực có thể đƣợc phân thành những loại chính sau:
Nhiệm vụ thời gian thực cứng (Hard real-time task) là những nhiệm vụ yêu cầu thực hiện trong khoảng thời gian cụ thể Việc không tuân thủ thời hạn có thể dẫn đến sự sụp đổ của hệ thống hoặc gây ra hậu quả nghiêm trọng.
Hệ thống điều khiển không lưu là một ví dụ điển hình, trong đó việc phân phối đường bay, thời gian cất cánh và hạ cánh không hợp lý có thể dẫn đến những tai nạn thảm khốc.
Nhiệm vụ thời gian thực mềm (Soft real-time task) là loại nhiệm vụ mà thời gian phản hồi của hệ thống đối với các yếu tố kích thích rất quan trọng Tuy nhiên, nếu xảy ra vi phạm trong ràng buộc thời gian, hệ thống vẫn có thể hoạt động bình thường Lỗi về mặt thời gian trong các nhiệm vụ này chỉ dẫn đến việc giảm độ tin cậy hoặc suy giảm hiệu suất của hệ thống mà không gây ra hậu quả nghiêm trọng.
Mạng lưới thu ngân tự động của ngân hàng minh họa rõ ràng cho nhiệm vụ thời gian thực mềm, khi người dùng đưa thẻ ATM vào máy và kỳ vọng phản hồi trong 1-2 giây Nếu quá trình này kéo dài hơn, cảm giác sốt ruột và khó chịu sẽ xuất hiện, ảnh hưởng đến trải nghiệm của khách hàng.
Nhiệm vụ thời gian thực trung gian (Firm real-time task) là những nhiệm vụ có thời hạn hoàn thành nhất định, trong đó việc trễ hạn không gây ra thiệt hại cho hệ thống, nhưng có thể làm giảm giá trị hoặc tính hữu ích của nhiệm vụ đó.
Ví dụ: các hoạt động của hệ thống đa phương tiện như play video, mã hóa và giải mã audio, video …
Trong bài viết này, tôi tập trung vào hệ thống thời gian thực cứng, nơi các nhiệm vụ phải được tiếp nhận và hoàn thành đúng kỳ hạn Để đảm bảo các nhiệm vụ quan trọng hoàn thành đúng thời gian, cần thực hiện phân tích khả năng lập lịch trong trường hợp xấu nhất, tức là phân tích thời gian thực hiện tối đa cho các nhiệm vụ.
2.1.2 Các tham số đặc trưng cho hệ thời gian thực
Đến nay, nhiều phương pháp đã được đề xuất nhằm cải thiện khả năng dự báo của hệ thống thời gian thực Trong bài viết này, tôi sẽ trình bày các kết quả liên quan bằng cách sử dụng các tham số đặc trưng của nhiệm vụ thời gian thực, những tham số này sẽ được áp dụng trong các phần tiếp theo.
Hình 2.1 Các tham số đặc trƣng của một nhiệm vụ thời gian thực 𝜏 𝑖
- Thời điểm đến (Arrival time) 𝒂 𝒊 : là thời điểm mà tại đó nhiệm vụ đƣợc kích hoạt, hay nói cách khác là nhiệm vụ yêu cầu đƣợc xử lý
- Thời điểm phát hành (Release time) 𝒓 𝒊 : là thời điểm mà tại đó nhiệm vụ sẵn sàng để thực hiện
- Thời gian bắt đầu (Start time) 𝒔 𝒊 : là thời gian mà một nhiệm vụ bắt đầu thực hiện
- Thời gian kết thúc (Finishing time) 𝒇 𝒊 : là thời gian mà một nhiệm vụ kết thúc thực hiện
- Thời gian tính toán (Computation time) 𝑪 𝒊 : là thời gian cần thiết để bộ xử lý thực hiện nhiệm vụ mà không bị gián đoạn: 𝐶 𝑖 = 𝑓 𝑖 − 𝑠 𝑖
- Kỳ hạn tuyệt đối (Absolute Deadline) 𝒅 𝒊 : là thời gian mà nhiệm vụ phải hoàn thành để không gây thiệt hại cho hệ thống
- Kỳ hạn tương đối (Relative Deadline) 𝑫 𝒊 : là khoảng thời gian giữa kỳ hạn tuyệt đối và thời gian kích hoạt: 𝐷 𝑖 = 𝑑 𝑖 − 𝑎 𝑖
- Thời gian phản ứng (Response time) 𝑹𝑻 𝒊 : là khoảng thời gian từ lúc nhiệm vụ đƣợc kích hoạt cho đến khi nó kết thúc: 𝑅𝑇 𝑖 = 𝑓 𝑖 − 𝑎 𝑖
Một số nhiệm vụ có thể không sẵn sàng thực hiện ngay sau khi được kích hoạt do sự chậm trễ của dữ liệu đầu vào Để giải quyết vấn đề này, tôi xem xét các nhiệm vụ với độ trễ phát hành (release jitters) Độ trễ phát hành 𝐽 𝑖 của nhiệm vụ 𝜏 𝑖 được định nghĩa là khoảng thời gian từ khi tác vụ được kích hoạt cho đến khi nó được phát hành, tức là được coi là sẵn sàng thực hiện.
Hình 2.2 Nhiệm vụ tuần hoàn với độ trễ phát hành
Một đặc trưng quan trọng của thời gian trong nhiệm vụ thời gian thực là tính đều đặn trong việc kích hoạt Nhiệm vụ có thể được phân loại thành tuần hoàn và không tuần hoàn Nhiệm vụ tuần hoàn bao gồm chuỗi vô hạn các tác vụ giống hệt nhau, được kích hoạt đều đặn với tốc độ không đổi, tức là theo chu kỳ Ngược lại, nhiệm vụ không tuần hoàn có các tác vụ được kích hoạt không theo chu kỳ.
Luận văn của tôi nghiên cứu về các nhiệm vụ tuần hoàn, ký hiệu là 𝜏 𝑖, với tác vụ thứ 𝑙 được ký hiệu là 𝜏 𝑖,𝑙 Thời gian kích hoạt của tác vụ này được tính bằng công thức 𝑎 𝑖,𝑙 = 𝑙 − 1 𝑇 𝑖 − 𝐽 𝑖, trong đó 𝑇 𝑖 là chu kỳ kích hoạt của nhiệm vụ Một nhiệm vụ tuần hoàn thường được đặc trưng bởi các thông số như thời gian tính toán 𝐶 𝑖, chu kỳ 𝑇 𝑖, độ trễ phát hành 𝐽 𝑖 và kỳ hạn tương đối 𝐷 𝑖 Tập hợp các nhiệm vụ định kỳ được ký hiệu là 𝜏 = 𝜏 𝑖 𝑇 𝑖 , 𝐶 𝑖 , 𝐷 𝑖 , 𝐽 𝑖, với 𝑖 từ 1 đến 𝑛.
Tiếp theo, tôi sẽ đƣa ra những tham số đặc trƣng cho một tác vụ của nhiệm vụ tuần hoàn
Hình 2.3 Chuỗi các tác vụ của một nhiệm vụ tuần hoàn 𝜏 𝑖
- Kỳ hạn tuyệt đối của tác vụ (𝒅 𝒊,𝒍 ): là thời gian mà tác vụ phải hoàn thành để tránh thiệt hại cho hệ thống: 𝑑 𝑖,𝑙 = 𝑎 𝑖,𝑙 + 𝐷 𝑖
Thời gian phản ứng của tác vụ được định nghĩa là khoảng thời gian từ khi tác vụ được kích hoạt cho đến khi hoàn thành Công thức tính thời gian phản ứng được biểu diễn là 𝑅𝑇 𝑖,𝑙 = 𝑓 𝑖,𝑙 − 𝑎 𝑖,𝑙, trong đó 𝑓 𝑖,𝑙 là thời gian hoàn thành của tác vụ thứ 𝑙 thuộc 𝜏 𝑖.
- Thời gian phản ứng của 1 nhiệm vụ: là thời gian phản ứng lớn nhất trong số tất cả các tác vụ của nó: 𝑅𝑇 𝑖 = max 1≤𝑙≤𝑛 𝑅𝑇 𝑖,𝑙
- Hệ số sử dụng CPU của một nhiệm vụ: thể hiện tỉ lệ thời gian mà CPU đã sử dụng để thực hiện nhiệm vụ này
Các phương pháp kiểm định dựa trên độ ưu tiên cố định
2.2.1 Một số khái niệm về lập lịch
Khi bộ xử lý đơn thực hiện nhiều nhiệm vụ đồng thời, các nhiệm vụ này có thể chồng chéo trong thời gian chạy Tuy nhiên, CPU không thể xử lý nhiều nhiệm vụ cùng lúc, vì vậy cần phân phối chúng theo một tiêu chuẩn đã được xác định trước, gọi là lịch trình.
- Lập lịch: là một tập các quy tắc xác định thứ tự thực hiện của các nhiệm vụ hay nói cách khác là xác định lịch trình
Trong thuật toán lập lịch ưu tiên, các nhiệm vụ đang thực hiện có thể bị tạm dừng để nhường bộ xử lý cho nhiệm vụ khác có độ ưu tiên cao hơn Điều này cho phép hệ thống quản lý tài nguyên hiệu quả hơn và đảm bảo rằng các tác vụ quan trọng được thực hiện kịp thời.
Lập lịch không ưu tiên (non-preemptive) là thuật toán trong đó một nhiệm vụ, khi đã bắt đầu, sẽ được bộ xử lý thực hiện cho đến khi hoàn thành Điều này có nghĩa là các nhiệm vụ khác chỉ có thể được thực hiện sau khi nhiệm vụ hiện tại đã kết thúc.
- Lập lịch tĩnh (static): các tham số lập lịch của hệ không thay đổi và đƣợc xác định trước khi hệ thống đi vào hoạt động
Lập lịch động là quá trình lập lịch dựa trên các tham số có thể thay đổi trong khi hệ thống hoạt động Bài viết này phân tích 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, tức là độ ưu tiên của các nhiệm vụ được xác định trước và không thay đổi Trong trường hợp này, một nhiệm vụ đang thực hiện có thể bị gián đoạn bất cứ lúc nào để nhường bộ xử lý cho nhiệm vụ khác có độ ưu tiên cao hơn.
2.2.1.3 Lập lịch dựa trên độ ƣu tiên cố định
Trong phương pháp lập lịch này, mỗi nhiệm vụ được gán một tham số gọi là độ ưu tiên, và tất cả các tác vụ đều dựa vào độ ưu tiên này để thực hiện Nhiệm vụ có độ ưu tiên cao nhất sẽ được chọn để thực hiện tại mọi thời điểm Nếu có một nhiệm vụ đang thực hiện mà có độ ưu tiên thấp hơn, nó sẽ bị gián đoạn để nhường bộ xử lý cho nhiệm vụ có độ ưu tiên cao hơn Cơ chế lập lịch này rất linh hoạt, cho phép áp dụng nhiều thuật toán khác nhau bằng cách thay đổi quy tắc gán quyền ưu tiên cho các nhiệm vụ.
Hệ nhiệm vụ 𝜏 được coi là có khả năng lập lịch dựa trên độ ưu tiên cố định khi có một thuật toán có thể gán độ ưu tiên cho các nhiệm vụ, đảm bảo rằng khi 𝜏 thực hiện lịch trình theo độ ưu tiên này, tất cả các hạn chót đều được đáp ứng một cách hiệu quả.
Ví dụ: Xét hệ gồm 5 nhiệm vụ 𝜏 1 , 𝜏 2 , 𝜏 3 , 𝜏 4 , 𝜏 5 Thời gian thực hiện và độ ƣu tiên của các nhiệm vụ đƣợc cho trong bảng 2.1
Bảng 2.1 Tập các nhiệm vụ có độ ƣu tiên cố định
Nhiệm vụ Thời gian thực hiện (ms) Độ ƣu tiên
Sử dụng thuật toán lập lịch dựa trên độ ƣu tiên, ta có thứ tự thực hiện của các nhiệm vụ nhƣ sau:
Hai thuật toán lập lịch phổ biến dựa trên độ ưu tiên cố định là Rate Monotonic (RM) và Deadline Monotonic (DM) Trong thuật toán RM, độ ưu tiên của các nhiệm vụ được xác định bằng nghịch đảo của chu kỳ, trong khi DM gán độ ưu tiên dựa trên nghịch đảo của kỳ hạn tương đối.
Lập lịch Rate Monotonic (RM) là một thuật toán phân bổ độ ưu tiên cho các nhiệm vụ dựa trên tỷ lệ yêu cầu của chúng Cụ thể, nhiệm vụ có tỷ lệ yêu cầu cao hơn, tức là chu kỳ ngắn hơn, sẽ được ưu tiên cao hơn Điều này có nghĩa là những nhiệm vụ diễn ra thường xuyên hơn sẽ được đặt ở vị trí ưu tiên hàng đầu RM được công nhận là tối ưu cho các hệ thống có kỳ hạn tương đối nhỏ hơn hoặc bằng chu kỳ (𝐷𝑖 ≤ 𝑇𝑖).
Giả sử cho hệ nhiệm vụ nhƣ sau:
Bảng 2.2 Tập các nhiệm vụ đƣợc kích hoạt từ thời điểm 𝑡 = 0
Ta có 𝑇 1 < 𝑇 2 , do đó theo RM thì 𝜏 1 có độ ƣu tiên cao hơn 𝜏 2
Lập lịch Deadline Monotonic (DM) là một thuật toán phân bổ nhiệm vụ dựa trên độ ưu tiên cố định, tỉ lệ nghịch với kỳ hạn tương đối của chúng Điều này có nghĩa là tại bất kỳ thời điểm nào, nhiệm vụ có kỳ hạn ngắn hơn sẽ được ưu tiên thực hiện trước DM được công nhận là tối ưu trong trường hợp kỳ hạn tương đối vượt quá chu kỳ (𝐷𝑖 > 𝑇𝑖).
Giả sử cho hệ nhiệm vụ nhƣ sau:
Bảng 2.3 Tập các nhiệm vụ với kỳ hạn không ràng buộc
Theo DM, thứ tự ưu tiên cho các nhiệm vụ được xác định lần lượt là 𝜏 1, 𝜏 2, 𝜏 3, 𝜏 4 Đề tài của tôi tập trung vào hệ thống có độ ưu tiên cố định và kỳ hạn không ràng buộc Trong quá trình thực nghiệm, tôi đã áp dụng thuật toán lập lịch DM để gán độ ưu tiên cho các nhiệm vụ.
2.2.2 Những kết quả cơ bản
Bài toán đặt ra là các nhiệm vụ tuần hoàn hoạt động trên cùng một bộ xử lý và hoàn toàn độc lập với nhau Mỗi nhiệm vụ có độ ưu tiên cố định, được xác định trước khi ứng dụng khởi động và không thay đổi trong suốt quá trình hoạt động Tại bất kỳ thời điểm nào, nhiệm vụ có độ ưu tiên cao nhất sẽ được chọn để thực hiện trong số những nhiệm vụ sẵn sàng Để đơn giản hóa, giả sử các nhiệm vụ được đánh chỉ số theo thứ tự giảm dần của độ ưu tiên, trong đó 𝜏1 có độ ưu tiên cao nhất và 𝜏𝑛 có độ ưu tiên thấp nhất.
Một nhiệm vụ tuần hoàn 𝜏 𝑖 1 ≤ 𝑖 ≤ 𝑛 đƣợc đặc trƣng bởi thời gian thực hiện
Trong bài viết này, chúng ta sẽ xem xét các yếu tố như kỳ hạn 𝐶𝑖, kỳ hạn tương đối 𝐷𝑖, độ trễ phát hành 𝐽𝑖 và chu kỳ 𝑇𝑖 Giả định rằng kỳ hạn không liên quan đến chu kỳ, tức là kỳ hạn không bị ràng buộc, chúng ta sẽ phân tích tác vụ thứ 𝑙.
𝜏 𝑖 đƣợc ký hiệu là 𝜏 𝑖,𝑙 Tôi giả sử rằng tất cả các tham số là số nguyên, 𝐽 𝑖 < 𝑇 𝑖 , và
Hàm Request Bound Function (RBF) của nhiệm vụ 𝜏 𝑖 tại thời điểm t thể hiện tổng thời gian mà nhiệm vụ này yêu cầu CPU trong khoảng thời gian (0, 𝑡] Đối với bộ xử lý có công suất đơn vị là 1, hàm này chính là lượng công việc mà nhiệm vụ 𝜏 𝑖 cần thực hiện.
𝜏 𝑖 đòi hỏi CPU phải thực hiện trong khoảng thời gian trên
Trong công thức này, mỗi nhiệm vụ 𝜏 𝑖 phát hành 1 tác vụ yêu cầu 𝐶 𝑖 đơn vị thời gian xử lý Khi tăng 𝑇 𝑖 đơn vị thời gian, 𝐶 𝑖 đơn vị thời gian yêu cầu cũng tăng thêm Do đó, 𝑅𝐵𝐹 được gọi là hàm nhảy bậc và không liên tục Hàm này được sử dụng để tính tổng thời gian mà các nhiệm vụ yêu cầu CPU thực hiện.
Hình 2.4 Hàm RBF (Request Bound Function).
Hàm Workload (𝑊 𝑖,𝑙 (𝑡)) thể hiện tổng thời gian yêu cầu CPU cho tất cả nhiệm vụ có độ ưu tiên cao hơn 𝜏 𝑖, cùng với thời gian thực hiện của tác vụ đầu tiên trong 𝜏 𝑖 tại thời điểm 𝑡.
Một số khái niệm
Hàm RBF mô tả tổng thời gian mà nhiệm vụ yêu cầu CPU thực hiện, là một hàm không liên tục, nhảy bậc 𝐶 𝑖 đơn vị thời gian sau mỗi chu kỳ 𝑇 𝑖 Richard đã định nghĩa hàm RBF xấp xỉ theo tham số chính xác 𝜀 (0 < 𝜀 < 1) cho trường hợp có hạn ràng buộc và độ trễ phát hành.
𝜀 − 1 Với 𝜀: tham số đầu vào (0 < 𝜀 < 1) (3.2)
Hình 3.1 Hàm RBF xấp xỉ đối với nhiệm vụ 𝜏 𝑖
Trong nghiên cứu, 𝛿 τ 𝑖 , 𝑡 đã được định nghĩa trong [2] cho trường hợp kỳ hạn ràng buộc, và trong [14] đã mở rộng hàm này cho hệ với kỳ hạn tùy ý Đề tài của tôi tập trung vào trường hợp kỳ hạn không ràng buộc và độ trễ phát hành, nhằm cải thiện phương pháp kiểm định Tôi đã định nghĩa một hàm RBF xấp xỉ mới như sau: Định nghĩa 1:
Với k - 1 bước đầu tiên, tại thời điểm k - 1 Ti - Ji, hàm RBF được áp dụng để tính toán tổng thời gian thực hiện yêu cầu của τi Sau đó, hàm này được xấp xỉ bằng một hàm tuyến tính với độ dốc tương ứng với hệ số sử dụng CPU của τi Điều này cho thấy RBF τi, t < δ τi, t, từ đó cải thiện thuật toán xấp xỉ cho hệ với kỳ hạn tùy ý đã được trình bày trong tài liệu [14].
Hàm tải công việc (Workload Function) thể hiện tổng thời gian mà CPU cần để thực hiện tất cả các nhiệm vụ có độ ưu tiên cao hơn τ𝑖, cùng với thời gian thực hiện của tác vụ đầu tiên của τ𝑖 trong khoảng thời gian t.
Hình 3.2 Hàm tải công việc cho tác vụ 𝜏 𝑖,𝑙
Dựa trên hàm 𝑊 𝑖,𝑙 𝑡 này, chúng ta định nghĩa giao điểm xấp xỉ 𝑅 𝑖,𝑙 cho mỗi tác vụ τ 𝑖,𝑙 theo mẫu sau: Định nghĩa 3:
R_i,l là giao điểm đầu tiên nơi nhiệm vụ τ_i được hoàn thành Nếu nhiệm vụ này hoàn thành đúng hạn, khả năng lập lịch của nó sẽ gần như được đảm bảo.
- Nhiệm vụ 𝜏 𝑖 có khả năng lập lịch xấp xỉ khi và chỉ khi với mọi 𝑙 > 0, 𝑅 𝑖,𝑙 ≤
- Một hệ nhiệm vụ 𝜏có khả năng lập lịch xấp xỉ khi và chỉ khi với mọi 𝑖 và 𝑙,
Khoảng thời gian bận rộn mức 𝑖 là khoảng thời gian chỉ thực hiện các nhiệm vụ có độ ưu tiên cao hơn hoặc bằng τ 𝑖 Thời gian này kết thúc tại τ 𝑖,𝑙, chỉ khi τ 𝑖,𝑙 là tác vụ đầu tiên hoàn thành sớm hơn thời gian kích hoạt.
Hàm tải công việc theo 𝑅𝐵𝐹
Hàm tải công việc theo 𝛿 tác vụ kế tiếp được định nghĩa dựa trên số tác vụ trong khoảng thời gian bận rộn mức 𝑖, ký hiệu là 𝑁 𝑖.
Cuối cùng, chúng ta định nghĩa tập các điểm lập lịch xấp xỉ nhƣ sau: Định nghĩa 6:
Gọi 𝑡 𝑎−1 và 𝑡 𝑎 (𝑡 𝑎−1 < 𝑡 𝑎 ) là 2 điểm liền kề trong 𝑆 𝑖 nếu không tồn tại 𝑡 ∈
𝑆 𝑖 thỏa mãn 𝑡 𝑎−1 < 𝑡 < 𝑡 𝑎 Khi đó, khoảng thời gian nguyên tố (primitive interval) đƣợc định nghĩa là khoảng thời gian giới hạn bởi hai điểm liền kề trong 𝑆 𝑖
Các kết quả ban đầu
Trong phần này, tôi sẽ giới thiệu một thuộc tính làm giảm số lƣợng các tác vụ cần kiểm tra trong mỗi khoảng thời gian nguyên tố nhƣ sau:
Bổ đề 1: ∀𝑖 ≤ 𝑛, ∀𝑡 𝑎−1 , 𝑡 𝑎 là 2 điểm lập lịch liền kề, 𝑡 𝑎−1 < 𝑡 𝑎 ∈ 𝑆 𝑖 , ∀𝑙 < ℎ ∈ 𝑁, nếu 𝑅 𝑖,𝑙 , 𝑅 𝑖,ℎ ∈ (𝑡 𝑎−1 , 𝑡 𝑎 ] thì 𝑅 𝑖,𝑙 − 𝑑 𝑖,𝑙 > 𝑅 𝑖,ℎ − 𝑑 𝑖,ℎ
Gọi M là tập các chỉ số của nhiệm vụ 𝑗 < 𝑖 mà hàm 𝑅𝐵𝐹 τ 𝑗 , 𝑡 trở thành hàm tuyến tính sau thời điểm 𝑡 𝑎−1 Nhƣ vậy, 𝑀 ⊆ 1, … , 𝑖 − 1 Khi đó, công thức hàm
𝑊 𝑖,𝑙 𝑡 trong khoảng (𝑡 𝑎−1 , 𝑡 𝑎 ] có thể viết lại nhƣ sau:
Chú ý rằng với 𝑡 ∈ (𝑡 𝑎−1 , 𝑡 𝑎 ] thì A, B đều là hằng số
Từ (*), ta có thể biểu diễn hàm 𝑊 𝑖,ℎ 𝑡 nhƣ sau:
Gọi 𝑅 𝑖,𝑙 là giao điểm mà tại đó hàm 𝑊 𝑖,𝑙 𝑡 = 𝑡 trong khoảng 𝑡 𝑎−1 , 𝑡 𝑎 , nghĩa là điểm mà CPU hoàn thành công việc Và 𝑅 𝑖,ℎ là giao điểm mà hàm 𝑊 𝑖,ℎ 𝑡 = 𝑡 trong khoảng 𝑡 𝑎−1 , 𝑡 𝑎
⟹ 𝑅 𝑖,𝑙 − 𝑑 𝑖,𝑙 > 𝑅 𝑖,ℎ − 𝑑 𝑖,ℎ (Bổ đề 1 đƣợc chứng minh)
Bổ đề 1 chỉ ra rằng trong một khoảng thời gian nguyên tố, tác vụ hoàn thành sớm hơn sẽ có nguy cơ trễ hẹn cao hơn Điều này có nghĩa là trong số tất cả các tác vụ, tác vụ hoàn thành đầu tiên là tác vụ có nguy cơ trễ hẹn cao nhất, trong khi tác vụ hoàn thành cuối cùng có nguy cơ trễ hẹn thấp nhất Định lý 2 khẳng định rằng với mọi chỉ số i nhỏ hơn hoặc bằng n, và với bất kỳ hai điểm lập lịch liền kề, điều này vẫn giữ nguyên.
Trước tiên, tôi chứng minh công thức (a):
Ta có 𝑅 𝑖,𝑙 ≤ 𝑑 𝑖,𝑙 Theo Bổ đề 1 ta có 𝑅 𝑖,𝑙 > 𝑅 𝑖,ℎ − 𝑑 𝑖,ℎ + 𝑑 𝑖,𝑙
Tiếp theo, tôi sẽ chứng minh công thức (b):
Ta có 𝑅 𝑖,ℎ > 𝑟 𝑖,ℎ+1 Theo Bổ đề 1 ta có 𝑅 𝑖,𝑙 + 𝑑 𝑖,ℎ − 𝑑 𝑖,𝑙 > 𝑅 𝑖,ℎ
Từ (1) và (2) ⟹ Định lý 2 đƣợc chứng minh
Hệ quả 1: Đối với mọi điểm 𝑡 𝑎−1 và 𝑡 𝑎, là hai điểm liên tiếp trong tập hợp 𝑆 𝑖, chỉ số của tác vụ đầu tiên và chỉ số của tác vụ cuối cùng hoàn thành trong khoảng thời gian (𝑡 𝑎−1 , 𝑡 𝑎 ] được định nghĩa một cách rõ ràng.
Từ những chỉ số này, các bất đẳng thức sau luôn đƣợc thỏa mãn:
Hình 3.3 Các tác vụ hoàn thành trong khoảng thời gian nguyên tố
Trong mỗi khoảng thời gian nguyên tố (𝑡 𝑎−1 , 𝑡 𝑎 ], số lượng tác vụ hoàn thành có thể được biểu diễn bằng một số giả đa thức Điều này dựa trên các hệ quả đã được chứng minh.
Trong quá trình lập lịch, tác vụ hoàn thành đầu tiên thường có nguy cơ lỗi kỳ hạn cao nhất, trong khi tác vụ hoàn thành cuối cùng lại có khả năng lớn nhất để kết thúc khoảng thời gian bận rộn Do đó, trong mỗi khoảng thời gian nguyên tố (𝑡 𝑎−1 , 𝑡 𝑎 ], việc kiểm tra thời điểm kết thúc của tác vụ đầu tiên (𝑅 𝑖,𝑚𝑖𝑛 ) có hoàn thành đúng hạn hay không là cần thiết để đánh giá khả năng lập lịch cho tất cả các tác vụ trong khoảng đó Tương tự, để xác định xem khoảng thời gian bận rộn đã kết thúc hay chưa, chỉ cần kiểm tra tác vụ cuối cùng hoàn thành trong khoảng 𝑡 𝑎−1 , 𝑡 𝑎 : nếu tác vụ này không lấn sang tác vụ kế tiếp, khoảng thời gian bận rộn đã kết thúc; ngược lại, nếu có sự lấn sang, khoảng thời gian đó vẫn chưa kết thúc.
Hàm dưới đây được thiết kế để xác định chỉ số của tác vụ đầu tiên và tác vụ cuối cùng hoàn thành trong khoảng thời gian nguyên tố Định nghĩa 7 sẽ cung cấp một phương pháp rõ ràng để thực hiện điều này.
Thực tế, 𝐼 𝑖 𝑡 biểu thị chỉ số của tác vụ đƣợc phát hành gần nhất mà hoàn thành ở thời gian t, nhƣ trong bổ đề sau đây:
Từ (2) và (3) ⟹ Bổ đề 2 đƣợc chứng minh.
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 nhiệm vụ thời gian thực τ 𝑖 có thể được lập lịch nếu nó hoàn thành đúng hạn và trong 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 𝑗 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 then /* Tồn tại 𝜏 𝑖,𝑙 hoàn thành trong (𝑡 𝑎−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 t a-1 là điểm liền kề trước t a trong 𝑆 𝑖 ;
/* Kiểm tra khoảng bận rộn đã kết thúc hay chưa */
Thuật toán nhận đầu vào các tham số của hệ 𝜏 và chỉ số 𝑖 của nhiệm vụ cần phân tích, từ đó xây dựng tập điểm lập lịch 𝑆 𝑖 Tại mỗi điểm 𝑡 𝑎 ∈ 𝑆 𝑖 − 0 − ∞, ta kiểm tra xem có tác vụ nào hoàn thành trong khoảng (𝑡 𝑎−1 , 𝑡 𝑎 ] hay không Nếu có, tiếp tục xem 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, 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 không đáp ứng kỳ hạn hoặc khoảng thời gian bận rộn đã kết thúc, thuật toán dừng lại 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 chỉ ra rằng để xác định khả năng lập lịch cho tác vụ đầu tiên trong khoảng thời gian (𝑡 𝑎−1 , 𝑡 𝑎 ], ta cần xem xét kỳ hạn 𝑑 𝑖,𝑚𝑖𝑛 Nếu 𝑑 𝑖,𝑚𝑖𝑛 ≤ 𝑡 𝑎−1, điều này có nghĩa là nếu trong khoảng thời gian này tồn tại điểm cắt (điểm nhiệm vụ hoàn thành), thì điểm đó sẽ xuất hiện sau 𝑑 𝑖,𝑚𝑖𝑛.
Khi 𝑊 𝑖,𝑚𝑖𝑛 𝑑 𝑖,𝑚𝑖𝑛 > 𝑑 𝑖,𝑚𝑖𝑛, điểm cắt sẽ nằm sau 𝑑 𝑖,𝑚𝑖𝑛, dẫn đến việc tác vụ đầu tiên không thể lập lịch trong khoảng này Để xác định xem khoảng bận rộn mức 𝑖 đã kết thúc trong khoảng (𝑡 𝑎−1 , 𝑡 𝑎 ] hay chưa, ta chỉ cần xem xét thời điểm hoàn thành của tác vụ cuối cùng trong khoảng đó Nếu điều kiện 𝑟 𝑖,𝑚𝑎𝑥 +1 ≥ 𝑡 𝑎 được thỏa mãn, thì trong khoảng (𝑡 𝑎−1 , 𝑡 𝑎 ] sẽ tồn tại điểm cắt.
Điểm cắt sẽ nằm trước 𝑟 𝑖,𝑚𝑎𝑥 +1 Trong trường hợp 𝑊 𝑖,𝑚𝑎𝑥 𝑟 𝑖,𝑚𝑎𝑥 +1 ≤ 𝑟 𝑖,𝑚𝑎𝑥 +1, có thể dễ dàng nhận thấy rằng điểm cắt cũng nằm trước 𝑟 𝑖,𝑚𝑎𝑥 +1 Vì vậy, trong cả hai trường hợp, nếu có điểm cắt, nó đều nằm trước 𝑟 𝑖,𝑚𝑎𝑥 +1, cho thấy 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
Nếu khoảng bận rộn mức 𝑖 chưa kết thúc, ta tiếp tục xem 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 đó, chỉ số của tác vụ đầu tiên hoàn thành trong khoảng thời gian này là ℎ = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 Do đó, 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ó thể được lập lịch hay 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
Trong bài viết này, tôi sẽ trình bày một ví dụ áp dụng thuật toán để phân tích khả năng lập lịch của hệ thống thời gian thực với độ ưu tiên cố định, không có kỳ hạn ràng buộc và có độ trễ phát hành Các thông số của hệ thống được nêu rõ 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
𝜏 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:
⟹ 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]
⟹ 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,
- 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
= 16.8 < 45 => 𝜏 2 có khả năng lập lịch
⟹ 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]
⟹ 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,
⟹ Tồn tại tác vụ 𝜏 3,𝑙 hoàn thành trong khoảng thời gian nguyên tố (18, 95]
Khoảng bận rộn đã kết thúc, cho phép 𝜏 3 lập lịch trong khoảng nguyên tố (18, 95] Do đó, chúng ta dừng thuật toán tại đây và kết luận rằng 𝜏 3 có khả năng lập lịch Tương tự, các nhiệm vụ 𝜏 4 và 𝜏 5 cũng có khả năng lập lịch.
Tính đúng đắn của thuật toán
Trong phần này, trước tiên tôi sẽ chứng minh tính đúng đắn của thuật toán
Approx(𝝉, 𝒊, 𝒌) Để thực hiện điều này, tôi quy ƣớc 𝑚𝑖𝑛 𝑎 , 𝑚𝑎𝑥 𝑎 , 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 lần lượt là giá trị của 𝑚𝑖𝑛, 𝑚𝑎𝑥, 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 sau lần lặp thứ a và trước lần lặp thứ a + 1 của vòng foreach trong Approx
Bổ đề 3: Sau mỗi lần lặp của vòng foreach, nếu thuật toán chƣa kết luận (return (f)) thì:
- τ𝑖,𝑙𝑎𝑠𝑡 _𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 là tác vụ cuối cùng của τ 𝑖 hoàn thành trong khoảng (0, 𝑡 𝑎 ]
- ∀𝑙 ≤ 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 , 𝑅 > 𝑟 𝑖,𝑙 𝑖,𝑙+1 Tôi sẽ chứng minh 2 phát biểu trên bằng phương pháp quy nạp
+ Bước 1: t 0 = last_active 0 = 0 (giá trị khởi tạo trước vòng lặp) Do không có tác vụ nào hoàn thành trước thời điểm t 0 , 2 phát biểu trên đúng
+ Bước 2: giả sử 2 phát biểu trên đúng từ vòng lặp đầu tiên cho tới vòng lặp thứ
𝑎 − 1, tôi sẽ chứng minh nó đúng cho vòng lặp thứ a
Theo bổ đề 2, ∀𝑙 ∈ 𝑁, 𝑙 > 𝐼 𝑖 𝑡 𝑎 𝑡ℎì 𝑊 𝑖,𝑙 𝑡 𝑎 > 𝑡 𝑎 Tương tự, 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎−1 là chỉ số của tác vụ cuối cùng hoàn thành trong khoảng (0, 𝑡 𝑎−1 ]
Từ (a) và (b), mặt khác 𝑊 𝑖,𝑙 𝑡 lại là hàm tuyến tính không giảm
⟹ ∀𝑙 > 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 , ∀𝑡 ≤ 𝑡 𝑎 , 𝑊 𝑖,𝑙 𝑡 > 𝑡 Điều này chứng tỏ các tác vụ sau τ𝑖,𝑙𝑎𝑠𝑡 _𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 không hoàn thành trước 𝑡 𝑎 (1)
⟹ 2 phát biểu đƣợc chứng minh
⟹ 𝑚𝑖𝑛 𝑎 = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎−1 + 1; 𝑚𝑎𝑥 𝑎 = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 = 𝐼 𝑖 𝑡 𝑎 Theo giả thiết, τ𝑖,𝑙𝑎𝑠𝑡 _𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 −1 là tác vụ cuối cùng hoàn thành tại 𝑡 𝑎−1
⟹ ∀𝑙 ∈ 𝑚𝑖𝑛 𝑎 , 𝑚𝑎𝑥 𝑎 , ∀𝑡 ≤ 𝑡 𝑎−1 , 𝑊 𝑖,𝑙 𝑡 > 𝑡 (c) Mặt khác, theo bổ đề 2, ∀𝑙 ∈ 𝑚𝑖𝑛 𝑎 , 𝑚𝑎𝑥 𝑎 , 𝑊 𝑖,𝑙 𝑡 𝑎 ≤ 𝑡 𝑎 (d)
Từ (c) và (d) ⟹ ∀𝑙 ∈ 𝑚𝑖𝑛 𝑎 , 𝑚𝑎𝑥 𝑎 , ∃! 𝑡 𝑖,𝑙 ∈ 𝑡 𝑎−1 , 𝑡 𝑎 để 𝑊 𝑖,𝑙 𝑡 𝑖,𝑙 = 𝑡 𝑖,𝑙 Nhƣ vậy,
∀𝑙 ∈ 𝑚𝑖𝑛 𝑎 , 𝑚𝑎𝑥 𝑎 tồn tại 𝑡 𝑖,𝑙 là giao điểm đầu tiên của hàm 𝑊 𝑖,𝑙 𝑡 và đường 𝑦 = 𝑡 mà tại đó 𝜏 𝑖,𝑙 hoàn thành nhiệm vụ, giao điểm này chính là 𝑅 𝑖,𝑙
Từ (1), (2), mặt khác 𝑚𝑎𝑥 𝑎 = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 ⟹τ𝑖,𝑙𝑎𝑠𝑡 _𝑎𝑐𝑡𝑖𝑣𝑒 𝑎 là tác vụ cuối cùng hoàn thành trước thời điểm 𝑡 𝑎 (Phát biểu 1 được chứng minh) (3)
Theo giả thiết, Approx chƣa trả về f ⟹ thuật toán chƣa trả về false Do đó, ta có: 𝑊 𝑖,𝑚𝑎𝑥 𝑎 𝑟 𝑖,𝑚𝑎𝑥 𝑎 +1 > 𝑟 𝑖,𝑚𝑎𝑥 𝑎 +1 và (𝑟 𝑖,𝑚𝑎𝑥 𝑎 +1 < 𝑡 𝑎 )
Ngoài ra, theo giả thiết đệ quy ta có: ∀𝑙 ≤ 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎−1 , 𝑅 𝑖,𝑙 > 𝑟 𝑖,𝑙+1 Mà 𝑚𝑖𝑛 𝑎 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 𝑎−1 ⟹ ∀𝑙 ≤ 𝑚𝑖𝑛 𝑎 , 𝑅 𝑖,𝑙 > 𝑟 𝑖,𝑙+1 (f)
Từ (e) và (f) ⟹∀𝑙 ≤ 𝑚𝑎𝑥 𝑎 , 𝑅 𝑖,𝑙 > 𝑟 𝑖,𝑙+1 (Phát biểu 2 đƣợc chứng minh chứng minh)
Từ (3) và (4) ⟹Bổ đề 3 đƣợc chứng minh
Để chứng minh tính đúng đắn của thuật toán trong ngữ cảnh xấp xỉ, tôi sẽ sử dụng Định lý 3, trong đó khẳng định rằng thuật toán Approx(𝝉, 𝒊, 𝒌) có khả năng lập lịch 𝜏 𝑖 khi và chỉ khi một số điều kiện nhất định được thỏa mãn.
Thuật toán Approx(𝝉, 𝒊, 𝒌) kết luận 𝜏 𝑖 không lập lịch đƣợc khi và chỉ khi ∃𝑙 ≤ 𝑁 𝑖 𝑙 > 0 , ∀𝑡 ∈ 𝑟 𝑖,𝑙 , 𝑑 𝑖,𝑙 , 𝑊 𝑖,𝑙 𝑡 > 𝑡
Chúng ta xét 2 trường hợp:
Trường hợp 1: Thuật toán return ngay trong vòng lặp foreach và chưa cần tính chỉ số h ở lệnh sau vòng foreach
Giả sử thuật toán đưa ra kết luận tại vòng lặp thứ a, điều này có nghĩa là có ít nhất một tác vụ đã hoàn thành trong khoảng thời gian (𝑡𝑎−1 , 𝑡𝑎] Trong khoảng thời gian này, tác vụ hoàn thành đầu tiên được gọi là 𝑚𝑖𝑛 𝑎 và tác vụ hoàn thành cuối cùng được gọi là 𝑚𝑎𝑥 𝑎.
- Nếu thuật toán kết luận 𝜏 𝑖 lập lịch đƣợc thì 𝑊 𝑖,𝑚𝑖𝑛 𝑎 𝑑 𝑖,𝑚𝑖𝑛 𝑎 ≤ 𝑑 𝑖,𝑚𝑖𝑛 𝑎 và 𝑑 𝑖,𝑚𝑖𝑛 𝑎 >
Từ định nghĩa 𝑁 𝑖 , ta có 𝑚𝑖𝑛 𝑎 ≤ 𝑁 𝑖 ≤ 𝑚𝑎𝑥 𝑎
Mặt khác, 𝑚𝑖𝑛 𝑎 − 1 chính là chỉ số tác vụ cuối cùng hoàn thành ở thời điểm
𝑡 𝑎−1 , do đó theo bổ đề 2 ta có ∀𝑙 ≤ 𝑚𝑖𝑛 𝑎 − 1, ∀𝑡 ≤ 𝑡 𝑎−1 , 𝑊 𝑖,𝑙 (𝑡) ≤ 𝑡 (b)
- Nếu thuật toán kết luận 𝜏 𝑖 không lập lịch đƣợc thì 𝑊 𝑖,𝑚𝑖𝑛 𝑎 𝑑 𝑖,𝑚𝑖𝑛 𝑎 > 𝑑 𝑖,𝑚𝑖𝑛 𝑎 hoặc
⟹ ∃𝑙 ≤ 𝑁 𝑖 𝑙 > 0 , ∀𝑡 ∈ 𝑟 𝑖,𝑙 , 𝑑 𝑖,𝑙 , 𝑊 𝑖,𝑙 𝑡 > 𝑡 Như vậy, định lý 3 đã được chứng minh trong trường hợp này (1)
Trường hợp 2: Sau vòng lặp foreach, thuật toán chưa trả về kết quả Như vậy,
𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 chính là chỉ số tác vụ cuối cùng hoàn thành trong giai đoạn trước đó và
ℎ = 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 + 1 chính là chỉ số tác vụ đầu tiên hoàn thành trong giai đoạn 2
Vì khoảng bận rộn chƣa kết thúc nên ta có 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 < 𝑁 𝑖 ⇔ ℎ ≤ 𝑁 𝑖
- Nếu thuật toán kết luận 𝜏 𝑖 lập lịch đƣợc thì 𝑊 𝑖,ℎ 𝑑 𝑖,ℎ ≤ 𝑑 𝑖,ℎ và 𝑑 𝑖,ℎ > 𝑡 𝑚𝑎𝑥
Vì ℎ ≤ 𝑁 𝑖 nên theo định lý 2 ta có ∀𝑙 ∈ ℎ, 𝑁 𝑖 𝑡ℎì 𝑅 𝑖,𝑙 ≤ 𝑑 𝑖,𝑙
Mặt khác, 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒 là chỉ số tác vụ cuối cùng hoàn thành trong giai đoạn 1, do đó theo bổ đề 2 ta có ∀𝑙 ≤ 𝑙𝑎𝑠𝑡_𝑎𝑐𝑡𝑖𝑣𝑒, ∀𝑡 ≤ 𝑡 𝑚𝑎𝑥 𝑡ℎì 𝑊 𝑖,𝑙 (𝑡) ≤ 𝑡
Từ (c) và (d)⟹ ∀ 𝑙 ≤ 𝑁 𝑖 ∶ ∃𝑡 ∈ 𝑟 𝑖,𝑙 , 𝑑 𝑖,𝑙 , 𝑊 𝑖,𝑙 (𝑡) ≤ 𝑡 (điều phải chứng minh)
- Nếu thuật toán kết luận 𝜏 𝑖 không lập lịch đƣợc thì 𝑊 𝑖,ℎ 𝑑 𝑖,ℎ > 𝑑 𝑖,ℎ
⟹ 𝑅 𝑖,ℎ > 𝑑 𝑖,ℎ , nghĩa là giao điểm 𝑅 𝑖,ℎ nằm sau kỳ hạn 𝑑 𝑖,ℎ
Như vậy, định lý 3 đã được chứng minh trong trường hợp này (2)
Từ (1) và (2) ⟹ Định lý 3 đƣợc chứng minh
- Trường hợp 2: ∀𝑡 ∈ 𝑁, 𝑡 > 𝑘 − 1 𝑇 𝑖 − 𝐽 𝑖 Trước tiên tôi chứng minh đẳng thức sau đây: ∀𝑡 ∈ 𝑁, 𝑡+𝐽 𝑖
𝑇 𝑖 (2) Để chứng minh đẳng thức (2), tôi sẽ sử dụng quy tắc bất đẳng thức sau: ∀𝑥, 𝑦, 𝑧 là các số nguyên thì 𝑥 = 𝑦 khi và chỉ khi ∀𝑧, 𝑧 ≤ 𝑥 ⇔ 𝑧 ≤ 𝑦
Gọi z là số nguyên tùy ý thỏa mãn 𝑧 ≤ 𝑡+𝐽 𝑖
Vì 𝑧𝑇 𝑖 và 𝑡 + 𝑇 𝑖 + 𝐽 𝑖 là các số nguyên ⟹ 𝑧𝑇 𝑖 ≤ 𝑡 + 𝑇 𝑖 + 𝐽 𝑖 − 1 ⟹ 𝑧 ≤ 𝑡+𝑇 𝑖 𝑇 +𝐽 𝑖 −1
Từ (3) và (4) ⟹ Đẳng thức (2) đƣợc chứng minh
Từ (1) và (5) ⟹ Bổ đề 4 đƣợc chứng minh.
Từ Bổ đề 4, ta có ∀𝑗, 𝑙, 𝑡 ∈ 𝑁, 𝑅𝐵𝐹 τ 𝑗 , 𝑡 ≤ 𝑅𝐵𝐹 (τ 𝑗 , 𝑡)
⟹ ∀𝑖, 𝑙, 𝑡 ∈ 𝑁, 𝑊 𝑖,𝑙 𝑡 ≤ 𝑊 𝑖,𝑙 (𝑡) (Bổ đề 5 đƣợc chứng minh)
𝑇 𝑖 𝐶 𝑖 = 𝑘 − 1 𝐶 𝑖 Mặt khác, RBF là hàm nhảy bậc, mỗi bước tăng 𝐶 𝑖 đơn vị thời gian
Từ (1) và (3) ⟹ ∀𝑡, 𝑅𝐵𝐹 τ 𝑖 , 𝑡 < 𝑘+1 𝑘 𝑅𝐵𝐹(τ 𝑖 , 𝑡) (Bổ đề 6 đƣợc chứng minh)
Từ bổ đề 6, ta có ∀𝑡, 𝑗, 𝑙, 𝑅𝐵𝐹 τ 𝑗 , 𝑡 < 𝑘+1
𝑘 𝑊 𝑖,𝑙 (𝑡) (Bổ đề 7 đƣợc chứng minh) Định lý 4:
1 Nếu Approx(𝝉, 𝒊, 𝒌) kết luận τ 𝑖 lập lịch đƣợc thì τ 𝑖 có khả năng lập lịch chính xác
2 Ngƣợc lại, τ 𝑖 không có khả năng lập lịch trên bộ xử lý có công suất 1 − 𝜀
1 Ta có Approx(𝝉, 𝒊, 𝒌) kết luận τ 𝑖 lập lịch đƣợc
⇔ ∀ 𝑙 ≤ 𝑁 𝑖 , ∃𝑡 ∈ 𝑟 𝑖,𝑙 , 𝑑 𝑖,𝑙 : 𝑊 𝑖,𝑙 (𝑡) ≤ 𝑡 (Định lý 3) Mặt khác, ∀𝑡, 𝑊 𝑖,𝑙 𝑡 ≤ 𝑊 𝑖,𝑙 (𝑡) (Bổ đề 5)
- Với 𝑅 𝑖,𝑙 ∈ 𝑁 ⟹ 𝑊 𝑖,𝑙 𝑅 𝑖,𝑙 ≤ 𝑊 𝑖,𝑙 𝑅 𝑖,𝑙 = 𝑡 (Bổ đề 5) Trong [6] đã chứng minh rằng ∃𝑡 ′ ≤ 𝑅 𝑖,𝑙 , 𝑊 𝑖,𝑙 𝑡 ′ = 𝑡 ′
- Với 𝑅 𝑖,𝑙 ∉ 𝑁 ⟹ 𝑅 𝑖,𝑙 không phải là 1 điểm lập lịch trong 𝑆 𝑖 ⟹tồn tại 2 điểm lập lịch liên tiếp 𝑡 1 , 𝑡 2 ∈ 𝑆 𝑖 mà 𝑡 1 < 𝑅 𝑖,𝑙 < 𝑡 2
Ta có 𝑊 𝑖,𝑙 𝑡 là hàm tuyến tính trong (𝑡 1 , 𝑡 2 ], 𝑅 𝑖,𝑙 là giao điểm mà tại đó
𝑡 3 ⟹ 𝑊 𝑖,𝑙 𝑡 3 < 𝑡 3 (Bổ đề 5) Trong [6] đã chứng minh rằng ∃𝑡 ′ 𝑟 𝑖,𝑙+1 ⟹ ∀𝑙 < 𝑁 𝑖 , 𝑅 𝑖,𝑙 > 𝑟 𝑖,𝑙+1 ⟹ 𝑁 𝑖 ≥ 𝑁 𝑖 (b)
Từ (a) và (b) ⟹ ∀ 𝑙 ≤ 𝑁 𝑖 , ∃𝑡 ∈ 𝑟 𝑖,𝑙 , 𝑑 𝑖,𝑙 : 𝑊 𝑖,𝑙 (𝑡) ≤ 𝑡 Nhƣ vậy, τ 𝑖 có khả năng lập lịch chính xác (Đinh lý 1) (1)
2 Ta có Approx(𝝉, 𝒊, 𝒌) kết luận 𝜏 𝑖 không có khả năng lập lịch
⟹ 𝜏 𝑖,𝑙 không có khả năng lập lịch trên bộ xử lý công xuất 1 − 𝜀 (định lý 1) (2)
Từ (1) và (2) ⟹ Định lý 4 đƣợc chứng minh.
THỰC NGHIỆM VÀ ĐÁNH GIÁ HIỆU QUẢ CỦA BIỂU ĐỒ XẤP XỈ
Phương pháp thực nghiệm
Trong bài viết này, tôi sẽ trình bày các thí nghiệm mà tôi đã thực hiện để đánh giá hiệu quả của biểu đồ xấp xỉ so với các phương pháp kiểm định đã được công nhận Để đảm bảo chất lượng của chương trình mô phỏng, các tham số đầu vào của hệ nhiệm vụ được tạo ra một cách ngẫu nhiên và độc lập, nhằm đạt được kết quả chính xác và khách quan Đầu tiên, hệ số sử dụng CPU (U) của hệ thống thay đổi từ 0.1 đến 0.9, với mỗi lần tăng 0.1 đơn vị Đối với mỗi giá trị của U, tôi tạo ra một hệ các nhiệm vụ với số lượng thay đổi.
Bài viết mô tả quy trình tạo ra một hệ thống nhiệm vụ ngẫu nhiên với số lượng từ 5 đến 50, tăng dần theo từng bước 5 nhiệm vụ Sử dụng thuật toán UFitting, các giá trị 𝑈 𝑖 (1 ≤ 𝑖 ≤ 𝑛) được sinh ra ngẫu nhiên, trong khi chu kỳ nhiệm vụ (𝑇 𝑖) được tạo trong khoảng từ 1 đến 10,000 Thời gian thực hiện nhiệm vụ được tính toán bằng công thức 𝐶 𝑖 = 𝑈 𝑖 ∗ 𝑇 𝑖, đảm bảo rằng các nhiệm vụ có kỳ hạn không ràng buộc Kỳ hạn tương đối (𝐷 𝑖) cũng được sinh ngẫu nhiên, trong khi độ trễ phát hành 𝐽 𝑖 được tính toán dựa trên một hằng số 𝑟𝑎𝑡𝑖𝑜𝐽 Các tham số của hệ thống sau khi được tạo ra sẽ được làm tròn thành số nguyên gần nhất, và mỗi thí nghiệm được lặp lại 300 lần để đảm bảo kết quả thống kê chính xác và khách quan Để sinh ngẫu nhiên hệ số sử dụng CPU cho các nhiệm vụ thời gian thực, có thể áp dụng một số thuật toán như UUniFast, UUniSort, UUniform, và UScaling, trong đó thuật toán UFitting được sử dụng để sinh ra các giá trị 𝑈 𝑖.
Thuật toán: function vectU = UFitting(𝑛, 𝑈 ) upLimit = 𝑈; for 𝑖 = 1; 𝑛 − 1, vectU(i) = rand * upLimit; upLimit = upLimit – vectU(i); end vectU(n) = upLimit;
Trong thuật toán này, giá trị ban đầu của upLimit được xác định là 𝑈, trong đó 𝑈 biểu thị hệ số sử dụng CPU cho tập n nhiệm vụ, với 𝑈 nằm trong khoảng (0,1] Hệ số sử dụng CPU cho nhiệm vụ thứ nhất (𝑈 1) được tạo ngẫu nhiên trong khoảng từ 0 đến 𝑈 Tiếp theo, hệ số 𝑈 2 cũng được tạo ngẫu nhiên nhưng trong khoảng từ 0 đến 𝑈 - 𝑈 1.
Trong quá trình sinh ngẫu nhiên các giá trị 𝑈 𝑖, giá trị 𝑈 3 sẽ được xác định trong khoảng [0, 𝑈 − 𝑈 1 − 𝑈 2] Tiếp tục thực hiện cho đến khi xác định được 𝑈 𝑛 theo công thức 𝑈 𝑛 = 𝑈 − ∑_{𝑖=1}^{𝑛−1} 𝑈 𝑖 Thuật toán này có độ phức tạp O(𝑛), giúp tối ưu hóa hệ số sử dụng CPU cho các nhiệm vụ trong hệ thống.
Phương pháp đánh giá
Để đánh giá hiệu quả của biểu đồ xấp xỉ, tôi sẽ so sánh kết quả đạt được từ phương pháp của mình với kết quả cận trên tuyến tính tốt nhất hiện nay theo đánh giá của Davis trong tài liệu [9].
Trong nghiên cứu của Davis [9], ông đã đưa ra cận trên cho thời gian phản ứng đối với các nhiệm vụ có độ ưu tiên cố định, cho thấy rằng kết quả này chính xác với các nhiệm vụ không có kỳ hạn ràng buộc và có độ trễ phát hành Để so sánh hai kết quả, tôi sử dụng tỉ lệ chấp nhận (acceptance ratio), tức là tỷ lệ giữa số nhiệm vụ được xác định là lập lịch được bằng biểu đồ xấp xỉ so với tổng số nhiệm vụ lập lịch chính xác Tỉ lệ chấp nhận càng cao thì độ chính xác của biểu đồ xấp xỉ càng gần với phương pháp chính xác Kết quả của tôi được ký hiệu là Minus, biểu diễn bằng đường màu đỏ, trong khi kết quả của Davis được ký hiệu là SupD, biểu diễn bằng đường màu xanh.
Kết quả thực nghiệm
Trong phần này, tôi sẽ trình bày kết quả thực nghiệm và đánh giá hiệu quả của biểu đồ xấp xỉ dựa trên tỷ lệ chấp nhận.
Hình 4.1 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo số nhiệm vụ của hệ
Trong hình 4.1, tôi so sánh tỉ lệ chấp nhận của thuật toán đề xuất với tỉ lệ chấp nhận của SupD Tỉ lệ chấp nhận của SupD cao (gần 90%) khi số nhiệm vụ ít, nhưng giảm dần khi số nhiệm vụ tăng Ngược lại, phương pháp biểu đồ xấp xỉ luôn cho tỉ lệ chấp nhận cao hơn SupD từ 7% đến 10% Khi số nhiệm vụ vượt quá 10, tỉ lệ chấp nhận của thuật toán đề xuất gần bằng phương pháp kiểm định chính xác và có xu hướng tăng cao và ổn định.
Hình 4.2 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo hệ số sử dụng CPU
Trong hình 4.2, đường màu đỏ đại diện cho kết quả của biểu đồ xấp xỉ, trong khi đường màu xanh thể hiện kết quả của phương pháp SupD Khi hệ số sử dụng CPU tăng, cả hai phương pháp đều cho thấy sự giảm dần về độ chính xác Tuy nhiên, kết quả của biểu đồ xấp xỉ luôn cao hơn so với SupD, với độ chính xác đáng kể từ 80% đến 100%.
Một tham số quan trọng ảnh hưởng đến kết quả của phương pháp kiểm định là 𝑟𝑎𝑡𝑖𝑜𝐽, đóng vai trò trong việc tạo ra độ trễ phát hành 𝐽 𝑖 Qua thực nghiệm với các giá trị 𝑟𝑎𝑡𝑖𝑜𝐽 từ 1 đến 9, tôi đã thu được những kết quả đáng chú ý.
Hệ số sử dụng CPU
Hình 4.3 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất dựa trên ratioJ
Hình 4.3 cho thấy tỉ lệ chấp nhận của SupD phụ thuộc vào 𝑟𝑎𝑡𝑖𝑜𝐽 không đồng đều Đặc biệt, với 𝑟𝑎𝑡𝑖𝑜𝐽 bằng 6 và 7, tỉ lệ chấp nhận khá thấp, chỉ dưới 82% Ngược lại, tỉ lệ chấp nhận theo phương pháp biểu đồ xấp xỉ của tôi lại thể hiện sự đồng đều và cao hơn đáng kể so với tỉ lệ này.
Để so sánh tỷ lệ chấp nhận giữa thuật toán đề xuất và thuật toán của Davis, tôi sẽ thống kê các kết quả thực nghiệm dựa trên hai tham số: số nhiệm vụ của hệ (n) và số bước chính xác cần xét (k) Phân tích này sẽ làm rõ mối quan hệ giữa các tham số và ảnh hưởng của chúng đến kết quả của thuật toán.
Hình 4.4 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo số nhiệm vụ của hệ và k
Dựa vào biểu đồ 4.4, khi số nhiệm vụ của hệ thống tăng lên, tỷ lệ chấp nhận theo phương pháp biểu đồ xấp xỉ gần đạt 100% Tỷ lệ này có xu hướng tăng đồng biến với số bước chính xác cần xem xét k trong một số lượng nhiệm vụ cụ thể.
SupD k=3 k=4 k=5 đó, tỉ lệ chấp nhận của SupD hầu như không thay đổi và luôn dưới 80% (với số nhiệm vụ của hệ lớn hơn 20)
Hình 4.5 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo hệ số sử dụng CPU và k
Biểu đồ 4.5 cho thấy tỉ lệ chấp nhận của SupD theo hệ số sử dụng CPU, với cột màu xanh dương thể hiện xu hướng giảm dần khi hệ số này tăng lên, đặc biệt khi đạt 0.9, tỉ lệ chấp nhận giảm xuống dưới 60% Mặc dù vậy, phương pháp biểu đồ xấp xỉ cho thấy tỉ lệ chấp nhận giảm không đáng kể Khi hệ số sử dụng CPU (U) lớn hơn 0.2, tỉ lệ chấp nhận luôn cao hơn tỉ lệ của SupD và tăng đồng biến với số bước chính xác cần xét k.