Bạn đã từng nghe đến thuật ngữ OSEK RTOS chưa? Nếu bạn quan tâm đến phần mềm ô tô, có lẽ bạn đã nghe qua về OSEK ít nhất một lần. Tuy nhiên, việc giải thích sự khác biệt giữa OSEK RTOS và RTOS thông thường không phải là điều dễ dàng. Trang này sẽ cung cấp một cái nhìn tổng quan về OSEK RTOS và so sánh nó với RTOS thông thường để làm rõ sự khác biệt giữa chúng.
OSEK là gì?
OSEK là viết tắt của Offene Systeme und deren Schnittstellen für die Elektronik in Kraftfahrzeugen (Hệ thống Mở và Giao diện của chúng cho Điện tử trong Xe cộ). Đây là một thuật ngữ tiếng Đức và có thể khá khó phát âm. OSEK là một liên minh của Đức được thành lập để tạo ra các tiêu chuẩn phần mềm cho ECU (Electronic Control Unit) trong ô tô. Nó được thành lập vào năm 1993 bởi các công ty ô tô như BMW, DaimlerChrysler, và Volkswagen.
Ngày nay, một số tiêu chuẩn của OSEK cũng đã được đưa vào các tiêu chuẩn ISO như ISO 17456.

Sự khác biệt giữa OSEK RTOS và RTOS thông thường
OSEK RTOS và RTOS thông thường trên vi điều khiển nhìn chung cung cấp các chức năng tương tự như nhau. Ví dụ, cả hai đều có các tác vụ/luồng, mutex, semaphore, v.v. Vậy, sự khác biệt giữa chúng là gì?
OSEK RTOS thường được sử dụng trong các ứng dụng ô tô quan trọng về an toàn. Do đó, nó có những yêu cầu nghiêm ngặt hơn đối với các chức năng của RTOS. Ví dụ, OSEK RTOS chỉ cho phép cấp phát bộ nhớ tĩnh, và tất cả các tác vụ và đối tượng phải được tạo ra tại thời điểm biên dịch. Điều này khác biệt một chút so với một số hệ điều hành mã nguồn mở như FreeRTOS, nơi cho phép cấp phát bộ nhớ động.
Ngoài ra, OSEK RTOS chỉ hỗ trợ hai mức tác vụ: Basic TASK và Extended TASK. Basic TASK có thể được coi như một coroutine, được thực thi đến hoàn thành mà không bị gián đoạn. Trong khi đó, Extended TASK có thể chuyển sang trạng thái ngủ hoặc bị gián đoạn, giống như các tác vụ trong RTOS thông thường.
OSEK RTOS thường không hỗ trợ kế thừa ưu tiên. Thay vào đó, nó sử dụng priority ceilings để ngăn chặn deadlock hoặc đảo ngược ưu tiên. Lý do cho việc áp dụng chiến lược này là vì OSEK RTOS chỉ hỗ trợ các mức ưu tiên tác vụ tĩnh. Thông thường, mutex hỗ trợ kế thừa ưu tiên không có ưu tiên tĩnh.

Lập lịch trong OSEK RTOS
OSEK RTOS hỗ trợ các loại lập lịch tác vụ điển hình mà bạn có thể tìm thấy trong các RTOS thông thường. Ví dụ, bộ lập lịch có thể được cấu hình để cho phép lập lịch non-preemptive hoặc preemptive.
Trong OSEK, các tác vụ cũng có thể được nhóm lại. Các giải pháp RTOS thông thường cũng cho phép time slicing và lập lịch hợp tác cho các tác vụ ở cùng mức ưu tiên. Khả năng lập lịch của OSEK RTOS và RTOS thông thường là rất tương đồng.

Giao diện Tiêu chuẩn
Sự khác biệt lớn nhất giữa OSEK và RTOS thông thường là OSEK RTOS/OS có một bộ API và chức năng tiêu chuẩn. Giao diện này được chuẩn hóa trên tất cả các hệ điều hành OSEK RTOS.






