CHƯƠNG 1 HỆ THỐNG THỜI GIAN THỰC
1.6. Cơ sở dữ liệu thời gian thực
Cơ sở dữ liệu thời gian thực là cơ sở dữ liệu với ràng buộc thời gian. Với ràng buộc thời gian, một cơ sở dữ liệu toàn vẹn chưa hẳn là cơ sở dữ liệu hợp lệ vì nó không nhất quán với các đối tượng trong thế giới thực. Một giá trị dữ liệu chỉ hợp lệ trong một khoảng thời gian nhất định nào đó. Người ta gọi sự hợp lệ này là hợp lệ thời gian (temporal validity). Một cơ sở dữ liệu truyền thống không thể làm việc dưới điều kiện này vì tính không nhất quán giữa các đối tượng trong thế giới thực với dữ liệu biểu diễn chúng trong cơ sở dữ liệu. Hệ thống cần có khả năng thực hiện các truy vấn nhạy cảm thời gian, chỉ trả về kết quả là những bản ghi hợp lệ thời gian. Thông thường các thiết bị cảm ứng được sử dụng để theo dõi trạng thái của hệ thống vật lý và cập nhật những thay đổi của hệ thống vật lý vào cơ sở dữ liệu. Một điều kiện luôn cần đảm bảo là cơ sở dữ liệu phản ánh đúng hệ thống vật lý trong khi hệ thống vật lý luôn thay đổi. Khi thiết kế hệ thống cơ sở dữ liệu thời gian thực, chúng ta cần quan tâm làm thế nào để biểu diễn hợp lệ thời gian, những thuộc tính nào biểu diễn tính thời gian thực của hệ thống và biểu diễn giá trị của các thuộc tính như thế nào để tính nhất quán không bị mất đi khi thực hiện các giao tác.
Khi thiết kế hệ thống cơ sở dữ liệu thời gian thực, chúng ta còn phải quan tâm hệ thống sẽ làm gì khi thời hạn (thời hạn) đã hết. Ví dụ, một hệ thống điều khiển không lưu liên tục theo dõi hàng trăm máy bay và đưa ra những quyết định về đường hạ cánh của từng chuyến bay tới cũng như thứ tự chúng hạ cánh dựa vào các dữ liệu hợp lệ thời gian như lượng xăng dầu, độ cao và tốc độ máy bay. Nếu một trong các thông tin này được thu nhận chậm trễ, kết quả có thể thật thảm khốc. Để phân biệt các dữ liệu đã quá hạn, người ta thường sử dụng nhãn thời gian để cung cấp các tham chiếu thời gian trong các giao tác cơ sở dữ liệu.
1.6.2. Duy trì tính nhất quán
Mặc dù hệ thống cơ sở dữ liệu thời gian thực có vẻ đơn giản, điều khiển tương tranh (concurrency control) trong hệ cơ sở dữ liệu thời gian thực là một vấn đề lớn.
Khi hai giao tác đồng thời cùng truy cập vào một bản ghi cơ sở dữ liệu, chúng phải được lập lịch để một giao tác thực hiện trước, một giao tác chờ và thực hiện sau nhằm duy trì tính nhất quán của cơ sở dữ liệu.
Trong hệ thống thời gian thực, mỗi giao tác sử dụng một nhãn thời gian để lập lịch cho giao tác. Một bộ ánh xạ ưu tiên (priority mapper) gán độ quan trọng cho giao tác dựa vào cách nhìn về thời gian của hệ thống cùng một số độ ưu tiên khác. Nhãn thời gian phụ thuộc vào thời gian tới (arrival time) của giao tác. Các nhà nghiên cứu chỉ ra rằng, các giao tác tới thường không đều đặn. Hệ thống sẽ đưa ra một thời hạn sớm hơn cho độ ưu tiên cao hơn và thời hạn sau hơn cho độ ưu tiên thấp hơn.
1.6.3. Ràng buộc thời gian
Một hệ thống thỏa mãn các ràng buộc thời gian và tuần tự hóa với các giao tác có thời hạn mềm hoặc xốp bảo đảm tính nhất quán tuyệt đối. Một cách khác để bảo đảm tính nhất quán là sử dụng các ràng buộc tương đối. Ràng buộc tương đối bảo đảm các giao tác vào hệ thống cùng thời điểm như một nhóm.
Một phương pháp tránh xung đột khác được sử dụng trong hệ thống thời gian thực, ngoài cách sử dụng thời hạn, là áp dụng chính sách đợi (wait policy). Chính sách đợi tránh xung đột bằng cách đặt tất cả các khối dữ liệu không được yêu cầu đợi cho đến khi các khối thiết yếu đã được xử lý xong. Các nghiên cứu cho thấy chính sách đợi có thể làm tăng hiệu năng thực hiện của hệ thống lên tới 50%. Chính sách đợi có thể yêu cầu các giao tác có độ ưu tiên thấp đợi những giao tác có độ ưu tiên cao hơn thực hiện trước nhằm tránh hiện tượng khóa chết (deadlock).
Chúng ta xét kỹ hơn về thời hạn. Thời hạn là một ràng buộc thời gian chỉ thời điểm cuối cùng dữ liệu/giao tác còn giá trị. Thời hạn có thể theo quan sát hoặc đoán trước. Trong một hệ thống sử dụng thời hạn theo quan sát, tất cả các giao tác chưa kết thúc được bộ xử lý xem xét và xác định xem nó đã đến thời hạn hay chưa. Các hạn chế nảy sinh trong phương pháp này vì những biến đổi thời gian làm cho việc xác định không chính xác. Một phương pháp ổn định hơn là sử dụng thời hạn đoán trước. Theo phương pháp này, một lịch biểu được lập trước và bộ xử lý sử dụng lịch biểu để biết giao tác hết hạn hay chưa.
Xử lý các giao tác quá hạn phụ thuộc vào liệu thời hạn là cứng, mềm hay xốp.
Một thời hạn cứng yêu cầu tất cả các gói dữ liệu phải đến đích trước khi nó hết hạn, nếu không giao tác sẽ bị hủy bỏ. Thời hạn cứng rất khó được thỏa mãn vì những sự cố bất thường có thể xảy ra làm gói tin chậm lại. Với thời hạn mềm hoặc xốp (soft or firm), vi phạm thời hạn không làm hủy bỏ giao tác và chỉ làm giảm hiệu năng thực hiện của hệ thống. Tuy nhiên, không có gì đảm bảo hệ thống sẽ thỏa mãn tất cả thời hạn, bởi vậy yêu cầu đưa ra chỉ là hệ thống vi phạm ít thời hạn đến mức có thể.
1.6.4. Hệ quản trị cơ sở dữ liệu thời gian thực
Trong một hệ quản trị cơ sở dữ liệu thời gian thực (Real-Time DataBase Management System - RTDBMS), các giao tác phải thỏa mãn không chỉ các ràng buộc về tính nhất quán mà còn các ràng buộc thời gian. Ngoài ra, một hệ quản trị cơ sở dữ liệu thời gian thực thường phải xử lý cả dữ liệu tạm thời và dữ liệu lâu dài. Hệ quản trị cơ sở dữ liệu thời gian thực phù hợp với các ứng dụng như điều khiển không lưu, thương mại chứng khoán, viễn thông. Mục tiêu chính của nó là thỏa mãn các ràng buộc thời gian cho dù giao tác có thể thất bại. Một số vấn đề lớn cần được quan tâm bao gồm điều khiển tương tranh, giao tác lồng nhau, đảm bảo thời gian thực, và khôi phục dữ liệu.
1.7. Kết luận
Hệ thống thời gian thực là vấn đề lớn, và chương 1 của luận văn đã tìm hiểu, trình bày những vấn đề chung nhất gồm hệ thống thời gian thực, hệ điều hành thời gian thực, nền tảng phần cứng, ngôn ngữ lập trình thời gian thực, truyền thông thời gian thực, và cơ sở dữ liệu thời gian thực.
Với hệ thống thời gian thực, trình bày khái niệm về hệ thống thời gian thực được ủng hộ và trích dẫn nhiều nhất, đó là quan điểm của Stankovic, “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”, đưa ra phân loại và cách phân biệt 2 loại hệ thống thời gian thực là: hệ thống thời gian thực cứng và hệ thống thời gian thực mềm; năm đặc trưng cơ bản của hệ thống thời gian thực là ràng buộc thời gian, tính đồng thời, độ tin cậy và dung thứ lỗi, tính chuyên biệt, kiểm thử và xác thực; ba cách thức xử lý thời gian thực: xử lý tương tranh, xử lý song song, xử lý phân tán và các lĩnh vực ứng dụng của hệ thống thời gian: hệ thống điều khiển giao thông, hệ thống điều khiển trong các nhà máy, hệ thống y tế, hệ thống vũ khí quân sự, hệ thống chế tạo sử dụng robot, hệ thống xử lý các luồng Video và Audio, ...
Tiếp theo trình bày về hệ điều hành thời gian thực gồm: định nghĩa theo chuẩn Chuẩn POSIX 1003.1, “tính thời gian thực trong các hệ điều hành thời gian thực là khả năng của hệ điều hành có thể cung cấp cho các dịch vụ đòi hỏi các đáp ứng có yêu cầu ràng buộc về thời gian”. Một hệ điều hành thời gian thực cần phải: đơn giản, nhỏ gọn, tiên đoán được và dự đoán được trường hợp xấu nhất, và có một số đặc tính hiệu năng là tính kịp thời và tính tiên đoán được được phản ánh qua 2 thông số: độ trễ đáp ứng sự kiện và độ lệch chu kỳ. Hệ điều hành thời gian thực phải bao gồm các chức năng và dịch vụ thời gian thực: truy cập, điều khiển thời gian tương đối và tuyệt đối, quản lý luồng và tiến trình, giải quyết ngoại lệ, các dịch vụ mạng, dịch vụ tệp, .... Đặc biệt khi xem xét hệ điều hành thời gian thực cần quan tâm đến các vấn đề: lập lịch, ưu tiên, đảo ưu tiên, sự đoạt quyền. Ngoài ra, trong phần này cũng giới thiệu một số tiêu chuẩn liên quan đến hệ điều hành thời gian thực, 2 loại hệ điều hành thời gian thực là hệ điều hành thời gian thực thuần tuý và hệ điều hành thời gian thực mở rộng từ các hệ điều hành khác, và một số hệ điều hành thời gian thực tiêu biểu.
Hệ thống thời gian thực có các đặc trưng khác với các hệ thống thông thường nên nền tảng phần cứng cũng có những đặc tính khác, đó là có thể dự đoán được, tin cậy, khử lỗi, có thể truy cập và điều khiển được, tốc độ xử lý, truy cập cao,... Và ngôn ngữ
lập trình cho hệ thống thời gian thực cũng phải có bốn đặc trưng: điều khiển và truy cập theo thời gian, điều khiển tương tranh, xử lý ngoại lệ, có thể dự đoán được.
Trình bày về hệ thống thời gian thực không thể không nói đến truyền thông thời gian thực, trong phần này, ta trình bày tập giao thức truyền thông thời gian thực RTC (Real–Time Communication) của Microsoft với cách thức xử lý lời gọi RTC, giao thức khởi tạo phiên SIP, giao thức mô tả phiên SDP, giao thức truyền thông thời gian thực RTP và giao thức điều khiển truyền thông thời gian thực RTCP.
Cuối cùng, giới thiệu sơ lược về cơ sở dữ liệu thời gian thực với các vấn đề cơ bản: duy trì tính nhất quán, ràng buộc thời gian và hệ quản trị cơ sở dữ liệu thời gian thực.
Hệ thống thời gian thực, đặc biệt xây dựng một hệ thống thời gian thực là một vấn đề đang nhận được sự quan tâm. Tuy nhiên, để xây dựng được một hệ thống nói chung và một hệ thống thời gian thực nói riêng, vấn đề quan trọng nhất là đặc tả và mô hình hoá thế giới thực. Và thật may mắn, chúng ta đã có ngôn ngữ mô hình hoá hợp nhất UML (Unified Modeling Language) hỗ trợ cho quá trình mô hình hoá và tiến trình phát triển phần mềm ROPES (Rapid Object-Oriented Process for Embedded Systems), một tiến trình phát triển khá hiệu quả sử dụng các ký hiệu UML để phát triển các hệ thống nhúng và hệ thống thời gian thực. Trong các phần tiếp theo, luận văn sẽ trình bày chi tiết về ngôn ngữ mô hình hoá hợp nhất UML, tiến trình phát triển phần mềm ROPES và sử dụng tiến trình này để xây dựng hệ thống kiểm soát không lưu.