Chương 1 giới thiệu hệ thống thời gian thực: khái niệm, phân loại, đặc trưng, ứng dụng và các vấn đề thời gian thực liên quan như hệ điều phần thời gian thực, cơ sở dữ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 liệu thời gian thực, truyền thông thời gian thực, ngôn ngữ lập trình thời gian thực, yêu cầu phần cứng cho một hệ thống thời gian thực. Tiếp theo, Chương 2 trình bày những vấn đề cơ bản của ngôn ngữ mô hình hoá hợp nhất UML gồm các ký hiệu, các đặc trưng, các mô hình. Trong Chương 3, sẽ giới thiệu tiến trình phát triển các phần mềm ROPES, một tiến trình được sử dụng khá hiệu quả để phát triển hệ thống thời gian thực sử dụng các ký hiệu UML, sẽ trình bày mô hình tiến trình, các pha, các hoạt động và các vật phẩm thu được trong từng pha. Chương 4 tìm hiểu hệ thống kiểm soát không lưu, tầm quan trọng, hoạt động và mô hình của một hệ thống kiểm soát không lưu, phân tích và thiết kế một hệ thống kiểm soát không lưu đơn giản sử dụng tiến trình phát triển ROPES.
Chắc chắn, luận văn còn có những thiếu sót trong nội dung cũng như trong trình bày. Tác giả của luận văn rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo và của các anh/chị học viên. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 CHƢƠNG 1 - HỆ THỐNG THỜI GIAN THỰC 1. Hệ thống thời gian thực 1.
Khái niệm Trong các tài liệu cũng như trong thực tế, khái niệm thời gian thực và hệ thống thời gian thực không phải lúc nào cũng được hiểu một cách thống nhất. Nhiều người cho rằng, hệ thống thời gian thực là một hệ thống phải làm việc với yêu cầu thời gian rất nhanh (trong phạm vi một vài micro-giây gì đó), ví dụ các hệ thống điều khiển tay máy, điều khiển động cơ,. Không ít ý kiến cho rằng, khái niệm thời gian thực luôn gắn với các hệ nhúng và điều khiển thời gian thực là một vấn đề của riêng điều khiển nhúng, tức là các giải pháp sử dụng vi điều khiển,. Lại cũng có quan niệm cho rằng thời gian thực là thời gian tuyệt đối, hệ thống thời gian thực là một hệ thống có khả năng làm việc với thời gian tuyệt đối theo giờ-phút-giây của ngày tháng.
Vậy chúng ta nên hiểu như thế nào đây? Một quan điểm được ủng hộ và trích dẫn nhiều nhất là của Stankovic [Sta96]: “Hệ thống thời gian thực là hệ thống mà tính đúng đắn của nó không chỉ phụ thuộc vào các kết quả logic nó tạo ra mà còn phụ thuộc vào thời điểm các kết quả đó được tạo ra”. Như vậy, hệ thống thời gian thực là một hệ thống mà sự hoạt động tin cậy của nó không chỉ phụ thuộc vào sự chính xác của kết quả, mà còn phụ thuộc vào thời điểm đưa ra kết quả, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn. Trong một bài báo nổi tiếng khác [Sta88], Stankovic cũng đã chỉ ra một số quan niệm sai lầm về khái niệm thời gian thực. Ví dụ, khái niệm hệ thống thời gian thực không đồng nghĩa với khái niệm hệ xử lý tốc độ cao, xử lý nhanh.
Nếu ta cho rằng, phải là các ứng dụng điều khiển có yêu cầu thời gian tính toán rất nhanh mới gọi là điều khiển thời gian thực, thì một câu hỏi sẽ được đặt ra là: như thế nào mới được gọi là nhanh? Ta có thể thống nhất là, cỡ một vài micro-giây là rất nhanh, tuy nhiên nếu một vài chục micro-giây thì sao, một trăm micro-giây thì sao? Nếu một trăm micro- giây mới gọi là nhanh, thì 101, 102,. có nhanh không? Các hệ thống điều khiển với chu kỳ trích mẫu 5ms, 6 ms, 7ms có được gọi là hệ thống thời gian thực hay không? LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Phân loại Về cơ bản, chương trình có tính thời gian thực phải có khả năng phản ứng lại các sự kiện trong môi trường mà hệ thống làm việc trong khoảng thời gian nhất định cho trước. Những hệ thống như vậy được gọi là hệ thống "điều khiển sự kiện" và có thể được mô tả bằng thời gian trễ tính từ khi sự kiện xảy ra tới khi hệ thống có hoạt động phản ứng lại sự kiện đó.
Thời gian thực, mặt khác, đòi hỏi một giới hạn cao hơn về thời gian trễ, được gọi là "thời hạn lập lịch" (scheduling deadline) hoặc gọi tắt là thời hạn. Hệ thống thời gian thực thường được phân thành hai loại: hệ thống thời gian thực cứng (hard real-time system) và hệ thống thời gian thực mềm (soft real- time system). Hệ thống thời gian thực cứng là hệ thống mà các hành động của nó phải không bao giờ được vi phạm các ràng buộc thời gian trong đó có thời hạn lập lịch, hệ thống phải tiếp nhận và nắm bắt được thời hạn lập lịch của nó tại mọi thời điểm. Hệ thống có lỗi hoặc sai sót trong việc tiếp nhận thời hạn sẽ gây ra các hậu quả rất nghiêm trọng, thiệt hại về vật chất, gây ảnh hưởng xấu đến sức khoẻ, đời sống của con người, thậm chí chết người.
Với hệ thống thời gian thực cứng, dữ liệu trễ là dữ liệu tồi. Một ví dụ về hệ thống thời gian thực cứng là hệ thống kiểm soát không lưu. Trong hệ thống này, một phân phối đường bay, thời gian cất cánh, thời gian hạ cánh không hợp lý, không đúng lúc có thể gây ra tai nạn máy bay mà hậu quả của nó khó mà lường trước được. Một ví dụ khác, máy hỗ trợ nhịp tim cho bệnh nhân khi phẫu thuật.
Thuật toán điều khiển phụ thuộc vào thời gian nhịp tim của người bệnh, nếu thời gian này bị trễ, tính mạng của người bệnh sẽ bị ảnh hưởng. Ngược lại, hệ thống thời gian thực mềm là hệ thống có các ràng buộc về thời gian, tuy nhiên, trong trường hợp các ràng buộc này bị vi phạm, tức là thời gian trả lời của hệ thống vượt quá thời hạn đặt ra, hệ thống vẫn hoạt động được tiếp và kết quả nó tạo ra bị giảm ―giá trị‖ theo một nghĩa nào đó. Nói cách khác, những kết quả tạo ra không đúng hạn tuy không hữu ích/không làm hài lòng người sử dụng bằng khi nó được tạo ra đúng hạn nhưng vẫn được chấp nhận. Chúng ta mong muốn hệ thống phản ứng lại các sự kiện trong thời gian cho phép nhưng không có gì thực sự nghiêm trọng xảy ra nếu hệ thống thỉnh thoảng bị trễ.
Lỗi về mặt thời gian có thể chỉ đơn giản là dẫn đến hậu quả giảm độ tin cậy của đối tượng đối với hệ thống mà không có hậu quả thê thảm nào khác xảy ra. Mạng lưới thu ngân tự động của ngân hàng là ví dụ rõ nhất cho hệ thống thời gian thực mềm. Mạng rút tiền tự động ATM là hệ thống thời gian thực? Chẳng ai dám đánh cược cả. Khi bạn đưa thẻ ATM vào máy, bạn mong là máy sẽ phản LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 ứng lại trong vòng 1 hay 2 giây.
Nhưng nếu nó lâu hơn thế, điều tồi tệ nhất có thể xảy ra là bạn sốt ruột và thấy khó chịu vì cái máy đó. Giá trị cứng mềm Thời gian - + Thời hạn lập lịch Hình 1. Hệ thống thời gian thực cứng và mềm Trên thực tế có rất nhiều hệ thống phối hợp cả hai loại trên, trong đó, một phần nào đó của hệ thống làm việc dựa trên hệ thống thời gian thực cứng, một số phần khác lại dựa trên hệ thống thời gian thực mềm. Ta có thể quan niệm hệ thống thời gian thực cứng là hệ thống phải thỏa mãn các ràng buộc cứng về thời gian - ràng buộc thời gian không được phép vi phạm.
Tương tự, hệ thống thời gian thực mềm là hệ thống phải thỏa các ràng buộc mềm về thời gian - ràng buộc thời gian được phép vi phạm, nhưng các vi phạm sẽ làm giảm giá trị của kết quả. Một hệ thống có thể có cả các ràng buộc cứng lẫn ràng buộc mềm về thời gian. Phi thời Thời gian Thời gian gian thực thực mềm thực cứng Mô phỏng Giao diện Internet Điều khiển Viễn Điều Động cơ máy tính người sử dụng video mạch thông khiển bay điện Hình 1. Hệ thống phi thời gian thực, hệ thống thời gian thực cứng và hệ thống thời gian thực mềm.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Đặc trƣng Đặc trưng đầu tiên của hệ thống thời gian thực là ràng buộc thời gian (timing constraint) hay tính phản ứng nhanh. Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đưa ra kết quả một cách kịp thời. Một chương trình không những phải đưa ra kết quả tính toán đúng mà còn phải đưa ra kết quả đúng thời gian.
Hay nói một cách khác, tính đúng đắn của một chương trình không chỉ phụ thuộc vào kết quả tính toán logic mà còn phụ thuộc vào thời gian mà kết quả này được sinh ra. Tổng quát hơn, phần mềm thời gian thực phải thỏa mãn các khẳng định (assertion) thời gian, khẳng định này bao gồm cả quan hệ đối với thời gian tuyệt đối và thời gian tương đối. Cách xác nhận đơn giản nhất và phổ biến nhất là một mốc tới hạn (thời hạn) - giới hạn về thời gian tương đối hoặc tuyệt đối mà một tính toán phải hoàn thành. Ví dụ, trong hệ thống điều khiển robot, có thể có một thời hạn hoặc một giới hạn giữa thời gian một robot đang di chuyển cảm thấy một vật cản trên đường đi và thời gian actuator, chẳng hạn bộ điều khiển chuyển hướng, được kích hoạt để di chuyển robot theo hướng an toàn hơn.
Đặc trưng thứ hai của hệ thống thời gian thực là tính đồng thời (concurrency). Hệ thống phải có khả năng phản ứng và xử lý đồng thời nhiều sự kiện diễn ra. Có thể, cùng một lúc một bộ điều khiển được yêu cầu thực hiện nhiều vòng điều chỉnh, giám sát ngưỡng giá trị nhiều đầu vào, cảnh giới trạng thái làm việc của một số động cơ. Đa số các hệ thống thời gian thực thực hiện một hoặc một tập nhỏ các nhiệm vụ mức cao.
Sự thực thi các nhiệm vụ mức cao này yêu cầu đồng thời nhiều hoạt động mức thấp hơn. Và đây được gọi là tính đồng thời, các hệ thống máy tính sử dụng tính đồng thời để cải thiện thực thi và điều này hoàn toàn có thể thực hiện được trong cả các hệ thống đơn và đa bộ xử lý. Các hệ thống gồm một bộ xử lý chỉ có thể thực hiện được một công việc tại một thời điểm, chúng thực hiện chiến lược lập lịch để điều khiển khi các nhiệm vụ thực thi.