CHƯƠNG 1 VỀ THỜI GIAN THỰC TRONG THANH TOÁN GIAO DỊCH CHỨNG KHOÁN
1.3. V ấN Đề THờI GIAN THựC TRONG THANH TOÁN CHứNG KHOÁN
1.3.2. Hệ thời gian thực và điều khiển thời gian thực
Trước tiên, luận văn đưa ra hai ví dụ minh họa đơn giản để trả lời câu hỏi về sự liên quan giữa một giải pháp điều khiển với cái gọi là xử lý thời gian thực.
Ví dụ thứ nhất, từ lý thuyết điều khiển tự động, ta đã hiểu rõ thuật toán điều chỉnh PID. Câu hỏi đặt ra là phải lập trình nhƣ thế nào để cài đặt thuật toán trên nền một hệ vi xử lý, hoặc chỉ đơn thuần mô phỏng thời gian thực trên máy tính cá nhân?
Nếu ta cứ bỏ qua các chi tiết nhƣ gián đoạn hóa, lọc nhiễu, chuẩn hóa vào/ra và
chống reset-windup, thì vẫn có hàng loạt các câu hỏi khác cần phải trả lời:
1. Làm thế nào để tạo các chu kỳ trích mẫu hay chu kỳ điều khiển một cách chính xác (ví dụ 0.01s hoặc 0.5s) trong chương trình theo đúng yêu cầu của lý thuyết điều khiển số?
2. Ngay cả khi ta đã biết sử dụng các ngắt thời gian để tạo chu kỳ trích mẫu, nhƣng nếu phải thực hiện nhiều vòng điều chỉnh PID với chu kỳ trích mẫu khác nhau thì giải pháp sẽ phải thế nào? Khi nào và làm thế nào để một vi xử lý có thể đáp ứng đồng thời yêu cầu thực hiện nhiều thuật toán điều chỉnh? Thêm vào đó, nếu một số sự kiện khác xảy ra cần xử lý ngay thì việc tổ chức thực hiện trong chương trình ra sao?
3. Khi một vòng điều chỉnh không đƣợc đáp ứng về yêu cầu thời gian (chu kỳ trích mẫu không chính xác, thời điểm đƣa ra kết quả tính toán chậm hơn thời điểm trích mẫu tiếp theo), thì chất lƣợng điều khiển sẽ bị ảnh hưởng như thế nào?
Hình 1.6. Minh họa thời gian thực
Rõ ràng, theo [7], việc đƣa ra lời giải đáp cho những câu hỏi trên không đơn thuần chỉ dựa vào những kiến thức của lý thuyết điều khiển, mà liên quan nhiều hơn tới cơ chế xử lý thông tin trong thiết bị điều khiển. Đó là cơ chế xử lý thời gian thực, một nội dung mang tính chất nền tảng cho mọi thiết bị điều khiển.
Ví dụ thứ hai, giả sử một công ty nào đó muốn tự phát triển một hệ điều khiển (PLC, DCS hay gì đó) trong nước. Ngoài các kiến thức và hiểu biết về cấu trúc phần cứng, thiết kế vi mạch, ngôn ngữ lập trình phần mềm và lý thuyết điều khiển, hàng
loạt các vấn đề khác cần phải đƣợc làm rõ:
1. PLC hay DCS là một hệ điều khiển chia sẻ, có nghĩa là nó đảm nhiệm nhiều “tác vụ” đồng thời. Việc quản lý và thực thi “đồng thời” một số lƣợng không nhỏ các “tác vụ” nhƣ vậy đƣợc thực hiện theo cơ chế nào để đáp ứng được các yêu cầu về thời gian do người sử dụng định nghĩa?
Làm thế nào để giữa các tác vụ đó không chanh chấp sử dụng bộ nhớ, cổng vào/ra, timer,...
2. Làm thế nào để lập trình sử dụng bộ nhớ, sử dụng các cổng vào/ra, và giao tiếp với các thiết bị trong mạng đƣợc thuận tiện? Làm thế nào để có thể hỗ trợ người sử dụng truyền nạp cấu hình phần cứng và chương trình ứng dụng, thậm chí từng phần chương trình xuống bộ điều khiển một cách dễ dàng?
3. Cơ chế cảnh giới, giám sát lỗi bộ nhớ, lỗi các cổng vào ra và lỗi các module được thực hiện như thế nào để nó độc lập với các chương trình ứng dụng.
Câu trả lời chung cho các câu hỏi trên là sự cần thiết phải phát triển một hệ điều hành thời gian thực. Có thể nói, cơ chế xử lý thời gian thực trong mỗi bộ điều khiển công nghiệp nhƣ trong các hệ PLC hoặc DCS là do một hệ điều hành thời gian thực đảm nhiệm.
1.3.2.2. Trở lại về khái niệm thời gian thực
Bây giờ luận văn quay trở lại làm rõ khái niệm “hệ thời gian thực”. 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ờ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ời gian thực là một hệ 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, đ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, DSP, v.v... Lại cũng có quan niệm rằng thời gian thực là thời gian tuyệt đối, hệ thời gian thực là một hệ 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 nên hiểu nhƣ thế nào?
Một quan điểm [2] đƣợc ủng hộ và trích dẫn nhiều nhất là của Stankovic (John
A. Stankovic et al.: “Strategic Directions in Real-Time and Embedded Systems”.
ACM Computing Surveys, Vol. 28, No. 4, December 1996): “A real-time system is one in which the correctness of the system depends not only on the logical results, but also on the time at which the results are produced”. Nhƣ vậy, một hệ 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 [4] khác (“Misconceptions About Real-Time Computing”, IEEE Computer, 21(10), Oct. 1988.), 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ờ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ệ điều khiển với chu kỳ trích mẫu 5ms, 6 ms, 7ms có đƣợc gọi là hệ thời gian thực hay không?
Có thể nói một cách nôm na, tính thời gian thực là khả năng đáp kịp thời và chính xác. Và ta hoàn toàn có thể định nghĩa nhƣ thế nào là kịp thời theo bốn yêu cầu khác nhau, nhƣ minh họa trên hình sau.
Hình 1.7. Các yêu cầu khác nhau về hệ thống thời gian thực
1.3.2.3. Đặc điểm của hệ thống thời gian thực
Một hệ thống thời gian thực [7] có các đặc điểm tiêu biểu sau:
1. Tính bị động: Hệ thống phải phản ứng với các sự kiện xuất hiện vào các thời điểm thường không biết trước. Ví dụ, sự vượt ngưỡng của một giá trị đo, sự thay đổi trạng thái của một thiết bị quá trình phải dẫn đến các phản ứng trong bộ điều khiển.
2. Tính nhanh nhạy: Hệ thống phải xử lý thông tin một cách nhanh chóng để có thể đƣa ra kết quả phản ứng một cách kịp thời. Tuy tính nhanh nhạy là một đặc điểm tiêu biểu, nhƣng một hệ thống có tính năng thời gian thực không nhất thiết phải có đáp ứng thật nhanh mà quan trọng hơn là phải có phản ứng kịp thời đối với các yêu cầu, tác động bên ngoài.
3. Tính đồng thời: 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ơ.
4. Tính tiền định: Dự đoán trước được thời gian phản ứng tiêu biểu, thời gian phản ứng chậm nhất cũng nhƣ trình tự đƣa ra các phản ứng. Nếu một bộ điều khiển phải xử lý đồng thời nhiều nhiệm vụ, ta phải tham gia quyết định đƣợc về trình tự thực hiện các công việc và đánh giá đƣợc thời gian xử lý mỗi công việc. Như vậy người sử dụng mới có cơ sở để đánh giá về khả năng đáp ứng tính thời gian thực của hệ thống.
1.3.2.4. Xử lý thời gian thực
Xử lý thời gian thực [7] là hình thức xử lý thông tin trong một hệ thống để đảm bảo tính năng thời gian thực của nó. Nhƣ vậy, xử lý thời gian thực cũng có các đặc điểm tiêu biểu nêu trên nhƣ tính bị động, tính nhanh nhạy, tính đồng thời và tính tiền định. Để có thể phản ứng với nhiều sự kiện diễn ra cùng một lúc, một hệ thống xử lý thời gian thực sử dụng các quá trình tính toán đồng thời.
Quá trình tính toán là một tiến trình thực hiện một hoặc một phần chương trình tuần tự do hệ điều hành quản lý trên một máy tính, có thể tồn tại đồng thời với các quá trình khác kể cả trong thời gian thực hiện lệnh và thời gian xếp hàng chờ đợi thực hiện.
Các hình thức tổ chức các quá trình tính toán đồng thời:
1. Xử lý cạnh tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin của một bộ xử lý.
2. Xử lý song song: Các quá trình tính toán đƣợc phân chia thực hiện song song trên nhiều bộ xử lý của một máy tính.
3. Xử lý phân tán: Mỗi quá trình tính toán đƣợc thực hiện riêng trên một máy tính.
Trong các hình thức trên đây thì hình thức xử lý cạnh tranh có vai trò chủ chốt.
Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm có thể là một hệ đa vi xử lý, số lượng các quá trình tính toán cần thực hiện thường bao giờ cũng lớn hơn số lƣợng vi xử lý. Trong khi một vi xử lý không thể thực hiện song song nhiều lệnh, nó phải phân chia thời gian để thực hiện xen kẽ nhiều nhiệm vụ khác nhau theo thứ tự tùy theo mức ưu tiên và phương pháp lập lịch.
Hình 1.8. Tác vụ qui định trong chuẩn IEC 61131-3
Trong các hệ thống điều khiển, khái niệm tác vụ (task) cũng hay đƣợc sử dụng bên cạnh quá trình tính toán. Có thể nói, tác vụ là một nhiệm vụ xử lý thông tin trong hệ thống, có thể thực hiện theo cơ chế tuần hoàn (periodic task) hoặc theo sự kiện (event task). Các dạng tác vụ qui định trong chuẩn IEC 61131-3 (Programmable Controllers – Part3: Programming Languages) đƣợc minh họa trên hình sau. Ví dụ, một tác vụ thực hiện nhiệm vụ điều khiển cho một hoặc nhiều mạch vòng kín có chu kỳ trích mẫu giống nhau. Hoặc, một tác vụ có thể thực hiện nhiệm vụ điều khiển logic, điều khiển trình tự theo các sự kiện xảy ra. Tác vụ có thể thực
hiện dưới dạng một quá trình tính toán duy nhất, hoặc một dãy các quá trình tính toán khác nhau.
1.3.2.5. Phương pháp lập lịch
Để tổ chức việc thực hiện các tác vụ đƣợc hiệu quả, một hệ điều hành thời gian thực cần các phương pháp lập lịch [7]. Trước hết, cơ chế lập lịch thực hiện cho các tác vụ có thể đƣợc thực hiện theo hai cách:
1. Lập lịnh tĩnh: thứ tự thực hiện các tác vụ không thay đổi mà đƣợc xác định trước khi hệ thống đi vào hoạt động.
2. Lập lịnh động: hệ điều hành xác định lịnh sau khi hệ thống đã đi vào hoạt động.
Sau khi xác định đƣợc cơ chế lập lịch, hệ điều hành cần sử dụng một sách lƣợc lập lệnh (strategy) để áp dụng đối với từng tình huống cụ thể. Có thể chọn một trong những cách sau:
FIFO (First In First Out): một tác vụ đến trước sẽ được thực hiện trước.
Mức ƣu tiên cố định/động: tại cùng một thời điểm, các tác vụ đƣợc đặt các mức ƣu tiên cố định hoặc có thể thay đổi nếu cần.
Preemptive: còn gọi là sách lƣợc chen hàng, tức là chọn một tác vụ để thực hiện trước các tác vụ khác.
Non-preemptive: còn gọi sách lƣợc không chen hàng. Các tiến trình đƣợc thực hiện bình thường dựa trên mức ưu tiên của chúng.
Việc tính mức ƣu tiên của mỗi tiến trình đƣợc thực hiện theo một trong số các thuật toán sau:
Rate monotonic: tác vụ nào càng diễn ra thường xuyên càng được ưu tiên.
Deadline monotonic: tác vụ nào càng gấp, có thời hạn cuối càng sớm càng đƣợc ƣu tiên.
Least laxity: tác vụ nào có tỷ lệ thời gian tính toán/thời hạn cuối cùng(deadline) càng lớn càng đƣợc ƣu tiên.
Bên cạnh phương pháp lập lịch, cơ chế xử lý thời còn đặt ra nhiều vấn đề khác nữa nhƣ quản lý và đồng bộ hóa việc sử dụng tài nguyên, giao tiếp liên quá trình,...
Tuy nhiên trong khuôn khổ luận văn, ta sẽ không đi sâu vào các chi tiết đó.
Trong thực tế, yêu cầu về tính thời gian thực đối với mỗi ứng dụng điều khiển cũng có các đặc thù khác nhau, mức độ ngặt nghèo khác nhau. Ví dụ, các hệ thống điều khiển nhúng thường được ứng dụng với các sản phẩm chế tạo hàng loạt, chi phí phần cứng cho từng sản phẩm cần đƣợc giảm thiểu, vì vậy dung lƣợng bộ nhớ cũng như hiệu năng vi xử lý thường thấp. Hơn nữa, điều khiển nhúng lại là giải pháp đặc thù trong các ứng dụng nhanh, tiêu biểu là điều khiển chuyển động, dẫn đến các yêu cầu ngặt nghèo hơn về hiệu suất phần mềm. Trong khi đó, các hệ điều khiển công nghiệp nhƣ PLC hoặc DCS đặt ra yêu cầu cao về khả năng lập trình và đƣa vào vận hành thuận tiện cho các bài toán lớn. Các hệ thống ứng dụng PLC và DCS cũng thường chậm hơn (ví dụ trong điều khiển các quá trình công nghệ) Nhƣng nhƣ vậy không có nghĩa là các giải pháp PLC hoặc DCS không phải là các hệ thời gian thực. Điều gì sẽ xảy ra trong một nhà máy điện nguyên tử hay trong một nhà máy lọc dầu, nếu thuật toán điều khiển mặc dù rất hiện đại nhƣng bộ điều khiển không có khả năng đƣa ra kết quả đáp ứng kịp thời vào những thời điểm trích mẫu, hay khi không đƣa ra đƣợc các quyết định dừng khẩn cấp một cách kịp thời trong những tình huống bất thường?
Tóm lại về thời gian thực:
Mỗi hệ thống điều khiển là một hệ thời gian thực. Có thể nói, tất các các hệ thống điều khiển là hệ thời gian thực. Ngƣợc lại, một số lớn các hệ thống thời gian thực là các hệ thống điều khiển. Không có hệ thống điều khiển nào có thể hoạt động bình thường nếu như nó không đáp ứng được các yêu cầu về thời gian, bất kể là hệ thống điều khiển nhiệt độ, điều khiển áp suất, điều khiển lưu lượng hay điều khiển chuyển động. Một bộ điều khiển phải đƣa ra đƣợc tín hiệu điều khiển kịp thời sau một thời gian nhận đƣợc tín hiệu đo để đƣa quá trình kỹ thuật về trạng thái mong muốn. Một mạng truyền thông trong một hệ thống điều khiển có tính năng thời gian thực phải có khả năng truyền tin một cách tin cậy và kịp thời đối với các yêu cầu của các bộ điều khiển, các thiết bị vào/ra, các thiết bị đo và thiết bị chấp hành. Tính năng thời gian thực của một hệ thống điều khiển phân tán không chỉ phụ thuộc vào tính năng thời gian thực của từng thành phần trong hệ thống, mà còn phụ thuộc vào sự phối hợp hoạt động giữa các thành phần đó.
Hệ thống giao dịch trên thị trường chứng khoán có nhiều mảng, tuy nhiên nội dung kết nối thanh toán chứng khoán giữa ngân hàng và Công ty chứng khoán có những yêu cầu ngặt nghèo về yêu cầu đáp ứng thời gian và lưu lượng được phân tích và nghiên cứu tại các phần dưới đây.