Nhân không hỗ trợ đoạt quyền ưu tiên

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG EMBEDDED OS VÀO BÀI TOÁN GIÁM SÁT TRẠM VỆ TINH (Trang 26 - 28)

Các nhân không hỗ trợ đoạt quyền ưu tiên yêu cầu mỗi tác vụ làm một việc gì đó để từ bỏ dứt khoát việc điều khiển CPU. Để duy trì sự đánh lừa về sự trùng lặp về thời gian, thì quá trình này phải được làm một cách tuần tự. Việc lập lịch không đoạt quyền ưu tiên cũng còn được gọi là sự phối hợp nhiều tác vụ (cooperative multitasking), các tác vụ phối hợp với nhau để chia sẻ CPU. Các sự kiện không đồng bộ vẫn được xử lý bởi các ISR. Một ISR có thể tạo ra một tác vụ có quyền cao hơn ở trạng thái READY và sẵn sàng để chạy, nhưng ISR luôn trả về cho tác vụ bị ngắt. Một tác vụ mới có quyền ưu tiên cao hơn sẽ có được quyền điều khiển CPU chỉ khi tác vụ hiện tại từ bỏ quyền điều khiển CPU.

Đáp ứng mức tác vụ sử dụng nhân không hỗ trợ đoạt quyền ưu tiên có thể thấp hơn rất nhiều so với mức nền/đáy hệ thống bởi vì đáp ứng mức tác vụ được đo bằng thời gian của tác vụ dài nhất.

Một ưu điểm nữa của nhân không hỗ trợ đoạt quyền ưu tiên ít cần thiết phải bảo vệ dữ liệu dùng chung thông qua việc sử dụng các semaphore. Mỗi tác vụ chiếm CPU thành của riêng nó, và không phải sợ rằng tác vụ sẽ bị đoạt quyền. Điều này không phải là một quy tắc tuyệt đối, và trong một vài trường hợp, các semaphore cũng nên được sử dụng. các thiết bị chia sẻ I/O cũng có thể yêu cầu việc sử dụng semaphore, ví dụ, một tác vụ cũng có thể cần thiết phải truy cập tới một máy in.

Hình 2-6 Hoạt động của nhân không hỗ trợ đoạt quyền ưu tiên

Hình vẽ 2-5 sau minh hoạ hoạt động của nhân không hỗ trợ đoạt quyền ưu tiên. Một tác vụ đang được thực hiện[F2,4(1)], nhưng nhận được ngắt. Nếu các ngắt được cho phép, thì các vector CPU chuyển tới ISR [L2.4(2)]. Ngắt xử lý sự kiện [F2.4(3)] và tạo một tác vụ ở trạng thái READY có quyền ưu tiên cao hơn. Khi kết thúc ngắt, thì lệnh RFI (Return From Interrupt) được thực hiện, và việc điều khiển CPU chuyển về cho tác vụ bị ngắt [F2.4(4)]. Tác vụ bị ngắt sẽ khôi phục và bắt đầu thực hiện tại lệnh tiếp theo của lệnh bị ngắt [F2.4(5)]. Khi tác vụ hoàn thành, nó gọi một service cung cấp bở nhân để giải phóng CPU cho tác vụ khác [F2.4(6)]. Tác vụ có quyền ưu tiên cao hơn sẽ được thực hiện để xử lý sự kiện gây ra bởi ngắt ISR.

Bất lợi quan trọng của nhân không hỗ trợ đoạt quyền ưu tiên là khả năng đáp ứng. Một tác vụ có quyền ưu tiên cao hơn mà đang ở trạng thái READY có thể phải đợi một thời gian dài để chạy bởi vì tác vụ hiện tại phải giải phóng CPU khi nó sẵn sàng làm như vậy. Thời gian đáp ứng của mức tác vụ trong nhân không hỗ trợ đoạt quyền ưu tiên là không xác định, ta không thể biết khi nào thì tác vụ có quyền ưu tiên cao hơn chiếm được quyền điều khiển CPU. Nó do ứng dụng quyết định giải phóng điều khiển CPU.

Tổng kết lại, một nhân không hỗ trợ đoạt quyền ưu tiên cho phép mỗi tác vụ chạy cho đến khi nó tự nguyện từ bỏ quyền điều khiển CPU. Ngắt đoạt quyền ưu tiên của tác vụ, khi hoàn thành ngắt ISR, ISR trả CPU lại cho tác vụ bị chiếm. Tác vụ đáp ứng tốt hơn so với hệ foreground/background nhưng nó vẫn không xác định. Rất ít nhân thương mại là loại không hỗ trợ đoạt quyền ưu tiên.

Một phần của tài liệu NGHIÊN CỨU ỨNG DỤNG EMBEDDED OS VÀO BÀI TOÁN GIÁM SÁT TRẠM VỆ TINH (Trang 26 - 28)