Đánh giá, so sánh trễ ngắt sử dụng kết nối cổng song song lặp vòng

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 32 - 38)

Sử dụng kết nối công song song lặp vòng (theo cách Thomas Wiedemann thực hiện) để xác định thời gian đáp ứng với ngắt ngoài để đánh khả năng thời gian thực. Thời gian đáp ứng ngắt đƣợc xác định bằng thời gian giữa sự xuất hiện của tín

hiệu ngoài và bắt đầu đáp ứng dịch vụ ngắt (ISR). Kết nối đƣợc minh họa trên hình

31

Hình 3.1: Kết nối cổng song song lặp vòng.

Đầu tiên trễ đƣợc đo bởi nhân Linux chuẩn không có bất kỳ sự giành quyền ƣu tiên nào đƣợc cho phép. Tiếp theo từ khóa “CONFIG_PREEMPT” đƣợc cho phép để đánh giá sự nâng cấp giành quyền ƣu tiên của nhân Linux. Cuối cùng, module nhân đƣợc biên dịch lại để thực hiện với các API Linux thời gian thực khác nhau. Tất cả các phép đo đƣợc sử dụng ngắt tần số 1ms và dƣới tải nặng (gồm có tải

vào/ra và tải CPU). Các kết quả đƣợc minh họa qua biểu đồ Hình 3.2 tới 3.4.

Từ các kết quả cho thấy kết quả của Linux chuẩn là mâu thuân với lý thuyết. Nhân không có giành quyền ƣu tiên nguyên thủy thể hiện trễ lớn nhất là thấp nhất, tiếp theo đó là nhân có giành quyền ƣu tiên nguyên thủy đƣợc tích cực và nhân Linux với bản vá ƣu tiên thời gian thực của Ingo Molnar. Nguyên nhân có thể là sự sửa đổi trong nhân Linux có thêm vài chi phí quản lý. Tuy nhiên, chúng ta sẽ lấy giới hạn thời gian đáp ứng trong trƣờng hợp xấu nhất, có thể cao hơn trƣờng hợp nhân không có bản vá giành quyền ƣu tiên. Các phép đo đã thực hiện trong khoảng thời gian khoảng 1 phút.

32

Hình 3.2: Linux chuẩn không có giành quyền ƣu tiên nguyên thủy.

Các biểu đồ trong hình 3.5 tới 3.8 thể hiện thời gian đáp ứng ngắt của

Xenomai và RTAI. Các trễ lớn nhất là thấp hơn khoảng 30% so với nhân Linux

không thực hiện vá giành quyền ƣu tiên và thấp hơn 95% so với trong biểu đồ Hình

3.4. Đây là điều quan trọng nhất cho ứng dụng thời gian thực. Tuy nhiên, trƣờng

hợp thời gian đáp ứng trung bình và nhỏ nhất là kém hơn nhân Linux không sửa đổi. Điều đó có thể giải thích bởi chi phí quản lý đƣờng ống ngắt Adeos.

Xenomai thể hiện trễ cao hơn nếu giành quyền ƣu tiên nguyên thủy của nhân Linux đƣợc cho phép, mặc dù đáp ứng ngắt là đƣợc khởi tạo trong ngữ cảnh điều khiển ngắt. Giành quyền ƣu tiên nguyên thủy chỉ cung cấp các kết quả tốt hơn chỉ khi chuyển khóa tới miều thứ hai xảy ra. Điều này có thể là dấu hiệu từ khóa “CONFIG_PREEMPT” làm xấu hơn tỉ lệ truy cập vùng lƣu trữ. Nó đƣợc lƣu giữ lại và không tạo ra bất kỳ dấu hiệu gì để bật “CONFIG_PREEMPT” nếu luồng thời gian thực không cho phép bất kỳ lời gọi hệ thống Linux nào.

33

Hình 3.3: Linux chuẩn với giành quyền ƣu tiên nguyên thủy.

34

Hình 3.5: Xenomai không có giành uyền ƣu tiên nguyên thủy.

35

Hình 3.7: RTAI không có giành quyền ƣu tiên nguyên thủy.

36

Một phần của tài liệu Nghiên cứu và đánh giá hệ thống điều khiển thời gian thực RTOS (Trang 32 - 38)