Tải bản đầy đủ (.pdf) (91 trang)

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ụ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 91 trang )



ĐẠ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
Ý nghĩa
Inpt
Dòng nhập dữ liệu
Stus
Dòng trạng thái
Up
Phím cuộn lên

Down
Phím cuộn xuống
Clr
Phím xóa
OK
Phím xác nhận
Mnu
Danh sách lựa chọn lệnh trên thiết bị chọn món
NV
Nhân viên
K.Vực
Khu vực
Max-Tbl
Số lượng bàn lớn nhất có thể
Max-SoLuong
Số lượng đơn vị món ăn lớn nhất có thể
Max-MaNV
Số lượng nhân viên lớn nhất có thể
Max-KV
Số lượng khu vực lớn nhất có thể
NSX
Nhà sản xuất
VĐK
Vi điều khiển, chíp
AP
Access point - điểm truy cập
CSDL
Cơ sở dữ liệu
DL
Dữ liệu



Trang 6
BẢNG GIẢI THÍCH CÁC THUẬT NGỮ
Thuật ngữ
Ý nghĩa
Chip
Là một loại vi điều khiển
VCC
Đường nguồn
GND
Đường trung tính (đất)
Vol
Đơn vị của hiệu điện thế
Driver
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ị)
DLL
Thư viện liên kết động
ASM
Trình biên dịch Assembly






Trang 7
DANH MỤC CÁC HÌNH VẼ
Số

Tên hình
Trang
1.
Hình 1.1: Các mức đáp ứng sự kiện về mặt thời gian
12
2.
Hình 1.2: Đồ thị mô tả đặc trưng hai loại hệ thời gian thực
14
3.
Hình 1.3: Các thành phần của hoạt động thời gian thực
16
4.
Hình 1.4: Các kiểu tác vụ theo chuẩn IEC 61131-3
18
5.
Hình 1.5: Mô hình chung của hệ thời gian thực
19
6.
Hình 1.6: Mô hình xử lý ngắt
20
7.
Hình 1.7: Ưu tiên ngắt
21
8.
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
22
9.
Hình 2.1: Sơ đồ tiến trình phân tích hoạt động nghiệp vụ
29

10.
Hình 2.2 : Kiến trúc hệ thống cần xây dựng
32
11.
Hình 2.3: Ví dụ bảng phân giá theo khu vực và thời điểm
34
12.
Hình 2.4: Ví dụ về bảng giá
35
13.
Hình 2.5: Biểu đồ use case ở mức tổng quát
37
14.
Hình 2.6: Biểu đồ use case “Khai báo dữ liệu nhà hàng”
38
15.
Hình 2.7: Biểu đồ use case “Xử lý bán hàng”
39
16.
Hình 2.8: Biểu đồ use case “Chế biến”
40
17.
Hình 2.9: Biểu đồ lớp phần khai báo dữ liệu nhà hàng
45
18.
Hình 2.10: Biểu đồ lớp phần xử lý báng hàng
46
19.
Hình 2.11: Biểu đồ lớp phần cho bộ phần chế biến
46

20.
Hình 2.12: Biểu đồ tuần tự cho use case khai báo khu vực
47
21.
Hình 2.13: Biểu đồ tuần tự cho use case chọn món, hủy món
48
22.
Hình 2.14: Biểu đồ tuần tự cho use case lập phiếu chế biến
49
23.
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ị
50
24.
Hình 2.16: Biểu đồ hoạt động chức năng chuyển bàn/ ghép bàn
51
25.
Hình 2.17: Biểu đồ hoạt động chức năng Thanh toán/ gọi nhân viên
52
26.
Hình 2.18: Biểu đồ hoạt động chức năng Thanh toán/ gọi nhân viên
53
27.
Hình 2.19: Biểu đồ hoạt động thiết bị xử lý trung tâm
54
28.
Hình 2.20: Biểu đồ thành phần
55
29.
Hình 2.21: Biểu đồ triển khai hệ thống

56
30.
Hình 2.22: Kiến trúc thiết bị xử lý trung tâm
57
31.
Hình 2.23: Mạch nguyên lý thiết bị xử lý trung tâm
59
32.
Hình 2.24: Kiến trúc thiết bị chọn món
59
33.
Hình 2.25: Mạch nguyên lý thiết bị chọn món không dây
60
34.
Hình 2.26: Sơ đồ khối phát tín hiệu RF
61
35.
Hình 2.27: Sơ đồ khối module thu tín hiệu RF
62
36.
Hình 2.28: Nối ghép bàn phím ma trận tới các cổng
63


Trang 8
37.
Hình 2.29: Sơ đồ khối dò tìm phím bấm
65
38.
Hình 2.30: Vị trí chân của các LCD khác nhau của Optrex.

67
39.
Hình 2.31: Lưu đồ thuật toán trên bộ xử lý chung
69
40.
Hình 2.32: Lưu đồ thuật toán trên bộ xử lý riêng
70
41.
Hình PLII.1: Bản đồ bộ nhớ dữ liệu
79
42.
Hình PLII.2: Thanh ghi trong bộ nhớ dữ liệu
79
43.
Hình PLII.3: Mô tả ngăn xếp
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.









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 t
s
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 t
p
.

Thời gian
Sự kiện
Phản ứng
T
t
s


t
p


c) Chậm nhất là t ≤ t
p

Thời gian
Sự kiện
Phản ứng
T
t
s

t
p


d) Sớm nhất là t ≥ t
p


Thời gian
Sự kiện
Phản ứng
T
t
s

t

p

a) Chính xác tại t = t
p


Thời gian
Sự kiện
Phản ứng
T
t
s

t
p-1
t
p-2


b) Trong khoảng t
p-1
≤ t ≤ t
p-2




Trang 13
Trên hình 1.1 (b) sự kiện xảy ra tại thời điểm t
s

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 [t
p…
t
p-1
] để
xử lý.
Trên hình 1.1 (c) sự kiện xảy ra tại thời điểm t
s
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 t
p
.
Trên hình 1.1 (d) sự kiện xảy ra tại thời điểm t
s
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
t
p
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

















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:
thời điểm đáp ứng
(deadline)
thời gian
Giá trị kết
quả xử lý
đưa ra

đồ thị hệ mềm
đồ thị hệ cứng
+
-


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.














Hình 1.3: Các thành phần của hoạt động thời gian thực
Thông tin
lập lịch
Đồng hồ thời
gian thực
Đ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ý
Danh sách
sẵn sàng
Danh sách tài
nguyên có giá trị
Danh sách
xử lý
Lập lịch
Quản lý tài nguyên
Bộ điều vận
Hoạt động
xử lý
Sẵn sàng
xử lý

Giải phóng
tài nguyên


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.














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

Mã thực thi
Tác vụ mặc định
Ví dụ:
- Điều khiển logic
- Kiểm tra lỗi
Chờ tới chu kỳ
Mã thực thi
Thời gian
Tác vụ tuần hoàn
Ví dụ:
- Điều khiển vòng kín
- Xử lý truyền thông
Chờ sự kiện

Mã thực thi
Sự kiện
Tác vụ sự kiện
Ví dụ:
- Điều khiển trình tự
- Xử lý sự cố



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.







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 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.














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
Luồng xử lý “thông thường”
Xử lý ngắt
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
ngắt được
thông báo


Trang 21
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.
Hình 1.7: Ưu tiên ngắt
Ở hình 1.7, các ngắt mức ưu tiên cao hơn được xen vào luồng xử lý của các
ngắt có độ ưu tiên thấp hơn nên các ngắt mức cao được hoàn thành trước và sau
khi hoàn thành nó tiếp tục quay trở lại để thực hiện công việc còn dang dở trước
khi bị ngắt.
Để xử lý ngắt mà vẫn đáp ứng cho các ràng buộc thời gian hệ thống, nhiều
hệ điều hành thời gian thực tiến hành tính toán động để xác định xem mục tiêu
hệ thống đã đạt chưa. Những tính toán động này đều dựa trên tần số trung bình
số lần xuất hiện của sự kiện, khối lượng thời gian cần để phục vụ nó (nếu chúng
có thể được phục vụ), 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


Thời gian
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
0
1
2
3


Trang 22
1.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ị
Bộ lập lịch

Chọn tiến trình
để thực hiện
Quản lý tài nguyên

Phân chia bộ nhớ
và bộ xử lý
Bộ điều vận

Bắt đầu thực hiện
trên một bộ xử lý có
giá trị



Trang 23
hệ thống bỏ qua. Để việc mất má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ục 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.




Trang 24
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
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
2.1.1. Khảo sát hoạt động quản lý dịch vụ nhà hàng
Theo khảo sát trên địa bàn Hà Nội, hầu hết các nhà hàng dịch vụ hiện nay
vẫn sử dụng những quy trình nghiệp vụ thủ công (sử dụng nhân công là chính)
để thực hiện hoạt động kinh doanh của mình. Quy trình nghiệp vụ của các nhà
hàng truyền thống có thể được mô tả tóm tắt qua các giai đoạn chính như sau:
1. Tiếp nhận yêu cầu
2. Chế biến
3. Phục vụ khách
4. Thanh toán
2.1.1.1.
Đây là giai đoạn đầu tiên của hoạt động dịch vụ nhà hàng. Nó bắt đầu khi
khách đến để dùng dịch vụ. Lúc này thường cần nhiều nhân công là các phục vụ
bàn để đáp ứng yêu cầu của khách hàng. Trình tự thực hiện của giai đoạn này
trải qua các bước sau:
(1) Phục vụ bàn chào và đón khách
(2) Phục vụ bàn dẫn khách vào bàn hoặc để khách tự chọn bàn
(3) Phục vụ bàn giới thiệu thực đơn đồ uống và đồ ăn với khách
(4) Phục vụ bàn ghi lại thông tin đặt món vào phiếu yêu cầu.
Thông tin của phiếu yêu cầu thường gồm các khoản mục:
Tên người phục vụ bàn
Số bàn và số lượng khách của bàn đó
Tên mỗi loại đồ ăn/uống và số lượng
Các yêu cầu khác (nếu có)



Trang 25
Phiếu yêu cầu được ghi với giấy than thành 3 liên.
(5) Nhắc lại yêu cầu để khách xác nhận
(6) Để lại bàn một tờ phiếu yêu cầu
(7) Nếu khách hàng yêu cầu đổi bàn, ghép bàn thì phục vụ bàn phải tổ chức
thực hiện và báo lại cho quầy bar và ghi những thay đổi vào phiếu yêu cầu
của khách.
(8) Nhân viên quầy bar kiểm tra lại phiếu, lưu một phiếu yêu cầu tại quầy
bar và một tới bộ phận pha chế (nhà bếp)
2.1.1.2.
Giai đoạn này do nhà bếp (bộ phận chế biến) đảm nhiệm: bộ phận chế biến
nhận thông tin yêu cầu thông qua một kênh giao tiếp nào đó (chẳng hạn chuyển
phiếu yêu cầu trực tiếp bằng tay). Thứ tự chế biến các món ăn do phục vụ bàn
hoặc nhân viên quầy bar đề nghị.
Công thức chế biến và định lượng của các món ăn, đồ uống do bộ phận chế
biến đã ghi nhớ để thực hiện. Các công việc của giai đoạn này như sau:
Bộ phận chế biến tiếp nhận yêu cầu khách hàng
Tiến hành chế biến món ăn hoặc đồ uống theo phiếu yêu cầu và theo
thứ tự ưu tiên đã biết.
Chế biến xong, đồ ăn (uống) được chuyển đến quầy bar và thông báo
cho phục vụ bàn biết
2.1.1.3.
Khi phục vụ bàn nhận được thông tin về các đồ đặt hàng của bàn mình phụ
trách đã có, phục vụ bàn trở lại nơi đặt hàng lấy và đưa đến cho khách. Phục vụ
bàn phải tự kiểm soát các món đã giao cho khách bằng cách đánh dấu vào phiếu
yêu cầu sau khi giao hàng. Giai đoạn này gồm hai công việc như sau:
(1) Phục vụ bàn nhận đồ ăn (uống) từ quầy bar đem đến giao cho khách
(2) Tích vào phiếu yêu cầu tại bàn những món đã giao.

2.1.1.4. n thanh toán
Khi khách hàng có yêu cầu thanh toán thì phục vụ bàn và thu ngân phải
thực hiện các bước sau:

×