© 2004, HOÀNG MINH SƠN
Chương 1
Hệ
thống
thông tin công nghiệp
08.01.07
Chương
3:
Vấn ₫ề
thời gian thực
2
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Chương 3: Nội dung
1.
Khái niệm “hệ
thời gian thực”
2.
Xử
lý thời gian thực
3.
Hệ điều hành thời gian thực
4.
Giao tiếp thời gian thực
5.
Lập trình thời gian thực
3
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
3.1 Hệ
thời gian thực là
gì?
“A
real-time system is one in which the correctness of the system
depends not only on the logical results, but also on the time at
which the results are produced, ”
Một hệ
thời gian thực là
một hệ
thống mà
sự
hoạt ₫ộng tin cậy của
nó
không chỉ
phụ
thuộc vào sự
chính xác của kết quả, mà
còn phụ
thuộc vào thời ₫iểm ₫ưa ra kết quả ₫ể
phản ứng với sự
kiện bên
ngoài. Hệ
thống có
lỗi khi thời gian yêu cầu không ₫ược thoả
mãn.
JOHN A.
STANKOVIC
ET AL.: Strategic Directions in Real-Time and Embedded
Systems. ACM Computing Surveys, Vol. 28, No. 4, December 1996
Thời gian thực không phải là
thời gian tuyệt đối
Tính năng thờigian thực không đồng nghĩa với tốc độ
tính toán rất nhanh
Tính năng thời gian thực = tính chính xác + tính kịp
thời
4
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Các dạng của “tính kịp thời”
Thời gian
Sự
kiện Phản ứng
t
s
t
p
T
a)
Chính xác tại (t
= t
p
)
Thời gian
Sự
kiện Phản ứng
t
s
t
p2
T
b) Trong khoảng (t
p2
≤
t ≤
t
p2
)
Thời gian
Sự
kiện Phản ứng
t
s
t
p
T
c) Chậm nhất là
(t
≥
t
p
)
t
p1
Thời gian
Sự
kiện Phản ứng
t
s
t
p
T
d) Sớm nhất là
(t
≥
t
p
)
5
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
HT ₫iều khiển có
phải là
hệ
TGT?
Mỗi hệ
thống điều khiển là
một hệ
thời gian thực
Chất lượng điều khiển không chỉ
phụ
thuộc vào thuật
toán điều khiển, mà
còn phụ
thuộc vào khả năng phản
ứng của hệ
thống, thời điểm đọc tín hiệu đầu vào (tín
hiệu đo), vào thời gian tính toán luật điều khiển và
thời
điểm đưa ra tín hiệu điều khiển
Tính năng thời gian thực của một HTĐK phụ
thuộc cả
vào phần cứng và
phần mềm và
vào kiến trúc hệ
thống
Phần cứng: Tốc độ tính toán của vi xử lý, tốc độ chuyển đổi
DA/AD, cơ chế vào/ra, chậm trễ trong các thiết bị
Phần mềm: Thuật toán điều khiển, phương pháp lập trình,
tổ chức thực hiện chương trình
Tính năng TGT của một HTĐK liên quan tới tính mạng
con người
Phần lớn các hệ
thời gian thực là
các hệ
thống điều
khiển
6
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Hai dạng
hệ
thống
TGT tiêu biểu
1. Hệ
thống
nhúng
(Embedded Systems)
—
Các
hệ
thống
điềukhiển
chuyên dụng, đặc chủng
cho
các
thiếtbị, máy
móc
đơn lẻ
—
Máy
tính
điềukhiểnlàmột phần
không tách
rờicủa
thiếtbịđược điềukhiển
—
Dựa
trên nềnvi xử
lý, nhân thời
gian thực, hệđiềuhành
thời
gian thực
—
Ví
dụứng
dụng: công nghiệp hàng
không-vũ
trụ, robot
công nghiệp, phương tiện giao thông,
2. Hệ
thống
điềukhiển
công nghiệp (Industrial Control
Systems)
—
Distributed Control Systems (DCS), Programmable Logic
Controllers (PLC), Soft-PLCs
—
Các
hệ
thống
điềukhiểnphân cấp, phân tán
—
Ứng
dụng
trong CN chế
biến, CN chế
tạo
7
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Chiếcxehơicólàmộthệ
TGT?
Hơn
50
máy
vi tính
bên
trong
(μP) nốimạng
Chúng
ta
có
nên
tìm
hiểu
nguyên
lý
hoạt
động
của
chúng?
8
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Bus trường có
phải là
một hệ
TGT?
Sensor
I/O
Controller
I/O
Actuator
Sensor
I/O
Actuator
I/O
Bus trường
T
sd
T
in
T
out
T
ad
T
c
T
s
T
io
T
a
T
bus
9
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Tính năng thời gian thực
là
yêu cầu
chung của hầu hết các hệ
thống thông
tin công nghiệp!
10
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Đặc ₫iểm của mộthệ
thời gian thực
Tính phản ứng:Hệ thống phải phản ứng với các sự
kiện xuất hiện vào các thời điểm 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.
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.
11
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
3.2 Xử
lý thời gian thực là
gì?
Xử
lý thời gian thực 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ó.
Luôn liên quan với các sự
kiện bên ngoài
(tính phản
ứng)
Yêu cầu cao về
hiệu suất phần mềm
(tính nhanh nhạy)
Đòi hỏi xử lý ₫ồng thời nhiều tác vụ
(tính ₫ồng thời)
Đòi hỏi cơ sở
lý thuyết chặt chẽ
phục vụ
phân tích và
đánh giá
(tính tiền ₫ịnh)
12
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Tạisao phảinghiên cứuvề
xử
lý
TGT?
Xử lý thời gian thực là nguyên lý làm việc cơ bản của
mỗi hệ thống điều khiển và của mỗi hệ thống thông
tin công nghiệp, nhìn từ quan điểm tin học
Chất lượng điều khiển và độ tin cậy của hệ thống điều
khiển không chỉ phụ thuộc vào thuật toán ₫iều khiển,
công nghệ phần cứng, mà còn phụ thuộc một cách tất
yếu vào phương pháp xử lý thời gian thực
Chúng ta còn biết quá ít về cơ chế thực hiện các chức
năng phần mềm bên trong một bộ điều khiển (số)
13
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Các hình thức cơ bản của xử
lý TGT
Khả năng phản ứng đồng thờivới các sự kiện bên
ngoài: Xử lý đa nhiệm
Đáp ứng yêu cầu về thời gian của nhiều “tác vụ”:
—
Xử
lý song song
—
Xử
lý phân tán
—
Xử
lý cạnh tranh
14
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Tác
vụ
và
xử lý ₫a nhiệm
Một quá trình tính toán cho một nhiệm vụ cụ thể,có
thể được thực hiện đồng thời, ví dụ:
—
Các tác vụ
xử
lý giá
trị
vào/ra
—
Các tác vụ điều chỉnh
—
Các tác vụ điều khiển
logic
—
Các tác vụ
xử
lý biến cố
—
Một tác vụ là sự thi hành một chương trình hoặc một
phần chương trình
—
Một chương trình chạy nhiều lần=>nhiều tác vụ
—
Một đoạn mã chương trình
(ví
dụ
một hàm) được gọi tuần
hoàn với các chu kỳ
khác nhau
=>
nhiều tác vụ
khác
nhau
Multitasking (đa nhiệm): khả năng thi hành đồng thời
nhiều tác vụ
15
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Các
trạng
thái
của một tác
vụ
Trạng thái nghỉ, chưa tồntại (Dormant,
Nonexistence): Task trong bộ nhớ nhưng
hệ điều hành không quảnlý.
Trạng thái sẵn sàng (Ready state): Khi
nó có thể được điều hoạt nhưng hiện
đang có một Task khác có mức ưu tiên
cao hơn đang được thực hiện.
Trạng thái chạy (Running state): Khi nó
đang được điều khiển bởi CPU
Trạng thái đợi (Waiting state) : Khi nó
đang chờ một sự kiện xảy ra để được
sẵn sàng như một sự kiện vào/ra, khi
tài nguyên chung có thể sử dụng hay là
khi có các ngắt thời gian.
DORMANT
READY
RUNNING
WAITING
16
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Phân loại tác vụ
(IEC
61131-3)
Mã
thựcthi
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ựcthi
Thời gian
Tác vụ
tuần hoàn
Ví
dụ:
- Điều chỉnh vòng kín
- Xử
lý truyền thông
Chờ
sự
kiện
Mã
thựcthi
Sự
kiện
Tác vụ
sự
kiện
Ví
dụ:
- Điều khiển trình tự
- Xử
lý sự
cố
17
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Các hình thức xử lý ₫ồng thời
Xử lý song song:Các tác vụ (task) được phân chia
thực hiện song song trên nhiều bộ xử lý
Xử lý cạnh tranh:Nhiều tác vụ chia sẻ thời gian của
một bộ xử lý.
Xử lý phân tán:Mỗi (nhóm) tác vụ được thực hiện
riêng trên một máy tính (trường hợp đặc biệt của xử
lý song song).
Xử
lý cạnh tranh là
hình thức quan trọng nhất trong
các hệ
thống điều khiển(cóthể
kết hợp với xử
lý
phân tán)
18
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Xử
lý
cạnh
tranh
Các vấn đề:
—
Tổ
chức, lập lịch
phân
chia tài
nguyên cho các
tác
vụ
—
Giao tiếpgiữacáctácvụ
—
Đồng
bộ
hóa giữa
các
tác
vụ
19
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Phương pháp lập lịch
Vấn đề:
—
Bên cạnh hiệu năng của phần cứng máy tính, thì
phương pháp lập lịch có
ảnh hưởng lớn tới tính năng
thời gian thực của hệ
thống
—
Cần sự
thỏa hiệp giữa tính năng thời gian thực và
hiệu suất sử
dụng tài nguyên máy tính
Cơ chế lập lịch
—
Lập lệnh tĩnh:
thứ
tự
thực hiện các tác vụ được xác định
trước khi hệ
thống đi vào hoạt động.
—
Lập lệnh động:
thứ
tự
thực hiện các tác vụ được xác định
trong khi hệ
thống đang hoạt động.
20
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Phương pháp lập lịch
Sách lược lập lịch
—
FIFO: đến trước sẽ được thực hiện trước.
—
Non-preemptive: không chen hàng, các tác vụ được thực
hiện bình thường dựa trên mức ưu tiên của chúng.
—
Preemptive: chen hàng, chọn một tác vụ để
thực hiện
trước các tác vụ
khác.
—
Round-robin/Time-slicing: Mỗi tác vụ
có
mức ưu tiên như
nhau được thực hiện một số
“lát thời gian”
—
Mức ưu tiên cố định/động: các tác vụ được đặt các mức
ưu tiên cố định hoặc có
thể thay đổi nếu cần.
Thuật toán lập lịch
—
Rate monotonic:
càng thường xuyên càng được ưu tiên.
—
Deadline monotonic:
càng gấp càng được ưu tiên.
—
Least laxity:
tỷ
lệ
thời gian tính toán/thời hạn cuối cùng
(deadline)
càng lớn càng được ưu tiên.
21
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Khái niệm “tiến trình tính toán”
Tiến trình tính toán (process) là một khái niệm tương
đương với “tác vụ”, nhưng nhìn từ phía hệ điều hành
đa nhiệm (khái niệm tác vụ nhìn từ phía người sử
dụng)
Hai loại tiến trình:
—
Tiến trình nặng cân (heavyweight process, process):
Chiếm một không gian địa chỉ riêng, thường tương ứng
với thực thi cả
một chương trình => sử
dụng an toàn hơn
nhưng giao tiếp giữa các process phức tạp
—
Tiến trình nhẹ
cân (lightweight process, thread): Thường
thuộc một process, các thread của một process cùng
chia sẻ
một không gian địa chỉ
=> giao tiếp đơn giản
thông qua các biến toàn cục, nhưng cần thận trọng
22
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
3.3
Hệ ₫iều hành thời gian thực
Hệ điều hành thời gian thực là một hệ điều hành hỗ
trợ các chương trình ứng dụng xử lý thời gian thực
Hầu hết các bộ điều khiển công nghiệp (PLC, DCS, )
đều hoạt động trên nền một hệ điều hành thời gian
thực(RTOS, Real-time Operating System)
Bản thân hệ điều hành thời gian thực cũng là một hệ
thời gian thực
Một hệ điều hành thời gian thực bao giờ cũng là một
hệ đa nhiệm(multitasking), hỗ trợ xử lý cạnh trạnh
hoặc/và xử lý song song.
23
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
Vai trò
của RTOS
trong bộ ₫iều khiển
Nạp chương trình, hỗ trợ thử nghiệm, gỡ rối chương
trình
Quản lý dữ liệu vào/ra và quản lý truyền thông
—
Giúp các chương trình ứng dụng dễ
dàng truy cập dữ
liệu
mà
không cần quan tâm tới cơ chế
phần cứng cụ
thể
Quản lý tác vụ:
—
Lập lịch:
Phân chia thời gian
CPU
cho thi hành các tác vụ
khác nhau
(trong xử
lý cạnh tranh)
—
Hỗ
trợ ₫ồng bộ
hóa tiến
trình:
Giúp các tác vụ
chia sẻ
tài
nguyên sử
dụng chung
(bộ
nhớ,cổng vào/ra, )
—
Hỗ
trợ
giao tiếp liên tiến
trình:
Giúp các tác vụ
thực hiện
giao tiếp, trao đổi dữ
liệu hoặc phối hợp hoạt động
Các chức năng kiểm tra, chẩn đoán lỗi
24
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
RTOS trong các
hệ
thống
₫iềukhiển
Yêu cầu đặc biệt
—
Mã rất nhỏ, gọn
—
Đơn giản, dễ
sử
dụng, dễ
lập trình
—
Thời
gian phản
ứng
vớimột sự
kiện(vídụ
khi xuấthiện
ngắt
truyền
thông, ngắt
vào/ra, ) đủ
ngắn
—
Quản lý hiệu quả
các tác vụ
tuần hoàn, đảm bảo chính
xác về
chu kỳ
thời gian, độ
rung nhỏ
(jitter)
—
Quản lý vào/ra hiệu quả, đơn giản
Hai dạng thực hiện:
—
Mã nguồn: Nhân thời gian thực, được dịch và
liên kết
cùng với CTĐK tạo thành một chương trình duy nhất ->
giải pháp vi điều khiển.
—
Mã chạy cài đặt sẵn trên thiết bị: Hệ điều hành thời gian
thực đầy đủ, cung cấp các dịch vụ độc lập với chương
trình điều khiển -> giải pháp PLC và
DCS.
25
© 2004, HOÀNG MINH SƠN
Chương 3: Vấn đề thời gian thực
© 2005 - HMS
GIAO DIỆN PHẦNCỨNG
PHẦNCỨNG
MÁY
TÍNH
QUẢNLÝ
TASK
QUẢNLÝ
BỘ
NHỚ
QUẢNLÝ
VÀO/RA
XỬ
LÝ
GIAO TIẾP
QUẢNLÝ
SỰ
KIỆN
GIAO DIỆN LẬP TRÌNH
ỨNG
DỤNG
CHƯƠNG TRÌNH
ỨNG
DỤNG
CHƯƠNG TRÌNH
ỨNG
DỤNG
CHƯƠNG TRÌNH
ỨNG
DỤNG
Cấu trúc tiêu biểu của một hệ
₫iều hành
thời gian thực