OS-Application trong AUTOSAR OS
AUTOSAR OS là một hệ điều hành tiêu chuẩn quốc tế cho các hệ thống điện tử trong xe hơi, dựa trên phiên bản 2.23 của OSEK/VDX OS. Hệ điều hành này mở rộng 11 chức năng từ phiên bản cơ bản, bao gồm các tính năng bảo vệ hệ thống, lập lịch thời gian thực, và xử lý bộ đếm.
Đặc điểm của OS-Application
AUTOSAR OS hỗ trợ một tập hợp các đối tượng hệ điều hành (như Task, ISR, Alarm, Schedule Table, Counter) cấu thành Functional Unit. Tập hợp các đối tượng này được gọi là OS-Application.
• OS-Application sẽ yêu cầu các tài nguyên xử lý của bộ vi xử lý được đặt riêng giữa các OS-Application chia sẻ. Tất cả các đối tượng hệ điều hành (Task, ISR, Counter, Alarm, Schedule Table, v.v.) phải thuộc cùng một OS-Application khi được sử dụng.
• Tất cả các đối tượng thuộc cùng một OS-Application có thể truy cập lẫn nhau. Quyền truy cập tới các đối tượng từ một OS-Application khác có thể được cấp trong cấu hình. Nếu một Task có thể thiết lập sự kiện, nó cũng có thể truy cập vào sự kiện đó. Quyền truy cập có nghĩa là các đối tượng hệ điều hành này được phép như các tham số cho dịch vụ API.
• Resource không thuộc về bất kỳ OS-Application nào nhưng phải được cấp quyền truy cập rõ ràng.
• Một đối tượng OS-Application phải nằm trên cùng một Core.
Các loại OS-Application
1. Trusted OS-Application
o Trusted OS-Application có thể tắt các chức năng Monitoring hoặc Protection trong thời gian runtime. Nó có thể truy cập vào bộ nhớ và API của mô-đun hệ điều hành mà không bị hạn chế và có thể hoạt động trong chế độ Privileged Mode nếu bộ vi xử lý hỗ trợ.
o Có thể hoạt động mà không bị giám sát hoặc bảo vệ.
o Có quyền truy cập không giới hạn vào bộ nhớ và API của mô-đun hệ điều hành.
2. Non-Trusted OS-Application
o Non-Trusted OS-Application không thể tắt các chức năng Monitoring hoặc Protection trong thời gian runtime. Quyền truy cập vào bộ nhớ và API của mô-đun hệ điều hành bị hạn chế và nó phải tuân thủ các hoạt động thời gian trong runtime. Nếu bộ vi xử lý hỗ trợ, nó không thể hoạt động trong chế độ Privileged Mode.
o Hoạt động trong chế độ Non-Privileged.
o Quyền truy cập hạn chế vào API và tài nguyên phần cứng.
Dịch vụ của AUTOSAR OS
AUTOSAR OS cung cấp dịch vụ để cung cấp thông tin về quyền truy cập và thành viên của đối tượng cho người gửi. Các dịch vụ này được sử dụng để gọi giữa các OS-Application để kiểm tra quyền truy cập và các tham số.
• Resource không thuộc về bất kỳ OS-Application nào nhưng quyền truy cập cần được cấp rõ ràng. Nguyên lý tương tự cũng áp dụng cho các spin lock trong hệ thống đa nhân.
• OS-Application đang chạy được xác định là OS-Application của Task hoặc ISR đang chạy. Đối với Hook Routine, OS-Application của Task hoặc ISR gọi hook được xác định là OS-Application đang chạy.

Trạng thái của OS-Application
OS-Application có các trạng thái xác định phạm vi truy cập đối tượng hệ điều hành từ các OS-Application khác. Mỗi OS-Application luôn ở trong một trong các trạng thái sau:
1. APPLICATION_ACCESSIBLE
o Trạng thái cho phép truy cập vào các đối tượng Application.
o Đây là trạng thái mặc định khi hệ điều hành bắt đầu.
2. APPLICATION_RESTARTING
o Trạng thái không cho phép truy cập vào các đối tượng Application.
o Có thể thay đổi trạng thái thành APPLICATION_ACCESSIBLE bằng cách sử dụng hàm AllowAccess().
3. APPLICATION_TERMINATED
o Trạng thái khi Application đã kết thúc và không còn sử dụng được.

Quyền truy cập giữa các OS-Application
• Các đối tượng thuộc cùng một OS-Application có thể truy cập lẫn nhau mà không cần thiết lập quyền truy cập thêm.
• Truy cập vào các đối tượng của OS-Application khác cần phải được cấu hình cụ thể.
• Đối với mỗi đối tượng, bạn có thể cấu hình OS-Application nào có thể truy cập vào nó.

Các API chính liên quan đến quyền truy cập OS-Application
1. ApplicationType CheckObjectOwnership(ObjectTypeType <ObjectType>, ObjectID <ID>)
o Kiểm tra OS-Application nào sở hữu đối tượng cụ thể.
2. ApplicationType CheckObjectAccess (ApplicationType AppID, ObjectTypeType <ObjectType>, ObjectID <ID>)
o Kiểm tra xem OS-Application có quyền truy cập vào đối tượng cụ thể hay không.
Các API chính liên quan đến trạng thái OS-Application
1. StatusType GetApplicationState(ApplicationType <ApplicationID>, ApplicationStateRefType Value)
o Sử dụng để kiểm tra trạng thái hiện tại của OS-Application.
2. StatusType TerminateApplication(ApplicationType ApplicationID, RestartOption)
o Kết thúc OS-Application.
o Nếu RestartOption là RESTART, trạng thái sẽ chuyển sang APPLICATION_RESTARTING.
o Nếu RestartOption là NO_RESTART, trạng thái sẽ chuyển sang APPLICATION_TERMINATED.
3. StatusType AllowAccess(void)
o Chuyển trạng thái của OS-Application hiện tại từ APPLICATION_RESTARTING sang APPLICATION_ACCESSIBLE.
Xem thêm Chuyên Mục





