ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜ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
Trang 1ĐẠ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
Trang 2ĐẠ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
Trang 4T i xin m o n r ng y l kết qu nghi n u t i trong s
gi p r t lớn th y h ớng n nội ung nghi n u v kết qu trong
32.1.3 Ưu
3 Ưu32.1.4
2.2 Mô hình hóa hệ th ng
2.2.1 Hệ th
Trang 5Định ngh2.2.1.2 Th
2.2.2 Mô hình hóa hệ th ng song song và giao tiếp
Đ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 ch t hệ th2.3.1 Tính an toàn (safety property)
2.3.1.1 Khóa chết2.3.1.2 B t biến (invariant)
2.3.2 Tính s2.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
Trang 62.4.2 Hệ th2.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ình logic thời gian tuyến tính d a trên otomat
h ng 3 TỔNG QUAN VỀ CÔNG CỤ KIỂM CHỨNG MÔ HÌNH SAL
(Symbolic Analysis Laboratory)
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)
Trang 74.1.1.Mô t bài toán
4.1.2.Mô hình và kiểm duyệt hệ th ng ng t 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 toán
4.2.2.Mô hình và kiểm duyệt hệ th ng thang máy trong SAL
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
Trang 8Hình 3-2: Ví d về sal path finder Hình 3-3: Ví d
Trang 97
Trang 10Chương 1 GIỚI THIỆU
Ngày nay, sthông ngày càng nhiều v
và i s u vào cuộc s ng hàng ngày c a chúng ta chẳng h n nh
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ế
Trang 11Chươ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
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 ttrong mô hình hệ th ng
Trang 12tí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
ỗ tr kiểm uyệt ộ ph n tính h t thể kiểm uyệt một h
ri ng lẻ từ thể t p trung kiểm uyệt tính h t qu n trọng tr ớ m
một k thu t nhiều tiềm n ng kiểm uyệt m h nh t ng t m
ộ o với ng ời sử ng v kh ng y u u ng ời sử ng m ộ
o về huy n m n
Dễ ng t ng thí h với
nghi n u h r r ng nmềm ng n h n
Phù h p với từng v n ề thể nh l hệ th ng tr ng th i v h nhoặ về kiểu liệu trừu t ng nh ng kiểm uyệt m h nh kh nghiệ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ế
Trang 1311(s n phẩm hoặ nguy n m u) ọi kết qu nh n l m h nh hệ
th ng Do n thiết nh ng k thu t ổ tr kh nh l kiểm thử ể
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 theologi h nh th
2.1.4 Các bước để kiểm duyệt mô hình
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àng hành vi c a hệ th ng
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
Trang 152.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
Trang 16=
Trang 172.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 TS 1 , TS 2 ,…TS n Định ngh to n tử song song là “||”
và TS = TS 1 || TS 2 …|| TS n 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ừ TS 1 ến TS n
2.2.2.1 Đồng thời và đan xen (Concurrency and Interleaving)
Trang 18Hì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.
Trang 19
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
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
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áckê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ể giaotiếp với các tiến trình khác ở bên ngoài hệ th 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
Trang 20Mộ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 lmộ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à
một b t biến nếu có một biểu th c logic mệnh ề nguyên tử
sao cho:
p mệnhề nguyên tử trên một t p mệnh ề
Trang 2218minh 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 ∩ { σ‟ ∈ (2 AP ) ω | ̂ là một tiền t
B t kì chuỗi h u h n ̂ gọi là tiền t
(eventu lly) mỗi tiến tr nh u i ùng sẽ v o vùng g ng n ;
(repe te eventu lly) mỗi tiến tr nh sẽ v o vùng g ng u i
ng ph p phổ biến là Logic thời gian omput tion Tree ogi ( T ) ine r
Trang 232.4.1 Hệ thống thời gian rời rạc (Discrete-time System)
Khi thời gi n l rời r
Process Algebra, Timed Interval Calculus,… Trong các ngôn ngữ đặc tả thì
trong thiết kế m
h n tr ng th i
Trang 24h u t ) gi
Trang 252.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
◊ “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
ng,
Sử d ng kết h p ph ng th c thời gi n (“eventu lly” the future)
v (“ lw ys” from now on forever) có:
sometimes in
Trang 26α ᴧ ¬b until α U b
Xem xét v n ề lo i trừ l n nhau c a hai xử l ng thời và Xử lý
c mô hình hóa b ng ba vị trí: (1) không ở vùng g ng ( ) ng ở gi i o n
không bao giờ ng thời truy xu t
(
)
Trang 27vô h n trên t p kí hiệu
thời gian tuyến tính có một thuộc tính thời gian tuyến tính duy nh t
Trang 28chuỗi có d ng
=1,2,3
2.5.2 Kiểm duyệt mô hình logic thời gian tuyến tính dựa trên otomat
Trang 30Chương 3 TỔNG QUAN VỀ CÔNG CỤ KIỂM CHỨNG MÔ HÌNH SAL
(Symbolic Analysis Laboratory) 3.1 Giới thiệu
SAL viết t t c a Symbolic Analysis Laborator SAL là một framework kết
h p nhiều công c khác nhau ùng ể trừu t ng h ph n tí h h ng tr nh ch ng minh ịnh
lý và kiểm duyệt m h nh i với các tính ch t (phân tích biểu
t ng) c a các hệ th ng chuyển ổi Một ph n quan trọng c a SAL framework
là một ngôn ng ể mô t cho các hệ th ng chuyển ổi Ngôn ng n y ng v i
tr nh một ngôn ng ặc t v nh l í h ho ộ biên dịch Ngôn ng này
r m t các hệ th ng chuyển ổi cho các ngôn ng l p trình phổ biến nh Esterel,Java, and Statecharts [5]
Ngôn ng SA c thiết kế với s h p tác gi a David Dill c ihọc Stanford University và Thomas Henzinger c i học University ofCalifornia t i Berkeley
3.1.1 ôi trường SAL
SAL có thể ch y trên các hệ th ng máy tính hệ iều hành: RedHat Linux hoặcWindows XP (cùng cygwin), Mac OS và các máy tr m Solaris (SPARC) [6]
3.1.2 Bộ mô phỏng (Simulator)
SAL ch a một bộ mô ph ng ho ặc t tr ng thái h u h n d a trênBDD (Binary Decision Diagram) Bộ mô ph ng ho phép ng ời dùng xem cácờng th c thi khác nhau c a một ặc t SAL Do thể t ng ộ tin c y cho
ng ời ùng i với m h nh tr ớc khi th c hiện xác minh.Th c tế SALenvsimulator không ph i là bộ mô ph ng chính quy vì nó là scriptable Do ng ời dùng
có thể sử d ng Scheme programming language ể t o bộ mô ph ng mới, các th t cxác nh n và t ộng lặp l i các tác v [6]
Hình 3-1: Ví dụ SAL simulator
Trang 313.1.3 Bộ tìm kiếm đường (path finder)
Bộ tìm kiếm ờng t o các vết ng u nhi n ho m un a vào gi i pháp
SAT (Boolean satisfiability)
Ví dụ về sử dụng path finder
Hình 3-2: Ví dụ về sal path finder
Mặ ịnh c a sal-path-finder là t o ra một vết với m ời quá trình chuyển
ổi tr ng thái Tùy chọn depth=<num> c sử d ng ể iều khiển ộ dài c a vết.
3.1.4 Ngôn ngữ đặc tả tính chất (Property Specification anguage)
của S
3.1.4.1 Bộ kiểm tra mô hình biểu tượng (symbolic model checker)
SAL ch a một bộ kiểm tra mô hình biểu t ng gọi là sal-smc Bộ kiểm tra
này ho phép ng ời ùng ặc t các tính ch t trong logic thời gian tuyến tính (lineartemporal logic-LTL), logic cây tính toán (computation tree logic –
CTL).Tuy nhiên trong phiên b n SAL hiện t i (version 3.x) th kh ng r ph n ví d cho các tính ch t CTL Khi ng ời ùng ặc t một tính ch t không h p lệ trong LTL, một ph n ví d c t o ra Các tính ch t tr ng thái công th c LTL về mỗi ờng tuyến tính r ởi một m un (hệ th ng chuyển ổi)
to n tử iển h nh trong T o g m:
Trang 323.1.4.2 Bộ kiểm tra mô hình chặn (bounded model checker)
SAL ch a một bộ kiểm tra mô hình chặn gọi là sal-bmc Bộ kiểm tra mô
hình này ch hỗ tr công th c logic thời gian tuyến tính LTL, và n l sở ể
sử d ng cho việ r ph n ví d sal-bmc có thể th c hiện xác minh b ng ệ quy k Ví
dụ sử dụng bounded model checker:
Trang 33Hình 3-4: Ví dụ sử dụng bounded model checker
Tìm kiếm ph n ví d mặ ịnh hành vi có ộ sâu (depth) b ng m ời.Tùy chọn
depth=<num> có thể c sử d ng ể kiểm so t ộ sâu c a việc tìm kiếm theo giá trị num Tùy chọn –iterative sử d ng ể lặp l i việc tìm kiếm theo chiều sâu và nó h u
ích cho việc tìm kiếm ph n ví d cho thuộc tính c thể
SAL ch a một bộ kiểm tra mô hình chặn vô h n là sal-inf-bmc Đ y l
một bộ kiểm tra cho các hệ th ng tr ng thái vô h n Nó r ph n ví d và lỗi
3.2 Ngôn ngữ diễn đạt (Expression Language)
Trong ngôn ng SAL, mô t [optional] là tùy họn m t {category}+l
ph p thể xu t hiện một hoặ nhiều l n với type ph n t h nh u ởi
u phẩy t {category}* l ph p thể xu t hiện hoặ nhiều l n với
ởi t n u lệnh o vệ ph n t h nh u ởi to n tử [] theo quy t
ng với ộ th ng ị h y ịnh danh có một s
Kí hiệu ặ iệt (SpecialSymbol):(|)|,|-|*|+|%|,|.|;|∶|′|!|#|?|
Trang 34liệu t p h p, kiểu d liệu ệ quy …
3.2.1.1 Kiểu dữ liệu cơ bản
Kiểu d liệu n bao g m: Booleans, Integer, natural numbers,
và reals.
3.2.1.2 Dữ liệu kiểu cấu trúc
D liệu kiểu c u trúc bao g m: subtype, subrange, array, function, tuple,
Kiểu t p h p (tuple): Kiểu t p h p ng
Kiểu n ghi (re or ): Kiểu n ghi ng
Trang 35subrange hoặc một kiểu scalar.
Kiểu subrange [a b] là viết t t
[a _] là viết t t
Kiểu t ệ quy (Recursive datatype): Kiểu
ể ịnh ngh kiểu nh list v tree D t type
t ệ quy có thể sử d ng
ặc t b ng một list
Trang 37⇔
⇒ ,
=,/=
>, >=, <, <=
, − ,/
Biểu th c SAL ch a hai lo i biến: biến logic và biến tr ng thái Các biến
tr ng thái có thể là: biến tr ng thái hiện t i hoặc biến tr ng thái tiếp theo Kiểu
logic t do, gán giá trị cho biến hiện t
tr ng thái
3.3 Ngôn ngữ chuyển đổi (The Transition Language)
un hệ th ng chuyển ổi bao g m: kiểu tr ng th i ịnh ngh t biến trên các
tr ng thái, một iều kiện khởi t o cho các tr ng thái, và một quan hệ
chuyển ổi nhị phân c a một hình th ặc t trên kiểu tr ng thái Các kiểu tr ng th i ịnh
ngh ởi các biến u v o u r ị ph ng to n c
Một m un hai lo i biến: Các biến quan sát (observed variables) và các biến
iều khiển (controlled variables)
iến qu n s t o g m: iến u v o (input) v iến to n (glo l)
v iến ị ph ng (lo l)
Các quy t c chuyển ổi là các quy t c ràng buộc gi a các tr ng thái hiện t i và
các tr ng thái tiếp theo c a quá trình chuyển ổi Biến hiện t i c viết là X thì tr ng
thái tiếp theo c a biến l ‟
Trang 38% Chuyển ổi tr ng thái
TRANSITION
END;
Hình 3-5: Cấu trúc mô đun 3.3.1 Định nghĩa (Definition)
Định ngh l u tr n sử d ng ể xây d ng các b t biến, các khởi t o, và các quátrình chuyển ổi c a một m un Định ngh ũng c sử d ng
ể xịnh giá trị c a các biến trong một tính toán b ng việc cung c p các ràng
buộc trên các biến iều khiển trên một hệ th ng chuyển ổi Đ i với các biến
khác nh u i diện cho các c u trúc d liệu nh l m ng, b n ghi thì có thể ịnh ngh iến
theo từng thành ph n riêng biệt Ví dụ: x‟ = x + l t ng iến tr ng th i x v x‟ l tr ng
thái tiếp theoc a biến
Một công th c chuyển ổi trong ph n TRANSITION ịnh ngh một biếntiếp theo ở bên trái c a biểu th c
Trong một m un a hệ th ng chuyển ổi, một biến iều khiển ch c
ịnh ngh ng một l n
Trang 393.3.2 Câu lệnh bảo vệ (Guarded Command)
Câu lệnh b o vệ là một biểu th c boolean trong các biến kiểm soát hiện
t i (biến c c bộ, biến toàn c
t i và tiếp theo Ph n gán là một
biến tr ng thái tiếp theo và biểu th
biến tr ng thái tiếp theo Do
3.3.3 Ngôn ngữ mô đun (The Module Language)
M un l một ặc t một hệ th ng chuyển ổi trong SA
th n ặc biệt trong việc mô hình hóa các hệ th