Tải bản đầy đủ (.docx) (54 trang)

Kiểm chứng hệ thống thời gian thực bằng công cụ kiểm chứng mô hình SAL

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 (612.96 KB, 54 trang )

ĐẠI

HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN KHẮC CHUNG

KIỂM CHỨNG HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ
KIỂM CHỨNG MÔ HÌNH SAL

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

HÀ NỘI, 2015


ĐẠI

HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN KHẮC CHUNG

KIỂM CHỨNG HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ
KIỂM CHỨNG MÔ HÌNH SAL

Nghành

: Công nghệ thông tin


Chuyên nghành : Kỹ thuật phần mềm
Mã số

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. ĐẶNG VĂN HƯNG

HÀ NỘI, 2015


Tr
gi ng vi n
Đ i họ
th y
việ nghi n
T
và làm lu n v n
nghi n



ti n t
ộ môn
ng nghệ - Đ
nh nhiều thời
u th

i xin
u


in
nh t ho t
lu n v n t



m
i trong s
t nghiệp này.

Nguyễn Kh c Chung


2
ỜIC

Đ

N

T i xin m o n r ng
y l kết qu nghi n
u
gi p
r t lớn
th y h ớng
n
nội ung nghi n
ề t i n y ho n to n trung th
Trong lu n v n t i

th m kh o
liệt k t i ph n t i liệu th m kh o ở

ến một s t i liệu
u i lu n v n

t i trong
s
u v kết qu trong
một s t

Hà nội, tháng 11 n m
ọ vi n th

gi

5

hiện

Nguyễn Kh c Chung


h
h

ng

ỚI TH


ng TỔNG QUAN VỀ KIỂM DUYỆT MÔ HÌNH ..................................

2.1. Kiểm duyệt mô hình (model checking) ......................................................

2.1.1. Định n
2.1.2.

Quá trình chung cho việc kiểm duyệt mô hình ...............................

3
2.1.3. Ưu
3 Ưu
3
2.1.4.
2.2. Mô hình hóa hệ th ng ...............................................................................
2.2.1. Hệ th


Định n
2.2.1.2 Th

2.2.2. Mô hình
Đ
2.2.2.2 Giao tiếp thông qua các biến dùng chung ....................................
2.2.2.3 B t tay (handshaking) ..................................................................
2.2.2.4 Hệ th

3 Đặc t các tính
2.3.1. Tính an toàn (safety property) .......................................................
2.3.1.1 Khóa chết

2.3.1.2 B t biến (invariant) ......................................................................
2.3.2. Tính s
2.4. Kiểm duyệt mô hình hệ th ng thời gian th c (model checking real-time
system) .............................................................................................................

2.4.1. Hệ th


2.4.2. Hệ th
2.5. Logic Thời gian tuyến tính (Linear Temporal Logic) ..............................
2.5.1.

Logic thời gian tuyến tính .............................................................

2.5.1.1 Cú pháp (Syntax) .........................................................................
2.5.1.2 Ng

2.5.2. Kiểm duyệt mô h
ng 3 TỔNG QUAN VỀ CÔNG CỤ KIỂM CHỨNG MÔ HÌNH SAL
(Symbolic Analysis Laboratory) .........................................................................
h

3.1. Giới thiệu
3.1.1.
3.1.2.
3.1.3.
3.1.4.
3.1.4.1 Bộ kiểm tra mô hình biểu t ng (symbolic model checker) .......
3.1.4.2 Bộ kiểm tra mô hình chặn (bounded model checker) ..................
3.2. Ngôn ng

3.2.1.
3.2.1.1 Kiểu d
3.2.1.2 D
3.2.2.
3.3. Ngôn ng
3.3.1.
3.3.2.
3.3.3.
333
3.3.3.2 Thao tác biến biến tr ng thái ........................................................
3.3.3.3 Thành ph n m
3 3 3 4 Kh i
3.4. Đặ tr
h ng 4 ỨNG DỤNG .....................................................................................

4.1. Bài toán hệ th


5

4.1.1.Mô t bài

4.1.2.Mô hình
4.1.2.1 Mô hình hóa .................................................................................
4.1.2.2 Kiểm duyệt các tính ch t ..............................................................
4.2. Bài toán hệ th ng th ng m y n gi n .....................................................

4.2.1.Mô t bài

4.2.2.Mô hình

4.2.2.1 Mô hình hóa .................................................................................
4.2.2.2 Kiểm duyệt các tính ch t ..............................................................
h ng 5 KẾT LUẬN .......................................................................................
TÀI LIỆU THAM KH O...................................................................................

PHỤ LỤC..............


6
DANH MỤC HÌNH VẼ

Hình 2-1: Tổng quan về kiểm duyệt mô hình .......................................................
Hình 2- :
Hình 2-3: Ví d
Hình 2-4: Ví d
Hình 2-5: Ng
Hình 2-6: Ví d về logic thời gian tuyến tính .....................................................
Hình 2-7: Tổng quan về kiểm duyệt mô hình logic thời gian tuyến tính ............
Hình 3-1: Ví d
Hình 3-2: Ví d về sal path finder .......................................................................
Hình 3-3: Ví d
Hình 3-4: Ví d
Hình 3-5: C u tr
Hình 4-1: Mô hình hệ th ng
Hình 4-2: Mô hình cửa thang máy ......................................................................
Hình 4-3: Mô hình thang máy .............................................................................


7



8
Chương 1. GIỚI THIỆU
Ngày nay, s
thông ngày càng nhiều v

i s u vào cuộc s ng hàng ngày c a chúng ta chẳng h n nh
tay
iện tho i
giặt, lò vi sóng. Vì thế, s
h n vào các hệ th
yêu c u cao.
Để xây d
l
ng ph n mềm Trong
sớm ng v i trò m u ch t cho việ
triển ph n mềm. K
thiết kế hệ th ng nh m t ng
Trong nhiều n m qu
ến s phát triển c
hiện lỗi sớm.
c sử d ng một cách t
ph n mềm.
Hiện nay có r t nhiều công c
SPIN, NuSMV, PAT, UPPAAL... SAL có thể kiểm duyệt hệ th ng thời gian
th
c b ng cách thêm biến ếm ng h vào tiến trình thời gi n
ràng buộc thời gian với các quá trình chuyển
c
u các lý thuyết

c
kiểm duyệt mô hình SAL và sử d ng SA
trong th c tế.


9
Chương 2. TỔNG QUAN VỀ KIỂM DUYỆT MÔ HÌNH
2.1. Kiểm duyệt mô hình (model checking)
2.1.1. Định nghĩa kiểm duyệt mô hình
Kiểm duyệt mô hình được định nghĩa bởi Clarke & Emerson 1981: Kiểm
duyệt mô hình là một k thu t t ộng, khi ho tr ớc một mô hình tr ng thái h u
h n c a hệ th ng và một tính ch t hình th c, kiểm tra một cách có hệ th ng xem
tính ch t có th a mãn ở t t c các tr ng thái trong mô hình [1].

Hình 2-1: Tổng quan về kiểm duyệt mô hình
2.1.2. Quá trình chung cho việc kiểm duyệt mô hình
2.1.2.1 Giai đoạn mô hình hóa

h nh hệ th ng
ng
h sử

ng

ng n ng

m

t


h nh

m
ộ kiểm tr m h nh
nh gi nh nh h ng
m h nh
ng việ th
 Kiểm tr v
hiện m ph ng

nh th
h
thuộ tính n kiểm tr sử
ng ng n ng

t tính h t
2.1.2.2 Giai đoạn thực thi
Th c thi một bộ kiểm tr m h nh ể kiểm tra tính h p lệ c a các tính ch t
trong mô hình hệ th ng.


10
2.1.2.3 Giai đoạn phân tích








Kiểm tr tính th m n h t th
m n m h nh th

tính h t trong m h nh ếu một tính huyển
s ng kiểm tr tính h t tiếp theo

Tính h t n o vi ph mm h nh th th
• Ph n tí h t o r ph n ví
ng

hiện:
h m ph ng

• Điều h nh l i m h nh thiết kế hoặ tính h t
ặp l i to n ộ th t



Tr n ộ nhớ th th hiện gi m m h nh v th thi l i
2.1.3. Ưu điểm, nhược điểm của kiểm duyệt mô hình
2.1.3.1 Ưu điểm










Đ y l một ph ng ph p tiếp
nhiều hệ th ng

nx

minh tổng qu t

p

ng ho

ỗ tr kiểm uyệt ộ ph n
tính h t
thể kiểm uyệt một
ri ng lẻ từ
thể t p trung kiểm uyệt tính h t qu n trọng tr ớ
kh ng n một ặ t ho n h nh
hệ th ng
ung
h nh

p th ng tin lỗi khi ph t hiện một tính

một k thu t

nhiều tiềm n ng kiểm

ộ o với ng ời sử
o về huy n m n
Dễ


ng v kh ng y u

ng t ng thí h với
nghi n
u h r r ng n
mềm ng n h n

h t kh ng tho

uyệt m h nh t
u ng ời sử

ng

h
m

mnm
ng t

m

m



hu tr nh ph t triển ph n mềm hiện n y thể
m ng l i thời gi n ph t triền ph n


2.1.3.2 Nhược điểm







Kiểm uyệt m h nh h yếu phù h p với
ng
kiểm so t ít phù h p với
ng ng huy n s u
liệu tr n kho ng v h n

ng huy n s u
liệu nh l

Phù h p với từng v n

thể nh l
hệ th ng tr ng th i v
hn
hoặ về
kiểu
liệu trừu t ng nh ng kiểm uyệt m h nh kh ng
hiệu qu trong tính to n
Kiểm

uyệt m h nh một hệ th ng nh ng hệ th ng kh ng ph i l


th

tế


11







(s n phẩm hoặ nguy n m u)
ọi kết qu nh n
th ng Do
n thiết nh ng k thu t ổ tr kh
t m r lỗi

l
m h nh hệ
nh l kiểm thử ể

h kiểm tr
tính h t
y u u kh ng
m o s ho n h nh
kiểm tr
y
tính h t Tính h p lệ

tính h t kh ng
kiểm tr th sẽ kh ng nh gi
v n ề về s
ùng nổ tr ng th i t l s l ng tr ng th i n thiết hệ th ng
ể m h nh ho
hính x v t qu kh ng gi n ộ nhớ
m y tính
Kiểm

uyệt m h nh y u
u việ t m kiếm trừu t
ng thí h h p ể
hệ th ng m h nh nh h n v thể hiện
tính h t tr ng th i theo
logi h nh th

2.1.4. Các bước để kiểm duyệt mô hình





h nh h
nh th
Quyết

hệ th ng (x y
h

yu


u(ặ t

ịnh v kiểm tr

ng một m h nh
tính

thu t to n (th

ho hệ th ng)

h t Φ)

hiện ở

ng

m h nh

h )
2.2. Mô hình hóa hệ thống
Hệ th ng lớn có nhiều thành ph n, nên việc kiểm duyệt cho các hệ th ng
này gặp nhiều kh kh n Vì thế, việc mô hình một hệ th ng
c xem nh

ph c v cho m
í h kiểm duyệt. Do
các hệ th ng chuyển ổi
c sử d ng

ể mô hình hóa cho các hệ th ng.

Mô hình hóa hệ th ng là mô t chính xác và rõ ràn
Mô hình hóa ch
các tr ng thái h u h n và t p h p các chuyển ổi.
2.2.1. Hệ thống chuyển đổi
Các hệ th ng chuyển
nh l
m h nh ể mô t
ổi l
thị có h
mô hình, chuyển tr ng thái. Một tr ng thái mô t một s thông tin t i một thời iểm
nh t ịnh c a hành vi.
Chúng ta sử d ng hệ th ng chuyển ổi cùng với tên c a h nh ộng cho quá
trình chuyển ổi (th y ổi tr ng thái) và các mệnh ề nguyên tử cho các


tr ng thái. Tên c
tiến trình. Các mệnh
thời gian.
2.2.1.1 Định nghĩa hệ thống chuyển đổi (transition system)
ột hệ th ng chuyển


S



Ac


• →⊆ S × Act × S: m



I⊆S



AP

• L:S→2



AP

là một nhãn ch

TS

cg

Tiền
Su essors):
Với

l:




( , )=

Tr ng th i kết th
tr ng th i kết th

: Tr ng th i s trong hệ th ng
h

khi if Post(s) = ∅.

Ví dụ: Máy bán đồ uống tự động

huyển ổi TS

gọi l


13

get_soda

soda

nh
n i

ộng
huyển ổi là nhãn c
hình oval. Tr ng th i


Không gian tr ng thái S = {pay, select, soda, beer}.
t o là I = {pay}
my
beer. Các chuyển
ộng biểu diễn một v i h nh
Chúng ta có:

t

Act = {insert_coin, get_soda, get_beer,
Hàm chuyển


T p mệnh

ề nguyê
(

2.2.1.2 Thực thi (run)
Th c thi là mô t một hành vi có thể có c a hệ th ng chuyển ổi.
 Th

thi ph n o n ( xe ution Fr gment):

Gi sử TS = (S, Act, →, I , AP, L) là một hệ th ng chuyển ổi. Một th c thi ph
n o n h u h n c a TS là một chuỗi th y ổi c a các tr ng thái, hành
ộng và kết thúc với một tr ng thái.

) = ∅, L(soda)



=




Th
n

Một th
một th
c gọi là

thi ph n

Ví dụ: máy bán đồ uống tự động ở hình 2-2
=



=

=

Các th
ph i là th
nó không kết thúc ở tr ng thái kết thúc. Gi
th c thi ph n




Th
ph n


n

thi ph n

Một tr ng thái ∈ ổi TS nếu nó có một ph

tr ng th
gọi là có thể t
c trong hệ th ng chuyển
o n th c thi ban
u, h u h n.
c

2.2.2. Mô hình hóa hệ thống song song và giao tiếp
Gi sử r ng hành vi c a các tiến trình ch y trên hệ th ng song song
r
bởi các hệ th ng chuyển ổi TS1, TS2,…TSn Định ngh to n tử song song là “||”
và TS = TS1|| TS2…|| TSn là một hệ th ng chuyển
ổi ặc t thành ph n song
song c a các hệ th ng chuyển ổi từ TS1 ến TSn.
2.2.2.1 Đồng thời và đan xen (Concurrency and Interleaving)
Một mô hình
“interle ving” Trong m h nh n y một trừu t
th c bao g
c

c bao g
c
a một thành ph n
Ví dụ: Hai đèn giao thông độc lập

mtph
m các tr ng


nhau (ví d
n gi o th
th ng
thái, một tr ng thái mô t
c a các thành ph n song song c
ới (TrLight1 ||| TrLight2).

nh
ng
m

TrLight1

green

TrLight1 ||| TrLight2
red red

green red

red green


green green

Hình 2-3: Ví dụ mô tả interleaving của 2 đèn giao thông
2.2.2.2 Giao tiếp thông qua các biến dùng chung
Toán tử “interle ving”
c sử d ng ể mô hình hóa hệ th ng không
ng bộ trong quy tr nh on ho t ộng ho n to n ộc l p với nhau, không có việc
truyền tin nh n hoặ xung ột về biến dùng chung. Một hệ th ng mà có các thành
ph n con ho t ộng ng thời ể có thể nói chuyện giao tiếp với nhau thì sử d ng biến
dùng chung.
Ví dụ: Sử dụng biến dùng chung cho các tiến trình đồng thời
Đ

thị cho hai ch d n α và β là các tiến trình song song.


|||⏟


16
gi
sử khởi t o biến x = 3. Hệ th ng chuyển
Trong
TS(PG2) mô t ở hình 2-4 n ới:

ổi TS(PG1) |||

x=3


α
x=6
Hình 2-4: Ví dụ mô tả biến dùng chung
2.2.2.3 Bắt tay (handshaking)
Các tiến tr nh ng thời mu n t ng t gi o tiếp với nhau ở cùng một iểm trong
thời hệ th ng ng bộ thì ph i thông qua việc b t tay. Thông tin tr o ổi khi b t tay có
thể là s nguy n n gi n, c u trúc d liệu ph c t p m ng hoặc các b n ghi.
nh
2.2.2.4 Hệ thống kênh truyền (Channel System)
Các hệ th ng song song có các tiến trình giao tiếp với nhau thông qua các
kênh truyền ngh l tiến trình v o tr ớ r tr ớc bộ ệm, và bộ ệm có thể ch a các tin nh
n. Hệ th ng kênh truyền l ng v tiến trình trong cùng một
hệ th ng có thể giao tiếp với nhau (thông qua kênh truyền), nh ng không thể giao
tiếp với các tiến trình khác ở bên ngoài hệ th ng.
2.3. Đặc tả các tính chất hệ thống
Để kiểm duyệt, việc mô hình hóa hệ th ng b ng hệ th ng c n ph i
ikm
với việc ặc t các tính ch t. Các tính ch t và các thu t toán kiểm duyệt mô hình sở r
nh m kiểm duyệt các tính ch t một cách t ộng.
Việ ặc t các tính ch t ph i th a mãn yêu c u thiết kế. Các tính ch t c chia
làm hai lo i: tính an toàn và tính s ng.
2.3.1. Tính an toàn (safety property)
Một tính an toàn là một tính ch t c mô t nh bao
giờ x y r ” (“something never h ppens”). Do

l “th g x u không ,
yêu c u an toàn bao


17

m: không có khóa chết (deadlock), không có các tr ng th i
ổ v hệ th ng.
gi ng nhau mà có thể g y r
g



u ti n

2.3.1.1 Khóa chết
Khóa chết x y ra nếu một hệ th ng ở trong một tr ng thái kết thúc, trong
ít nh t một thành ph n không ở tr ng thái kết th Do to n ộ hệ th ng có thể bị
treo, trong khi ít nh t một thành ph n có kh n ng tiếp t c ho t ộng.
Một công th c tổng quát h n

a tính an toàn có thể

c mô t nh một

công th c c a mệnh ề nguyên tử. Ví d (
) là một tính an toàn cho v n ề lo i trừ l n nhau ngh l xử lý 0 và xử
lý 1 không thể v o vùng g ng t i cùng một thời iểm.

Để xác minh các tính an toàn, chúng ta c n tiến hành tìm kiếm theo chiều
sâu (hoặc chiều rộng) trong không gian tr ng thái. Trong quá trình tìm kiếm, nếu
tr ng th i
t
c là không mong mu n (ví d
không có chuyển ổi trong
tr ờng h p khóa chết) s u

h ng t t m r một vết ể làm b ng ch ng nh l
một ph n ví d .
2.3.1.2 Bất biến (invariant)
Một thuộc tính thời gian tuyến tính trên một t AP là p mệnh ề nguyên tử
một b t biến nếu có một biểu th c logic mệnh ề nguyên tử trên một t p mệnh ề
sao cho:


gọi là một
Chú ý:
, với t t c

()

ttc

các tr ng thái

ttc
có thể

Khái niệm b t biến có thể
các tr ng th i
t

tr
í

h s‟
B t biến có thể


b ng việc xem xét các tr ng thái có thể
có thể


18
minh ch b ng các tr ng thái có thể
t
c. Để minh họ ho iều này xem xet
ví d là máy rút tiền ATM (automated teller machine). Một yêu c u c a là tiền
ch có thể c rút từ m y khi c cung c p một m t khẩu chính xác.Tính ch t này không
ph i là một b t biến, vì nó không ph i là một tính ch t tr ng thái. Tuy
nhiên tính ch t n y
yêu c u có một tiền t
Một tính ch t thời gian tuyến tính Psafe
gọi là tính an toàn nếu t
h n ̂ c σ s o ho: Psafe ∩ { σ‟ ∈ (2AP)ω| ̂ là một tiền t

B t kì chuỗi h u h n ̂ gọi là tiền t

2.3.2. Tính sống (liveness property)
Khác với tính an toàn, tính s ng ngh l “th g t t ẹp”( “something goo ”) cu i
ùng ũng sẽ x y ra. Tính an toàn bị vi ph m trong thời gian h u h n, tính s ng bị vi
ph m trong thời gian vô h n. Ví dụ: Trong thu t toán lo i trừ l n nhau, ví d iển
hình c a tính s ng bao g m:
u i ùng sẽ v o vùng g ng

 (eventu lly) mỗi tiến tr nh

 (repe te eventu lly) mỗi tiến tr nh sẽ v o vùng g ng u i

ùng;
 (st rv tion free om) mỗi tiến tr nh
n
Để ặc t các tính s ng
(Temporal Logics). Ví d nh

p
h
l

n;
n lu n lu n

i u i ùng sẽ v o vùng g ng

ng ph p phổ biến là Logic thời gian
omput tion Tree ogi ( T ) ine r

Temporal Logic (LTL),..

2.4. Kiểm duyệt mô hình hệ thống thời gian thực (model checking real-time
system)
Máy tính th
on
hệ th ng
ng
kỳ nguy hiểm, th m hí g y ổ v hệ th ng. Đ m
ph
tpl
một nhiệm v

th ng thời gi n th
gi n. [2]

thời gi n
ng nh
o tính ng n
một hệ
n
qu n trọng v kh ng hề


Có hai ng
th
gi n rời r

: ng

ngh

ng h

là truy
o t ng theo giá trị th ng nh
2.4.1. Hệ thống thời gian rời rạc (Discrete-time System)
Khi thời gi n l rời r
s
h nh thí h h

kiện
ng


h
ộ sử

li n tiếp

h

ng th nh
ng trong nhiều n m Trong
uy nh t to n
ph

thời gi n rời r
ộng
h nh
t

ph
T

Để

ng

2.4.2. Hệ thống thời gian dày đặc (Dense-time system)
m
kiện nh tùy

l

l
hình hóa. go i r
th ng kh ng

ng tử thời gi n
ng thời gi n

h
hệ
Process Algebra, Timed Interval Calculus,… Trong các ngôn ngữ đặc tả thì

otomat thời gian (Timed Automat)
trong thiết kế m
h
n tr ng th i


h

ut)

gi


20
h

thi m h nh

th


ến

thể

r ng uộ

n
g

iểu th

o vệ liên quan

ng h

2.5. Logic Thời gian tuyến tính (Linear Temporal Logic)
Ph n này sẽ mô t cú pháp và ng ngh a logic thời gian tuyến tính. Tiếp theo
là xem xét thu t toán kiểm duyệt mô hình d a trên otomat Buchi cho
logic thời gian tuyến tính. Các thu t to n n y
h i:
ho tr
tính φ l m thế n o ể kiểm tr

ớc một

Logic thời gian tuyến tính phù h p
tính. Logic thời gian có thể
các hệ th ng
Thành ph n

ề tuyến tính (nhãn tr
ph
khi” .


ịnh

v

“eventu lly” (eventu lly in the future)

□ “ lw ys” (now and forever in the future)
2.5.1. Logic thời gian tuyến tính
2.5.1.1 Cú pháp (Syntax)
Công th c logic thời gian tuyến tính trên một t p mệnh ề tuyến tính AP c t
o từ v n ph m sau:
=

|

|

|

|

|




.


trong

.
, kéo theo →

Sử d ng các toán tử phép n i
chẵn lẻ

, ph

có các công th c sau:


ịnh

t

(
(
(



n
g

n

g

,

)
)

)(

(



)

)

Sử d ng kết h p ph ng th c thời gi n (“eventu lly” the future) sometimes in
v (“ lw ys” from now on forever) có:


×