Tổng quan về hệ điều hành nhúng thời gian thực
Hệ điều hành thời gian thực (Real Time Operating System - RTOS) là thuật ngữ xuất hiện phổ biến trong lĩnh vực phát triển hệ thống nhúng. Các hệ thống này đóng vai trò then chốt trong việc đảm bảo các tác vụ diễn ra đúng thời điểm, đặc biệt trong các ứng dụng yêu cầu tính chính xác và độ ổn định cao. Đây cũng chính là chủ đề xuyên suốt series "Cơ bản về hệ điều hành thời gian thực". Bài viết mở đầu của series sẽ mang đến khái niệm về hệ thống thời gian thực và hệ điều hành thời gian thực, làm nền tảng cho các bài viết và series tiếp theo.
Khái niệm hệ thống thời gian thực (Real-time System)
Khái niệm
Hiểu một các đơn giản, hệ thống thời gian thực là những hệ thống cần đưa ra phản hồi trong một khoảng thời gian nhất định sau khi nhận được tín hiệu đầu vào. Ví dụ, máy bay không người lái phản hồi gần như ngay lập tức với các lệnh từ bộ điều khiển vô tuyến, do đó chúng được xem là hệ thống thời gian thực. Tương tự, túi khí trong ô tô cũng là hệ thống thời gian thực vì đưa ra phản ứng tức thì khi nhận tín hiệu kích hoạt. Ngược lại, máy tính hay máy giặt không được xem là hệ thống thời gian thực, bởi chúng không yêu cầu phải phản hồi trong khoảng thời gian chính xác kể từ khi nhận được tín hiệu đầu vào. Đây là một điểm khác biệt quan trọng trong thiết kế, vì cách xây dựng hệ thống thời gian thực và phi thời gian thực sẽ có nhiều nguyên tắc riêng biệt. Có hai loại hệ thống thời gian thực:
- Hard Real-Time: Mức độ chấp nhận trễ (tolerance for delay) gần như bằng 0 hoặc giới hạn ở một ngưỡng rất nhỏ do nhà sản xuất định nghĩa. Những tác vụ không được hoàn thành đúng hạn thường mang tính sống còn và có thể dẫn tới hậu quả nghiêm trọng.
- Soft Real-Time: Mức độ khắt khe về thời gian hoàn thành thấp hơn; hệ thống có thể chấp nhận một độ trễ nhất định mà không gây hậu quả nghiêm trọng. Thời gian phản hồi không phải là tiêu chí duy nhất để phân loại hard hay soft real-time — yếu tố then chốt là hậu quả khi hệ thống không đáp ứng đúng hạn. Ví dụ, một trò chơi chạy ở 60 FPS sẽ vẽ hình trong 1/60 giây sau lệnh của người chơi; nếu hiển thị bị trễ thì chỉ ảnh hưởng tới trải nghiệm (không gây hậu quả nghiêm trọng), nên đây là soft real-time. Ngược lại, với robot phẫu thuật hay hệ thống túi khí, nếu phản hồi chậm hơn ngưỡng do nhà sản xuất quy định thì có thể gây thương tích nặng hoặc tử vong — do đó những ứng dụng này thuộc dạng hard real-time.
Khái niệm hệ điều hành và hệ điều hành nhúng thời gian thực
Hệ điều hành (Operating System – OS) là gì?
Hệ điều hành là một chương trình máy tính hỗ trợ các chức năng cơ bản của máy tính và phục vụ cho các chương trình, ứng dụng khác chạy trên đó. Ứng dụng cung cấp những chức năng mà người dùng mong muốn hoặc cần, trong khi các dịch vụ do hệ điều hành cung cấp giúp việc thực thi ứng dụng trở nên nhanh hơn, đơn giản hơn và thuận tiện hơn. Ví dụ, khi bạn đang đọc một trang web, bạn sử dụng trình duyệt web – một ứng dụng cung cấp chức năng mà bạn quan tâm, và nó chạy trong môi trường do hệ điều hành cung cấp.
Hệ điều hành thời gian thực (RTOS)
Phần lớn hệ điều hành cho phép nhiều chương trình chạy cùng lúc – đây gọi là đa nhiệm (multitasking). Thực tế, mỗi lõi CPU chỉ có thể chạy một chương trình, một luồng (thread) hoặc một tác vụ (task) tại một thời điểm. Bộ lập lịch tác vụ (task scheduler) trong hệ điều hành sẽ quyết định chương trình nào được chạy vào lúc nào, và liên tục chuyển đổi rất nhanh giữa các chương trình, tạo cho người dùng cảm giác rằng nhiều chương trình đang chạy đồng thời. Tuy nhiên, với các hệ thống nhúng có yêu cầu phản hồi tức thời, cơ chế này là chưa đủ. Đây là lúc mà hệ điều hành thời gian thực (RTOS) ra đời. RTOS là một hệ điều hành chuyên biệt, được thiết kế để xử lý các tác vụ nhạy cảm về thời gian với những ràng buộc chặt chẽ về thời gian, đảm bảo tính dự đoán được (deterministic) và ổn định trong quá trình vận hành. Trong RTOS, bộ lập lịch không chỉ luân phiên các tác vụ như ở hệ điều hành thông thường, mà được thiết kế để tạo ra một mô hình thực thi có thể dự đoán trước. Điều này đặc biệt quan trọng vì các hệ thống nhúng thường có yêu cầu thời gian thực – tức là hệ thống phải phản hồi một sự kiện trong một khoảng thời gian giới hạn cụ thể. Chỉ khi bộ lập lịch hoạt động một cách tất định, hệ điều hành mới có thể đảm bảo đáp ứng được các yêu cầu đó. Khái niệm tính toán thời gian thực (real-time computing) đã xuất hiện từ nhiều thập kỷ trước. RTOS đầu tiên được công nhận là chương trình giám sát thời gian thực (real-time monitor program) do Đại học Cambridge phát triển vào những năm 1960. Hệ thống đột phá này cho phép nhiều tiến trình chạy đồng thời trong những ràng buộc thời gian nghiêm ngặt. Kể từ đó, RTOS đã không ngừng phát triển cùng với tiến bộ công nghệ và nhu cầu ngày càng tăng về khả năng vận hành tin cậy trong thời gian thực. Qua từng thế hệ, các hệ thống này trở nên mạnh mẽ hơn, hiệu quả hơn và giàu tính năng hơn, phục vụ cho nhiều lĩnh vực khác nhau như hàng không vũ trụ, quốc phòng, y học, ứng dụng đa phương tiện, và nhiều ngành công nghiệp khác.
Hệ thống tất định (Deterministic System): Trong toán học và vật lý, đây được định nghĩa là những hệ thống không có yếu tố ngẫu nhiên trong sự phát triển của các trạng thái tương lai. Do đó, một hệ thống tất định luôn tạo ra cùng một đầu ra khi bắt đầu từ một điều kiện hoặc trạng thái ban đầu xác định. Có thể phân ra 3 loại hệ điều hành thời gian thực dựa theo mức độ đáp ứng thời gian thực:
- Hard RTOS: Độ trễ gần như bằng 0. Nếu tác vụ không hoàn thành đúng hạn, hệ thống có thể gặp hậu quả nghiêm trọng. Ví dụ về các ngành công nghiệp mà hệ thống thời gian thực cứng đóng vai trò then chốt gồm: hàng không vũ trụ, quốc phòng, ô tô và tự động hóa công nghiệp. Trong những ứng dụng này, từng mili giây đều quan trọng, từ việc kiểm soát đường bay của máy bay cho đến việc quản lý dây chuyền sản xuất trong nhà máy. Hệ thống thời gian thực cứng là nền tảng để đảm bảo an toàn, độ tin cậy và hiệu quả trong các môi trường đầy thách thức này.
- Firm RTOS: Trễ là không chấp nhận được, nhưng nếu tác vụ bị lỡ hạn thì không gây ra hậu quả nghiêm trọng, chỉ làm giảm chất lượng hệ thống. Loại RTOS này được ứng dụng trong nhiều lĩnh vực, nơi phản hồi kịp thời là rất cần thiết nhưng việc bỏ lỡ một số ít thời hạn sẽ không dẫn đến hỏng hóc nghiêm trọng hay rủi ro an toàn. Ví dụ bao gồm: tự động hóa công nghiệp, nhà máy điện, hệ thống điều khiển giao thông, và mạng viễn thông.
- Soft RTOS: Trễ không quá quan trọng, có thể chấp nhận được. Độ trễ chỉ làm giảm chất lượng hệ thống ở mức có thể chấp nhận được. Tính linh hoạt của hệ thống thời gian thực mềm cho phép xử lý các ứng dụng có thể chịu được một số độ trễ nhỏ mà không gây ra vấn đề lớn. Điều này khiến chúng phù hợp với các ngành công nghiệp như trò chơi điện tử, giải trí và mạng truyền thông.
Các khái niệm liên quan
Thông lượng và độ trễ
Khi thiết kế một hệ thống thời gian thực, bên cạnh các khái niệm như tính xác định (determinism) hay độ tin cậy, hai yếu tố quan trọng khác luôn được nhắc đến là thông lượng (throughput) và độ trễ (latency). Đây là những chỉ số phản ánh trực tiếp khả năng xử lý và tốc độ phản hồi của hệ thống. Việc hiểu rõ mối quan hệ giữa thông lượng và độ trễ không chỉ giúp tối ưu hiệu năng, mà còn đảm bảo hệ thống đáp ứng đúng các ràng buộc thời gian trong môi trường thực tế. Việc hiểu rõ hai khái niệm này là vô cùng quan trọng. Trong các buổi thảo luận nhóm hay khi trình bày sản phẩm, ta thường bắt gặp những câu như: “Chúng tôi chấp nhận tăng độ trễ để đổi lấy tốc độ truyền cao hơn”. Vậy chính xác thì độ trễ và thông lượng có nghĩa là gì?
- Latency (Độ trễ): là khoảng thời gian cần thiết để một gói tin được truyền từ nguồn đến đích. Ví dụ, nếu coi gói tin như một kiện hàng trên băng chuyền, thì thời gian để kiện hàng hoàn tất quá trình di chuyển và đi ra khỏi băng chuyền chính là độ trễ. Hoặc khi ta nhấp mở một trang web mới, khoảng thời gian dữ liệu của trang được gửi từ máy chủ đến thiết bị của ta cũng được gọi là độ trễ.
- Throughput (Thông lượng): là số lượng gói tin được truyền đi và nhận về trong một đơn vị thời gian. Vẫn với ví dụ băng chuyền, số kiện hàng đi ra trong một phút sau khi kiện hàng đầu tiên đến đích thể hiện thông lượng. Tương tự, tổng số gói dữ liệu mà một máy chủ web gửi đến client trong một phút cũng chính là thông lượng.
Trình lập lịch tác vụ (Task Scheduler)
Trình lập lịch tác vụ có nhiệm vụ ghi lại trạng thái của từng tác vụ, chọn tác vụ sẵn sàng để thực thi, rồi cấp bộ xử lý (CPU) cho tác vụ đó. Nhờ vậy, CPU được sử dụng hiệu quả hơn trong các chương trình đa nhiệm, giúp giảm thời gian chờ đợi. Thông thường, có hai loại lập lịch:
- Lập lịch không ưu tiên (Non-Preemptive Scheduling): Không có sự phân cấp ưu tiên giữa các tác vụ, tất cả được coi như ngang nhau. Khi một tác vụ bắt đầu chạy, các tác vụ khác chỉ được thực thi sau khi tác vụ này hoàn tất.
- Lập lịch có ưu tiên (Preemptive Scheduling): CPU luôn kiểm tra xem có tác vụ nào có độ ưu tiên cao hơn không. Nếu có, tác vụ đang chạy sẽ bị tạm dừng ngay lập tức và quyền điều khiển CPU được trao cho tác vụ có ưu tiên cao hơn.
- Bộ phân phối (Dispatcher): Dùng để trao quyền điều khiển CPU cho tác vụ mà trình lập lịch đã chọn. Nhờ vậy, luồng thực thi của hệ thống có thể thay đổi. Khi RTOS đang chạy, luồng thực thi có thể đi qua mã chương trình của tác vụ, chương trình phục vụ ngắt (ISR), hoặc nhân hệ điều hành (kernel).
Qua bài viết, chúng ta đã điểm qua những khái niệm quan trọng xoay quanh hệ điều hành thời gian thực, từ đặc điểm đa nhiệm, vai trò của bộ lập lịch, đến phân biệt các loại RTOS . Việc nắm vững các khái niệm này là nền tảng để hiểu rõ hơn cách RTOS vận hành và ứng dụng trong thực tế. Nếu bạn thấy bài viết hữu ích, hãy like, share và để lại bình luận để cùng thảo luận thêm nhé! Link tham khảo : https://erdemuysalx.medium.com/what-are-real-time-system-and-real-time-operating-system-6cf2caf7042e https://www.ibm.com/think/topics/real-time-operating-system https://www.spiceworks.com/tech/hardware/articles/what-is-rtos/.
All rights reserved