Các thuật ngữ và các từ viết tắt A/D Analog / Digital Bộ chuyển đổi tương tự - số ATC Air Traffic Control Điều khiển máy bay lên xuống CSDL Cơ sở dữ liệu D/A Digital / Analog Bộ chuyển đ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ THANH THOAN
HỆ THỐNG THỜI GIAN THỰC VÀ ỨNG DỤNG CÁC MẪU TRONG THIẾT KẾ
LUẬN VĂN THẠC SĨ
Hà Nội - 2007
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- -
Nguyễn Thị Thanh Thoan
HỆ THỐNG THỜI GIAN THỰC VÀ ỨNG DỤNG CÁC MẪU TRONG THIẾT KẾ
Trang 3MỤC LỤC
Các thuật ngữ và các từ viết tắt 4
Danh mục các hình 5
MỤC LỤC 7
MỞ ĐẦU 10
Chương I : TỔNG QUAN VỀ HỆ THỜI GIAN THỰC 11
1.1 Khái niệm về hệ thời gian thực [1] 11
1.2 Phân loại hệ thời gian thực 12
1.2.1 Hệ thời gian thực cứng 13
1.2.2 Hệ thời gian thực mềm 13
1.3 Đặc điểm của hệ thời gian thực [6] 14
1.4 Cấu trúc thành phần của một hệ thời gian thực 14
1.5 Xử lý thời gian thực 17
1.5.1 Xử lý ngắt 19
1.5.2 Quản lý tiến trình 21
1.6 Một số ứng dụng tiêu biểu của hệ thời gian thực 22
1.6.1 Điều khiển tín hiệu số 23
1.6.2 Điều khiển mức cao 24
1.6.2.1 Các ví dụ về phân cấp điều khiển 24
1.6.2.2 Hướng dẫn và kiểm soát 26
1.6.3 Điều khiển lệnh 26
1.6.4 Xử lý tín hiệu 27
1.6.4.1 Hệ thống radar 27
1.7 Một số hệ thống thời gian thực điển hình 30
1.7.1 Hệ thống giám sát 31
1.7.2 Hệ thống điều khiển 32
1.7.3 Hệ thống thu nhận dữ liệu 33
Trang 42.1 Mẫu thiết kế 35
2.1.1 Khái niệm về mẫu 35
2.1.2 Vai trò của mẫu trong phát triển phần mềm 36
2.1.3 Vòng đời của một mẫu 37
2.1.4 Một số mẫu cho hệ thời gian thực 38
2.1.4.1 Mẫu hành vi Observer 38
2.1.4.2 Mẫu chiến lược 40
2.1.4.3 Mẫu ngắt 41
2.1.4.4 Mẫu luân chuyển Robin 43
2.2 Phân tích thiết kế hướng mẫu - POAD 45
2.3.1 Mục tiêu của POAD 45
2.2.2 Những vẫn đề của POAD 45
2.2.3 Phân tích hướng mẫu 46
2.3.3.1 Tổng quan 46
2.2.3.2 Mục đích của việc phân tích hướng mẫu 48
2.2.3.3 Phân tích các yêu cầu 48
2.2.3.4 Làm quen bước đầu 49
2.2.3.5 Tìm và lấy ra các mẫu 49
2.2.3.6 Lựa chọn mẫu 50
2.2.4 Thiết kế hướng mẫu 51
2.2.4.1 Tổng quan 51
2.2.4.2 Mục đích của việc thiết kế hướng mẫu 51
2.2.4.3 Cấu trúc mẫu 51
2.2.4.4 Cấu trúc các mô hình mức mẫu chi tiết 53
2.4 UML trợ giúp các mẫu thiết kế 54
Chương 3: HỆ THỐNG GIÁM SÁT TRẠNG THÁI HOẠT ĐỘNG TRONG TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG 57
3.1 Tổng quan về trường Đại học Dân lập Hải phòng 57
Trang 53.2.1 Mô tả Bài toán 58
3.2.2 Những vấn đề đặt ra 59
3.2.3 Đặc tả hệ thống 60
3.2.3.1 Hệ thống phần cứng 60
3.2.3.2 Hệ thống phần mềm 60
3.3 Phát triển hệ thống phần mềm theo POAD 61
3.3.1 Xác định mô hình nghiệp vụ 61
3.3.1.1 Các chức năng nghiệp vụ của hệ thống 63
3.3.1.2 Các tác nhân nghiệp vụ 67
3.3.1.3 Các biểu đồ hoạt động của tiến trình nghiệp vụ 67
3.3.1.4 Mô hình miền lĩnh vực 69
2.3.1.5 Từ diển giải thích 70
3.3.2 Biểu diễn mô hình hệ thống nghiệp vụ 71
3.3.2.1 Mô hình ca sử dụng mức cao 72
3.3.2.2 Các mô hình ca sử dụng chi tiết 73
3.3.4 Lựa chọn các mẫu 80
3.4 Thiết kế “Hệ thống giám sát trạng thái hoạt động” 80
3.4.1 Thiết kế ca sử dụng “Quản trị hệ thống” 80
3.4.2 Thiết kế ca sử dụng “Kiểm soát vào ra” 82
3.4.3 Thiết kế ca sử dụng “Xử lý hỏa hoạn” 83
3.4.4 Thiết kế ca sử dụng “Quản trị vận hành” 84
3.5 Một số giao diện chương trình 85
KẾT LUẬN 89
TÀI LIỆU THAM KHẢO 90
Trang 6Các thuật ngữ và các từ viết tắt
A/D Analog / Digital Bộ chuyển đổi tương tự - số
ATC Air Traffic Control Điều khiển máy bay lên xuống CSDL Cơ sở dữ liệu
D/A Digital / Analog Bộ chuyển đổi số - tương tự
HRT Hard Real Time Thời gian thực cứng
I /O Input / Ouput Vào/ra
PloP Patterns language of
Program Chương trình của ngôn ngữ mẫu
PloPD Patterns language of
Program Design
Thiết kế chương trình của ngôn ngữ mẫu
POAD Pattern Oriented Analys
and Design Phân tích và thiết kế hướng mẫu RTS Real Time System Hệ thời gian thực
RUP Rational Unified Process Tiến trình thống nhất của Rational SRT Soft Real Time Thời gian thực mềm
UML Unified Modeling Language Ngôn ngữ mô hình hóa thống nhất
Trang 7Danh mục các hình
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian 11
Hình 1.2 Đồ thị mô tả đặc trưng hai loại hệ thời gian thực 12
Hình 1.3: Các thành phần của hoạt động thời gian thực 15
Hình 1.4: Các kiểu tác vụ theo chuẩn IEC 61131-3 17
Hình 1.5: Mô hình chung của hệ thời gian thực 18
Hình 1.6 Mô hình xử lý ngắt 19
Hình 1.7 Ưu tiên ngắt 20
Hình 1.8: Hành động thực thi thời gian thực yêu cầu bắt đầu một tiến trình 21
Hình 1.9 Một bộ điều khiển số 23
Hình 1.10: Cấu trúc hệ thống điêu khiển máy bay 25
Hình 1.11 Xử lý tín hiệu radar và hệ thống hiệu chỉnh 28
Hình 1.13: Kiến trúc tiến trình hệ thống báo động trộm 31
Hình 1.14: Kiến trúc tiến trình của hệ thống điều khiển nhiệt độ 32
Hình 1.15: Kiến trúc của luồng giám sát hệ thống 33
Hình 1.16: Bộ đệm tròn cho bộ thu nhận dữ liệu 34
Hình 2.1 Vòng đời của một mẫu 37
Hình 2.2 Cấu trúc mẫu Quan sát 39
Hình 2.3 Mô tả cấu trúc mẫu chiến lược 40
Hình 2.4 Cấu trúc mẫu ngắt 41
Hình 2.5 Phương thức điều khiển ngắt 42
Hình 2.7 Sự cấu thành những thiết kế ứng dụng khi sử dụng những mẫu 46
Hình 2.8 Pha phân tích của POAD 47
Hình 2.9 Biểu đồ lớp (a) và Biểu đồ tương tác (b) của mẫu Observer 55
Hình 3.1 Sơ đồ cấu trúc hệ thống phần cứng 60
Bảng 3.1 Bảng phân quyền vào ra 62
Trang 8Hình 3.3 Biểu đồ hoạt động tiến trình nghiệp vụ “Cảnh báo nguy cơ hỏa hoạn” 69
Hình 3.4 Biểu đồ miền lĩnh vực 70
Hình 3.5 Mô hình ca sử dụng mức tổng quát 72
Hình 3.6: Biểu đồ ca sử dụng gói “Quản trị hệ thống” 73
Hình 3.7: Biểu đồ ca sử dụng “Kiểm soát vào ra” 75
Hình 3.8: Mô hình gói ca sử dụng “Cảnh báo hỏa hoạn” 76
Hình 3.9: Biều đồ ca sử dụng gói “Quản lý vận hành” 78
Hình 3.10 Biểu đồ lớp của các lớp đối tượng chính 81
Hình 3.11 Biểu đồ lớp cập nhật bảng phân quyền sử dụng mẫu chiến lược 82
Hình 3.12 Biểu đồ lớp thiết kiểm soát vào ra theo mẫu quan sát 83
Hình 3.13 Biểu đồ lớp mức mẫu “Xử lý hỏa hoạn” 84
Hình 3.14 Biểu đồ lớp cho ca sử dụng giám sát truy nhập và ghi nhật ký 85
Hình 3.15 Giao diện đăng nhập hệ thống 85
Hình 3.16 Giao diện vào ra hệ thống 86
Hình 3.17 Giao diện cảm ứng nhiệt độ 86
Hình 3.18 Giao diện quan sát nhiệt độ 87
Hình 3.19 Giao diện lựa chọn chiến lược cập nhật 87
Hình 3.20 Giao diện cập nhật trực tiếp 88
Hình 3.21 Giao diện cập nhật từ tệp 88
Trang 9Ngày nay, hầu hết các tương tác tính toán trong nhiều hệ thống trên máy tính đều tíến hành theo thời gian thực như các hệ thống điều khiển phản hồi, hệ thống giám sát, các hệ thống điều khiển tự động Các hệ thống trên thường phải đáp ứng được các sự kiện trong thế giới thực về mặt thời gian khi tương tác với môi trường bên ngoài
Có rất nhiều phương pháp được dùng để phân tích thiết kế phần mềm này như: phương pháp “biểu đồ trạng thái”, hay máy trạng thái hữu hạn [11], phương pháp phân tích thiết kế hướng đối tượng, Trong các phương pháp thiết kế trên, phương pháp phân tích hướng đối tượng và sử dụng mẫu trong thiết kế đang là một hướng nghiên cứu và ứng dụng đang phát triển rất mạnh hiện nay Nó mang đặc trưng của công nghệ
sử dụng lại cho việc phát triển các hệ thống phần mềm ở mức thiết kế Vì vậy, đề tài
“Hệ thống thời gian thực và ứng dụng các mẫu trong thiết kế” được chọn làm luận văn tốt nghiệp của tôi
Trong luận văn này, sau khi trình bày tổng quan về hệ thống thời gian thực và trình bày phương pháp phát triển hệ thống phần mềm trên cơ sở phương pháp phân tích hướng đối tượng định hướng mẫu Nó được vận dụng để phân tích thiết kế hệ thống giám sát trạng thái hoạt động trong khuôn viên Trường đại học dân lập Hải Phòng - một hệ thống thời gian thực
Nội dung luận văn gồm ba chương
Chương 1: Tổng quan về Hệ thời gian thực
Trong chương này, trình bày các khái niệm về hệ thống thời gian thực, các ứng dụng điển hình của hệ thống này
Chương 2: Phương pháp phân tích thiết kế hướng mẫu
Trong chương này, trình bày tổng quan về mẫu thiết kế và phương pháp phân tích thiết kế hệ thống phần mềm hướng mẫu Ngoài ra trình bày một số mẫu được sử dụng cho thiết kế cho ứng dụng đề xuất như mẫu Quan sát (Observer), mẫu chiến lược (Trategy), mẫu ngắt (Interruptt), và mẫu luân chuyển Robin (Round Robin)
Chương 3: Hệ thống giám sát trạng thái hoạt động trong khuôn viên Trường Đại học Dân Lập Hải Phòng
Đây là phần xây dựng ứng dụng dựa trên cơ sở lý thuyết đã trình bày ở trên Sử dụng phương pháp phân tích hướng đối tượng và các mẫu để tiến hành phân tích và thiết kế ứng dụng và tiến hành một số cài đặt thử nghiệm
Cuối cùng là phần kết luận và hướng phát triển tiếp theo của đề tài
Trang 10Chương I TỔNG QUAN VỀ HỆ THỜI GIAN THỰC
1.1 Khái niệm về hệ thời gian thực [1]
Hầu hết các bộ xử lý được dùng để điều khiển các máy tính cá nhân đơn giản cho đến toàn bộ các hệ thống máy móc trong các nhà máy Những hệ thống này tương tác trực tiếp với các thiết bị phần cứng Phần mềm trong những hệ thống này được gọi là
hệ thời gian thực nhúng (Embedded Real Time System) Nó thực hiện các xử lý để đáp ứng lại với các sự kiện phát sinh từ các phần cứng bằng cách tạo ra các tín hiệu điều khiển gửi đến các thiết bị phần cứng nhằm đáp ứng những sự kiện của môi trường Những phần mềm này được nhúng vào trong hệ thống phần cứng hay hệ thống lớn hơn
và phải sản ra các tín hiệu điều khiển trong khoảng thời gian thực xác định để đáp ứng được các sự kiện phát sinh từ môi trường của hệ thống
Như vậy, một hệ thời gian thực là một hệ thống mà hoạt động hiệu quả của nó không chỉ phụ thuộc vào sự chính xác của kết quả tạo ra mà còn phụ thuộc vào thời điểm đưa ra kết quả Hệ thống sẽ là thất bại mỗi khi các yêu cầu về thời gian và mức
độ đáp ứng không được thoả mãn Hình 1.1 [5] mô tả mức độ đáp ứng kịp thời của hệ thống theo bốn yêu cầu khác nhau
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian
Trang 11Các hệ thời gian thực khác với các phần mềm khác là những chức năng đáp ứng của hệ thống đối với các sự kiện của môi trường trong một khoảng thời gian nhất định (thường là khoảng thời gian ngắn) Do vậy người ta định nghĩa hệ thời gian thực (Real Time System - RTS) như sau:
Một hệ thời gian thực là một hệ thống mà trong đó tính đúng đắn của nó không chỉ phụ thuộc vào các kết quả logic được tạo ra mà còn phụ thuộc vào thời điểm mà tại đó các kết quả được đưa ra.[10]
Nhiều thay đổi của các sự kiện trong thế giới thực thường xảy ra rất nhanh, mỗi
hệ thống thời gian thực giám sát các sự kiện này phải thực hiện việc xử lý và đưa ra kết quả trong một khoảng thời gian bắt buộc gọi là một hạn định hay thời điểm kết thúc (deadline) Khoảng thời gian này được xác định từ thời gian bắt đầu và thời gian hoàn tất công việc Trong thực tế, nhiều yếu tố kích thích xảy ra trong khoảng thời gian rất ngắn, ví dụ vào khoảng vài mili giây, và khi đó thời gian mà hệ thống cần đáp ứng lại các yếu tố kích thích thường vào khoảng dưới 1 giây mới đảm bảo được yêu cầu mong muốn Khoảng thời gian này bao gồm: thời gian tiếp nhận kích thích, thời gian xử lý thông tin và thời gian hồi đáp kích thích.[10]
1.2 Phân loại hệ thời gian thực
Hệ thời gian thực được chia thành hai loại, hệ thời gian thực cứng (Hardware
real time system) và hệ thời gian thực mềm (Sofware real time system) Hình 1.2 [5]
dưới đây minh họa cho sự khác biệt giữa hai loại hệ thống đó
Hình 1.2 Đồ thị mô tả đặc trưng hai loại hệ thời gian thực
thời điểm đáp ứng (deadline)
Trang 12Trong đó: hạn định (deadline) là khoảng thời gian hay thời điểm mà tại đó các tác vụ thực hiện yêu cầu cần được hoàn thành
1.2.1 Hệ thời gian thực cứng
Trong một số hệ thống được quan tâm đặc biệt đến các hậu quả do sự vi phạm giới hạn về thời gian cho phép Những hậu quả này có thể rất tồi tệ Nó mang lại những thiệt hại nặng nề về vật chất, và có thể gây ra những ảnh hưởng to lớn đến sinh mạng con người Một ví dụ cho loại hệ thống này như việc ra lệnh dừng tàu đã không được thực hiện đúng lúc để tàu đi băng qua ga sẽ là nguyên nhân dẫn đến một tai nạn thảm khốc, hay việc điều khiển ném bom xảy quá chậm có thể nổ vào dân thường thay
vì nổ đúng mục tiêu của một căn cứ quân sự đối phương Chính vì vậy, người ta đưa ra định nghĩa về hệ thời gian thực cứng như sau:
Một hệ thời gian thực cứng là một hệ thống mà hoạt động không đúng đắn của
nó sẽ để lại hậu quả nghiêm trọng [10] Do đó hệ thời gian thực cứng buộc phải đưa ra
các kết quả chính xác trong khoảng thời gian nhất định đã cho
Ví dụ: Một đoàn tàu điều khiển tự động không thể dừng lại ngay lập tức Khi có tín hiệu dứng, hành động phanh lại của nó phải được kích hoạt từ một khoảng cách xác định trên đường ray từ cổng tín hiệu đến vị trí nó phải dừng Khoảng cách phanh này phụ thuộc không chỉ vào tốc độ của con tàu mà còn vào hệ số an toàn của bộ phanh giảm tốc độ Từ tốc độ và sự giảm tốc độ an toàn của tàu, bộ điều khiển có thể tính toán ra thời gian bắt buộc tàu cần hãm phanh và cường độ phanh yêu cầu trước điểm cần dừng bao xa Thời gian giới hạn bắt buộc này chính là thời gian sự cưỡng bức để hoàn thành các công việc như là quan sát, xử lý tín hiệu dừng và kích hoạt phanh Vì vậy, sự cưỡng bức thời gian này phải là cứng mới đảm bảo sự dừng đúng vị trí của con tàu
1.2.2 Hệ thời gian thực mềm
Ngược lại với hệ thời gian thực cứng là hệ thời gian thực mềm Kết quả đưa ra của một hệ thống cho phép một sai số nhất định cả về giá trị và thời gian so với khoảng thời gian dự kiến Tuy nhiên, nếu sự sai lệch này không được đảm bảo nó cũng không gây ra điều gì nghiêm trọng
Đối với hệ thời gian thực mềm, thời gian đáp ứng của hệ thống với yếu tố kích thích cũng quan trọng Tuy nhiên, trong trường hợp này thời gian đáp ứng của hệ thống có thể vượt quá giới hạn trễ cho phép, hệ thống vẫn hoạt động bình thường, không quan tâm đến các tác hại do sự vi phạm này gây ra (thường thì các tác hại này là
Trang 13không đáng kể) Trong trường hợp này, người ta gọi là hệ thống có ràng buộc định thời gian mềm Vì vậy người ta định nghĩa hệ thời gian thực mềm như sau:
Một hệ thời gian thực mềm là một hệ thống mà trong đó các hoạt động của nó được phép hoàn thành trong một sai số cho phép mà không gây hậu quả nghiêm trọng[10], tức là sự đáp ứng của hệ thời gian thực mềm có thể vượt ra ngoài một giới
hạn cho phép mà vẫn có thể chấp nhận được Ví dụ về hệ thống này bao gồm những hệ thống thực hiện tương tác trực tuyến, những bộ chuyển mạch điện thoại, hay các trò chơi (game) điện tử
Trong các tài liệu về hệ thời gian thực, sự phân biệt giữ khoảng thời gian bắt buộc cứng hay mềm thường tùy theo trạng thái định lượng trong những giới hạn mang lại kết quả hữu dụng Tuy nhiên, trong thực tế, sự phân chia này nhiều khi không cần thiết Vì vậy, sự phân chia này chỉ có tính tương đối
1.3 Đặc điểm của hệ thời gian thực [6]
Một hệ thống thời gian thực có các đặc trưng tiêu biểu sau:
Tính bị động: Hệ thống thường phải phản ứng lại 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
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 Đây là một đặc điểm tiêu biểu Tuy nhiên, đối với một hệ thống có tính năng thời gian thực không nhất thiết phải đá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 từ bên ngoài
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
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 Phải lập lịch cho các sự kiện
1.4 Cấu trúc thành phần của một hệ thời gian thực
Baker và Scallon (1986) đã trình bày một thảo luận hay về các yêu cầu thiết bị cho hoạt động thời gian thực Cooling (1991) cũng đề cập tới vấn đề này, và thảo luận tóm tắt về sản phẩm hoạt động thời gian thực thương mại Các yêu cầu riêng cho hệ thời gian thực thường là yêu cầu phần thực thi cần được thiết kế như là một phần của
hệ thống
Trang 14Các thành phần của một RTS [11] (hình 1.3) phụ thuộc vào kích cỡ và sự phức tạp của hệ thời gian thực được xây dựng Thông thường, với mọi hệ thời gian thực (trừ những hệ thống đơn giản) đều có các thành phần sau:
Hình 1.3: Các thành phần của hoạt động thời gian thực
1 Một đồng hồ thời gian thực (real - time clock): thiết bị này cung cấp thông tin
cho việc lập lịch trình xử lý một cách định kỳ
2 Một bộ điều khiển ngắt (unterrupt handler): thành phần này dùng để quản lý các
yêu cầu đáp ứng các sự kiện không theo chu kỳ
Thông tin lập lịch
Trang 153 Một bộ lập lịch (scheduler): thành phần này có nhiệm vụ kiểm tra tiến trình
những phần có thể được thực hiện và chọn ra một ra một thành phần trong số chúng đề thực hiện
4 Một bộ quản lý tài nguyên (resource manager): phân phối một số tài nguyên về
bộ nhớ và bộ xử lý cho một tiến trình đã được sắp lịch thực hiện
5 Bộ điều vận (despatcher): thành phần này được phân nhiệm vụ để khởi động sự
thực thi của một tiến trình
Các hệ thống cung cấp dịch vụ liên tục, như hệ thống viễn thông và hệ thống giám sát thường có các yêu cầu về độ tin cậy cao Chúng có thể còn cần đến những khả năng thực thi khác nữa như là:
6 Quản lý cấu hình (configuration manager): Bộ phận này cho phép thiết lập lại cấu
hình động của phần cứng hệ thống (Kramer và Magee,1985) Ví dụ như: một đơn
vị phần cứng không còn phù hợp với hệ thống Do đó, hệ thống cần được nâng cấp bằng việc thêm hay thay bằng một phần cứng mới mà không cần phải ngừng hoạt động của toàn hệ thống
7 Quản lý lỗi (fault manager): Bộ phận này có nhiệm vụ tự tìm lỗi gây ra từ phần
cứng và phần mềm và tiến hành những hoạt động thích hợp để khôi phục lại trạng thái ổn định từ những trạng thái lỗi đó
Hệ thống thời gian thực thường xử lý các tác nhân kích thích với các mức ưu tiên khác nhau Các tác nhân như là các sự kiện đặc biệt mà thời gian xử lý cần thiết phải được hoàn thành trong khoảng thời gian xác định Những bộ xử lý khác được đặt trong một độ trễ an toàn Do đó, hoạt động của một hệ thống thời gian thực phải quản lý tối thiểu hai mức ưu tiên sau cho các tiến trình hệ thống:
1 Mức ngắt (interrupt level): đây là mức ưu tiên cao nhất Nó là một đặc trưng
dùng để phân biệt các hệ thống thời gian thực với các kiểu hệ thống khác
2 Mức đồng hồ (clock level): mức này chỉ ra sự ưu tiên của một tiến trình đã xác
định trước và được thực hiện theo thời gian định kỳ tính được từ đồng hồ
Trong khoảng thời gian của mỗi mức ưu tiên này, các lớp khác nhau của tiến trình có thể được chỉ định sự ưu tiên khác nhau Ví dụ, một ngắt từ một thiết bị cần thực hiện nhanh có thể dành được quyền ưu tiên xử lý từ một thiết bị chậm hơn để tránh mất thông tin Sự chỉ định tiến trình ưu tiên, thường được yêu cầu phân tích và
mô phỏng nhiều
Trang 161.5 Xử lý thời gian thực
Xử lý thời gian thực (realtime processing) [5] 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 cần sử dụng các tiến 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 trong thời gian thực hiện lệnh và thời gian xếp hàng chờ thực hiện
Có ba hình thức tổ chức các quá trình tính toán đồng thời:
Tính toán tương tranh: Nhiều quá trình tính toán chia sẻ thời gian xử lý thông tin
trên một bộ xử lý
Tính toán 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
Tính toán 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ý tương tranh có vai trò chủ chốt tương ứng với trường hợp phổ biến khi hệ thống chỉ có một bộ xử lý Mặc dù hệ thống điều khiển có thể có nhiều trạm, và mỗi trạm là một hệ đa bộ xử lý, số lượng các quá trình tính toán cần thực hiện luôn lớn hơn số lượng các bộ vi xử lý Trong khi một Bộ
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.4: Các kiểu tác vụ theo chuẩn IEC 61131-3
Mã thực thi
Tác vụ mặc định
Ví dụ:
- Điều khiển logic
- Kiểm tra lỗi
Trang 17Trong các hệ thống điều khiển, khái niệm tác vụ 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ực hiện theo cơ chế tuần hoàn hoặc theo sự kiện 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 1.4 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
Hoạt động của hệ thống thời gian thực được xác định thông qua việc xác định danh sách các kích thích hệ thống nhận được, danh sách các đáp ứng, và thời điểm các đáp ứng cần được sinh ra
Sự kích thích được chia thành hai loại:
1 Kích thích có chu kỳ: Những kích thích này xuất hiện trong khoảng thời gian nhất định cho trước Ví dụ hệ thống có thể kiểm tra một bộ cảm biến, cứ mỗi 50
milli giây thực hiện một hoạt động (hồi đáp phụ thuộc vào giá trị của bộ cảm biến – “kích thích”)
2 Kích thích không theo chu kỳ: Những kích thích này xuất hiện không đều, chúng
thường là những tín hiệu được sử dụng cơ chế ngắt của máy tính Ví dụ, một kích thích sẽ là một ngắt chỉ ra rằng sự truyền vào/ra đã hoàn tất, hoặc chỉ ra rằng dữ liệu đang có trong bộ đệm
Hình 1.5: Mô hình chung của hệ thời gian thực
Hệ thống điều khiển thời gian thực
Bộ cảm biến
Bộ thao tác
Bộ cảm biến
Bộ cảm biến
Bộ cảm biến
Bộ cảm biến
Bộ cảm
biến
Bộ thao tác
Bộ thao tác
Bộ thao tác
Trang 18Kích thích có chu kỳ trong hệ thời gian thực thường được tạo ra bằng một bộ cảm
biến gắn trong hệ thống Các kích thích này cung cấp thông tin trạng thái về môi
trường hệ thống Chúng điều khiển các hồi đáp tác động tới một tập Bộ thao tác có
nhiệm vụ điều khiển một số đơn vị phần cứng, rồi sau đó Bộ thao tác làm ảnh hưởng trực tiếp tới môi trường hệ thống
Kích thích không có chu kỳ có thể sinh ra bởi các Bộ thao tác hay bởi các bộ cảm
biến Chúng thường chỉ ra một số điều kiện ngoại lệ, như ổ cứng hỏng, nó cần phải được quản lý của hệ thống Mô hình cảm biến - hệ thống - bộ thao tác này trong hệ thời gian thực nhúng, được minh họa trong hình 1.5
1.5.1 Xử lý ngắt
Một đặc trưng hay dùng để phân biệt các hệ thống thời gian thực với các kiểu
hệ thống khác là việc xử lý ngắt Hệ thống thời gian thực phải đáp ứng với các kích thích bên ngoài (hay thường gọi là các ngắt) trong một khuôn khổ thời gian do thế giới bên ngoài ấn định Bởi vì nhiều kích thích (ngắt) thường xuất hiện nên phải thiết lập các mức ưu tiên ngắt
Xử lý ngắt bắt buộc không chỉ lưu trữ thông tin để cho máy tính có thể chạy lại đúng đắn nhiệm vụ đã bị ngắt trước đó mà còn phải tránh tắc nghẽn và các chu trình
vô hạn
Hình 1.6 Mô hình xử lý ngắt Cách tiếp cận tổng thể với xử lý ngắt được minh họa trong hình 1.6 Luồng xử
lý thông thường bị “ngắt” bởi một sự kiện được bộ xử lý phát hiện ra từ phần cứng nào
đó Một sự kiện là bất kỳ một sự xuất hiện nào đòi hỏi được đáp ứng ngay lập tức và
Luồng xử lý “thông thường”
Trang 19sự đáp ứng đó có thể được sinh ra bởi phần cứng hoặc phần mềm Trạng thái của chương trình bị ngắt được lưu trữ và điều khiển được chuyển cho dịch vụ ngắt, tức là chuyển tới một phần mềm thích hợp để xử lý ngắt Khi hoàn thành xong nhiệm vụ ngắt thì trạng thái của máy lại được khôi phục và luồng xử lý dở dang (thông thường) lại được tiếp tục
Trong nhiều tình huống, bản thân dịch vụ ngắt cho một sự kiện có thể lại bị ngắt bởi một sự kiện khác, có mức ưu tiên cao hơn Mức ưu tiên ngắt (Hình 1.7) có thể được thiết lập Nếu một tiến trình có mức ưu tiên thấp ngẫu nhiên được phép ngắt bởi một tiến trình có mức ưu tiên cao thì có thể khó chạy lại các tiến trình theo đúng trật tự
và có thể làm phát sinh chu trình vô hạn
và chương trình có thể ngắt tạm thời ngăn cản chúng phục vụ
Nếu các tính toán động chỉ ra rằng, không thể xử lý được các sự kiện xuất hiện trong hệ thống mà vẫn đáp ứng các ràng buộc thời gian thì hệ thống phải quyết định theo sơ đồ hành động Một sơ đồ có thể bao gồm việc đặt dữ liệu vào bộ đệm để nó có thể được xử lý nhanh chóng khi hệ thống sẵn sàng
Mức ưu tiên ngắt
Dịch vụ ngắt mức 3
Dịch vụ ngắt mức 3 hoàn thành
Luồng xử lý thông thường
Ngắt mức 1 Mức 1 dịch vụ ngắt Mức 2 dịch vụ ngắt
Trang 201.5.2 Quản lý tiến trình
Quản lý tiến trình trong hoạt động thời gian thực đề cập tới việc quản lý một tập các tiến trình cùng thực hiện Đó là một phần của hệ thời gian thực Quản lý tiến trình cần chọn ra một tiến trình để thực hiện tại một thời điểm, phân chia bộ nhớ và tài nguyên xử lý cho các tiến trình đó và bắt đầu thực hiện nó trên một bộ xử lý
Tiến trình định kỳ là tiến trình cần được thực hiện sau một khoảng thời gian xác định đã cho giữa hai tiến trình với dữ liệu thu được và Bộ thao tác điều khiển Sự hoạt động này sử dụng đồng hồ thời gian thực để quyết định thời điểm một tiến trình được thực hiện Trong một hệ thời gian thực sẽ có một số lớp tiến trình định kỳ Sẽ có sự khác nhau giữa thời gian thực hiện và hạn định Khi thực hiện cần chọn tiến trình thích hợp để thực thi ở bất cứ thời điểm nào
Đồng hồ thời gian thực được cấu hình là những tiếng “tick” theo chu kỳ, mà khoảng cách giữa những lần “tick” là vài mili giây Đồng hồ “tick” khởi tạo một mức ngắt tiến trình sau khi lập lịch quản lý tiến trình cho các tiến trình định kỳ Tiến trình mức ngắt thường không hồi đáp cho sự quản lý tiến trình định kỳ bởi vì việc xử lý ngắt cần được hoàn thành nhanh nhất có thể
Hình 1.8: Hành động thực thi thời gian thực yêu cầu bắt đầu một tiến trình
Hoạt động quản lý tiến trình định kỳ được chỉ ra ở hình 1.8 Danh sách các tiến trình định kỳ được Bộ lập lịch kiểm tra và lựa chọn một tiến trình để thực hiện Sự lựa chọn này phụ thuộc vào tiến trình ưu tiên, tiến trình định kỳ, thời gian thực thi mong muốn và giới hạn kết thúc của các tiến trình đã sẵn sàng Đôi khi, có hai tiến trình với hai giới hạn khác nhau cần được thực hiện tại cùng một thời điểm Trong tình huống này, một tiến trình sẽ được gán một khoảng thời gian trễ trong giới hạn thời gian của nó
Nguyên nhân gây ra ngắt của máy tính là điều khiển truyền tới một vị trí xác định trên bộ nhớ, nó bao gồm một lệnh nhảy tới một dich vụ ngắt thông thường Dịch vụ ngắt thường cần đơn giản, ngắn và có số lần thực hiện ít Khi một ngắt được phục vụ, những ngắt khác sẽ không thể thực hiện được và sẽ bị hệ thống bỏ qua Để việc mất
Trang 21mát thông tin giảm đến mức thấp nhất, thời gian thực hiện trạng thái ngắt này cần giảm đến mức tối thiểu
Ở bất cứ thời điểm nào, luôn có một số tiến trình đang thực hiện với những sự ưu tiên khác nhau Việc lập lịch sẽ quyết định thứ tự của sự thực hiện Lập lịch hiệu quả
là cần thiết nếu các yêu cầu thời gian thực cho hệ thống được thoả mãn Có 2 nguyên tắc cho chiến lược lập lịch:
1 Lập lịch không ưu tiên trước (non pre-emptive sheduling): Lần đầu tiên một tiến
trình được lên lịch thực hiện, nó được tiến hành cho đến khi kết thúc hoặc đến khi bị chặn vì một số lý do nào đó, chẳng hạn như là chờ đầu vào Đây là nguyên nhân của vấn đề khi có tiến trình với những sự ưu tiên khác nhau và tiến trình có
ưu tiên cao cần chờ cho đến khi tiến trình có ưu tiên thấp kết thúc
2 Lập lịch ưu tiên trước (pre-emptive sheduling): Hoạt động của một tiến trình có
thể bị dừng lại nếu một tiến trình có yêu tiên cao hơn yêu cầu phụ vụ Tiến trình
ưu tiên cao hơn dành quyền thực hiện trước tiến trình có ưu tiên thấp hơn và được chỉ định tới một bộ xử lý
Thực hiện các chiến lược này, có các thuật toán lập lịch khác nhau được phát triển Các thuật toán này bao gồm sự lập lịch Round - Robin, ở đó mỗi tiến trình được thực hiện vòng quanh, tốc độ lập lịch đều đều Khi đó tiến trình với khoảng thời gian ngắn nhất được cấp phát cho mức ưu tiên ngắn nhất (Burns và Wellings,1997) Mỗi phương án lập lịch trên đây đều có mặt ưu và nhược khác nhau Tuy nhiên, do giới hạn của luận văn nên không đủ điều kiện đề cập ở đây
Thông tin về tiến trình thực hiện được chuyển tới bộ phận quản lý tài nguyên Bộ phận quản lý tài nguyên phân phối bộ nhớ và một bộ xử lý (trong hệ đa xử lý) cho tiến trình này Sau đó, tiến trình được đặt vào trong danh sách các tiến trình sẵn sàng cho thực hiện (Ready list) Khi một bộ xử lý kết thúc việc thực thi một tiến trình và được giải phóng thì bộ điều vận sẽ tìm kiếm trong danh sách sẵn sàng để tìm một tiến trình
có thể được thực thi trên đó và bắt đầu thực hiện
1.6 Một số ứng dụng tiêu biểu của hệ thời gian thực
Những ứng dụng điển hình về hệ thời gian thực bao gồm điều khiển tín hiệu số, điều khiển tối ưu, điều khiển lệnh, xử lý tín hiệu, và hệ thống kết nối điện thoại
Trang 221.6.1 Điều khiển tín hiệu số
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 đó
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[10]
Hình 1.9 Một bộ điều khiển số
Một số hệ thống thời gian thực đã được nhúng vào trong bộ cảm biến và các bộ thao tác với chức năng là những bộ điều khiển số Hình 1.9 cho ta một hệ thống như
A/D A/D
Bộ tính toán luật điều khiển D/A
Bộ thao tác Plant
Bộ thao tác
Trang 23vậy Thuật ngữ plant trong sơ đồ khối dùng để chỉ một hệ thống được điều khiển, ví dụ
như: động cơ, phanh xe, máy bay hay người bệnh Từ dữ liệu đọc được của bộ cảm biến về trạng thái hiện thời của plant, hệ thời gian thực tiến hành ước lượng và tính toán dữ liệu đầu ra cho điều khiển (control output) căn cứ vào sự khác nhau giữa trạng thái hiện tại và trạng thái mong muốn (còn được gọi là dữ liệu đầu vào tham chiếu - reference input) Chúng ta gọi sự tính toán này là tính toán luật điều khiển của bộ điều khiển Đầu ra này sinh ra các hoạt động của bộ thao tác nhằm làm cho plant đến gần hơn với trạng thái mong muốn
Trong đó A/D là bộ chuyển tín hiệu tương tự sang tín hiệu số, D/A là bộ chuyển tín hiệu số sang tín hiệu tương tự
1.6.2 Điều khiển mức cao
Bộ điều khiển trong một hệ giám sát phức tạp và hệ thống điều khiển được tổ chức điển hình là hệ phân cấp Một hay nhiều bộ điều khiển số ở mức độ thấp điều khiển trực tiếp plant vật lý Mỗi dữ liệu ra của bộ điều khiển mức độ cao là đầu vào tham chiếu của một hoặc nhiều bộ điều khiển ở mức thấp hơn
1.6.2.1 Các ví dụ về phân cấp điều khiển
Như một ví dụ, hệ thống chăm sóc bệnh nhân bao gồm các bộ điều khiển dựa trên các bộ vi xử lý để giám sát và điều khiển huyết áp, hơi thở, đường huyết và nhiều chức năng khác của bệnh nhân Có thể một bộ điều khiển mức cao (như là hệ chuyên gia) sẽ tương tác với người và vận hành như là y tá hay bác sĩ để chọn lấy các giá trị mong muốn về các chỉ tiêu sức khỏe Trong khi các tính toán được mỗi bộ điều khiển tín hiệu số thực hiện, là những tính toán đơn giản và xác định, thì các tính toán của bộ điều khiển mức cao lại phức tạp hơn và dễ thay đổi Trong khi đó chu kỳ của các tính toán ở mức thấp nằm trong phạm vi từ mili giây tới một vài giây, thì chu kỳ tính toán ở mức cao có thể là hàng phút, thậm chí là hàng giờ
Hình 1.10 hiển thị ví dụ phức tạp hơn: một hệ phân cấp của hệ thống điều khiển bay và kiểm soát không gian sân bay Hệ thống điều khiển máy bay lên xuống (Air Traffic Control - ATC) là ở mức cao nhất Nó điều chỉnh đường bay của mỗi máy bay đến sân bay Nó làm điều đó bằng cách gán cho mỗi chuyến một thời gian đến tại một sân bay cố định trong hành trình bay đến Mỗi chuyến bay giả định đến một vị trí của sân bay vào thời gian đến được dự kiến Vào thời điểm bất kỳ trong chuyến bay, thời gian đến dự kiến tại một điểm đến cố định của lần tiếp theo là tham chiếu đầu vào cho
hệ thống điều khiển trên máy bay Hệ thống điều khiển trên máy bay lựa chọn một đường bay được chỉ dẫn về thời gian cho chuyến bay để đưa nó tới điểm cần đến vào
Trang 24thời gian dự kiến Tốc độ bay, góc quay, mức độ lên /xuống sẽ là những đòi hỏi mà đường bay được chọn cần tuân theo và là đầu vào tham chiếu cho bộ điều khiển bay ở mức cao nhất của hệ thống điều khiển phân cấp
Nhìn chung sẽ có vài mức điều khiển cao hơn Giả sử lấy hệ thống điều khiển robot nhằm thi hành các nhiệm vụ lắp ghép trong một nhà máy làm ví dụ Người lập
kế hoạch đường đi và hành trình tại mức hai xác định hành trình mà mỗi robot công nghiệp cần phải theo Những người lập kế hoạch này thường lấy đầu vào chính là kế hoạch được người lập kế hoạch tác nghiệp tạo ra, mà họ đã chọn một trình tự các bước để thực hiện Trong hệ thống điều khiển robot trong không gian, có thể có một người thiết kế kịch bản, họ xác định một nhiệm vụ cần chuẩn bị hay tiến hành sẽ được thực hiện như thế nào Kế hoạch này được người lập kịch bản tạo ra và là một đầu vào cho người lập kế hoạch tác nghiệp
Hình 1.10: Cấu trúc hệ thống điêu khiển máy bay
DL lưu không
Trạng thái Chuyến bay
Giao diện Các đáp ứng
Trang 251.6.2.2 Hướng dẫn và kiểm soát
Trong khi một bộ điều khiển số liên quan đến hành động của thiết bị vật lý, thì bộ điều khiển thứ cấp lại thực hiện việc chỉ dẫn và chọn đường lập kế hoạch cho các hoạt động để đạt được mục tiêu cao hơn Đặc biệt nó cố gắng tìm một con đường đi mong đợi nhất trong tất cả các đường có thể đáp ứng được các ràng buộc của hệ thống Con đường này là con đường mong muốn nhất bởi vì nó đã tối ưu hóa một vài chức năng
và tiết kiệm chi phí Thuật toán sử dụng cho mục đích này là đáp án cho một số vấn đề tối ưu có ràng buộc
Ví dụ như hệ thống điều khiển máy bay lên xuống (Air Traffic Controller - ATC) Những ràng buộc cần phải thỏa mãn với đường bay đã chọn bao gồm một số
áp đặt bởi các đặc trưng của chuyến bay, như là tốc độ quay và tỉ lệ lên/xuống lớn nhất
và nhỏ nhất cho phép, cũng như các hạn chế đặt ra từ các nhân tố bên ngoài như là kiểm tra mặt đất và hiện trạng dữ liệu mà hệ thống điều khiển đưa ra cùng điều kiện thời tiết Một đường bay mong muốn nhất là đường bay có hiệu xuất sử dụng nhiên liệu hiệu quả nhất trong số tất cả các đường bay đáp ứng được rằng buộc này và sẽ đưa chuyến bay tới lần hạ cánh tiếp theo vào thời điểm đã được thiết kế Vấn đề này được hiểu như là một vấn đề có ràng buộc về thời gian cố định và sử dụng nhiên liệu tối thiểu Khi mà chuyến bay gặp sự cố thì hệ thống điều khiển bay có thể cố gắng cho chuyến bay tới điểm hạ cánh trong thời gian ngắn nhất Trong trường hợp đó nó sẽ sử dụng thuật toán giải quyết vấn đề tối ưu về thời gian
Những người điều khiển giám sát hệ phức tạp và hệ thống điều khiển là những tổ chức phân cấp điển hình Có thể có nhiều bộ điều khiển tín hiệu số ở mức độ thấp nhất điều khiển trực tiếp thiết bị vật lý Mỗi dữ liệu ra của bộ điều khiển mức độ cao là dữ liệu tham chiếu đầu vào của những bộ điều khiển mức thấp hơn Với một vài ngoại lệ,
có thể có nhiều bộ điều khiển ở mức độ cao giao tiếp trực tiếp với người điều khiển
1.6.3 Điều khiển lệnh
Bộ điều khiển ở mức cao của bộ điều khiển phân cấp là hệ thống điều khiển lệnh Một hệ thống điều khiển giao thông hàng không ở trên là một ví dụ hoàn hảo Hình 1.10 cho thấy kiến trúc của nó
Đầu vào của hệ thống ATC giám sát máy bay trong vùng nó được quản lý và phân tích môi trường xung quanh (như điều kiện thời tiết) và đưa ra các thông tin cần thiết cho người điều hành
Trang 26Đầu ra từ hệ thống ATC bao gồm sự phân chia thời gian cho các thiết bị được tích hợp trong từng máy bay Đầu ra này lấy dữ liệu từ đầu vào trên bảng điện tử của
hệ thống quản lý bay Hơn nữa, hệ thống ATC hỗ trợ việc kết nối giọng nói từ xa trên bảng điện tử Do đó, nó cung cấp kết nối giữa những người điều hành tại cả hai mức (Ví dụ phi công và hệ thống điều khiển máy bay lên xuống)
Hệ thống ATC thu thập thông tin “trạng thái” của mỗi máy bay thông qua sự hoạt động của một hoặc nhiều radar Radar hỏi đáp định kỳ, khi được hỏi đáp, một máy bay sẽ trả lời và gửi về hệ thống ATC thông qua “biến trạng thái” của nó như: tên,
vị trí, độ cao,… (Trong hình 1.10 , biến này được coi như là các rãnh ghi và quỹ đạo hiện tại của máy bay là một rãnh) Hệ thống ATC xử lý các thông báo từ máy bay và lưu trữ thông tin này trong CSDL Những thông tin này được kích hoạt hay xử lý thông qua các bộ xử lý Tại cùng thời điểm, hệ thống giám sát tiếp tục phân tích hình ảnh và báo cho người điều hành Sự tương tác gữa tốc độ tính toán với giao diện người dùng (bàn phím và hiển thị) phải mất tối thiểu là 10Hz Trong khi đó thời gian hồi đáp khác có thể mất nhiều hơn Vì vậy, với ví dụ này người ta cho phép thời gian hồi đáp
từ đầu vào radar là 1 hoặc 2 giây, và chu kỳ cập nhật thời tiết trong khoảng 10 giây Tóm lại, từ ví dụ trên chúng ta có thể thấy rằng hệ thống điều khiển lệnh cũng tương đương với bộ điều khiển mức thấp
1.6.4 Xử lý tín hiệu
Hầu hết các ứng dụng xử lý tín hiệu đều yêu cầu thời gian thực Ở đây, thời gian đáp ứng của chúng yêu cầu phải dưới vài mili giây cho tới vài giây Ví dụ như: các máy lọc số, nén và giải nén hình ảnh video, xử lý tín hiệu radar
sẽ xử lý các giá trị được lấy mẫu này Dữ liệu được tạo ra từ đây được một hay nhiều
bộ xử lí dữ liệu phân tísh, sau đó hiển thị hay phát sinh những lệnh để điều khiển radar và lựa chọn những tham số để sử dụng trong chu trình tiếp theo của việc lựa chọn và phân tích dữ liệu
Để tìm kiếm những đối tượng quan tâm trong phạm vi giám sát, radar quét vùng này bằng việc hướng ăngten của nó theo từng hướng tại mỗi thời điểm Tại thời điểm
Trang 27ăngten dừng lại tại một hướng, trước đó nó gửi đi xung tần số radio ngắn, sau đó nó lựa chọn và kiểm tra mỗi tín hiệu gửi về ăngten
Mỗi tín hiệu sẽ chỉ bao gồm tiếng ồn xung quanh nếu xung được truyền đi không
va vào bất kì đối tượng nào Ngược lại, nếu có một đối tượng phản hồi (ví dụ, một máy bay hoặc một cơn bão) ở tại một khoảng cách x mét tính tới ăngten, thì tín hiệu phản hồi từ đối tượng tới ăngten xấp xỉ 2x/c giây sau khi xung truyền đi, trong đó c = 3x108 m/s là vận tốc của ánh sáng Tín hiệu phản hồi thu được tại thời điểm này thường mạnh hơn khi không có đối tượng Nếu đối tượng chuyển động, tần số của tín hiệu phản hồi sẽ yếu hơn xung truyền đi Số lượng của tần số chuyển (gọi là Doppler) – tỷ lệ với vận tốc của đối tượng Vì vậy, bằng việc kiểm tra độ mạnh và dải phổ của tần số tín hiệu phản hồi, hệ thống có thể xác định có hay không những đối tượng ở hướng được chỉ ra của ăngten và nếu có đối tượng, thì vị trí và vận tốc của chúng là bao nhiêu
Hình 1.11 Xử lý tín hiệu radar và hệ thống hiệu chỉnh
Bộ xử lý
dữ liệu
DSP
Các Bộ xử lý tín hiệu
Các bản ghi lên rãnh
Các thông số xử
lý tín hiệu
Các trạng thái điều khiển
Radar
Trang 28Đặc biệt, hệ thống chia khoảng thời gian mà ăngten dừng lại để tập hợp tín hiệu phản hồi thành những khoảng thời gian rời rạc Mỗi khoảng thời gian tương ứng với một phạm vi xác định bằng khoảng cách đến Radar, và độ dài của khoảng cách này quyết định việc phân chia các khoảng đó (trong ví dụ, nếu khoảng cách là 300 mét, thì khoảng phân chia dài một micro giây.[1]) Đầu ra này đại diện một sự biến đổi Fourier riêng biệt tương ứng với từng đoạn của tín hiệu phản hồi Dựa vào những đặc trưng của sự biến đổi, bộ xử lí tín hiệu quyết định có đối tượng trong phạm vi đó hay không Nếu có một đối tượng, nó sẽ phát sinh một rãnh bản ghi chứa đựng vị trí và vận tốc của đối tượng và đặt những bản ghi vào bộ nhớ dùng chung
Thời gian yêu cầu cho xử lý tín hiệu được quyết định bởi thời gian yêu cầu để đưa ra biến đổi Fourier, và thời gian này gần như là tất định Độ phức tạp của biến đổi Fourier nhanh là 0(n log n) [1], trong đó n là số lượng của giá trị lấy mẫu trong mỗi phạm vi, n thay đổi từ 128 cho tới vài nghìn Vì vậy, nó dùng 103 tới 105 phép nhân
và phép cộng để thực hiện biến đổi Fourier Và ăngten dừng lại ở mỗi phương hướng khoảng 100 ms và phạm vi phân chia khoảng của radar là 100 khoảng phạm vi Sau đó
hệ thống xử lí tín hiệu phải làm 107 tới 109 phép nhân và phép cộng trên một giây Điều này rất tốt trong bộ xử lí tín hiệu số ngày nay
Sự theo dõi (Tracking) Tiếng ồn mạnh và sự can thiệp của con người có thể làm quá trình xử lý và dò tìm tín hiệu có những kết luận sai về sự có mặt của những đối tượng Một bản ghi theo dõi của một đối tượng không tồn tai gọi là một trả lời sai Một ứng dụng khảo sát tất cả các bản ghi theo dõi theo thứ tự để tìm ra phản hồi sai từ những dữ liệu thưc và cập nhật quĩ đạo của các đối tượng được phát hiện gọi
là bộ theo dõi (tracker1) Sử dụng thuật ngữ của vùng phụ thuộc, có thể nói rằng sự giám sát gán mỗi giá trị phép đo (nghĩa là, bộ dữ liệu về vị trí và vận tốc chứa đựng trong mỗi rãnh bản ghi được phát sinh bên trong khi quét) vào quĩ đạo Nếu quĩ đạo là hiện hữu, giá trị phép đo đưa ra vị trí hiện thời và vận tốc của đối tượng chuyển động dọc theo quĩ đạo Nếu quĩ đạo là mới, giá trị phép đo đưa ra vị trí và vận tốc của một đối tượng mới có thể
Cho qua cửa (Gating) Một cách tiêu biểu, sự giám sát thực hiện trong hai bước:
sự cho qua cửa và kết hợp dữ liệu [Bog] Cho qua cửa là quá trình đặt mỗi giá trị đo vào một trong hai quĩ đạo tùy thuộc vào nó gán cho một hoặc nhiều hơn các quỹ đạo được xác lập Quá trình cho qua cửa gán thăm dò một giá trị đo vào một quĩ đạo xác định nếu nó nằm trong khoảng cách ngưỡng G tính từ vị trí hiện thời được chỉ ra và
1
Thuật ngữ sự theo dõi cũng tham chiếu tới quá trình của việc theo dõi một đối tượng riêng lẻ (ví dụ, một máy bay dưới sự quan sát, v…v )
Trang 29vận tốc dự đoán hiện thời của đối tượng chuyển động dọc theo quĩ đạo (Ở dưới, chúng
ta gọi khoảng cách giữa chính xác và giá trị khoảng cách dự đoán của sự phân định.) ngưỡng G được gọi là cổng theo dõi (track gate) Nó được chọn sao cho xác suất giá trị đo hợp lệ rơi vào vùng giới hạn bởi một hình cầu bán kính G xung quanh giá trị chỉ
ra là một hằng số mong muốn
Sơ đồ 1-12 minh họa cho quá trình này Ban đầu, máy tính giám sát vị trí và dự đoán (vận tốc) của đối tượng trên mỗi quĩ đạo đã xác lập Trong ví dụ này, có hai quỹ đạo đã xác định, L1 và L2 Chúng ta cũng gọi vị trí dự đoán của đối tượng trên rãnh L1 và L2 X1, X2, X3 là các giá trị đo đưa ra từ ba rãnh bản ghi X1 được chỉ định thuộc L1 bởi vì nó trong khoảng cách giới hạn G từ L1 X3 được chỉ định thuộc cả L1
và L2 vì lí do tương tự Mặt khác, X2 không được chỉ định thuộc bất cứ quĩ đạo nào
Nó đại diện một phản hồi sai hoặc một đối tượng mới Từ đó không thể phân biệt giữa hai trường hợp này, sự giám sát giả thuyết rằng X2 là vị trí của một đối tượng mới Dữ liệu radar tiếp theo sau sẽ cho phép sự giám sát có hiệu lực hoặc phế bỏ giả thuyết này Trong các trường hợp cụ thể, sự giám sát sẽ cân nhắc kỹ trước khi bỏ qua quĩ đạo này
1.7 Một số hệ thống thời gian thực điển hình
Có một số lớp hệ thống chuẩn đáng tin cậy của hệ thời gian thực như: hệ thống giám sát, hệ thống thu nhận dữ liệu, hệ thống điều khiển và thực hiện lệnh, v.v Mỗi kiểu hệ thống này đều có đặc trưng kiến trúc xử lý riêng Khi một hệ thống thời gian thực được phát triển, kiến trúc của nó sẽ thuộc một trong ba hệ thống chuẩn đó Vì vậy, khi thiết kế hệ thời gian thực người ta thường sử dụng các mô hình chung này
Hình 1.12 Tiến trình cho qua cửa
Trang 30Hình 1.13: Kiến trúc tiến trình hệ thống báo động trộm
Di chuyển tiến
trình bộ dò
tìm
Tiến trình sensor cửa ra vào
Tiến trình sensor cửa sổ
Tiến trình giám sát toà nhà truyền thông Tiến trình
Tiến trình hệ thống báo động
Tiến trình âm thanh điện tử
Trạng thái sensor
Trang 31Khi một bộ cảm biến phát hiện thấy có người xâm nhập vào hệ thống, hệ thống
tự động gọi cảnh sát địa phương bằmg cách sử dụng tiếng nhạc điện tử và ghi lại vị trí của bộ báo động Nó bật đèn trong phòng quanh bộ cảm biến hoạt động và bật báo động có thể nghe thấy Hệ thống báo động thường hoạt động nhờ nguồn điện dương, nhưng cũng có thể được trang bị với bin dự phòng Khi mất điện, hệ thống sẽ sử dụng
bộ kiểm tra mạch nguồn riêng để giám sát điện áp chính Nó ngắt hệ thống báo động khi hạ điện áp được dò thấy
Hệ thống này là một hệ thời gian thực mềm, nó không yêu cầu chặt chẽ về mặt thời gian Các bộ cảm biến không cần dò tìm các sự kiện tốc độ cao, chúng chỉ cần kiểm tra hai lần trên giây
Tỉ lệ của kỳ lập lịch được xác định bởi số bộ cảm biến và thời gian yêu cầu của
hệ thống Ví dụ, có 30 bộ cảm biến cửa ra vào Chúng cần phải được kiểm tra hai lần trên giây Điều này có nghĩa là sự kết hợp tiến trình với bộ cảm biến cửa cần phải chạy
60 lần trên giây (60Hz) Tương tự, tiến trình của bộ dò môi trường cần chạy 400 lần trên giây[10]
1.7.2 Hệ thống điều khiển
Hệ thống điều khiển cũng là một lớp quan trọng của hệ thời gian thực Hệ thống điều khiển tiếp tục điểu khiển các tác nhân phần cứng dựa vào giá trị của các bộ cảm biến Hệ thống báo động trộm là một hệ thống giám sát hơn là một hệ thống điều khiển khi nó không có các Bộ thao tác Các Bộ thao tác này được điều khiển giả bởi các giá trị của bộ cảm biến
Hình 1.14: Kiến trúc tiến trình của hệ thống điều khiển nhiệt độ
Tiến trình máy điều nhiệt
Tiến trình sensor
Tiến trình điều khiển bếp lò
Tiến trình máy điều nhiệt
Tiến trình điểu khiển lò sưởi
500Hz
500Hz
500Hz
Giá trị sensor
Công tắc lệnh
số phòng
Trang 32Một ví dụ của hệ thống điều khiển là hệ thống điều khiển lò sưởi trong toà nhà
Hệ thống này giám sát nhiệt độ bộ cảm biến ở các phòng khác nhau trong toà nhà, tắt
hệ thống lò sưởi, phụ thuộc vào nhiệt độ hiện thời và tập nhiệt độ trên máy điều nhiệt phòng Máy điều nhiệt cũng điều khiển công tắc lò sưởi trong hệ thống
Kiến trúc tiến trình của hệ thống này được chỉ ra trong hình 1.14
1.7.3 Hệ thống thu nhận dữ liệu
Hệ thống thu nhận dữ liệu là lớp khác của hệ thời gian thực Nó thường là cơ sở cho mô hình kiến trúc chung Hệ thống này tập hợp dữ liệu từ các bộ cảm biến cho việc xử lý và phân tích tuần tự
Để minh hoạ cho lớp này của hệ thống, ta xét mô hình hệ thống chỉ ra trong hình 1.15 Đây là sự trình bày một hệ thống tập hợp dữ liệu từ các bộ cảm biến giám sát luồng nơtron trong lò phản ứng hạt nhân Dữ liệu bộ cảm biến là không gian trong bộ đệm, nó được trích, xử lý và mức luồng trung bình được hiển thị trên sự trình diễn của toán tử
Hình 1.15: Kiến trúc của luồng giám sát hệ thống
Mỗi bộ cảm biến có một tiến trình, nó biến đổi tín hiệu tương tự từ đầu vào thành tín hiệu số nó chuyển tới bộ đệm Tiến trình hồi đáp xử lý dữ liệu từ cho bộ đệm và chuyển tới tiến trình hiển thị cho đầu ra Hệ thời gian thực liên quan tới sự thu nhận và tốc độ xử lý dữ liệu Hoạt động trong tiến trình thu nhận dữ liệu và tiến trình xử lý có thể không đồng bộ Khi tín hiệu xử lý được yêu cầu, thu nhận dữ liệu có thể nhanh hơn
xử lý dữ liệu Nếu chỉ tính toán đơn giản cần được mang ra ngoài, xử lý có thể nhanh hơn thu nhận dữ liệu
Để làm cân bằng các tốc độ khác nhau này, bộ đệm lớn nhất của hệ thống thu nhận dữ liệu sử dụng một bộ đệm vòng tròn hoặc bộ đệm tròn Tiến trình cung cấp dữ
xử lý mức luồng
Xử lý dữ liệu
Bộ đệm dữ liệu Bộ cảm biến Hiển thị
Trang 33liệu (producer: sản xuất) thêm thông tin tới bộ đệm này và tiến trình sử dụng dữ liệu (consumer: tiêu dùng) lấy thông tin từ bộ đệm (hình 1.16)
Hiển nhiên, cần loại trừ tình huống tiến trình cung cấp và tiến trình sử dụng truy cập cùng một phần tử trong bộ đệm ở cùng thời điểm Hệ thống cũng cần bảo đảm rằng, tiến trình không cung cấp thêm thông tin khi bộ đệm đầy và tiến trình sử dụng không nhận thông tin từ bộ đệm rỗng
Hình 1.16: Bộ đệm tròn cho bộ thu nhận dữ liệu
tiến trình cung cấp
tiến trình sử dụng
Trang 34Chương 2 PHƯƠNG PHÁP PHÂN TÍCH THIẾT KẾ HƯỚNG MẪU
2.1 Mẫu thiết kế
2.1.1 Khái niệm về mẫu
Nói chung, một mẫu mô tả một vấn đề thường hay xảy ra trong thiết kế và cài đặt phần mềm, và sau đó mô tả giải pháp để vấn đề đó theo một cách như vậy có thể được dùng lại Các mẫu được đưa ra để chứng minh cho các bài thực hành thiết kế tốt Các mẫu có thể được phân loại theo các giai đoạn phát triển, đó là các mẫu Phân tích [Fowler 1997], các mẫu Kiến trúc [Buschmann et al 1996], các mẫu thiết kế [Gamma
et al, 1995] và các câu thành ngữ (idioms) [Coplien 1992]:
Các mẫu phân tích: Việc phân tích bao hàm việc tìm kiếm phía sau bề mặt của
các yêu cầu để hiểu vấn đề Martin Fowler 1997 đã định nghĩa các mẫu phân tích như
là “…các nhóm ý tưởng thể hiện việc xây dựng phổ biến trong mô hình kinh doanh”
Fowler đã chứng minh một vài mẫu phân tích bên ngoài các kinh nghiệm làm dự án dành cho một vài lĩnh vực kinh doanh Các mẫu Kiểu, Giám sát và Đo đếm là các mẫu trong số các mẫu phân tích đã được Fowler chứng minh
Các mẫu kiến trúc: một mẫu kiến trúc giải thích một giản đồ tổ chức có kiến trúc
cơ bản cốt lõi cho các hệ thống phần mềm Nó cung cấp một bộ các hệ thống con được
định nghĩa trước hoặc các thành phần, chỉ định các trách nhiệm của chúng và bao gộp các luật cùng với nguyên tắc cho việc tổ chức các quan hệ giữa chúng [Buschmann et
al 1996] Các mẫu Broker, Blackboard, và Filters-Pipes là các mẫu thuộc loại này Các mẫu có kiến trúc là một biện pháp chứng minh kiến trúc dành cho các hệ thống phức tạp và không đồng nhất, do đó việc quản lý tự động là rất phức tạp
Các mẫu thiết kế: một mẫu thiết kế cung cấp một biểu đồ cho việc cải tiến các hệ
thống con hoặc các thành phần của một hệ thống phần mềm hoặc mối quan hệ giữa chúng Nó mô tả một cách phổ biến kiến trúc tuần hoàn của các thành phần giải quyết vấn đề thiết kế tổng quát trong một ngữ cảnh cụ thể [Gamma et al 1995] Các mẫu
chiến lược, trạng thái, và Proxy là những ví dụ thuộc loại này
Thành ngữ (Idioms): thành ngữ là một mẫu mức thấp đặc trưng cho một ngôn
ngữ lập trình Một thành ngữ mô tả cách thức để triển khai các khía cạnh phổ biến của
Trang 35các thành phần hoặc các mối quan hệ giữa chúng bằng cách dùng các đặc trưng của ngôn ngữ lập trình đã cho như C++, Java, hoặc Smalltalk Các ví dụ về thành ngữ là cách thức để cài đặt các Singletons trong C++ [Buschmann et al 1996] và con trỏ đếm được Counted Pointer [Coplien 1992]
Các mẫu là các kinh nghiệm thiết kế đã được kiểm chứng tốt Người ta thường nói rằng, các mẫu được khám phá ra hoặc được chứng minh bởi vì chúng được phát triển từ nhiều hơn một dự án thực sự đang tồn tại Các mẫu đưa ra các cách rất xúc tích
và hiệu quả để chuyển các ý tưởng và các kinh nghiệm phần mềm vào trong các vấn đề thực tế
2.1.2 Vai trò của mẫu trong phát triển phần mềm
Sự phức tạp của các hệ thống phần mềm ngày tăng lên, người ta tìm kiếm những cách tiếp cận để làm thuận tiện cho sự phát triển ứng dụng phần mềm, mẫu thiết
kế (Design Patterns) [17, 18] và khung làm việc thiết kế (design frameworks) [16] [Johnson & Foote 1998; Fayad & Schmidt 1997; Pree 1996; Fayad & Schmidt 1999]
là một trong số những cách tiếp cận đầy triển vọng này mẫu thiết kế cho phép sử dụng lại tài sản phần mềm một cách rất sớm trong vòng đời phát triển phần mềm Để gặt hái những lợi ích của việc phát triển những giải pháp thiết kế đã được chứng minh, chúng
ta cần xác định kỹ thuật thiết kế cấu thành để xây dựng những ứng dụng sử dụng mẫu Những mô hình thiết kế tổng thể cần phát triển để hỗ trợ cho kỹ thuật này
Khi sử dụng lại phần mềm trong những ứng dụng thực tế là một nhiệm vụ khó khăn, nhưng nó là cần thiết để giảm bớt công sức phát triển và bảo đảm chất lượng phần mềm cao hơn mẫu thiết kế giúp cho việc sử dụng lại trong các pha thiết kế, bởi vì nó cung cấp một bảng từ vựng chung cho thiết kế Nó còn cung cấp những phương thức trên để hiểu những thiết kế và nó là những khối xây dựng đã được chứng minh (đã được kiểm chứng) từ những ứng dụng phức tạp hơn đã được xây dựng Sự tập hợp những bản mẫu thiết kế có thể dùng được một cách rộng rãi đã thúc đẩy nhiều hơn những ý tưởng làm thế nào để sử dụng những giải pháp đúng đắn trong phát triển ứng dụng
Khi thiết kế những ứng dụng bằng việc triển khai một cách có hệ thống mẫu thiết
kế không phải là một quá trình tầm thường Cách tiếp cận thiết kế sử dụng kỹ thuật cấu thành từ mẫu đã được đề nghị, nhưng từ mục tiêu để ra đi đến một qui trình có tính hệ thống còn là vấn đề không đơn giản
Trang 362.1.3 Vòng đời của một mẫu
Giai đoạn 1: Khai phá Trong việc tạo ra bất kì mẫu thiết kế nào, giai đoạn đầu
tiên đều liên quan tới việc chứng minh khởi đầu của một mẫu Hành động chính trong giai đoạn này là việc khai phá các mẫu
Hình 2.1 Vòng đời của một mẫu
Giai đoạn 2: Hoàn thiện Giai đoạn hai được các nhà nghiên cứu và các nhà thực
hành có kinh nghiệm đề cập đến việc đánh giá và cải tiến các mẫu Trong giai đoạn này, tác giả của mẫu đưa mẫu ra để xem xét trong các cuộc hội thảo PloP hàng năm Việc đệ trình này sau đó được phân công cho một nhà phê bình mẫu hoặc được nhận vào cuộc thảo luận hoặc bị từ chối Các mẫu được chấp nhận sẽ được phỏng vấn lại trong cuộc họp với một nhóm các tác giả có kinh nghiệm, họ tạo ra các yêu cầu cho các cải tiến đối với mẫu và chia
sẻ kinh nghiệm của họ trong việc giải quyết các vấn đề cùng nhau Đối tượng của giai đoạn này là giúp đỡ tác giả của mẫu cải thiện phiên bản mẫu của họ và trong một vài trường hợp
là từ bỏ mẫu vì sự thiếu hợp lý và thiếu tiềm năng của việc dùng lại Đầu ra của giai đoạn
Trang 37này là mẫu được chứng minh tốt cho việc dùng đối với những người mới làm quen, các nhà thiết kế ứng dụng, và các nhà phát triển Sau đó phiên bản được xem lại sẽ được công bố trong biên bản lưu của cuộc họp
Giai đoạn 3: Sử dụng lại Giai đoạn thứ 3 liên quan đến cùng với việc dùng lại
mẫu trong các ứng dụng Các người dùng mẫu tìm kiếm các mẫu trong số các Biên bản
hội nghị PloP đã được công bố hoặc các sách PloPD (Pattems Language Of Program
Design) Sau đó họ thể hiện mẫu trong các dự án thực tế Người dùng cung cấp thông
tin phản hồi lại cho tác giả của mẫu những trở ngại mà họ phải đối mặt trong khi cài đặt và dùng chúng, và đưa ra các yêu cầu cải tiến các mẫu đó
Như được chỉ trong hình 2.1, tiến trình trên là lặp lại và vì vậy một mẫu sẽ được cải tiến tiếp tục Chúng ta mong đợi rằng các mẫu đã được chứng minh tính đúng đắn trong việc dùng lại sẽ đạt được chất lượng cao, bởi vì nó đã trải qua một số giai đoạn cải tiến Chất lượng cao là một thuộc tính then chốt của thành phần thiết kế và vì vậy các mẫu được chọn sẽ đủ điều kiện để dùng lại như các thành phần của thiết kế
2.1.4 Một số mẫu cho hệ thời gian thực
Trong khuôn khổ luận văn này, sẽ trình bày một số mẫu thường được sử dụng khi thiết kế hệ thời gian thực Đó là các mẫu sau:
mẫu quan sát (Observer Pattern)
mẫu chiến lược (Trategy Pattern
mẫu ngắt (Interrupt Pattern)
mẫu quay vòng Robin (Round Robin Pattern)
2.1.4.1 Mẫu hành vi Observer
a Vấn đề
Xác định phụ tnuộc một – nhiều giữa các đối tượng Khi một đối tượng thay đổi, tất
cả những đối tượng phụ thuộc vào nó được nhận biết và cập nhật tự động
b Giải pháp
Mẫu quan sát thường được dùng trong các trường hợp sau:
Khi một sự trừu tượng có hai giao diện, một giao diện lại phụ thuộc vào đối tượng khác, các đối tượng phân chia trong hai giao diện lại làm thay đổi hoặc sử dụng lại lẫn nhau một cách độc lập
Trang 38Khi có một sự thay đổi yêu cầu tất cả các đối tượng khác cũng phải thay đổi theo
mà không cần quan tâm đến có bao nhiêu đối tượng cần được thay đổi
Các đối tượng phụ thuộc với nhau một cách lỏng lẻo khi thực hiện
c Cấu trúc mẫu
Trong mẫu, các đối tượng phân thành hai nhóm:
Subjects: là nhóm đối tượng được quan sát Đối tượng thuộc nhóm này có dữ liệu
được sử dụng bởi các đối tượng khác Sự thay đổi dữ liệu của đối tượng nhóm này sẽ kéo theo các hành vi, trạng thái tương ứng của các đối tượng sử dụng dữ liệu
Observers: nhóm đối tượng quan sát: gồm các đối tượng sử dụng dữ liệu của các
đối tượng trên.Nhóm quan sát luôn quan sát các đối tượng cụ thể mà nó đã đăng ký Khi thấy có tín hiệu thay đổi trên đối tượng được quan sát, đối tượng quan sát tự nhận biết được thay đổi thông qua tín hiệu thay đổi của đối tượng được quan sát và có hành
vi tương ứng
Nhóm được quan sát không cần biết nó được quan sát bởi các đối tượng nào; khi
có thay đổi, nó đưa tín hiệu thông báo đã thay đổi cho tất cả các đối tượng quan sát nó
Hình 2.2 Cấu trúc mẫu Quan sát
Trang 39Cung cấp sự truyền kết nối rộng rãi: Sự thay đổi tự động truyền đi tới tất cả các đối tượng và được bổ sung vào thành phần quan sát
Bất ngờ cập nhật: Lý do chủ yếu là do các thành phần được quan sát không có thông tin về các thành phần quan sát do đó chúng không thấy được giá trị thay đổi cuối cùng của thành phần quan sát Một phép toán trên thành phần quan sát có thể là nguyên nhân dẫn đến sự cập nhật tới thành phần được quan sát và tất cả các đối tượng khác phụ thuộc vào chúng
2.1.4.2 Mẫu chiến lược
a Vấn đề
Xác định cách giải quyết cho các đối tượng: Xác định một họ thuật toán và làm cho chúng có thể thay đổi được cho nhau, cho phép các thuật toán biến đổi độc lập với máy khách dùng nó
b Giải pháp
Cung cấp một cách để định hình một lớp với một cách xử sự trong nhiều cách xử
xự của lớp đó Cần thiết đưa ra các biến đổi khác nhau trong một giải thuật và chúng được thực hiện có thứ tự trong giải thuật
c Cấu trúc mẫu
Hình 2.3 Mô hình cấu trúc mẫu chiến lược
Trong đó:
strategy : Khai báo một lớp giao diện dùng chung cho tất cả các giải thuật
ConcreteStrategy: Thực hiện giải thuật sử dụng giao diện chung do strategy cung cấp Context : được cấu hình với đối tượng ConcreteStrategy object, lưu trữ một tham
chiếu đến đối tượng strategy, có thể định nghĩa một giao diện khác
Trang 40d Các kết quả
Cung cấp một họ giải thuật có mối quan hệ với nhau
Cung cấp một lựa chọn cho các lớp con
Mẫu chiến lược cho phép lựa chọn một giải thuật trong họ các giải thuật Khi đó Context chuyển đổi giữa các chiến lược theo yêu cầu Phương pháp này tránh được các câu lệnh điều kiện
Khi có một số tham số khác nhau cần chuyển đổi giữa các thuật toán, mẫu chiến lược cho phép phát triển thành phần giao diện context và mô hình trategy
Biến tĩnh
Vector ngắt Current Vector: Address
Bảng vector ngắt: Mảng
tuyến tính
setVector(int Num, address)
getVector(int Num, address)