Nội dung chủ yếu trình bày của đề tài được phân bố trên ba chương : - Ch ươ ng 1 : Phần cơ sở lý thuyết những vấn đề chung nhất của hệ tin học phân tán làm cơ sở cho các phần sau của đề
Trang 2ĐỀ TÀI :
LẬP TRÌNH BẰNG CÁC PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Giáo viên h ướ ng d ẫ n : PGS.TS Lê V ă n S ơ n
Ng ườ i th ự c hi ệ n : Lê Quốc Dũng
L ớ p : Khoa h ọ c máy tính
Trang 3Mục tiêu nghiên cứu của đề tài nhằm tìm hiểu về s ự g ắ n bó d ữ li ệ u
và l ậ p trình b ằ ng ph ươ ng pháp phân tán để đ i ề u khi ể n bãi đổ xe, d ự a trên đồ ng h ồ lôgíc để giả i quy ế t trình t ự c ậ p nh ậ t thông tin nh ấ t thi ế t ph ả i gi ố ng nhau trên các trạm trong hệ phân tán
tin nh ấ t thi ế t ph ả i gi ố ng nhau trên các trạm trong hệ phân tán
Nội dung chủ yếu trình bày của đề tài được phân bố trên ba chương :
- Ch ươ ng 1 : Phần cơ sở lý thuyết những vấn đề chung nhất của hệ tin học
phân tán làm cơ sở cho các phần sau của đề tài
- Ch ươ ng 2 : Nội dung của bài toán hệ quản lý bãi đổ xe và nêu ra những vấn đề
không gắn bó dữ liệu trên các trạm
- Ch ương 3 : Lập trình bằng phương pháp phân tán để điều khiển bãi đổ xe
Những nguyên lý và thuật toán sắp xếp các thông điệp đến dựa trên đồng hồ
lôgíc (nội dung của giải thuật được trình bày theo giải thuật Lamport)
Trang 4II.1 Đặ t v ấ n đề
•1 Nhìn chung, các ti ế n trình k ể các ti ế n trình xu ấ t phát t ừ các ứ ng d ụ ng
độ c l ậ p mu ố n truy c ậ p vào các tài nguyên v ớ i s ố l ượ ng v ố n r ấ t h ạ n ch ế
hay truy c ậ p vào thông tin dùng chung cùng m ộ t lúc Tr ườ ng h ợ p này g ọ i hay truy c ậ p vào thông tin dùng chung cùng m ộ t lúc Tr ườ ng h ợ p này g ọ i
là truy c ậ p t ươ ng tranh
Vì v ậ y, t ươ ng tranh là nguyên nhân chính c ủ a các xung độ t gi ữ a các ti ế n trình mu ố n truy c ậ p vào tài nguyên dùng chung đ ây là m ộ t trong nh ữ ng nguyên nhân ph ả i th ự c hi ệ n c ơ ch ế đổ ng b ộ hoá các ti ế n trình.
Trang 5II.2 TR Ậ T T Ự T Ừ NG PH Ầ N
•v ấ n đề đồ ng b ộ hoá đượ c gi ả i quy ế t thông qua c ơ ch ế lo ạ i tr ừ t ươ ng h ỗ
C ơ ch ế này cho phép s ắ p đặ t (xác l ậ p tr ậ t t ự) hoàn toàn các s ự ki ệ n
C ơ ch ế này cho phép s ắ p đặ t (xác l ậ p tr ậ t t ự) hoàn toàn các s ự ki ệ n
Trong th ự c ti ễ n, nói m ộ t cách chính xác, có m ộ t h ệ th ố ng v ấ n đề v ề đồ ng
b ộ hoá ch ỉ đ òi h ỏ i tr ậ t t ự t ừ ng ph ầ n Chính vì v ậ y tr ậ t t ự hoá t ừ ng ph ầ n
gi ữ a các s ự ki ệ n mà các ti ế n trình c ủ a nó c ầ n ph ả i đồ ng b ộ là v ấ n đề c ầ n
ph ả i quan tâm gi ả i quy ế t.
Trong các h ệ th ố ng phân tán, vi ệ c đồ ng b ộ hoá ch ỉ đặ t ra duy nh ấ t v ấ n đề
thi ế t l ậ p m ộ t tr ậ t t ự gi ữ a các s ự ki ệ n Gi ữ a các tr ạ m khác nhau, tr ậ t t ự đ ó
ch ỉ có th ể hi ệ n đượ c thông qua vi ệ c trao đổ i các thông đ i ệ p v ớ i nhau.
Trang 6II.2 TR Ậ T T Ự T Ừ NG PH Ầ N
Gi ả s ử r ằ ng ta có th ể xác đị nh m ộ t tr ậ t t ự gi ữ a các s ự ki ệ n c ủ a h ệ phân tán
nh ờ vào quan h ệ đượ c ký hi ệ u là → và g ọ i là “ có tr ướ c ” hay “ ở ngay
nh ờ vào quan h ệ đượ c ký hi ệ u là → và g ọ i là “ có tr ướ c ” hay “ ở ngay
Trang 7II.3 GI Ả ĐỊ NH CÁC Đ I Ề U KI Ệ N CHUNG
• Các h ệ phân tán đượ c xây d ự ng trên c ơ s ở các tr ạ m làm vi ệ c đượ c
m ắ c n ố i v ớ i nhau (n ố i m ạ ng) M ỗ i m ộ t tr ạ m có b ộ nh ớ riêng c ủ a mình
và tuy ệ t đố i không có b ộ nh ớ chung.
và tuy ệ t đố i không có b ộ nh ớ chung.
1 H1 Một trạm trong các trạm đều có thể liên lạc với các trạm còn lại
trong hệ
2 H2 Không có lỗi truyền thông tin và không mất thông điệp
3 H3 Trật tự nhận trên trạm j của dãy các thông điệp cũng giống như
chính tại trạm I là giống với trật tự của nơi phát
4 H4 Sự cố hay gián đoạn vật lý tại một trạm nào đó được phát hiện sẽ
lập tức thông báo đến tất cả các trạm có ý định liên lạc với nó
Trang 8II.4 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
VT VT
VT
VT VT
- Xe chính là các ti ế n trình
- N ế u m ộ t c ử a là t ậ p trung còn nhi ề u c ủ a s ẽ di ế n ra tranh
ch ấ p
Trang 9II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Tình hu ố ng th ứ 1 :
Ta gi ả s ử r ằ ng bãi để xe ô tô là lo ạ i bãi l ớ n có m ộ t c ổ ng
Ta gi ả s ử r ằ ng bãi để xe ô tô là lo ạ i bãi l ớ n có m ộ t c ổ ng vào d ướ i s ự ki ể m soát c ủ a m ộ t ng ườ i b ả o v ệ (NBV) duy
nh ấ t NBV ch ỉ bi ế t đượ c m ộ t ph ầ n c ủ a tr ạ ng thái bãi để
xe Trong khi anh ta ngh ĩ r ằ ng bãi để xe đ ã b ị đầ y, khi đ ó
l ạ i có nhi ề u lái xe đ ang cho xe ch ạ y ra c ổ ng Vì suy ngh ĩ
nh ư v ậ y, trong tr ườ ng h ợ p này, anh ta không gi ả i quy ế t
đượ c cho các xe khác ti ế p t ụ c đượ c vào bãi n ữ a, m ặ c dù lúc này trong bãi đ ang có ch ổ tr ố ng, nh ư v ậ y, NBV không
n ắ m đượ c tr ạ ng thái hi ệ n hành c ủ a bãi
Trang 10II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Tình hu ố ng th ứ 2 :
N ế u ta có bãi để xe có nhi ề u c ổ ng vào và t ạ i m ỗ i c ổ ng có
m ộ t ng ườ i b ả o v ệ thì m ỗ i ng ườ i b ả o v ệ ch ỉ có th ể bi ế t đượ c
m ộ t ng ườ i b ả o v ệ thì m ỗ i ng ườ i b ả o v ệ ch ỉ có th ể bi ế t đượ c
b ả o v ệ khác C ũ ng có th ể di ễ n ra tr ườ ng h ợ p là cùng m ộ t lúc
các ng ườ i b ả o v ệ gi ả i quy ế t các xe vào cùng m ộ t v ị trí trong bãi
do vì h ọ thi ế u thông tin
Trang 11II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Tình hu ố ng th ứ 3 :
Gi ả s ử r ằ ng ở th ờ i đ i ể m cho tr ướ c ta có 4 ng ư òi b ả o v ệ và có 100
ch ỗ còn tr ố ng T ấ t c ả các ng ườ i b ả o v ệ đề u có thông tin đ ó Tr ạ ng
ch ỗ còn tr ố ng T ấ t c ả các ng ườ i b ả o v ệ đề u có thông tin đ ó Tr ạ ng thái lúc này c ủ a h ệ là g ắ n bó Ba trong s ố h ọ phát đ i các thông tin
Trang 12Bảo vệ 1 Bảo vệ 2 Bảo vệ 3
M1M
II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Tình hu ố ng th ứ 3 :
Bảo vệ 1 Bảo vệ 2 Bảo vệ 3
M1M
Trang 13II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Thông
điệp
GiáTrị
Thông
điệp
GiáTrị
Thông
điệp
GiáTrị
Trang 14II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Tình hu ố ng th ứ 4 :
Gi ả s ử r ằ ng ở th ờ i đ i ể m cho tr ướ c ta có 4 ng ư òi b ả o v ệ và có 100
ch ỗ còn tr ố ng T ấ t c ả các ng ườ i b ả o v ệ đề u có thông tin đ ó Tr ạ ng
ch ỗ còn tr ố ng T ấ t c ả các ng ườ i b ả o v ệ đề u có thông tin đ ó Tr ạ ng thái lúc này c ủ a h ệ là g ắ n bó Ba trong s ố h ọ phát đ i các thông tin
Trang 15II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Trang 16II.5 BÀI TOÁN H Ệ QU Ả N LÝ BÃI ĐỖ XE
Thông
điệp
Giá Trị
Thôn g
Giá Trị
Thôn g
Giá Trị
Bảng II.1 : Sự không gắn bó giữa bốn người bảo vệ
Trang 17II.6 K Ế T LU Ậ N
chế để thực hiện đồng bộ hoá các tiến trình (cho
chế để thực hiện đồng bộ hoá các tiến trình (cho
Trang 183 Các thông điệp phải được xử lý cùng một trật tự
như nhau trong các chương trình cung cấp
Trang 19Queue: là một danh sách tuyến tính mà phép thêm được
tiến hành một đầu danh sách, phép loại bỏ được tiến hành tại đầu còn lại của danh sách Queue còn gọi là danh sách
III 1 C Ơ S Ở LÝ THUY Ế T
III.1.2 HÀNG ĐỢ I
tại đầu còn lại của danh sách Queue còn gọi là danh sách
FIFO (First In First Out)
Trang 20Gi ả i thu ậ t đượ c trình bày ở đ ây là gi ả i thu ậ t Lamport nh ằ m cho phép ghi l ạ i các s ự ki ệ n c ủ a h ệ tin h ọ c phân tán Gi ả i thu ậ t này nh ằ m gi ả i quy ế t v ấ n đề trình t ự (v ấ n đề m ấ u ch ố t c ủ a h ệ phân tán) d ự a trên giá
nh ậ n đượ c thông đ i ệ p, tr ạ m r c ậ p nh ậ t đồ ng h ồ Cr riêng c ủ a mình b ằ ng
gi ả i thu ậ t sau đ ây :
N ế u Cr, thì
Trang 21M ộ t s ự ki ệ n a sinh ra trong tr ạ m i và đượ c đ ánh d ấ u b ở i
Trang 23Giả thiết
1 Tr ạ m i c ủ a m ạ ng có th ể g ử i cho các tr ạ m khác thông đ i ệ p
có d ạ ng (T Hi, i), trong đ ó Hi là d ấ u c ủ a thông đ i ệ p có ngh ĩ a là đồ ng
h ồ lô gích c ủ a nó và T có th ể nh ậ n m ộ t trong ba giá tr ị REQ, REL, và
III.2 TRÌNH BÀY GI Ả I THU Ậ T
h ồ lô gích c ủ a nó và T có th ể nh ậ n m ộ t trong ba giá tr ị REQ, REL, và ACQ.
Ba giá tr ị này xác đị nh b ả n ch ấ t c ủ a ba lo ạ i thông đ i ệ p khác nhau
trạm i muốn vào trong đoạn găng
trạm i đã rời khỏi đoạn găng
đượ c từ trạm i thông điệp REQ.
Trang 242.Khi có m ộ t thông đ i ệ p đượ c g ở i đ i b ở i tr ạ m i đồ ng th ờ i nó c ũ ng đượ c ghi trong hàng đợ i c ủ a tr ạ m này.
Gi ả s ử r ằ ng m ỗ i h ằ ng đợ i ban đầ u ch ứ a các thông đ i ệ p :III.2 TRÌNH BÀY GI Ả I THU Ậ T
Mi = (REL, Cinit , i)
Trong đ ó, i, C init là th ờ i đ i ể m kh ở i s ự gi ố ng nhau cho t ấ t c ả các tr ạ m.
Trang 25III.2 GI Ả I THU Ậ T
từng thông điệp.
Thuật toán được mô tả theo sơ đồ sau :
Khởi tạo hàng đợi, mỗi máy tự phát thông điệp
M i = (REL, C init , i)
Trang 26III.2 GI Ả I THU Ậ T
- Để truy c ậ p vào tài nguyên m ộ t tr ạ m nào đ ó s ẽ phát m ộ t thông đ i ệ p
- Để truy c ậ p vào tài nguyên m ộ t tr ạ m nào đ ó s ẽ phát m ộ t thông đ i ệ p
yêu c ầ u M i (T,C i ,i) đế n t ấ t c ả các tr ạ m khác và đư a yêu c ầ u vào hàng
đợ i yêu c ầ u c ủ a tr ạ m này.
- Khi tr ạ m j nh ậ n thông đ i ệ p yêu c ầ u t ừ i, nó s ẽ g ở i ng ượ c l ạ i thông
đ i ệ p (có ch ứ a đồ ng h ồ logic C j ) cho tr ạ m j và đư a yêu c ầ u này vào
trong hàng đợ i yêu c ầ u c ủ a nó.
If (state =muon) and (T, C j ,j) < (T i , C i ,i) then Begin
Send M(T,C j ,j) đế n tr ạ m i INSERT(M i ,hàng đợ i) ‘ đượ c s ắ p x ế p theo H End
Trang 27If (C>C i ) and (V ị trí M ở đầ u c ủ a hàng đợ i) then state=namgiu
+ Khi trạm không thực hiện gì cả
Xoá yêu c ầ u và g ở i thông đ i ệ p gi ả i phóng
Trang 28III.3 CÀI ĐẶT CHƯƠNG TRÌNH
III.3.1 Phân tích bài toán
• Để xây d ự ng m ộ t h ệ th ố ng qu ả n lý bãi đổ xe chúng ta s ử d ụ ng mô hình m ạ ng client/ server
để th ự c hi ệ n vi ệ c truy ề n các thông tin t ừ gi ữ a
để th ự c hi ệ n vi ệ c truy ề n các thông tin t ừ gi ữ a các máy tr ạ m cho máy ch ủ ho ặ c máy ch ủ v ớ i máy ch ủ đả m b ả o d ữ li ệ u dùng chung (bãi xe) cho các thao tác t ạ i các c ổ ng (xe vào/xe ra)
• Để đả m b ả o g ắ n bó d ữ li ệ u trong bài toán
qu ả n lý bãi đổ xe s ử d ụ ng thu ậ t toán Lamport
để cài đặ t.
Trang 29III.3 CÀI ĐẶT CHƯƠNG TRÌNH
III.3.1 Phân tích bài toán
V ớ i các gi ả thi ế t
+M ộ t tr ạ m trong các tr ạ m đề u có th ể liên l ạ c v ớ i các tr ạ m còn l ạ i trong h ệ
+ Không có l ỗ i truy ề n thông tin và không m ấ t thông đ i ệ p
+ Tr ậ t t ự nh ậ n trên tr ạ m j c ủ a dãy các thông
đ i ệ p c ũ ng gi ố ng nh ư chính t ạ i tr ạ m i là gi ố ng v ớ i tr ậ t
t ự c ủ a n ơ i phát
+ S ự c ố hay gián đ o ạ n v ậ t lý t ạ i m ộ t tr ạ m nào
đ ó đượ c phát hi ệ n s ẽ l ậ p t ứ c thông báo đế n t ấ t c ả các
tr ạ m có ý đị nh liên l ạ c v ớ i nó.
Trang 30III.3 CÀI ĐẶT CHƯƠNG TRÌNH
III.3.1 Phân tích bài toán
+ Các thông đ i ệ p ph ả i đượ c x ử lý cùng
m ộ t tr ậ t t ự nh ư nhau trong các ch ươ ng trình cung c ấ p
Trang 31III.3 CÀI ĐẶT CHƯƠNG TRÌNH
Trang 32III.3 CÀI ĐẶT CHƯƠNG TRÌNH
III.3.3 Demo ch ươ ng trình
- Chương trình gồm có các Modul : SERVER1, SERVER2, SERVER3,
CLIENT1, CLIENT2
- Cấu trúc chương trình trong mỗi Server gồm các phần:
+ Phần kết nối đến với Client và các Server.(dưới các thủ tục Connect)+ Phần kết nối đến với Client và các Server.(dưới các thủ tục Connect)+ Gởi và nhận các thông điệp qua các cổng (dưới các thủ tục
Getserver, SendServer, GetClient, SendClient)
+ Tổ chức và Sắp xếp các thông điệp trên mảng (Cấu trúc FIFO) (dưới các thủ tục POP, PUSH, SORT)
+ Trao đổi giữa Server với Server, Server với Client
Cấu trúc chương trình trong mỗi Client gồm các phần:
+ Phần kết nối đến với Client và các Server.(dưới các thủ tục Connect)+ Gởi và nhận các thông điệp qua các cổng (dưới các thủ tục
GetClient, SendClient)
+ Quản lý bãi xe (Xuly)
- Kết quả chạy thử chương trình :
Trang 33CỔNG 1 (CLIENT 1) CỔNG 2 (CLIENT 2)
Trang 34- Vi ệ c s ắ p x ế p các thông đ i ệ p đế n d ự a trên đồ ng h ồ
lôgích cho phép đ ánh d ấ u các s ự ki ệ n và xác đị nh m ộ t
tr ậ t t ự t ổ ng quát ch ặ t ch ẽ Nh ư ng t ạ i đ ây ta không có
tr ậ t t ự t ổ ng quát ch ặ t ch ẽ Nh ư ng t ạ i đ ây ta không có quan h ệ nào gi ữ a các s ự ki ệ n và các giá tr ị c ủ a d ấ u.
- S ự mâu thu ấ n : gi ả thi ế t c ả hai tr ạ m 1 và 2 cùng th ự c hi ệ n trùng nhau R ồ i sau đ ó c ả hai đ i ề u ki ệ n yêu c ầ u đề u n ằ m ở đỉ nh c ủ a hàng đợ i c ủ a m ỗ i chúng nh ư ng trong tr ườ ng h ợ p đồ ng h ồ lôgíc
c ủ a tr ạ m 1 l ạ i nh ỏ h ơ n tr ạ m 2
- Rõ ràng là yêu c ầ u tr ạ m i ph ả i có m ặ t trong hàng đợ i c ủ a tr ạ m j khi
tr ạ m j đ ang vào đ o ạ n g ă ng Đ i ề u này cung c ấ p s ự mâu thu ẫ n yêu c ầ u
c ủ a chính t ạ m j ở t ạ i đỉ nh c ủ a hàng đợ i yêu c ầ u khi m ộ t đồ ng h ồ logic
nh ỏ h ơ n đ ang có m ặ t
Trang 35Email :
dunglq82@yahoo.com.vn dunglq1982@gmail.com