ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM ĐỨC MẠNH PHÂN TÍCH XẤP XỈ 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 VỚI KỲ HẠN KHÔNG RÀNG BUỘC V
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM ĐỨC MẠNH
PHÂN TÍCH XẤP XỈ 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 VỚI KỲ HẠN KHÔNG RÀNG BUỘC VÀ ĐỘ TRỄ PHÁT HÀNH
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội - 2013
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
PHẠM ĐỨC MẠNH
PHÂN TÍCH XẤP XỈ 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 VỚI KỲ HẠN KHÔNG RÀNG BUỘC VÀ ĐỘ TRỄ PHÁT HÀNH
Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN THỊ HUYỀN CHÂU
Hà Nội - 2013
Trang 3MỤC LỤC
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH VẼ
CHƯƠNG 1 ĐẶT VẤN ĐỀ 1
1.1 Bối cảnh nghiên cứu 1
1.2 Mục tiêu nghiên cứu 2
1.3 Cấu trúc luận văn 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 Mô hình nhiệm vụ hệ thời gian thực 3
2.1.1 Hệ thống thời gian thực 3
2.1.1.1 Khái niệm 3
2.1.1.2 Tầm quan trọng của hệ thời gian thực 3
2.1.1.3 Phân loại nhiệm vụ thời gian thực 3
2.1.2 Các tham số đặc trưng cho hệ thời gian thực 4
2.2 Các phương pháp kiểm định dựa trên độ ưu tiên cố định 7
2.2.1 Một số khái niệm về lập lịch 7
2.2.1.1 Lập lịch là gì 7
2.2.1.2 Phân loại lập lịch 7
2.2.1.3 Lập lịch dựa trên độ ưu tiên cố định 7
2.2.2 Những kết quả cơ bản 9
2.2.2.1 Bài toán nghiên cứu 9
2.2.2.2 Hàm Request Bound Function (𝑅𝐵𝐹) 9
2.2.2.3 Hàm Workload Function (𝑊) 10
2.2.2.4 Thời điểm ngặt nghèo (Critical Instant) 11
2.2.2.5 Khoảng bận rộn mức i (level-i busy period) 12
2.2.3 Các phương pháp kiểm định chính xác hệ có độ ưu tiên cố định 12
2.2.3.1 Response Time Analysis (RTA) 12
Trang 42.2.3.2 Processor Demand Analysis (PDA) 16
CHƯƠNG 3 PHÂN TÍCH XẤP XỈ 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 VỚI KỲ HẠN KHÔNG RÀNG BUỘC VÀ ĐỘ TRỄ PHÁT HÀNH 21
3.1 Một số khái niệm 21
3.2 Các kết quả ban đầu 24
3.3 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ỉ 28
3.3.1 Thuật toán: Approx(𝜏, 𝑖, 𝑘) 28
3.3.2 Ví dụ minh họa 31
3.4 Tính đúng đắn của thuật toán 33
CHƯƠNG 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ HIỆU QUẢ CỦA BIỂU ĐỒ XẤP XỈ 40
4.1 Phương pháp thực nghiệm 40
4.2 Phương pháp đánh giá 41
4.3 Kết quả thực nghiệm 41
CHƯƠNG 5 KẾT LUẬN 45
5.1 Xuất xứ bài toán nghiên cứu 45
5.2 Phương pháp đề xuất và kết quả đạt được 45
5.3 Hướng phát triển trong tương lai 45
TÀI LIỆU THAM KHẢO 47
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
Analysis)
PDA Phương pháp phân tích lượng công việc yêu cầu bộ xử lý thực hiện
(Processor Demand Analysis)
RBF Hàm lượng công việc mà nhiệm vụ yêu cầu CPU thực hiện (Request
Trang 6DANH MỤC CÁC BẢNG
Số hiệu
Trang 7DANH MỤC CÁC HÌNH VẼ
Số hiệu
4.1 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo số nhiệm vụ
4.2 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo hệ số sử dụng
4.4 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo số nhiệm vụ
4.5 Tỉ lệ chấp nhận của SupD và thuật toán đề xuất theo hệ số sử dụng
Trang 8CHƯƠNG 1 ĐẶT VẤN ĐỀ
1.1 Bối cảnh nghiên cứu
Trong những năm gần đây, các hệ thống thời gian thực đóng vai trò ngày càng quan trọng trong nhiều lĩnh vực ứng dụng Hệ thống thời gian thực đã và đang được ứng dụng rộng rãi trong các dây chuyền sản xuất tự động, robot, điều khiển lưu thông, điều khiển các thí nghiệm tự động, truyền thông, điều khiển trong quân sự …
Với những hệ thống này, lượng công việc cần thực hiện có thể không được dự báo chính xác, các nhiệm vụ có thể sinh ra thêm trong thời gian chạy Do đó mà hệ thống cần có khả năng giải quyết những tình huống quá tải tạm thời Điều này được thực hiện thông qua một bộ điều khiển gia nhập có khả năng quyết định chấp nhận hay
từ chối một nhiệm vụ nào đó nhằm điều tiết lượng công việc dựa trên các tính toán về khả năng lập lịch Những tính toán này đòi hỏi phải đủ nhanh do chúng được thực hiện thường xuyên trong suốt thời gian tồn tại của hệ thống
Tồn tại 2 phương pháp phân tích chính xác khả năng lập lịch của một hệ thống thời gian thực với độ ưu tiên cố định là Response Time Analysis (RTA - [4, 6]) và Processor Demand Analysis (PDA - [5, 6]) Mặc dù có độ phức tạp giả đa thức nhưng
cả 2 phương pháp này đều được cài đặt rất hiệu quả trong thực tế Tuy nhiên, với những hệ mà các nhiệm vụ được sản sinh động, các test kiểm định được gọi liên tiếp với số lượng lớn, một thuật toán với độ phức tạp giả đa thức trở nên quá chậm Thay vào đó, chúng ta hướng đến một thuật toán có độ phức tạp đa thức Một trong số đó là phướng pháp biểu đồ xấp xỉ mà luận văn sử dụng
Việc sử dụng phương pháp xấp xỉ để phân tích tính khả thi của hệ đã được trình bày trong [2] cho trường hợp các nhiệm vụ có độ ưu tiên cố định với kỳ hạn ràng buộc
và được mở rộng cho hệ với kỳ hạn không ràng buộc trong [3] Những kiểm định xấp
xỉ này chạy trong thời gian đa thức và được điều khiển bởi một tham số chính xác 𝜀 Trong [10] đã đưa ra một phương pháp kiểm định xấp xỉ dựa trên khái niệm cận trên thời gian phản ứng cho hệ có độ ưu tiên cố định với kỳ hạn ràng buộc và độ trễ phát hành (release jitters) và sau đó được chuẩn hóa và mở rộng trong [12, 13] Tiếp đó, [14] đã trình bày và sửa chữa các vấn đề kỹ thuật trong [3], đồng thời đề xuất một thuật toán xấp xỉ cải thiện cho hệ với kỳ hạn không ràng buộc Nó cũng được mở rộng
để tính toán cận trên thời gian phản ứng trong [11]
Như vậy, hiện chưa có phương pháp kiểm định xấp xỉ nào cho hệ có độ ưu tiên
cố định với kỳ hạn không ràng buộc và độ trễ phát hành Do đó, luận văn nghiên cứu
đề xuất một thuật toán kiểm định xấp xỉ cho hệ này, với mức độ xấp xỉ được tham số hóa, cho phép chúng ta “co dãn” thuật toán để cân bằng giữa độ chính xác và độ phức tạp của thuật toán
Trang 91.2 Mục tiêu nghiên cứu
Trong đề tài này, tôi sử dụng phương pháp biểu đồ xấp xỉ để kiểm định 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 với kỳ hạn không ràng buộc và độ trễ phát hành Thuật toán có độ phức tạp đa thức, cung cấp một kết quả “xấp xỉ” về khả năng lập lịch của các nhiệm vụ trong hệ thống Thêm vào đó, luận văn cũng đưa ra hàm RBF xấp xỉ thay thế để cải thiện thuật toán xấp xỉ đã được trình bày trong [14] Cuối cùng, luận văn trình bày các kết quả thực nghiệm để đánh giá hiệu quả của biểu đồ xấp xỉ so với những phương pháp kiểm định đã được biết đến khác
1.3 Cấu trúc luận văn
Trong các phần tiếp theo của luận văn, tôi sẽ trình bày những nội dung sau:Chương 2 trình bày về cơ sở lý thuyết của đề tài Chương này đề cập đến mô hình nhiệm vụ hệ thời gian thực Tiếp đến, tôi mô tả các phương pháp kiểm định chính xác cho hệ có độ ưu tiên cố định Trong mỗi phương pháp, luận văn đều đưa ra ý tưởng, thuật toán và ví dụ minh họa cụ thể
Chương 3 đưa ra phương pháp phân tích khả năng lập lịch của hệ thời gian thực
có độ ưu tiên cố định với kỳ hạn không ràng buộc và độ trễ phát hành sử dụng biểu đồ xấp xỉ Trong chương này, luận văn sẽ đề xuất 1 hàm RBF xấp xỉ để cải thiện chất lượng thuật toán Phần cuối chương, tôi sẽ trình bày 1 ví dụ minh họa cũng như phân tích tính đúng đắn của phương pháp mà luận văn đề xuất
Chương 4 trình bày các kết quả thực nghiệm để đá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 biết đến khác.
Chương 5 tóm tắt những kết quả đạt được cũng như hướng phát triển trong tương lại
Trang 10CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Mô hình nhiệm vụ hệ thời gian thực
2.1.1 Hệ thống thời gian thực
2.1.1.1 Khái niệm
Hệ thống thời gian thực là hệ thống máy tính có khả năng phản ứng chính xác
và kịp thời với các sự kiện trong môi trường Một phản ứng xảy ra quá muộn sẽ vô ích hoặc gây nguy hiểm cho hệ thống Như vậy, hệ thời gian thực được hiểu như là một
mô hình xử lý mà tính đúng đắn của nó không chỉ phụ thuộc vào sự chính xác của kết quả mà còn phụ thuộc vào thời điểm đưa ra kết quả đó Hệ thống bị cho là có lỗi khi yêu cầu về thời gian không được đáp ứng
2.1.1.2 Tầm quan trọng của hệ thời gian thực
Ngày nay, các hệ thống thời gian thực đóng một vai trò quan trọng trong xã hội
vì ngày càng có nhiều hệ thống phức tạp dựa một phần hoặc hoàn toàn vào sự điều khiển của máy tính Những ứng dụng về thời gian thực đã và đang được sử dụng rộng rãi trong rất nhiều lĩnh vực như: tự động hóa công nghiệp, robot, kiểm soát tiến trình (điều khiển nhà máy hạt nhân, hệ thống chuyển mạch đường sắt, hệ thống kiểm soát bay), trong y tế, quân sự và viễn thông …
Một trong những vấn đề thu hút sự quan tâm của giới khoa học nghiên cứu về thời gian thực đó là điều hành thời gian thực và lập lịch vì tầm quan trọng của nó Đa
số các vụ tai nạn xảy ra trong các nhà máy điện hạt nhân, hoặc hệ thống phòng thủ thường do lỗi của phần mềm trong hệ thống điều khiển Một lỗi xảy ra trong quá trình lập lịch có thể là một thảm họa, gây thiệt hại lớn về kinh tế hoặc thậm chí gây hậu quả thảm khốc, bao gồm cả sự mất mát về người
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): các nhiệm vụ phải được thực thi trong một khoảng thời gian xác định Sự sai sót về kỳ hạn có thể làm sụp
đổ hệ thống hoặc gây ra những hậu quả nghiêm trọng
Một ví dụ cho loại này là hệ thống điều khiển không lưu Việc phân phối đường bay, thời gian cất cánh, hạ cánh không hợp lý có thể gây ra tai nạn thảm khốc
Trang 11- Nhiệm vụ thời gian thực mềm (Soft real-time task): đối với loại nhiệm vụ này, thời gian trả lời của hệ thống cho các yếu tố kích thích là quan trọng, tuy nhiên trong trường hợp ràng buộc này bị vi phạm, hệ thống vẫn tiếp tục hoạt động bình thường Lỗi về mặt thời gian của các nhiệm vụ chỉ đơn giản là làm giảm độ tin cậy hoặc suy giảm hiệu suất hệ thống mà không có hậu quả thảm khốc nào xảy ra
Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho nhiệm vụ thời gian thực mềm Khi bạn đưa thẻ ATM vào máy, bạn mong là máy sẽ phản ứng lại trong vòng 1 hay 2 giây Nhưng nếu nó lâu hơn thế, điều tồi tệ nhất có thể xảy ra là … bạn sốt ruột và thấy khó chịu đối với cái máy đó
- Nhiệm vụ thời gian thực trung gian (Firm real-time task): một nhiệm vụ trễ hạn sẽ trở nên vô ích đối với hệ thống nhưng không gây ra bất kỳ thiệt hại nào
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 đề tài này, tôi tập trung vào hệ thống thời gian thực cứng (hard real-time system) Hệ thống phải tiếp nhận và nắm bắt được kỳ hạn của các nhiệm vụ tại mọi thời điểm Việc kiểm tra và đảm bảo các nhiệm vụ quan trọng hoàn thành đúng kỳ hạn được thực hiện bằng cách phân tích khả năng lập lịch trong trường hợp xấu nhất, đó 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
Cho đến nay, có rất nhiều phương pháp đã được đề xuất để nâng cao khả năng
dự báo của hệ thống thời gian thực Để trình bày những kết quả này, tôi đưa vào các tham số đặc trưng của một nhiệm vụ thời gian thực Những tham số này sẽ được sử dụng trong các phần sau
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ý
Trang 12- 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: 𝑅𝑇𝑖 = 𝑓𝑖 − 𝑎𝑖
- Vì một số lý do như sự chậm trễ của dữ liệu đầu vào mà một nhiệm vụ có thể không sẵn sàng thực hiện ngay sau khi nó được kích hoạt Để giải quyết vấn đề này, tôi 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ụ 𝜏𝑖 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, hay đượ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 về thời gian khác xác định trên một nhiệm vụ thời gian thực liên quan đến tính đều đặn trong việc kích hoạt của nhiệm vụ Cụ thể, một nhiệm vụ có thể được định nghĩa là tuần hoàn hoặc không tuần hoàn Các nhiệm vụ tuần hoàn bao gồm một chuỗi vô hạn các hoạt động giống hệt nhau được gọi là các tác vụ (jobs), chúng được kích hoạt đều đặn với tốc độ không đổi hay nói cách khác là theo chu kỳ Trong khi đó, các nhiệm vụ không tuần hoàn thì các tác vụ của nó được kích hoạt không theo chu kỳ
Luận văn của tôi tập trung nghiên cứu các nhiệm vụ tuần hoàn Để rõ ràng, tôi
ký hiệu một nhiệm vụ tuần hoàn là 𝜏𝑖, tác vụ thứ 𝑙 của 𝜏𝑖 ký hiệu là 𝜏𝑖,𝑙 Thời gian kích hoạt của tác vụ thứ 𝑙 được cho bởi công thức 𝑎𝑖,𝑙= 𝑙 − 1 𝑇𝑖 − 𝐽𝑖 với 𝑇𝑖 là chu kỳ kích hoạt của nhiệm vụ (khoảng thời gian giữa 2 lần kích hoạt liên tiếp của nhiệm vụ) Trong thực tế, một nhiệm vụ tuần hoàn được đặc trưng bởi thời gian tính toán 𝐶𝑖, chu
kỳ 𝑇𝑖, độ trễ phát hành 𝐽𝑖 và kỳ hạn tương đối 𝐷𝑖 của nó Gọi 𝜏 là một tập các nhiệm vụ định kỳ, 𝜏 = 𝜏𝑖 𝑇𝑖, 𝐶𝑖, 𝐷𝑖, 𝐽𝑖 , 𝑖 = 1, … , 𝑛
t
Trang 13Tiế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ụ: là thời gian từ lúc tác vụ đƣợc kích hoạt
cho đến khi kết thúc: 𝑅𝑇𝑖,𝑙 = 𝑓𝑖,𝑙 − 𝑎𝑖,𝑙 Với 𝑓𝑖,𝑙 là thời gian hoàn thành của tác vụ thứ 𝑙 của 𝜏𝑖
- 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ó: 𝑅𝑇𝑖 = max1≤𝑙≤𝑛𝑅𝑇𝑖,𝑙
- 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
𝑈𝑖 ≝𝐶𝑖
𝑇𝑖
- Hệ số sử dụng CPU của tập các nhiệm vụ: thể hiện tỉ lệ thời gian mà CPU
đã dùng để thực thi các nhiệm vụ này Với 𝑈𝑖 là tỉ lệ thời gian mà CPU dùng vào việc thực thi nhiệm vụ 𝜏𝑖, do đó hệ số sử dụng CPU cho tập n nhiệm vụ đƣợc cho bởi công
𝑅𝑇𝑖,𝑙
𝑓 𝑖,𝑙
+ +
𝐽𝑖
𝜏𝑖
𝑎𝑖,1
Trang 142.2 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
2.2.1.1 Lập lịch là gì
- Lịch trình: khi bộ xử lý đơn phải thực hiện nhiều nhiệm vụ một cách đồng
thời, các nhiệm vụ đó có thể chồng chéo lên nhau trong thời gian chạy Nhưng CPU không thể xử lý cùng lúc nhiều nhiệm vụ, do đó nó cần được phân phối cho những nhiệm vụ khác nhau theo một tiêu chuẩn được xác định trước, đó là một 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
2.2.1.2 Phân loại lập lịch
- Lập lịch ưu tiên (preemptive): 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ị gián đoạn bất cứ lúc nào để nhường bộ xử lý cho một nhiệm vụ khác có độ ưu tiên cao hơn
- Lập lịch không ưu tiên (non-preemptive): trong thuật toán này, một
nhiệm vụ, một khi bắt đầu, sẽ được thực hiện bởi bộ xử lý cho đến khi hoàn thành Do
đó, các nhiệm vụ khác chỉ được thực hiện sau khi nhiệm vụ đó đã chấm dứt hoạt động
- 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 (dynamic): việc lập lịch dựa trên các tham số động, có thể
thay đổi trong quá trình hệ thống hoạt động
Đề tài của tôi là 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 Nghĩa là độ ưu tiên của các nhiệm vụ không thay đổi mà được xác định trước 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 một 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 này, mỗi nhiệm vụ được gán một tham số lập lịch gọi là độ
ưu tiên, tất cả các tác vụ của nhiệm vụ thực hiện dựa trên độ ưu tiên này Tại mọi thời điểm, nhiệm vụ có độ ưu tiên cao nhất được lựa chọn để thực hiện Một nhiệm vụ đang thực hiệ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 khá linh hoạt vì nó cho phép thực hiện một số thuật toán lập lịch bằng cách thay đổi các quy tắc gán quyền ưu tiên cho nhiệm vụ
Hệ nhiệm vụ 𝜏 gọi là có khả năng lập lịch dựa trên độ ưu tiên cố định nếu tồn tại một thuật toán gán độ ưu tiên cho các nhiệm vụ mà khi 𝜏 lập lịch dựa trên độ ưu tiên này thì tất cả các kỳ hạn đều được đáp ứng
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
Trang 15Bả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
- Lập lịch Rate Monotonic (RM): trong thuật toán này, một quy tắc đơn giản
để gán độ ưu tiên cho các nhiệm vụ là dựa vào 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, nghĩa là có chu kỳ ngắn hơn sẽ có độ ưu tiên cao hơn Nói cách khác, trong thuật toán này, nhiệm vụ nào càng diễn ra thường xuyên càng được
ưu tiên RM được biết đến là tối ưu cho hệ với 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): trong thuật toán này, các nhiệm vụ được gán độ ưu tiên cố định tỉ lệ nghịch với kỳ hạn tương đối của nó Nghĩa là, tại mọi thời điểm, nhiệm vụ nào càng gấp, có kỳ hạn tương đối càng ngắn sẽ được ưu tiên thực hiện DM được biết đến là tối ưu cho cả 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
Trang 16𝜏1 1 4 3
Theo DM, ta có thứ tự ưu tiên cho các nhiệm vụ lần lượt là 𝜏1, 𝜏2, 𝜏3, 𝜏4
Đề tài của tôi áp dụng cho hệ có độ ưu tiên cố định với kỳ hạn không ràng buộc,
do đó khi tiến hành thực nghiệm tôi sử 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
2.2.2.1 Bài toán nghiên cứu
Bài toán: Giả sử rằng các nhiệm vụ tuần hoàn chạy trên cùng một bộ xử lý, độc lập
với nhau Tất cả các nhiệm vụ có độ ưu tiên cố định, được thiết lập trước khi ứng dụng bắt đầu và không thay đổi trong 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 được lựa chọn để thực hiện trong số những nhiệm vụ đã sẵn sàng Không mất tính tổng quát, tôi giả sử rằng các nhiệm vụ được đánh chỉ số theo thứ tự giảm dần của độ ưu tiên: 𝜏1có độ ư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
𝐶𝑖, kỳ hạn tương đối 𝐷𝑖, độ trễ phát hành 𝐽𝑖 và chu kỳ 𝑇𝑖 Giả sử rằng kỳ hạn không liên quan đến chu kỳ, hay nói cách khác là kỳ hạn không ràng buộc Tác vụ thứ 𝑙 của
𝜏𝑖 được ký hiệu là 𝜏𝑖,𝑙 Tôi giả sử rằng tất cả các tham số là số nguyên, 𝐽𝑖 < 𝑇𝑖, và
𝐶𝑖 ≠ 0
2.2.2.2 Hàm Request Bound Function (𝑅𝐵𝐹)
Hàm Request Bound Function của nhiệm vụ 𝜏𝑖 tại thời điểm t (𝑅𝐵𝐹 𝜏𝑖, 𝑡 ) thể hiện tổng thời gian mà 𝜏𝑖 yêu cầu CPU thực hiện trong khoảng thời gian (0, 𝑡] Với bộ
xử lý có công suất đơn vị là 1 thì hàm này cũng chính là lượng công việc mà nhiệm vụ
𝜏𝑖đòi hỏi CPU phải thực hiện trong khoảng thời gian trên
𝑅𝐵𝐹 𝜏𝑖, 𝑡 ≝ 𝑡+𝐽𝑖
𝑇𝑖 𝐶𝑖 (2.1) Trong công thức này, mỗi lần nhiệm vụ 𝜏𝑖 phát hành 1 tác vụ thì 𝐶𝑖 đơn vị thời gian xử lý được yêu cầu Nói các khác, mỗi lần tăng lên 𝑇𝑖 đơn vị thời gian thì 𝐶𝑖đơn
vị thời gian yêu cầu được thêm vào Do đó, 𝑅𝐵𝐹 được gọi là hàm nhảy bậc, không liên tục Hàm này sẽ đượ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
Trang 17Hình 2.4 Hàm RBF (Request Bound Function).
2.2.2.3 Hàm Workload Function (𝑊)
Hàm Workload (𝑊𝑖,𝑙(𝑡)) biểu diễn tổng thời gian (hay lượng công việc) yêu cầu CPU thực hiện của tất các các nhiệm vụ có độ ưu tiên cao hơn 𝜏𝑖 và thời gian thực hiện của 𝑙 tác vụ đầu tiên của 𝜏𝑖 trong thời gian 𝑡
𝑊𝑖,𝑙 𝑡 ≝ 𝑙𝐶𝑖 + 𝑗 <𝑖𝑅𝐵𝐹(𝜏𝑗, 𝑡) (2.2)
Hàm này có ý nghĩa hết sức quan trọng trong việc phân tích khả năng lập lịch cũng như tính thời gian phản ứng của nhiệm vụ Điểm cắt giữa lượng công việc yêu cầu CPU thực hiện và lượng công việc CPU thực hiện được chính là thời điểm hoàn thành công việc Sử dụng hàm này, chúng ta có thể định nghĩa 2 phương pháp kiểm định chính xác hệ có độ ưu tiên cố định là RTA và PDA trong những phần sau
Trang 18Hình 2.5 Hàm W (Workload Function)
2.2.2.4 Thời điểm ngặt nghèo (Critical Instant)
Khi phân tích khả năng lập lịch của hệ thời gian thực, chúng ta luôn phải xét trường hợp xấu nhất, bi quan nhất có thể Liu và Layland [8] đã định nghĩa thời điểm ngặt nghèo của 1 nhiệm vụ là thời điểm làm cho nhiệm vụ có thời gian phản ứng lớn nhất Họ cũng chứng minh rằng thời gian phản ứng lớn nhất của 𝜏𝑖 xảy ra khi nó được kích hoạt cùng lúc với tất cả các nhiệm vụ có độ ưu tiên cao hơn (𝑟1= 𝑟2= … = 𝑟𝑛= 0) Họ cũng đã chứng minh rằng thời gian phản ứng lớn nhất của 𝜏𝑖chính là thời gian phản ứng của tác vụ đầu tiên Do đó, chỉ cần kiểm tra kỳ hạn của tác vụ đầu tiên để xác định tất cả kỳ hạn của 𝜏𝑖có được đáp ứng hay không Kết quả này đúng trong trường hợp 𝐷𝑖 ≤ 𝑇𝑖 Tuy nhiên, với trường hợp 𝐷𝑖 > 𝑇𝑖, Lehoczky [6] đã chứng mình rằng cần phải kiểm tra kỳ hạn của tất cả các tác vụ trong khoảng bận rộn mức 𝑖 (level-i
busy period)
Đối với hệ có độ trễ phát hành, một nhiệm vụ không thể sẵn sàng thực hiện ngay sau khi được kích hoạt Trong thực tế, các nhiệm vụ này phải chờ đợi một thời gian thì mới sẵn sàng thực hiện Như vậy, thời gian phản ứng trong trường hợp xấu nhất cho hệ này xảy ra khi một nhiệm vụ bất kỳ 𝜏𝑖 sẵn sàng cùng lúc với các nhiệm vụ
có độ ưu tiên cao hơn sau 𝐽𝑗 đơn vị thời gian 𝑗 < 𝑖
Trang 19Hình 2.6 Thời điểm ngặt nghèo
2.2.2.5 Khoảng bận rộn mức i (level-i busy period)
Để xác định thời gian phản ứng trong trường hợp xấu nhất của nhiệm vụ 𝜏𝑖, khái niệm về khoảng bận rộn mức 𝑖 được giới thiệu Khoảng thời gian khi mà chỉ có các nhiệm vụ với độ ưu tiên cao hơn hoặc bằng 𝑖 đang thực hiện Khoảng thời gian này được gọi là khoảng bận rộn mức 𝑖 (level- 𝑖 busy period [2,3])
Hình 2.7 Khoảng thời gian bận rộn mức i
Hình 2.7 cho thấy, trong khoảng bận rộn mức 𝑖, các tác vụ của 𝜏𝑖 đều bị trễ hẹn
(nghĩa là đều lấn sang tác vụ kế tiếp) do nó phải nhường CPU cho các nhiệm vụ có độ
ưu tiên cao hơn Tuy nhiên, tác vụ thứ 𝑙 hoàn thành trong kỳ hạn mà không lấn sang
tác vụ kế tiếp, lúc này khoảng thời gian bận rộn mức 𝑖 kết thúc
2.2.3 Các phương pháp kiểm định chính xác hệ có độ ưu tiên cố định
2.2.3.1 Response Time Analysis (RTA)
Phương pháp này xác minh tính khả thi của hệ thống bằng cách tính toán thời gian phản ứng trong trường hợp tồi nhất (worst-case response times) của nhiệm vụ So sánh kết quả này với kỳ hạn tương đối ta có thể xác định nhiệm vụ có khả năng lập lịch hay không
𝑎𝑖,𝑙++
Trang 20Dựa trên hàm 𝑊𝑖,𝑙(𝑡) biểu diễn lượng công việc mà tác vụ 𝜏𝑖,𝑙 yêu cầu CPU xử
lý, chúng ta định nghĩa giao điểm đầu tiên giữa hàm này và đường 𝑦 = 𝑡, ký hiệu là
𝑅𝑖,𝑙 cho mỗi tác vụ 𝜏𝑖,𝑙 như sau:
𝑅𝑖,𝑙 ≝ min 𝑡 > 0 | 𝑊𝑖,𝑙 𝑡 = 𝑡 (2.3)Trong công thức trên, 𝑅𝑖,𝑙 chính là giao điểm mà tại đó lượng công việc yêu cầu CPU thực hiện đúng bằng công suất của CPU Nói cách khác là tại điểm này nhiệm vụ được hoàn thành Và nếu chúng được hoàn thành trong kỳ hạn thì nhiệm vụ có khả năng lập lịch
Hình 2.8 Hàm W (Workload Function) trong phương pháp RTA
Gọi số tác vụ trong khoảng bận rộn mức 𝑖 là 𝑁𝑖, thì 𝑁𝑖chính là chỉ số của tác vụ cuối cùng trong khoảng này hay là chỉ số của tác vụ đầu tiên mà không lấn sang tác vụ
Trang 21𝑅𝑇𝑖 ≝ max 𝑅𝑇𝑖,𝑙 | 𝑙 ≤ 𝑁𝑖 (2.6) Trong phương pháp RTA, nhiệm vụ 𝜏𝑖 có khả năng lập lịch khi và chỉ khi
𝑅𝑇𝑖 ≤ 𝐷𝑖 Vì số lượng tác vụ trong khoảng bận rộn mức i (𝑁𝑖) là một số giả đa thức [6], do đó thuật toán này có độ phức tạp giả đa thức
Thuật toán:
- Xét trường hợp 𝐷𝑖 ≤ 𝑇𝑖, chúng ta chỉ cần tính thời gian phản ứng của tác vụ đầu tiên 𝜏𝑖,1theo cách sau: 𝑊𝑖,1(0) = 𝑖𝑗 =1 𝐶𝑗
Tiếp tục tính 𝑊𝑖,1(𝑘+1) như sau: 𝑊𝑖,1 𝑘+1 = 𝐶𝑖 + 𝑖−1𝑗 =1𝑅𝐵𝐹(τj, 𝑊𝑖,1(𝑘))
Với 𝑊𝑖,1(𝑘) là lượng công việc mà 𝜏𝑖,1 yêu cầu CPU thực hiệnở lần thứ k
Việc tính toán sẽ dừng lại khi 𝑊𝑖,1(𝑘+1) = 𝑊𝑖,1(𝑘), lúc này lượng công việc mà tác
vụ 𝜏𝑖,1 yêu cầu CPU thực hiện không thay đổi Điểm này gọi là điểm chững, kí hiệu là
𝑊𝑖,1(∗) = 𝑅𝑖,1 Khi đó, thời gian phản ứng của tác vụ 𝜏𝑖,1 được tính như sau: 𝑅𝑇𝑖,1 =
𝑅𝑖,1 − 0 + 𝐽𝑖 Do đó, τ𝑖 có khả năng lập lịch nếu 𝑅𝑇𝑖,1 ≤ 𝐷𝑖, ngược lại thì τ𝑖 không có khả năng lập lịch
- Với trường hợp 𝐷𝑖 > 𝑇𝑖, chúng ta cần tính thời gian phản ứng của tất cả các tác vụ
trong khoảng bận rộn mức i Thời gian phản ứng của tác vụ 𝜏𝑖,𝑙 được tính theo cách sau: 𝑊𝑖,𝑙(0) = 𝑙𝐶𝑖 + 𝑖−1𝑗 =1𝐶𝑗
Thời gian phản ứng trong trường hợp tồi nhất của τ𝑖 được tính theo công thức:
𝑅𝑇𝑖 = max𝑙 ≤ 𝑁𝑖𝑅𝑇𝑖,𝑙 So sánh giá trị này với 𝐷𝑖để xác định khả năng lập lịch của nhiệm vụ τ𝑖
Trong phương pháp này, giá trị của 𝑊𝑖,𝑙(0) đóng vai trò quan trọng trong việc giới hạn số lần tính toán để tìm ra điểm nhỏ nhất mà 𝑊𝑖 𝑡 = 𝑡
Ví dụ: Cho hệ nhiệm vụ với kỳ hạn không ràng buộc và độ trễ phát hành như sau:
Bảng 2.4 Hệ với kỳ hạn không ràng buộc và độ trễ phát hành
Trang 232.2.3.2 Processor Demand Analysis (PDA)
Một cách tiếp cận khác để xác minh tính khả thi của hệ thống là kiểm tra lượng công việc yêu cầu xử lý bởi các nhiệm vụ luôn nhỏ hơn hoặc bằng công suất của bộ xử
lý Bản chất của phương pháp này là tìm điểm nằm trong khoảng (0, 𝐷𝑖] làm cho
𝑊𝑖(𝑡) ≤ 𝑡 Trong [5] đã trình bày phương pháp PDA cho hệ với kỳ hạn ràng buộc Và được mở rộng cho hệ với kỳ hạn không ràng buộc trong [6] Nó cũng dễ dàng mở rộng cho hệ có độ trễ phát hành như sau:
Định lý 1: Hệ nhiệm vụ 𝜏 với độ trễ phát hành có khả năng lập lịch khi và chỉ khi
∀ τ𝑖 ∈ τ, ∀ 𝑙 𝑙 > 0 ∈ N, ∃ t ∈ (𝑟𝑖,𝑙, 𝑑𝑖,𝑙], 𝑊𝑖,𝑙(𝑡) ≤ 𝑡
Để xác định độ phức tạp của thuật toán, chúng ta cần xác định được các thời điểm mà tại đó định lý 1 cần được kiểm tra Như trong [5], chúng ta có thể thiết lập tập các điểm lập lịch trong khoảng bận rộn cần xét như sau:
𝑆𝑖 = {𝑎𝑇𝑏 − 𝐽𝑏 𝑏 = 1 … 𝑖 − 1, 𝑎 = 1 … 𝐷𝑖 + 𝐽𝑏
𝑇𝑏 ∪ {𝐷𝑖} (2.7)
Trang 24Hình 2.9 Hàm W (Workload Function) trong phương pháp PDA
Hình 2.9 cho thấy điểm hình chữ nhật là điểm lập lịch đầu tiên sau khi nhiệm vụ hoàn thành (điểm lập lịch đầu tiên sau điểm cắt) Tại điểm này ta thấy hàm 𝑊𝑖(𝑡) ≤ 𝑡
Như vậy, nếu điểm này nằm trong kỳ hạn thì nhiệm vụ có khả năng lập lịch
Thuật toán: phân tích khả năng lập lịch của nhiệm vụ 𝜏𝑖
- Bước 1: Xét xem có tồn tại 𝑡𝑖,1∗ ∈ (0, 𝐷𝑖] không ?
+ Nếu không tồn tại ⟹ kết luận nhiệm vụ không lập lịch được
+ Nếu tồn tại ⟹ xét xem có tồn tại 𝑡𝑖,1∗ ∈ (0, 𝑇𝑖] không ?
• Nếu tồn tại ⟹ kết luận nhiệm vụ lập lịch được và kết thúc
• Nếu không tồn tại ⟹ tiếp tục bước 2
- Bước 2: Xét xem có tồn tại 𝑡𝑖,2∗ ∈ 0, 𝑇𝑖 + 𝐷𝑖 không ?
+ Nếu không tồn tại ⟹ kết luận nhiệm vụ không lập lịch được
+ Nếu tồn tại ⟹ xét xem có tồn tại 𝑡𝑖,2∗ ∈ 0, 2𝑇𝑖 không ?
• Nếu tồn tại ⟹ kết luận nhiệm vụ lập lịch được và kết thúc
• Ngược lại ⟹ tiếp tục bước 3
- Bước 𝑘: Xét xem có tồn tại 𝑡𝑖,𝑘∗ ∈ 0, 𝑘 − 1 𝑇𝑖 + 𝐷𝑖 không ?
+ Nếu không tồn tại ⟹ kết luận nhiệm vụ không lập lịch được
+ Nếu tồn tại ⟹ xét xem có tồn tại 𝑡𝑖,𝑘∗ ∈ 0, 𝑘𝑇𝑖 không ?
• Nếu tồn tại ⟹ kết luận nhiệm vụ lập lịch được và kết thúc
Hàm tải công việc Hàm công suất bộ xử lý
0
𝑊𝑖,𝑙 𝑡 ≤ 𝑡
Trang 25Ở mỗi bước, 𝑡𝑖,𝑘∗ chính là điểm cắt đầu tiên không lấn sang tác vụ kế tiếp Để tìm
𝑡𝑖,𝑘 ∗ ∈ (0, 𝑡𝑟) ta thực hiện như sau:
Xây dựng tập 𝑆𝑖,𝑡𝑟:
𝑆𝑖,𝑡𝑟 = {𝑎𝑇𝑏 − 𝐽𝑏 𝑏 = 1 … 𝑖 − 1, 𝑎 = 1 … 𝑡𝑟 + 𝐽𝑏
𝑇𝑏 ∪ {𝑡𝑟} Duyệt tập 𝑆𝑖,𝑡𝑟 từ trái sang phải xem có tồn tại 𝑊𝑖,𝑘(𝑡) ≤ 𝑡, đó chính là 𝑡𝑖,𝑘 ∗ cần tìm
Như vậy, phương pháp này không tính thời gian phản ứng mà tìm điểm cắt trước kỳ hạn Ở mỗi bước, ta đều thấy xét khả năng lập lịch trước rồi mới xét xem tác
vụ có bị lấn sang tác vụ kế tiếp hay không Điều kiện dừng của thuật toán là tồn tại
𝑡𝑖,𝑘∗ ∈ (0, 𝑘𝑇𝑖] tức là nhiệm vụ 𝜏𝑖 hoàn thành và điểm cắt thuộc khoảng bận rộn mức 𝑖
Ví dụ: Áp dụng phương pháp này cho hệ nhiệm vụ với kỳ hạn không ràng buộc và có
⟹ Tồn tại 𝑡2,1∗ ∈ 0, 𝐷2 và 𝑡2,1∗ ∈ 0, 𝑇2 để 𝑊2 𝑡 ≤ 𝑡 Do đó 𝜏2 lập lịch được
Trang 26⟹ Không tồn tại 𝑡3,2∗ ∈ 0, 2𝑇3 , do đó ta tiếp tục bước 3 Bước 3: Xét xem có tồn tại 𝑡3,3∗ ∈ (0, 2𝑇3 + 𝐷3] không ? + 𝑆3,31 = 2, 3, 6, 9, 10, 14, 15, 18, 21, 22, 26, 27, 30, 31
𝑊3,3 24 = 3 ∗ 3 + 24+ 2
4 1 + 24+ 3
6 2 = 26 > 24
Trang 27⟹ Không tồn tại 𝑡3,3∗ ∈ 0, 3𝑇3 , do đó ta tiếp tục bước 4
Tiếp tục tính cho đến bước thứ 𝑘, tìm được 𝑡𝑖,𝑘∗ , nếu không lại tiếp tục với bước thứ 𝑘 + 1
Như vậy, tôi vừa trình bày 2 phương pháp kiểm định chính xác khả năng lập lịch của một hệ thống thời gian thực dựa trên độ ưu tiên cố định Cả 2 phương pháp đều có
độ phức tạp giả đa thức Do đó, với những hệ mà các nhiệm vụ được sản sinh động, các kiểm định được gọi liên tiếp với số lượng lớn thì thuật toán lại không phù hợp Vì thế, chúng ta có thể chấp nhận một kết quả xấp xỉ nhưng có độ phức tạp chấp nhận được Trong đề tài, tôi lựa chọn kỹ thuật biểu đồ xấp xỉ để kiểm định khả năng lập lịch của hệ thống Chi tiết về phương pháp tôi sẽ trình bày trong phần tiếp theo của luận văn