Ưu điểm của việc sử dụng RTOS như QNX hoặc VxWorks thay vì Linux?


14

Khi phát triển một giải pháp đòi hỏi một hệ điều hành thời gian thực, một hệ điều hành như QNX hoặc VxWorks sẽ có lợi thế gì so với Linux?

Hay nói cách khác, vì các hệ điều hành này được thiết kế dành riêng cho thời gian thực, sử dụng nhúng - trái ngược với Linux, một hệ thống tổng quát hơn có thể được điều chỉnh theo sử dụng thời gian thực - khi bạn cần sử dụng một trong những Những hệ điều hành này thay vì Linux?

Câu trả lời:


13

Một số hệ thống nhúng (a) cần phải đáp ứng các yêu cầu thời gian thực khó khăn, nhưng (b) có phần cứng rất hạn chế (điều này khiến việc đáp ứng các yêu cầu đó càng khó khăn hơn).

Nếu bạn không thể thay đổi phần cứng, thì có một số tình huống bạn buộc phải loại trừ Linux và sử dụng một cái gì đó khác:

  • Có lẽ CPU thậm chí không có MMU, điều này khiến Linux không thể chạy được (trừ uClinux và theo như tôi biết uClinux không phải là thời gian thực).
  • Có lẽ CPU tương đối chậm và độ trễ ngắt trong trường hợp xấu nhất trong Linux không đáp ứng được một số yêu cầu khó khăn và một số RTOS khác được điều chỉnh cho độ trễ ngắt trường hợp cực kỳ thấp nhất có thể đáp ứng yêu cầu.
  • Có lẽ hệ thống có rất ít RAM. Vài năm trước, một thiết lập Linux tối thiểu cần khoảng 2 MB RAM; một thiết lập eCos tối thiểu (với lớp tương thích cho phép nó chạy một số ứng dụng được thiết kế ban đầu để chạy trên Linux) cần khoảng 20 kB RAM.
  • Có lẽ không có cổng Linux cho phần cứng của bạn và không có đủ thời gian để chuyển Linux trước khi bạn cần khởi chạy (chơi chữ!) Hệ thống của bạn. Nhiều RTOS đơn giản hơn mất ít thời gian hơn để chuyển sang phần cứng mới so với Linux.

Loại mã nào có thể di động giữa các RTOS khác nhau? Tôi cũng nghe nói rằng một số giải pháp là từ trên xuống (sử dụng RTOS) trong khi các giải pháp khác được xây dựng từ dưới lên (thêm các tính năng của hệ điều hành vào kim loại trần tăng dần khi bạn cần chúng).
CMCDragonkai

@CMCDragonkai: Các chương trình được viết cho API EL / IX có thể chạy trên mọi HĐH tương thích EL / IX. Các chương trình được viết cho API POSIX có thể chạy trên mọi HĐH tương thích POSIX. Các chương trình được viết cho API uITRON có thể chạy trên mọi hệ điều hành tương thích uITRON.
David Cary

@CMCDragonkai: Có lẽ các lập trình viên.stackexchange.com sẽ là nơi thích hợp hơn để đặt câu hỏi về các RTOS khác nhau?
David Cary

8

Tôi chưa bao giờ thực hiện bất kỳ công việc thời gian thực nào cả, vì vậy hãy thực hiện điều này với một hạt muối ...

Tôi đã nói có hai loại "thời gian thực": thời gian thực cứng và thời gian thực mềm.

"Thời gian thực mềm" không chính thức có nghĩa là "hoàn thành công việc nhanh nhất có thể". Tôi nghĩ rằng Linux trên một CPU hiện đại là tốt cho loại điều này.

"Thời gian thực cứng" không chính thức có nghĩa là "hoàn thành nó trong một cửa sổ thời gian cần thiết". Cửa sổ có thể khá nhỏ, mili giây hoặc một cái gì đó. Hệ thống điều khiển bay cho tên lửa hành trình hoặc phương tiện phóng vệ tinh có vẻ như là ví dụ điển hình. Hệ thống kiểm soát quy trình công nghiệp cũng có thể cần điều này. Con sâu Stuxnet dường như đã can thiệp vào các hệ thống thực hiện kiểu kiểm soát này.

Bạn sẽ sử dụng RTOS trong tình huống sau. RTOS thường đảm bảo cung cấp một ngắt trong ít hơn rất nhiều hướng dẫn hoặc đồng hồ tích tắc hoặc bất cứ điều gì.

Một cân nhắc khác có thể là RTOS được thiết kế, thử nghiệm và / hoặc "chứng minh" không tiêu thụ không gian ngăn xếp mà không bị ràng buộc. Nó có thể sống trong một lượng bộ nhớ tối thiểu nhất định và những thứ như "Kẻ giết người OOM" không tồn tại bởi vì chúng không bao giờ cần thiết. Một số tính năng goofier của FORTRAN sớm đến từ loại yêu cầu này. Khi bạn biên dịch chương trình FORTRAN II, bạn sẽ biết chính xác bao nhiêu stack và bao nhiêu đống cần thiết, vì bạn không thể tái diễn và bạn không thể tự động phân bổ bất cứ thứ gì.

Trên thực tế, việc xem xét thứ hai (tiêu thụ bộ nhớ tối đa được đảm bảo) có thể quan trọng hơn trong một số ứng dụng quan trọng về an toàn so với "độ trễ ngắt được đảm bảo là 0,001 giây".

Tôi cũng sẽ tưởng tượng rằng tước bỏ quá trình lựa chọn lá sung hỗ trợ, bạn sẽ thấy rằng các kỹ sư chọn một RTOS vì "các yêu cầu nói lên".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.