Nếu như một tác vụ không có chu kỳ liên quan tới một sự kiện quan trọng có thể được đặc trưng bởi một thời điểm giữa các lần đến nhỏ nhất (minimum inter- arrival time) giữa các thể hiện liên tiếp, tác vụ không có chu kỳ có thể được ánh xạn thành một tác vụ có chu kỳ và lập lịch chung với tập tác vụ có chu kỳ. Tuy nhiên không phải luôn có thể gán trướccận tỷ lệ đến lớn nhất của một số sự kiện. Hơn nữa, ánh xạ các tác vụ không có chu kỳ thành các tác vụ có chu kỳ có thể đảm bảo các ràng buộc thời gian của tất cả các tác vụ nhưng gây nên kết quả sử dụng bộ xử lý thấp. Nếu như tỉ lệ đến lớn nhất của một số sự kiện không thể được gán cận trước, có thể tiến hành sự đảm bảo online của mỗi yêu cầu không có chu kỳ. Mỗi lần một tác vụ không có chu kỳ đi vào hệ thống, một kiểm tra chấp nhận được thực thi để xác minh xem yêu cầu đó có thể được lập lịch với thời hạn của nó mà không làm hỏng các thời hạn của các tác vụ có chu kỳ không và cả những tác vụ không có chu kỳ mà đã chấp nhận trước đó hay không. Nếu như kiểm tra trả lại kết quả “âm tính” thì yêu cầu không có chu kỳ bị từ chối.
Trong phần tiếp theo chúng ta nghiên cứu hai kỹ thuật kiểm tra chấp nhận chính cho các tác vụ không có chu kỳ. Chú ý rằng 2 chính sách này luôn đảm bảo các thời hạn của tác vụ có chu kỳ: trong tình huống quá tải, tác vụ bị từ chối sẽ trở thành một tác vụ không có chu kỳ mới đến. Sự từ chối giả định rằng hệ thời gian thực là một hệ phân tán và trong đó lập lịch phân tán cố gắng gán tác vụ bị từ chối cho một bộ xử lý không quá tải. Spring là một hệ điều hành thời gian thực phân tán trong đó những đảm bảo động như thế và lập lịch phân tán được sử dụng. Kỹ thuật thứ hai là tối ưu, nghĩa là một tác vụ không có chu kỳ có thể được đảm bảo không bao giờ bị từ chối.
Lập lịch background của các tác vụ không có chu kỳ
Nguyên tắc của kỹ thuật này gồm lập lịch các tác vụ không có chu kỳ trong background khi mà không có tác vụ có chu kỳ nào sẵn sàng thực thi theo thuật toán
nghiêm ngặt của các thời hạn. Vậy nên mỗi lần một yêu cầu không có chu kỳ mới đi vào hệ thống, một kiểm tra chấp nhận onlien được thực thi như sau:
• Thuật toán kiểm tra chấp nhận tính toán lượng thời gian xử lý nhàn dỗi giữa thời gian đến của tác vụ không có chu kỳ và thời hạn của nó. Lượng thời gian nhàn dỗi này phải ít nhất bằng thời gian tính toán được yêu cầu bởi tác vụ không có chu kỳ mới đến.
• Nếu như có đủ thời gian nhàn dỗi để thực thi tác vụ không có chu kỳ trước thời hạn của nó, kiểm tra chấp nhận xác minh rằng việc thực thi tác vụ mới không phá hoại sự đảm bảo các tác vụ trước đó đã được chấp nhận mà chúng có thời hạn sau và chưa được hoàn thành.
Nếu như không có đủ thời gian nhàn dỗi hay nếu như chấp nhận tác vụ mới sẽ phá hỏng sự đảm bảo của các tác vụ trước đó đã được chấp nhận, tác vụ mới bị từ chối. Ngược lại, nó được chấp nhận và được thêm vào tập tác vụ không có chu kỳ đã được chấp nhận tuỳ theo thời hạn của nó.
Hình 2.15 minh hoạ một ví dụ của chiến lược đảm bảo nào cho tập tác vụ gồm:
• 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).
• 3 tác vụ không có chu kỳ: τ4 (r = 4, C = 2, d = 10), τ5 (r = 10, C = 1, d = 18), τ6 (r = 11, C = 2, d = 16).
Hình 2.15: lập lịch background của tác vụ không có chu kỳ
Trong chu kỳ chính của lịch biểu EDF, thời gian nhàn dỗi của bộ xử lý là các khoảng: [8, 10], [13, 15], [17, 20]. 3 tác vụ không có chu kỳ τ4, τ5, và τ6 có thể được đảm bảo và thực thi trong các khoảng thời gian nhàn dỗi của bộ xử lý.
Vào t = 4, tác vụ τ4 đi vào hệ thống. Lượng thời gian nhàn dỗi giữa thời điểm đến của nó và thời hạn của nó được cho bởi khoảng [8, 10]. Nó bằng thời gian
Vào thời điểm t = 10, tác vụ τ5 đi vào hệ thống. Lượng thời gian nhàn dỗi giữa thời điểm đến và thời hạn của nó là 3. Nó lớn hơn lượng thời gian tính toán của tác vụ. Vì không có yêu cầu không có chu kỳ nào được chấp nhận trước đó mà chưa hoàn thành (tác vụ τ4 hoàn thành thực thi vào thời điểm t = 10) nên tác vụ không có chu kỳ τ4 được chấp nhận.
Vào thời điểm t = 11, tác vụ τ6 đi vào hệ thống. Lượng thời gian nhàn dỗi giữa thời điểm đến của nó và thời hạn của nó là 2. Nó chính bằng thơi gian tính toán của tác vụ. Tuy nhiên tác vụ τ5 được chấp nhận trước đó nhưng chưa được bắt đầu thực thi và nó có thời hạn lớn hơn τ6. Vì thế kiểm tra chấp nhận phải xác minh rằng việc chấp nhận τ6 không phá hỏng sự đảm bảo tác vụ τ5. Tác vụ τ6 sẽ được thực thi đầu tiên và hoàn thành vào thời điểm t = 15. Tác vụ τ5 sẽ được thực thi trong khoảng nhàn dỗi [17, 18]. Vậy cả hai tác vụ đều thảo mãn các thời hạn. tác vụ không có chu kỳ τ6 được chấp nhận.
Lập lịch nối/kết hợp của các tác vụ không có chu kỳ và có chu kỳ
Kiểm tra chấp nhận thứ hai cho các tác vụ không có chu kỳ này giống như kỹ thuật giới thiệu trong phần 2.2.1 trong đó các yêu cầu không có chu kỳ mềm được lập lịch kết hợp với các tác vụ có chu kỳ. Độ trễ của các tác vụ có chu kỳ và của các tác vụ không có chu kỳ đã được chấp nhận được được sử dụng để lập lịch một tác vụ không có chu kỳ mới đến trong thời hạn của nó.
Vì thế, mỗi lần một tác vụ không có chu kỳ mới đi vào hệ thống, một lịch biểu EDF mới được xây dựng với một tập tác vụ được tạo nên từ các yêu cầu có chu kỳ, các yêu cầu được chấp nhận trước đó và yêu cầu mới. Nếu lịch biểu thoả mãn được tất cả các thời hạn thì yêu cầu mới được chấp nhận. Ngược lại, nó bị từ chối.
Hình 2.16 minh hoạ một ví dụ của chiến lược này cho một tập tác vụ được tạo thành từ các tác vụ giống như ví dụ trước. 3 tác vụ không có chu kỳ τ4, τ5 và τ6 có thể được lập lịch kết hợp với các tác vụ có chu kỳ.
Tại thời điẻm t = 4, tác vụ τ4 đi vào hệ thống. Một lịch biểu EDF mới được xây dựng với tập tác vụ tạo thành bởi các tác vụ có chu kỳ τ1 ( C(4) = 1, d = 7) và
τ3, các yêu cầu tiếp theo của các tác vụ có chu kỳ và tác vụ không có chu kỳ τ4. Trong lịch biểu này, tất cả các thời hạn được thoả mãn. Tác vụ τ4 sẽ được thực thi giữa các thời điểm t = 8 và t = 10.
Vào thời điểm t = 10, tác vụ không có chu kỳ τ5 đi vào hệ thống. Một lịch biểu EDF mới được xây dựng với một tập tác vụ được tạo thành bởi các yêu cầu tiếp theo của các tácv ụ có chu kỳ τ2 và τ3 và tác vụ không có chu kỳ τ5. Với lịch biểu này, tất cả các thời hạn được thoả mãn. Tác vụ τ5 sẽ được thực thi giữa thời điểm t = 13 và t = 14.
Vào thời điểm t = 11, tác vụ τ6 vào hệ thống. Một lịch biểu EDF mới được xây dựng với tập tác vụ tạo nên từ các tác vụ có chu kỳ τ2 ( C(11) = 1, d = 14) và τ3, các yêu cầu tiếp theo của tác vụ có chu kỳ τ2 và tác vụ không có chu kỳ τ5 và τ6. Hình 2.16 là lịch biểu kết quả.
Chương 3. Lập lịch các tác vụ phụ thuộc
Trong chương trước chúng ta giả sử rằng các tác vụ độc lập với nhau, nghĩa là giữa chúng không có mối quan hệ nào. Nhưng trong nhiều ứng dụng thời gian thực, sự phụ thuộc giữa các tác vụ là cần thiết để hiện thực hoá một số hoạt động điều khiển. Trong thực tế, hợp tác giữa các tác vụ có thể được biểu diễn theo nhiều cách: một số tác vụ phải tôn trọng thứ tự xử lý, trao đổi dữ liệu giữa các tác vụhay sử dụng tài nguyên khác nhau, thường là trong chế độ loại trừ. Từ một quan điểm mô hình cư xử, có hai loại phụ thuộc điển hình có thể được dùng để mô tả các tác vụ thời gian thực:
• Ràng buộc trước sau tương ứng với sự đồng bộ hay truyền thông giữa các tác vụ
• Ràng buộc loại trừ lẫn nhau để bảo vệ tài nguyên chia sẻ. Những tài nguyên quan trọng này có thể là các cấu trúc dữ liệu, vùng nhớ, thiết bị ngoại vi, các thanh ghi…
3.1 Các tác vụ với các quan hệ trước sau (quan hệ thứ tự)
Kiểu ràng buộc thứ nhất là ràng buộc trước sau (hay ràng buộc thứ tự) của các tác vụ thời gian thực. Chúng ta định nghĩa ràng buộc trước sau giữa hai tác vụ
τi và τj, ký hiệu τi →τj nếu việc thực thi tác vụ τi thực hiện trước tác vụ τj. Nói cách khác τj phải đợi tác vụ τi hoàn thành trước khi nó được bắt đầu thực thi.
Vì ràng buộc thứ tự được giả sử là thực thi theo phong cách tiền định/ tất định, những quan hệ này có thể được mô tả nhờ một đồ thị trong đó các nút biểu diễn các tác vụ và các mũi tên biểu diễn ràng buộc thứ tự giữa hai nút như trong hình 3.1. Đồ thị không có chu kỳ này biểu diễn thứ tự bộ phần của tập tác vụ. Nếu tác vụ τi được nối với tác vụ τj bởi một đường đi trong đồ thị thứ tự thì τi →τj. Một vấn đề khó khăn chung trong việc biểu diễn mối quan hệ phức tạp của các tác vụ là n thể hiện tiên liếp của một tác vụ có thể thực thi trước một thể hiện của một tác vụ khác, hay một thể hiện của một tác vụ thực thi trước m thể hiện của một tác vụ khác. Hình 3.2 đưa ra một ví dụ trong đó tỷ lệ truyền thông giữa các tác vụ không bằng nhau.
Hình 3.1: Ví dụ về một tập hai đồ thị thứ tự liên quan tới 1 tập 9 tác vụ
Hình 3.2: Ví dụ về quan hệ thứ tự của hai tác vụ có các khoảng thời gian khác nhau
Để mô tả mối ràng buộc thứ tự dễ dàng hơn, chúng ta chỉ xét trường hợp ràng buộc thứ tự đơn giản, nghĩa là nếu tác vụ τi phải truyền thông kết quả của quá trình xử lý của nó cho tác vụ khác τj thì những tác vụ này phải được lập lịch sau cho sự thực thi của thể hiện thứ k của tác vụ τi thực thi trước thể hiện thứ k của tác vụ τj. Vì thế những tác vụ này có tỷ lệ như nhau (nghĩa là Ti = Tj). Vì vậy tất cả các tác vụ thuộc về một thành phần kết nối của đồ thị thứ tự phải có cùng khoảng thời gian. Trong đồ thị ở hình 3.1, các tác vụ τ1 và τ5 có cùng khoảng thời gian và τ6 và
τ9 cũng có cùng khoảng thời gian. Nếu các khoảng thời gian của các tác vụ khác nhau, những tác vụ này sẽ chạy ở tỷ lệ sớm nhất hay muộn nhất. Vì vậy, tác vụ với khoảng thời gian ngắn nhất sẽ lỡ thời hạn. Chúng ta không xét các bộ đệm thông điệp không đồng bộ có chu kỳ.
Một câu trả lời cho câu hỏi đầu tiên bởi Blazewicz (1997): nếu chúng ta phải thực hiện τ →τ thì các tham số tác vụ phải tuân thủ luật sau:
Trong phần còn lại của chương này, chúng ta quan tâm tới ngữ cảnh đánh giá hợp lệ. Vấn đề này có thể được nghiên cứu từ hai quan điểm: thực thi và đánh giá hợp lệ. Đầu tiên, trong trường hợp các thuật toán lập lịch preemtive dựa vào độ ưu tiên, câu hỏi là: Thay đổi thông số tác vụ nào để dẫn tới một sự thực thi không phá vỡ các ràng buộc thứ tự. Thứ hai: Có thể đánh giá sự hợp lệ một priori khả năng lập lịch của một tập tác vụ phụ thuộc không?
3.1.1 Các ràng buộc thứ tự và cac thuật toán độ ưu tiên cố định
Thuật toán lập lịch đơn nguyên tỷ lệ gán các độ ưu tiên cho các tác vụ theo khoảng thời gian của nó. Nói cách khác, các tác vụ với khoảng thời gian ngắn hơn sẽ có độ ưu tiên cao hơn. Tuân theo luật này, mục tiêu là sử các tham số tác vụ sao cho thoả mãn ràng buộc thứ tự, nghĩa là đạt được một tập tác vụ độc lập với các tham số được sửa đổi. Ý tưởng cơ bản của những sửa đổi này là một tác vụ không thể bắt đầu trước tác vụ thực hiện trước (predecessor) và không thể trao quyền cho tác vụ thực hiện sau (successor) của nó. Vì thế nếu chúng ta có τi → τj, thì thời điểm giải phóng và độ ưu tiên của các tham số tác vụ phải được sửa như sau:
• r*
j≥ Max (rj, r* i) r*
i là thời điểm bắt đầu được sửa đổi của tác vụ τi
• Prioi≥ Prioj tuân thủ thuật toán lập lịch RM.
Hình 3.3: Đồ thị thứ tự của tập 6 tác vụ
Bảng 3.1: Ví dụ về ánh xạ độ ưu tiên có quan tâm tới ràng buộc thứ tự và sử dụng thuật toán lập lịch RM
Cần phải chú ý rằng, vì tất cả các tác vụ của đồ thị thứ tự chia sẻ cùng khoảng thời gian, theo như chính sách của RM thì có sự lựa chọn tự do cho các độ ưu tiên mà chúng ta sử dụng để áp đặt thứ tự trước sau. Chúng ta xét một tập sáu tác vụ với cùng thời điểm giải phóng và hai đồ thị mô tả những quan hệ thứ tự (trước sau) này (hình 3.3). Ánh xạ độ ưu tiên, được biểu diễn ở hình 3.3, kiểm soát ràng buộc thứ tự và thoả mãn luật của thuật toán RM.
Thuật toán lập lịch đơn nguyên thời hạn gán các độ ưu tiên cho các tác vụ theo thời hạn tương đới D (các tác vụ với thời hạn tương đối ngắn hơn được độ ưu tiên cao hơn). Những thay đổi của các tham số tác vụ này gần với những tham số được áp dụng cho lập lịch RM ngoại trừ thời hạn tương đối cũng được thay đổi để tuân thủ việc gán độ ưu tiên. Vì thế nếu τi → τj thì thời điểm giải phóng, thời hạn tương đối và độ ưu tiên của các tham số tác vụ phải được sửa như sau:
• r*
j≥ Max (rj, r* i) r*
i là thời điểm bắt đầu được sửa đổi của tác vụ τi
• D*
j≥ Max (Dj, D* i) D*
i là thời hạn tương đối được sửa đổi của tác vụ τi.
• Prioi≥ Prioj tuân thủ thuật toán lập lịch DM
Sự sủa dổi này rõ ràng đảm bảo quan hệ thứ tự giữa hai tác vụ.
3.1.2 Ràng buộc thứ tự và thuật toán thời hạn sớm nhất trước
Trong trường hợp thuật toán thời hạn sớm nhất trước, việc sửa đổi của các tham số tác vụ dựa vào thời hạn d. Vì vậy các luật sửa csc thời điểm bắt đầu và các thời hạn của các tác vụ dựa vào những yếu tố sau.
Đầu tiên, nếu chúng ta phải có τi → τj, thì thời điểm bắt đầu r*
j của tác vụ τi phải lớn hơn hay bằng giá trị ban đầu của nó hay thời điểm bắt đầu mới r*
i của tác vụ ngay trước của nó τi được tăng với thời gian xử lý Ci:
r*
j ≥ Max ( (r*
i + Ci), rj)
Thì nếu chúng ta phải có τi → τj, thời hạn d*
i của tác vụ τi phải được thay thế bởi giá trị nhỏ nhất của giá trị ban đầu di và thời hạn mới d*