1. Giới thiệu về Hệ điều hành Thời gian Thực (RTOS)
Một số thông tin thú vị
Hãy làm rõ một điều: không có CPU đơn nhân nào có thể thực hiện đồng thời hai tác vụ. Thực tế, các tác vụ thay phiên nhau thực hiện, tạo cảm giác như đang chạy “song song”, “đa nhiệm”.
Đặt vấn đề
Khi một chiếc ô tô đang di chuyển, bộ xử lý của nó quản lý nhiều tác vụ cùng một lúc. Nếu tai nạn xảy ra, làm thế nào để tác vụ bung túi khí diễn ra ngay lập tức nhằm bảo vệ tài xế?
Liệu có nên dành riêng một lõi CPU để xử lý các tình huống khẩn cấp? Điều này không phải là một giải pháp tối ưu về chi phí. Trong phần lớn thời gian, lõi đó sẽ không hoạt động, gây lãng phí tài nguyên và tăng chi phí sản xuất. Tôi sẽ tìm một nghiên cứu nói về sự lãng phí này sau.
May mắn thay, có một giải pháp không cần dành riêng một lõi CPU nhưng vẫn đảm bảo tốc độ và độ chính xác, đó chính là RTOS.
Quay lại với tai nạn trên đường, cần một hệ điều hành có khả năng xác định và xử lý tác vụ nào là ưu tiên nhất mà không cần phải trì hoãn.
RTOS ra đời
RTOS (Hệ điều hành Thời gian Thực) được phát triển để giải quyết vấn đề này. Với tính xác định (determinism) và khả năng dự đoán (predictability), RTOS đảm bảo rằng những tác vụ quan trọng như bung túi khí sẽ được xử lý ngay lập tức mà không bị gián đoạn bởi các tác vụ khác.
Phần tiếp theo sẽ đi sâu vào hai đặc tính này của RTOS, giải thích cách mà nó giúp bung túi khí nhanh chóng và chính xác trong bãi biển các tác vụ khác nhau trên cùng một lõi CPU.
2. Hai đặc tính quan trọng: Predictability và Determinism
Quá trình chuyển đổi giữa hai tác vụ trong RTOS diễn ra khi có sự ngắt xảy ra. Ngắt giống như một tín hiệu khẩn cấp, thông báo cho bộ lập lịch rằng có một sự kiện quan trọng cần được ưu tiên xử lý ngay lập tức.
Task 1 → | Quá trình chuyển đổi → | Task 2 |
---|---|---|
Tác vụ 1 đang chạy | Một ngắt xảy ra, hệ thống tạm dừng Task 1, xử lý ngắt, rồi lập lịch và chuyển sang Task 2 | Tác vụ mới bắt đầu thực hiện |
Hai đặc tính này có liên quan chặt chẽ nhưng không giống nhau.
Đặc tính | Tính Xác Định (Determinism) | Khả Năng Dự Đoán (Predictability) |
---|---|---|
Ý nghĩa | Hệ thống luôn phản hồi theo một trình tự cố định và có kiểm soát. | Có thể dự đoán khoảng thời gian để hệ thống phản hồi bằng cách kiểm soát thời gian xử lý từng bước trong hệ thống. |
Giả sử: Khi tai nạn xảy ra, RTOS đảm bảo điều gì? | RTOS thực hiện các bước giống nhau: dừng Task 1 → xử lý ngắt → chuyển sang Task 2 (bung túi khí) nhờ vào cơ chế lập lịch ưu tiên | RTOS đảm bảo thời gian từ khi tai nạn xảy ra đến khi túi khí bung luôn trong thời gian giới hạn |
Nếu không có đặc tính này thì sao? | Hệ thống phản hồi có thể thay đổi không nhất quán. | Phản hồi có thể quá nhanh hoặc quá chậm, gây mất an toàn. |
Ví dụ dễ hiểu | Bấm nút tắt đèn, đèn luôn tắt theo quy trình. | Bấm nút tắt đèn, biết chắc đèn sẽ tắt trong vòng 2 giây. |
Ứng dụng trong RTOS | Đảm bảo quy trình xử lý sự kiện luôn cố định | Đảm bảo hệ thống có thể tính toán trước thời gian phản hồi. |
3. Khái niệm Hệ điều hành Thời gian Thực (RTOS)
RTOS thực sự là một hệ điều hành hoạt động ở mức độ thời gian thực.
Câu hỏi thường gặp:
Hệ điều hành chúng ta đang sử dụng (Windows, Linux…) có phải là “thời gian thực” không?
Câu hỏi thường gặp:
RTOS có tính chất thời gian thực đến mức nào và bản chất của hệ điều hành thời gian thực là gì?
Những điều cần lưu tâm
Độ trễ giữa các tác vụ trên RTOS là không đổi, bất kể số lượng tác vụ là bao nhiêu.
Câu hỏi thứ nhất: Các hệ điều hành như Windows, Linux có phải là “thời gian thực” không?
Hệ điều hành chúng ta sử dụng hàng ngày như MacOS, Windows, Linux được gọi là GPOS (General-Purpose Operating System). Để hiểu rõ, mình sẽ có một bài viết riêng sau.
Hiểu một cách đơn giản, GPOS là Hệ điều hành đa nhiệm, tập trung vào thông lượng (số tác vụ trong một khoảng thời gian).
GPOS không thực sự đảm bảo yếu tố thời gian thực, và độ trễ có thể tăng lên khi có quá nhiều tác vụ được mở cùng lúc.
Câu hỏi thứ hai: RTOS thể hiện khả năng thời gian thực đến mức nào?
Bản chất thực tế là không có máy tính nào có thể vừa tính toán vừa thao tác nhanh như “thực tế”. Không có hệ thống túi khí nào có thể phát hiện tai nạn và bung túi khí ngay lập tức mà không có độ trễ.
RTOS vẫn có độ trễ giữa các tác vụ (thời gian chuyển đổi giữa các tác vụ), nhưng độ trễ này được quản lý một cách nghiêm ngặt và không thay đổi khi có thêm nhiều tác vụ, đồng thời lập trình viên biết được chính xác độ trễ này là bao nhiêu.
Phân loại RTOS
RTOS chia thành hai loại: HARD và SOFT.
Hệ điều hành Thực thời HARD (Hard Real-time): Thời gian phản hồi tuyệt đối phải dưới giới hạn đã định, thường trong microseconds (μs) đến vài milliseconds (ms). Nếu trễ dù chỉ một chút, hệ thống có thể gặp lỗi nghiêm trọng, như trong các hệ thống túi khí xe hơi hay điều khiển phanh ABS.
Hệ điều hành Thực thời SOFT (Soft Real-time): Thời gian phản hồi quan trọng nhưng không nhất thiết phải chính xác tuyệt đối, thường từ milliseconds (ms) đến vài seconds (s). Nếu bị trễ một chút, hệ thống vẫn có thể hoạt động nhưng có thể kém hiệu quả hơn.
Ví dụ, hệ thống giải trí trên ô tô có thể chấp nhận độ trễ từ 100 đến 500 ms mà không gặp vấn đề nghiêm trọng.
4. Các nội dung liên quan sẽ được thảo luận
- So sánh giữa RTOS và GPOS.
- Quá trình chuyển đổi giữa các tác vụ trong RTOS.
- Tầm nhìn tổng thể về hệ thống và RTOS.
- Đối tượng sử dụng RTOS.
- Các giải pháp tương tự như bare-metal.
source: viblo