ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------------
VŨ XUÂN MẠNH
XÂY DỰNG HỆ THỜI GIAN THỰC VÀ ỨNG
DỤNG CHO BÀI TOÁN QUẢN LÝ NHÀ
HÀNG DỊCH VỤ
LUẬN VĂN THẠC SĨ
Hà Nội 2011
Trang 2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------------
VŨ XUÂN MẠNH
XÂY DỰNG HỆ THỜI GIAN THỰC VÀ ỨNG
DỤNG CHO BÀI TOÁN QUẢN LÝ NHÀ
HÀNG DỊCH VỤ
LUẬN VĂN THẠC SĨ
Ngành: Công nghệ Thông tin
Chuyên ngành: Công nghệ Phần mềm
Mã số: 60.48.10
Hướng dẫn khoa học: PGS.TS Nguyễn Văn Vỵ
Hà Nội 2011
Trang 3
MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................................... 1
LỜI CẢM ƠN ................................................................................................................................ 2
MỤC LỤC ...................................................................................................................................... 3
BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT ..................................................................................... 5
BẢNG GIẢI THÍCH CÁC THUẬT NGỮ ................................................................................ 6
DANH MỤC CÁC HÌNH VẼ ..................................................................................................... 7
DANH MỤC CÁC BẢNG ........................................................................................................... 9
MỞ ĐẦU ...................................................................................................................................... 10
CHƢƠNG 1 - TỔNG QUAN VỀ HỆ THỜI GIAN THỰC VÀ HỆ NHÚNG ................... 12
1.1 Khái niệm về hệ thời gian thực ................................................................................. 12
1.2 Phân loại hệ thời gian thực ........................................................................................ 13
1.2.1
Hệ thời gian thực cứng ....................................................................................... 14
1.2.2
Hệ thời gian thực mềm ....................................................................................... 14
1.3 Đặc điểm của hệ thời gian thực ................................................................................. 15
1.4 Cấu trúc thành phần của một hệ thời gian thực ...................................................... 15
1.5 Xử lý thời gian thực .................................................................................................... 17
1.5.1
Xử lý ngắt ............................................................................................................ 20
1.5.2
Quản lý tiến trình ................................................................................................ 22
CHƢƠNG 2: PHÁT TRIỂN HỆ THỐNG THÔNG TIN THỜI GIAN THỰC CHO
QUẢN LÝ DỊCH VỤ NHÀ HÀNG ......................................................................................... 24
2.1. Khảo sát, phân tích mô hình quản lý dịch vụ nhà hàng và đề xuất bài toán ....... 24
2.1.1. Khảo sát hoạt động quản lý dịch vụ nhà hàng ................................................ 24
2.1.2. Những vấn đề từ mô hình hoạt động dịch vụ nhà hàng truyền thống ......... 26
2.1.3. Đề xuất giải pháp ................................................................................................ 27
2.2. Lƣa chọn công nghệ và môi trƣờng phát triển hệ thống ........................................ 33
2.2.1. Công nghệ và môi trƣờng phát triển phần cứng ............................................. 33
2.2.2. Công nghệ và môi trƣờng phát triển phần mềm ............................................. 33
2.2.3. Môi trƣờng triển khai hệ thống ......................................................................... 33
2.3. Phân tích ....................................................................................................................... 34
2.3.1. Xác định yêu cầu bài toán.................................................................................. 34
2.3.2. Biểu đồ use case .................................................................................................. 37
Trang 4
2.3.3. Biểu đồ lớp........................................................................................................... 41
2.4. Thiết kế ......................................................................................................................... 47
2.4.1. Biểu đồ tƣơng tác ................................................................................................ 47
2.4.2. Biểu đồ hoạt động ............................................................................................... 50
2.4.3. Biểu đồ thành phần và biểu đồ triển khai hệ thống ........................................ 55
2.4.4. Thiết kế thiết bị xử lý trung tâm ....................................................................... 56
2.4.5. Thiết kế thiết bị chọn món ................................................................................. 59
2.5. Xây dựng các module phần mềm.............................................................................. 61
2.5.1. Xây dựng module phát tín hiệu RF .................................................................. 61
2.5.2. Xây dựng module nhận tín hiệu RF ................................................................. 62
2.5.3. Xây dựng module giao tiếp bàn phím và hiển thị LCD ................................ 63
2.5.4. Xây dựng module xử lý dữ liệu ........................................................................ 69
KẾT LUẬN .................................................................................................................................. 73
a>
Những kết quả đạt đƣợc ............................................................................................. 73
b>
Những hạn chế và hƣớng phát triển.......................................................................... 74
TÀI LIỆU THAM KHẢO .......................................................................................................... 75
PHỤ LỤC ..................................................................................................................................... 76
PLI. Tính năng của vi điều khiển ATmega8 và ATmega48 ............................................. 76
1. ATmega8 ...................................................................................................................... 76
2. ATmega48 .................................................................................................................... 77
PLII. Chức năng các khối trong vi điều khiển AVR [3] .................................................... 78
1. Bộ nhớ chƣơng trình (Program memory) ................................................................ 78
2. Bộ nhớ dữ liệu (Data memory) ................................................................................. 78
3. Khối tính toán logic (Arithmetic Logic Unit) ......................................................... 81
4. Khối ngăn xếp .............................................................................................................. 82
PLIII Các tập lệnh dùng cho lập trình trên AVR [5] .......................................................... 83
1. Tập lệnh dùng cho thanh ghi file .............................................................................. 83
2. Tập lệnh dùng cho thanh ghi I/O .............................................................................. 88
3. Các lệnh truy cập bộ nhớ ........................................................................................... 89
4. Các lệnh rẽ nhánh và vòng lặp .................................................................................. 89
Trang 5
BẢNG KÝ HIỆU CÁC TỪ VIẾT TẮT
Từ viêt tắt
Inpt
Stus
Up
Down
Clr
OK
Mnu
NV
K.Vực
Max-Tbl
Max-SoLuong
Max-MaNV
Max-KV
NSX
VĐK
AP
CSDL
DL
Ý nghĩa
Dòng nhập dữ liệu
Dòng trạng thái
Phím cuộn lên
Phím cuộn xuống
Phím xóa
Phím xác nhận
Danh sách lựa chọn lệnh trên thiết bị chọn món
Nhân viên
Khu vực
Số lượng bàn lớn nhất có thể
Số lượng đơn vị món ăn lớn nhất có thể
Số lượng nhân viên lớn nhất có thể
Số lượng khu vực lớn nhất có thể
Nhà sản xuất
Vi điều khiển, chíp
Access point - điểm truy cập
Cơ sở dữ liệu
Dữ liệu
Trang 6
BẢNG GIẢI THÍCH CÁC THUẬT NGỮ
Thuật ngữ
Chip
VCC
GND
Vol
Driver
DLL
ASM
Ý nghĩa
Là một loại vi điều khiển
Đường nguồn
Đường trung tính (đất)
Đơn vị của hiệu điện thế
Trình điều khiển thiết bị (một loại phần mềm mức thấp
để máy tính giao tiếp với thiết bị)
Thư viện liên kết động
Trình biên dịch Assembly
Trang 7
DANH MỤC CÁC HÌNH VẼ
Số
Tên hình
Trang
1.
2.
3.
4.
5.
6.
7.
8.
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian
Hình 1.2: Đồ thị mô tả đặc trưng hai loại hệ thời gian thực
Hình 1.3: Các thành phần của hoạt động thời gian thực
Hình 1.4: Các kiểu tác vụ theo chuẩn IEC 61131-3
Hình 1.5: Mô hình chung của hệ thời gian thực
Hình 1.6: Mô hình xử lý ngắt
Hình 1.7: Ưu tiên ngắt
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
Hình 2.1: Sơ đồ tiến trình phân tích hoạt động nghiệp vụ
Hình 2.2 : Kiến trúc hệ thống cần xây dựng
Hình 2.3: Ví dụ bảng phân giá theo khu vực và thời điểm
Hình 2.4: Ví dụ về bảng giá
Hình 2.5: Biểu đồ use case ở mức tổng quát
Hình 2.6: Biểu đồ use case “Khai báo dữ liệu nhà hàng”
Hình 2.7: Biểu đồ use case “Xử lý bán hàng”
Hình 2.8: Biểu đồ use case “Chế biến”
Hình 2.9: Biểu đồ lớp phần khai báo dữ liệu nhà hàng
Hình 2.10: Biểu đồ lớp phần xử lý báng hàng
Hình 2.11: Biểu đồ lớp phần cho bộ phần chế biến
Hình 2.12: Biểu đồ tuần tự cho use case khai báo khu vực
Hình 2.13: Biểu đồ tuần tự cho use case chọn món, hủy món
Hình 2.14: Biểu đồ tuần tự cho use case lập phiếu chế biến
Hình 2.15: Biểu đồ hoạt động của chức năng gọi món/hủy món của
thiết bị
Hình 2.16: Biểu đồ hoạt động chức năng chuyển bàn/ ghép bàn
Hình 2.17: Biểu đồ hoạt động chức năng Thanh toán/ gọi nhân viên
Hình 2.18: Biểu đồ hoạt động chức năng Thanh toán/ gọi nhân viên
Hình 2.19: Biểu đồ hoạt động thiết bị xử lý trung tâm
Hình 2.20: Biểu đồ thành phần
Hình 2.21: Biểu đồ triển khai hệ thống
Hình 2.22: Kiến trúc thiết bị xử lý trung tâm
Hình 2.23: Mạch nguyên lý thiết bị xử lý trung tâm
Hình 2.24: Kiến trúc thiết bị chọn món
Hình 2.25: Mạch nguyên lý thiết bị chọn món không dây
Hình 2.26: Sơ đồ khối phát tín hiệu RF
Hình 2.27: Sơ đồ khối module thu tín hiệu RF
Hình 2.28: Nối ghép bàn phím ma trận tới các cổng
12
14
16
18
19
20
21
22
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
29
32
34
35
37
38
39
40
45
46
46
47
48
49
50
51
52
53
54
55
56
57
59
59
60
61
62
63
Trang 8
37.
38.
39.
40.
41.
42.
43.
Hình 2.29: Sơ đồ khối dò tìm phím bấm
Hình 2.30: Vị trí chân của các LCD khác nhau của Optrex.
Hình 2.31: Lưu đồ thuật toán trên bộ xử lý chung
Hình 2.32: Lưu đồ thuật toán trên bộ xử lý riêng
Hình PLII.1: Bản đồ bộ nhớ dữ liệu
Hình PLII.2: Thanh ghi trong bộ nhớ dữ liệu
Hình PLII.3: Mô tả ngăn xếp
65
67
69
70
79
79
82
Trang 9
DANH MỤC CÁC BẢNG
Số
Tên bảng
Trang
1.
Bảng 2.1: Giải pháp cho các vấn đề đặt ra
30
2.
Bảng 2.2 : Các tác nhân nghiệp vụ và vai trò
37
3.
Bảng 2.3 :Vai trò các use case khai báo dữ liệu nhà hàng
378
4.
Bảng 2.4 : Vai trò các use case xử lý bán hàng
40
5.
Bảng 2.5 : Vai trò các use case chế biến
41
6.
Bảng 2.6: Mục đích của các use case và các thực thể
41
7.
Bảng 2.7: Các lớp ứng cử viên
43
8.
Bảng 2.8: Ký hiệu các chân LCD
67
9.
Bảng 2.9: Mã lệnh LCD
67
10.
Bảng 2.10: Các quy tắc hoạt động của thiết bị
70
11.
Bảng 2.11: Định dạng tổng quát gói dữ liệu
71
12.
Bảng 2.12: Gói dữ liệu chọn món / hủy món
72
13.
Bảng 2.13: Gói dữ liệu ghép bàn / chuyển bàn
72
14.
Bảng 2.14: Gói dữ liệu thanh toán/ gọi nhân viên
72
15.
Bảng PLII.3: Mô tả các thanh ghi của VĐK AVR
80
Trang 10
MỞ ĐẦU
Hiện nay, các hệ thống nhúng đang được ứng dụng rộng rãi trong hầu hết
các thiết bị điện tử chuyên dụng, từ đồ điện tử trong gia đình như Ti vi, máy
giặt, lò vi sóng đến những hệ thống lớn như máy bay, tên lửa, vệ tinh nhân tạo…
Nghiên cứu công nghệ nhúng đang là một hướng nghiên cứu mang nhiều tính
ứng dụng công nghệ mới ở Việt Nam.
Mặc dù một số trường đại học trong nước đã đưa vào giảng dạy một số
môn học như Lập trình hệ thống, Hệ vi xử lý, Công nghệ phần mềm nhúng…
Nhưng việc ứng dụng kiến thức của lĩnh vực này để phát triển các ứng dụng cụ
thể gặp nhiều khó khăn. Lý do đơn giản là việc xây dựng các hệ thống này ngoài
yêu cầu về các linh kiện điện tử, phòng thí nghiệm, công cụ làm việc như Osillo,
đồng hồ vạn năng… người xây dựng còn phải có kiến thức về hệ thống, về điện
tử, về phát triển phần mềm và kinh nghiệm nhất định. Trong khi đó có rất nhiều
ứng dụng chỉ có thể giải quyết bằng thiết bị nhúng
Từ yêu cầu thực tiễn, và cũng để nâng cao kỹ năng thực hành và củng cố lý
thuyết, đề tài “Xây dựng Hệ hệ thời gian thực và ứng dụng cho bài toán quản lý
nhà hàng dịch vụ” được chọn làm đề tài luận văn của tôi. Hiện nay các nhà hàng
dịch vụ lớn phát triển mạnh. Việc quản lý và vận hành chủ yếu dùng sức người
làm cho chất lượng dịch vụ kém, hạn chế kết quả kinh doanh. Việc đưa các ứng
dụng các thiết bị truyền thông và công nghệ thông tin sẽ nâng cao chất lượng,
quy mô phục vụ và đem lại hiệu quả kinh tế to lớn.
Đối tượng nghiên cứu của đề tài là hệ thống thời gian thực, và xây dựng
một hệ thống thông tin kết hợp với các thiết bị nhúng để phục vụ cho các cơ sở
dịch vụ nhà hàng.
Ngoài phần mở đầu, kết luận và phụ lục, luận văn chia làm 2 chương:
Chương I: Tổng quan về hệ thời gian thực và hệ nhúng. Chương này trình
bày những khái niệm chung nhất về các hệ thời gian thực và đặc biệt là hệ thống
nhúng.
Trang 11
Chương II: Phát triển hệ thống thông tin thời gian thực cho quản lý dịch vụ
nhà hàng. Chương này tiến hành các bước phát triển hệ thống thông tin trợ giúp
quản lý nhà hàng và kết quả hệ thống được cài đặt và thử nghiệm.
Cuối cùng là những kết quả đạt được và hướng tiếp tục hoàn thiện hệ
thống.
Trang 12
CHƯƠNG 1 - TỔNG QUAN VỀ HỆ THỜI GIAN THỰC VÀ HỆ
NHÚNG
1.1
Khái niệm về hệ thời gian thực
Trong nhiều hệ thống, từ các máy tính cá nhân đơn giản cho đến các hệ
thống máy móc phức tạp trong các nhà máy, các bộ xử lý được dùng để điều
khiển chúng. 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 nó được gọi là hệ thời gian thực nhúng (Embedded Real Time
System). Khi nhận được các sự kiện phát sinh từ các phần cứng, chúng thực hiện
các xử lý để sản ra các tín hiệu điều khiển gửi đến các thiết bị tác động để tạo ra
các hoạt động nhằm đáp ứng những sự kiện từ môi trường. Như vậy, một hệ thời
gian thực [8] hoạt động hiệu quả 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 hay mức độ đáp ứng không được thoả mãn.
Hình 1.1 [4] 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.
Sự kiện
Sự kiện
Phản ứng
T
T
ts
Thời gian
tp
ts
tp-1
Phản ứng
Sự kiện
T
ts
tp-2
Thời gian
b) Trong khoảng ... tp-1 ≤ t ≤ tp-2
a) Chính xác tại t = tp
Sự kiện
Phản ứng
Phản ứng
T
tp
Thời gian
c) Chậm nhất là ... t ≤ tp
ts
tp
Thời gian
d) Sớm nhất là ... t ≥ tp
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian
Trên hình 1.1 (a) sự kiện xảy ra tại thời điểm ts hệ thống mất khoảng thời
gian T để nhận biết có sự kiện kích ứng và xử lý tức thời ngay sau đó tại thời
điểm tp.
Trang 13
Trên hình 1.1 (b) sự kiện xảy ra tại thời điểm ts hệ thống mất khoảng thời
gian T để nhận biết có sự kiện kích ứng và mất một khoảng thời gian [tp…tp-1] để
xử lý.
Trên hình 1.1 (c) sự kiện xảy ra tại thời điểm ts hệ thống mất khoảng thời
gian T để nhận biết có sự kiện kích ứng và yêu cầu phải xử lý xong trước thời
điểm tp.
Trên hình 1.1 (d) sự kiện xảy ra tại thời điểm ts hệ thống mất khoảng thời
gian T để nhận biết có sự kiện kích ứng và yêu cầu phải được xử lý từ thời điểm
tp không giới hạn thời điểm hoàn thành.
Do các tính chất của hệ thời gian thực khác với các phần mềm khác là khả
năng đáp ứng của nó đối với các sự kiện 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) nên nó được định nghĩa 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 [8].
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 phải thực hiện việc xử lý và đưa ra kết quả trong
một khoảng thời gian xác đị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 điểm bắt đầu và thời điểm 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 đáp ứng kích thích [8].
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 [2] dưới đây minh họa cho sự khác biệt giữa hai loại hệ thống
đó. Với đồ thị có nét đậm biểu thị cho hệ thời gian thực mềm nên kết quả trả về
và thời điểm đáp ứng có dung sai lớn hơn đồ thị thể hiện hệ thời gian thực cứng.
Trang 14
Giá trị kết
quả xử lý
đưa ra
đồ thị hệ mềm
đồ thị hệ cứng
+
thời điểm đáp ứng
(deadline)
thời gian
Hình 1.2: Đồ thị mô tả đặc trưng hai loại hệ thời gian thực
Trong đó: 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, sự đáp ứng vi phạm giới hạn về thời gian cho phép
có thể gây ra những ảnh hưởng trầm trọng, như đến đến sinh mạng con người.
Trong trường hợp này, yêu cầu đáp ứng về mặt thời gian của hệ thống là rất khắt
khe. 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 [8]. 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 đã xác định trước.
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 chấp nhận một sai số nhất định cả về giá trị và thời gian
so với yêu cầu 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. Trong trường hợp này, người ta nói
rằng hệ thống có ràng buộc định thời gian mềm. Hệ thời gian thực mềm có định
nghĩa như sau:
Trang 15
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 [8], tức là sự đáp ứng của hệ thống 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 điện tử.
Sự phân biệt giữa khoảng thời gian bắt buộc cứng hay mềm của hệ thời
gian thực hiện thường tùy thuộc trạng thái định lượng 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
Một hệ thống thời gian thực có các đặc trưng tiêu biểu [2] 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) đã đưa ra 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 16
Các thành phần của một RTS [7] (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:
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. Bộ điều khiển ngắt (interrupt 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ỳ.
3. 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. 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.
Thông tin
lập lịch
Đồng hồ thời
gian thực
Lập lịch
Điều khiển ngắt
Xử lý các yêu cầu
về tài nguyên
Tài nguyên
chờ xử lý
Quản lý tài nguyên
Sẵn sàng
xử lý
Danh sách
sẵn sàng
Danh sách tài
nguyên có giá trị
Giải phóng
tài nguyên
Bộ điều vận
Danh sách
xử lý
Hoạt động
xử lý
Hình 1.3: Các thành phần của hoạt động thời gian thực
Trang 17
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 phải 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 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.
1.5
Xử lý thời gian thực
Xử lý thời gian thực (realtime processing) [4] 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ự
Trang 18
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, hình thức xử lý tương tranh là chủ yếu, nó
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.
Chờ tới chu kỳ
Chờ sự kiện
Sự kiện
Thời gian
Mã thực thi
Mã thực thi
Tác vụ mặc định
Ví dụ:
- Điều khiển logic
- Kiểm tra lỗi
Tác vụ tuần hoàn
Ví dụ:
- Điều khiển vòng kín
- Xử lý truyền thông
Mã thực thi
Tác vụ sự kiện
Ví dụ:
- Điều khiển trình tự
- Xử lý sự cố
Hình 1.4: Các kiểu tác vụ theo chuẩn IEC 61131-3
Trên hình 1.4 thể hiện các kiểu tác vụ theo chuẩn IEC 61131-3, kiểu thứ
nhất chỉ có một tác vụ mặc định, kiểu thứ hai có nhiều tác vụ được sắp xếp
Trang 19
thành vòng điều khiển khép kín và được xử lý tuần hoàn. Kiểu cuối cùng là kiểu
tác vụ sự kiện, nghĩa là mỗi tác vụ sẽ được kích hoạt khi có sự kiện tương ứng
xảy ra.
Trong 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 mà 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.
Các 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 sau mỗi 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 lần sau 50 milli giây lại 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.
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ộ cảm
biến
Hệ thống điều khiển
thời gian thực
Bộ thao
tác
Bộ thao
tác
Bộ thao
tác
Bộ thao
tác
Hình 1.5: Mô hình chung của hệ thời gian thực
Trang 20
Kí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 hệ thống quản lý. 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 sự tắc nghẽn
và các chu trình vô hạn.
Luồng xử lý “thông thường”
Xử lý ngắt
ngắt được
thông báo
Chương trình bị ngắt
Xác định bản chất ngắt
Thực hiện dịch vụ ngắt
Khôi phục trạng thái của
chương trình khi bị ngắt
Tiếp tục thực hiện chương
trình trước khi bị ngắt
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à sự đá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
- Xem thêm -