Bảng 5: Bảng phân chi tiết các tiến trình

Một phần của tài liệu Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC (Trang 26 - 27)

• E: đơn vị không cần tài nguyên • Q: đơn vị thời gian cần tài nguyên Q • V: đơn vị thời gian cần tài nguyên V Ta sẽ có sơ đồ chạy sau:

Hình 10: Sơ đồ lập lịch của ví dụ về ưu tiên kế thừa

Có thể giải thích sơ đồ như sau:

• Ở thời điểm đầu tiên P1 được chạy do chỉ có mình nó yêu cầu

• Khi P3 bắt đầu thì P2 cũng bắt đầu, nhưng do P3 có mức ưu tiên cao hơn P1 và P2 nên nó giành lại quyền chạy từ P1.

• Tương tự tại điểm tiếp theo P4 chạy.

• Khi P4 cần tài nguyên Q thì P1 đang giữ, P4 phải dừng lại, P1 kế thừa mức ưu tiên từ P4 và P1 được chạy.

• Đến khi P1 giải phóng tài nguyên Q thì nó trở về mức ưu tiên 1.

• Tiếp sau đó cứ tiến trình nào mức ưu tiên cao hơn thì được chạy trước cho đến khi hoàn thành.

Ta so sánh hai hệ điều hành này trên các cơ sở sau:

• Thời gian đáp ứng sau khi gọi ngắt, chuyển ngữ cảnh gữa các task. • Dung lượng bộ nhớ chương trình khi dịch ra file hex nạp vào chip.

• Lượng RAM cung cấp cho bộ lập lịch, khi tạo task mới, tạo hàng đợi mới, tạo semaphore mới.

Trong ba yếu tố này điểm coi trọng nhất là yếu tố đáp ứng thời gian, sau đó là lượng RAM cần cung cấp cho mỗi hoạt động và cuối cùng là bộ nhớ chương trình. Do hai yếu tố về tài nguyên ta có thể chọn chip phù hợp, còn yếu tố về thời gian là yếu tố phụ thuộc vào bản chất của hệ điều hành. Khác với bộ nhớ chương trình, RAM được cung cấp hạn chế và quy định cho từng tác vụ con bộ nhớ chương trình hầu như là tĩnh và được cung cấp không ngặt nghèo như RAM.

)a Dung lượng bộ nhớ chương trình

Dung lượng bộ nhớ chương trình cho mỗi lõi hệ điều hành tuỳ thuộc vào từng trình dịch khác nhau. Với so sánh này ta dựa trên vi điều khiển PIC18F452 và trình dịch MPLAB C18.

Lõi của FreeRTOS chiếm cỡ 10 KBytes bộ nhớ chương trình. Lõi của uCOS chiếm cỡ KBytes bộ nhớ chương trình.

)b Dung lượng RAM cung cấp

Với dung lượng RAM cung cấp ta có bảng sau:

Mục FreeRTOS (byte) uCOS (byte)

Bộ lập lịch 83

Mỗi task mới 20 (2 byte cho tên) + ngăn xếp Mỗi mức ưu tiên 16

Mỗi hàng đợi 45 + vùng lưu trữ hàng đợi Mỗi semaphore 45

Bảng 6: So sánh lượng RAM cung cấp giữa FreeRTOS và uCOS

Một phần của tài liệu Nghiên cứu và port hệ điều hành thời gian thực FreeRTOS lên vi điều khiển PIC (Trang 26 - 27)