Trong các hệ thống nhúng, một khái niệm thường được nhắc đến rất nhiều đó là “Hệ thống thời gian thực “ (Real Time Embedded System). Để giúp các bạn hiểu rõ hơn về khái niệm rất cơ bản nhưng lại rất quan trọng này, chúng tôi xin giới thiệu với các bạn những nội dung sau:
- Khái niệm hệ thống thời gian thực
- Phân loại hệ thống thời gian thực
- Các phương pháp đánh giá và kiểm thử hệ thống thời gian thực
1. Khái niệm hệ thống thời gian thực
Có khá nhiều bạn đã thắc mắc và hỏi chúng tôi về khái niệm này, nhiều bạn tưởng rằng hệ thống thời gian thực có nghĩa là phải “nhanh”. Thực sự không phải như vậy. Để thỏa mãn tiêu chí thời gian thực, một hệ thống chỉ cần hoàn thành các công việc, các tác vụ trong một khoảng thời gian cho phép (deadline). Khoảng thời gian đó có thể là 1ns hay cũng có thể là hàng vài phút.
- Ví dụ 1. Nếu khoảng cách từ nhà bạn tới trường là 2km, thời gian tối đa cho phép bạn đi từ nhà tới trường là 15 phút => Bạn sẽ là một “hệ thống thời gian thực” nếu bạn đi đến trường trong khoảng thời gian <=15 phút.
- Ví dụ 2. Một hệ thống cửa tự động có gắn mắt thần phát hiện chuyển động. Hệ thống được thiết kế để đảm bảo yêu cầu từ khi phát hiện có người /vật chuyển động trước cửa tới khi mở cửa là 1s => Hệ thống sẽ là thời gian thực nếu mở cửa trong khoảng thời gian <=1s.
2. Phân loại hệ thống thời gian thực
Để phân loại hệ thống thời gian thực, người ta thường phân ra thành 2 loại dựa trên tiêu chí đánh giá hậu quả của việc không đáp ứng ràng buộc về thời gian của từng hệ thống.
Hệ thống “Hard Real-time”: nếu không đáp ứng yêu cầu thời gian thực, hệ thống sẽ sụp đổ hay gây ra hậu quả khôn lường. Bên phải là một hình vẽ minh họa cho ràng buộc trong hệ thống Hard Real-time. Nếu hệ thống không hoàn thành tác vụ trước "Deadline", hệ thống sẽ gây ra hậu quả nghiêm trọng. Ví dụ: Hệ thống làm mát cho nhà máy điện hạt nhân, hệ thống túi khí an toàn trên oto, hệ thống xạ trị tự động, hệ thống báo cháy tự động … | ![]() |
Hệ thống “Soft Real-time”: nếu không đáp ứng yêu cầu thời gian thực, hệ thống sẽ bị suy giảm về chất lượng dịch vụ (Quality of Service – QoS) Bên phải là một hình vẽ minh họa cho ràng buộc trong hệ thống Soft Real-time. Nếu hệ thống không hoàn thành tác vụ trước "Deadline", hệ thống chỉ bị sụt giảm về chất lượng dịch vụ chứ không đến mức gây ra hậu quả gì nghiêm trọng. Ví dụ: Hệ thống Video/Audio streaming, hệ thống mạng, hệ thống kiểm soát đóng mở cửa trên oto, hệ thống điều hòa nhiệt độ dân dụng … | ![]() |
3. Các phương pháp đánh giá và kiểm thử hệ thống thời gian thực
Hiện nay, ở Việt Nam, theo như đánh giá của tác giả thì đa số các kỹ sư xây dựng và phát triển hệ thống nhúng đa phần kiểm tra ràng buộc thời gian thực của hệ thống dựa trên thực nghiệm tức là tiến hành đánh giá một số Test case (trường hợp kiểm thử) cụ thể. Với các hệ thống có cấu hình tương đối mạnh, có thể porting hệ điều hành thời gian thực thì chúng ta lại tin tưởng vào việc điều phối, lập lịch của hệ điều hành.
Trên thế giới, phương pháp này cũng vẫn còn đang được áp dụng rộng rãi, tuy nhiên chắc chúng ta đều có thể dễ dàng nhận thấy nhược điểm của phương pháp này đó là chúng ta rất khó khăn trong việc kiểm tra tất cả các Test case, bởi vậy rất dễ bị sót các trường hợp phát sinh trong quá trinh thực thi hệ thống. Để giúp khắc phục vấn đề này, trên thế giới đã và đang có rất nhiều nghiên cứu khác nhau để hướng tới việc xây dựng các bộ công cụ cho phép kiểm tra kỹ hơn các ràng buộc về mặt thời gian này, cho phép kiểm thử đầy đủ hơn, tránh để sót các trường hợp quan trọng, có nguy cơ cao.
Các nghiên cứu này thường xoay quanh một khái niệm cơ bản đó là “Thời gian thực thi tồi nhất của hệ thống” (Worst Case Execution Time – WCET). Dựa trên khái niệm này, các phần mềm kiểm thử sẽ được xây dựng để tìm ra các WCET của chương trình một cách tự động hoặc bán tự động, đồng thời gợi ý cho các kỹ sư phát triển hệ thống các đoạn mã, thiết kế có thể gây ra các trường hợp không thỏa mãn ràng buộc về thời gian. Nếu tất cả các WCET tìm được đều thỏa mãn Deadline của hệ thống => hệ thống đã đáp ứng các yêu cầu về thời gian thực.
Dưới đây là một số nghiên cứu và kết quả cho phép đánh giá WCET của hệ thống:
- Ứng dụng cho các vi xử lý đơn nhân: http://www.comp.nus.edu.sg/~rpembed/chronos/
- Ứng dụng cho các vi xử lý đa nhân: http://www.comp.nus.edu.sg/~rpembed/chronos-multi-core.html
Tác giả: thuanpv
Bạn có đam mê ngành thiết kế vi mạch và bạn muốn có mức lương 1000 usd cùng lúc bạn
đang muốn tìm một Trung tâm để học vậy hãy đến với ngành vi mạch tại SEMICON
HotLine: 0972 800 931 Ms Duyên