CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN 1. HỆ THỜI GIAN THỰC 1. Khái niệm hệ thời gian thực Trong những năm gần đây hệ thống điều khiển thời gian thực đang trở thành một lĩnh vực thu hút sự quan tâm của các nhà nghiên cứu khoa học về khoa học máy tính. Đây là hệ thống được ứng dụng rộng rãi hiện nay như: hệ điều hành thời gian thực, lập lịch, rô bôt, các hệ thống điều khiển tự động… Hiện có một số hiểu nhầm về hệ thời gian thực là hệ mà phải xử lí tốc độ cao, xử lý nhanh.
Thực chất thời gian thực có nghĩa là thời gian phải “đủ nhanh” và được đặt trong một ngữ cảnh nào đó như: Có thể là khả năng đáp ứng chính xác tại thời điểm, hay xảy ra trong khoảng thời gian xác định, hay chậm nhât là lúc nào và sớm nhất là lúc nào [2]. Sự kiện Phản ứng Sự kiện Phản ứng T T ts tp-1 tp-2 Thời gian ts tp Thời gian a) Chính xác tại t = tp b) Trong khoảng. tp-1 ≤ t ≤ tp-2 Sự kiện Phản ứng Sự kiện Phản ứng T T ts tp Thời gian ts tp Thời gian c) Chậm nhất là. t ≤ tp d) Sớm nhất là.
t ≥ tp Hình 1-1: Khả năng đáp ứng của hệ thống Ví dụ xử lý tiến trình của hệ điều hành: khi có rất nhiều các tiến trình cần xử lý, và tại mỗi thời điểm chí có một tiến trình được thực hiện.Vì vậy cần có sự phân chia thời gian, lựa chọn tiến trình sao cho việc thực thi hiệu quả nhất. Định nghĩa [4]: 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 chức năng mà còn phụ thuộc thời gian, hệ thống có lỗi khi yêu cầu về thời gian không được thoả mãn. Như vậy việc thiết kế hệ thống thời gian thực phải đảm bảo hệ thống có thể tiếp nhận các ràng buộc và mặt thời gian trong suốt quá trình thực thi. Phân loại hệ thời gian thực Các hệ thời gian thực thường được phân thành hai loại sau: hệ thời gian thực mềm (Soft real time system) và hệ thời gian thực cứng (Hard real time system) [4]: z 3 Đối với hệ thời gian thực mềm, yếu tố thời gian đóng vai trò quan trọng nhưng nếu thời gian hệ thống đáp ứng không thoả mãn ràng buộc đưa ra – vi phạm ràng buộc thời gian, thời gian trả lời của hệ thống vượt quá giới hạn trễ cho phép tuy nhiên hệ thống vẫn tiếp tục hoat động bình thường, tác hại trễ này thường không đáng kể.
Ví dụ mạng rút tiền tự động ATM là hệ thống thời gian thực. Khi đưa thẻ ATM vào máy, máy sẽ phản ứng lại trong vòng 1 hay 2 giây hoặc nó lâu hơn thế, và nếu không thực hiện được giao dịch thì vẫn phải chấp nhận. Ngược lại với hệ thời gian thực mềm là hệ thời gian thực cứng, trường hợp này hệ thống quan tâm khắt khe đến các hậu quả do vi phạm về giới hạn thời gian trễ cho phép. Thường thì hậu quả của sự vi phạm về mặt thời gian này là ảnh hưởng rất lớn gây tổn hại về vật chất về kinh tế lớn.
Ví dụ như 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. Hay ví dụ điển hình là hệ thống điều khiển không lưu, phân phối đường bay, thời gian cất cánh, 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à thảm họa của nó khó mà lường trước được. KIỂM CHỨNG MÔ HÌNH 1.
Giới thiệu về kiểm chứng mô hình – Model Checking Kiểm chứng mô hình [1] là một kĩ thuật giúp kiểm tra một chương trình hoặc một bản thiết kế có thỏa mãn các tính chất đặt ra hay không một cách tự động. Đầu vào là một mô hình cần kiểm chứng và các thuộc tính cần thỏa mãn. Đầu ra là kết luận mô hình thỏa mãn các tính chất hoặc đưa ra một phản ví dụ nếu mô hình không thỏa mãn Các nghiên cứu đầu tiên về Model Checking (MC) được thực hiện bởi Edmund Melson Clarke và Ernest Allen Emerson cũng như Jean-Pierre Queille và Joseph Sifakis Jean-Pierre. Clarke, Emerson và Sifakis đã được nhận giải thưởng Turing năm 2007 cho các đóng góp của họ về MC.
Có thể nói kiểm chứng mô hình là kỹ thuật phân tích hệ thống để xác định tính hợp lệ của một hay nhiều tính chất mà người dùng quan tâm trong một mô hình cho trước. Cụ thể hơn, với mô hình M và thuộc tính p cho trước, nó kiểm tra liệu thuộc tính p có thỏa mãn trong mô hình M hay không: M |= p. Về mặt thực thi, kiểm chứng mô hình là kỹ thuật tĩnh, nó duyệt qua tất cả các trạng thái, các đường thực thi có thể có trong mô hình M để xác định tính thỏa p. Trên thực tế, mô hình kiểm chứng đã chứng minh rằng nó là một phương thức hiệu quả để phát hiện nhiều lỗi trong các pha thiết kế ban đầu.
Kiểm chứng mô hình bao gồm 3 bước: Mô hình hóa, đặc tả và kiểm chứng. z 4 Ở bước mô hình hóa: kết quả tạo ra là một mô hình mà các công cụ kiểm chứng có thể sử dụng được. Đầu vào của bước này có thể là bản thiết kế phần mềm hoặc là các dòng mã lập trình. Bước đặc tả: các thuộc tính mà bản thiết kế cần thỏa mãn được đặc tả.
Các thuộc tính này thường được diễn đạt bằng các biểu thức logic. Kết quả của hai bước mô hình hóa và đặc tả chính là đầu vào của kiểm chứng mô hình. Ở bước cuối cùng: kiểm chứng, công cụ kiểm chứng sẽ tự động thực hiện và trả về kết quả là thỏa mãn nếu mô hình thỏa mãn các thuộc tính, hoặc đưa ra một phản ví dụ nếu mô hình không thỏa mãn. Dựa vào phản ví dụ, người ta có thể tìm ra được lý do vì sao mô hình không thỏa mãn các thuộc tính đặt ra.
Ý nghĩa, hạn chế của kiểm chứng mô hình Mục đích chính của kiểm chứng mô hình giúp tạo ra khả năng cho phép xây dựng và phát triển hệ thống một cách đúng đắn. Các hệ thống phần mềm đang ngày càng trở nên cần thiết và đóng vai trò quan trọng trong đời sống hàng ngày. Nhiều công việc có mức độ ảnh hưởng lớn được thực hiện bởi phần mềm như điều khiển đèn giao thông, giao dịch ngân hàng, điều khiển các thiết bị y tế. Những phần mềm thực hiện các công việc đó phải đảm bảo có độ tin cậy rất cao và không được phép xuất hiện lỗi.
Thực tế cho thấy nếu có một lỗi nhỏ cũng dấn tới việc phá huỷ toàn bộ hệ thống. Như sự kiện ngày 28/6/1962: Tàu thăm dò vũ trụ Mariner I - con tàu có sứ mệnh bay đến sao Kim nhưng đã bị phá hủy 293 giây sau khi phóng do bay chệch hướng so với dự kiến ban đầu. Những cuộc điều tra sau đó đã khám phá ra rằng một công thức được viết trên giấy bằng bút chì đã không được chuyển đổi sang mã điện toán, khiến hệ thống máy tính tính toán sai đường đi của tên lửa. Vì vậy, sự ra đời của kiểm chứng mô hình là cực kì quan trọng, kiểm chứng mô hình cho phép khẳng định được phần mềm hoàn toàn không còn lỗi và thực hiện được đúng các chức năng đã đặt ra.
Ngoài ra, kiểm chứng còn có ý nghĩa quan trọng trong quy trình phát triển phần mềm. Kiểm chứng mô hình cho phép tìm ra được các lỗi ngay từ giai đoạn thiết kế của quy trình phát triển. Điều này có vai trò rất quan trọng vì các lỗi từ giai đoạn thiết kế nếu tìm ra muộn có thể gây thiệt hại rất lớn so với các lỗi của giai đoạn sau. Hiệu suất của việc kiểm định thường phụ thuộc vào không gian trạng thái của hệ thống.
Các hệ thống MC gần đây có thể xử lý các không gian trạng thái lên đến từ 108 đến 1010 phần tử. Do vậy MC không được dùng cho các hệ thống có số trạng thái vô hạn, cũng vì lý do giới hạn của bộ nhớ và số nhân xử lý của hệ thống máy tính. Chính vì thế vấn đề lớn nhất của Model Checking vẫn là bùng nổ tổ hợp không gian trạng thái của hệ thống. Không gian trạng thái phát sinh trong chương trình thường z 5 tăng theo hàm số mũ so với số dòng lệnh và phụ thuộc vào: biến, kích thước của biến tính theo số bit, và cấu trúc của chương trình.
Kiểm chứng mô hình với hệ thời gian thực Với đặc trưng hệ thống thời gian thực là tính đúng đắn của hệ thống phụ thuộc vào thời gian. Thời gian t chúng ta xét trên tập số thực R+. Mỗi trạng thái của hệ thống không chỉ là trạng thái bình thường mà còn gắn kèm với đại lượng thời gian. Như vậy không gian trạng thái của hệ thời gian thực là rất rộng.
Vấn đề của bài toán đặt ra khi kiểm chứng mô hình trên thời gian thực là sự phức tạp về thời gian và không gian trạng thái phát sinh. Kiểm chứng mô hình cần rút gọn không gian trạng thái đưa về các lớp tương đương dựa trên kĩ thuật phân vùng, miền. Trên cơ sở đó đưa ra thuật toán để kiểm tra tính đúng đắn của hệ thống. Kiểm chứng mô hình với công thức khoảng Ở mục này ta làm rõ yếu tố thời gian trong quá trình hoạt động của hệ thống.
Khi hệ thống xuất hiện ở các trạng thái thì thời điểm xuất hiện là lúc nào, xuất hiện bao lâu, phải thoả mãn ràng buộc là gì? Hệ thống xuất hiện ở trạng thái s tại một thời điểm thì ta gọi đây là tính chất thời điểm. Còn tổng thời gian mà hệ thống ở các trạng thái được xem xét thì được gọi là tính chất thời khoảng. Yếu tố rằng buộc thể hiện khi hệ thống xuất hiện ở các trạng thái này phải thoả mãn điều kiện hạn chế thời gian: bị chặn trong khoảng nào đó. Và bài toán đặt ra là liệu với điều kiện cho trước đó hệ thống có đảm bảo tính đúng đắn hay không.
Để chứng minh được sự thoả mãn hay không của hệ thống với các yêu cầu thời gian được đặt ra đã có rất nhiều thuật toán của nhiều nhà nghiên cứu khoa học nhưng độ phức tạp còn rất cao.