Tải bản đầy đủ (.ppt) (35 trang)

báo cáo môn lập trình mạng nâng cao lập trình bằng các phương pháp phân tán để điều khiển bãi đổ xe

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 (376.64 KB, 35 trang )

BÁO CÁO TIỂU LUẬN
LẬP TRÌNH MẠNG
ĐỀ 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
BÁO CÁO TIỂU LUẬN
LẬP TRÌNH MẠNG
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
Khoá : K16
Giới thiệu đề tài

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

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).
II. SỰ GẮN BÓ DỮ LIỆU TRONG HỆ
QUẢN LÝ BÃI ĐỖ XE
II.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
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.
2. Các tiến trình của cùng một hệ ứng dụng hoạt động theo kiểu hợp lực
để giải quyết các bài toán đặt ra và cho kết quả nhanh chóng nhất. Điều
này cho phép tăng hiệu năng sử dụng thiết bị và hiệu quả hoạt động của
chương trình. Đâ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.
II. SỰ GẮN BÓ DỮ LIỆU TRONG HỆ
QUẢN LÝ BÃI ĐỖ XE
II.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.
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.
II. SỰ GẮN BÓ DỮ LIỆU TRONG HỆ
QUẢN LÝ BÃI ĐỖ XE
II.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
trước”.
Quan hệ này tối thiếu phải thoã mãn được ràng buộc thể hiện
trong bảng sau đây :
C
1
: Nếu A và B là hai sự kiện của cùng một trạm và nếu A được thực hiện
trước B thì theo trật tự cục bộ của trạm ta có A → B.
C
2
: Nếu A là phát thông điệp bởi một trạm nào đó và nếu B là thu của thông
điệp này thì ta có A → B.
II. SỰ GẮN BÓ DỮ LIỆU TRONG HỆ
QUẢN LÝ BÃI ĐỖ XE
II.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.
STT K.H Thuyết minh
1 H
1
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 H
2
Không có lỗi truyền thông tin và không mất thông điệp
3 H
3
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 H
4
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ó.
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.4 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VT
VTVT
VT
VT
BV
BV

BV
BV
BV
BV
Trong đó
BV - người bảo vệ có nhiệm vụ
phân phối chổ cho các xe ô tô.
VT - Vị trí cho từng xe ô tô cụ
thể.
Trong bài toán
- Bãi đậu xe chính là tài
nguyên
- 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
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.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
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.
II. SỰ GẮN BÓ DỮ LIỆU TRONG

HỆ QUẢN LÝ BÃI ĐỖ XE
II.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
trạng thái với độ trễ nhất định và điều đó dẫn đến tình huống
thứ 2. Đó là tình huống có nhiều trung tâm ra quyết định như
trong hình vẽ
Trên thực tế một người bảo vệ nào đó tin rằng không
còn chỗ trống nữa, trong khi một người bảo vệ khác lại vừa mới
cho ra khỏi bãi một số xe mà anh ta chưa kịp báo cho các người
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
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.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
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
sau :
STT Ký hiệu Thông tin phát đi
1 M1 Thêm 20 chỗ trống
2 M2 Đã có 10 chỗ bị chiếm
3 M3 Dành 10% chỗ trống để quét dọn sân bãi
Bảo vệ 1
Bảo vệ 2 Bảo vệ 3
t
M

1
M
1
M
1
M
2
M
2
M
2
M
3
M
3
M
3
Hình II.3 : Thời hạn truyền và nhận thông điệp có trật tự
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
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
t
M
1
M
1
M

1
M
2
M
2
M
2
M
3
M
3
M
3
Hình II.3 : Thời hạn truyền và nhận thông điệp có trật tự
Bảo vệ 4
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE
Trật
tự
xử lý
Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
Thông
điệp
Giá
Trị
Thông
điệp
Giá
Trị

Thông
điệp
Giá
Trị
Thông
điệp
Giá
Trị
100 100 100 100
1 M1 120 M1 120 M1 120 M1 120
2 M2 110 M2 110 M2 110 M2 110
3 M3
99
M3
99
M3
99
M3
99
Bảng II.1 : Sự gắn bó giữa bốn người bảo vệ
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.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
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
sau :
STT Ký hiệu Thông tin phát đi
1 M1 Thêm 20 chỗ trống

2 M2 Đã có 10 chỗ bị chiếm
3 M3 Dành 10% chỗ trống để quét dọn sân bãi
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE
Tình huống thứ 4 :
Bảo vệ 1
Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
t
M
1
M
3
M
1
M
2
M
3
M
3
M
1
Hình II.3 : Thời hạn truyền và nhận thông điệp
M
2
M
2
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE

II.5 BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE
Bảng II.1 : Sự không gắn bó giữa bốn người bảo vệ
Trật
tự
xử

Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
Thôn
g
điệp
Giá
Trị
Thông
điệp
Giá
Trị
Thôn
g
điệp
Giá
Trị
Thôn
g
điệp
Giá
Trị
100 100 100 100
1 M1 120 M2 90 M3 90 M1 120
2 M3 108 M3 81 M1 110 M2 110
3 M2

118
M1
101
M2
100
M3
99
II. SỰ GẮN BÓ DỮ LIỆU TRONG
HỆ QUẢN LÝ BÃI ĐỖ XE
II.6 KẾT LUẬN
Trong bài toán hệ quản lý đổ xe việc không gắn bó dữ
liệu luôn luôn xảy ra ở các trạm nếu không có một cơ
chế để thực hiện đồng bộ hoá các tiến trình (cho
phép các ô tô vào bãi đậu theo một trình tự). Khi thực
hiện phân tán chức năng cung cấp trên nhiều trạm khác
nhau (các bảo vệ) sự hoạt động gắn bó với nhau giữa
các chương trình cung cấp là rất cần thiết để đảm bảo
cho hoạt động cung cấp hoàn toàn chính xác. Trên cơ
sở phân tích bài toán ở trên chúng ta nhận thấy vấn đề
không gắn bó dữ liệu trên các hệ phân tán cần phải có
cách giải quyết thích hợp. Phương pháp giải quyết vấn
đề này được nêu lên ở phần tiếp theo.
III. SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN
DỰA TRÊN ĐỒNG HỒ LOGIC
STT Quy tắc
1 Các bộ cung cấp bắt buộc phải thực hiện cùng
một giải thuật
2 Các bộ cung cấp đều nhận tất cả các thông điệp
phát đi từ các tiến trình
3 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
III. 1 CƠ SỞ LÝ THUYẾT
III.1.2 Các quy tắc
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Queue: 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
FIFO (First In First Out)
III. 1 CƠ SỞ LÝ THUYẾT
III.1.2 HÀNG ĐỢI
Loại bỏ
Thêm vào
Đầu Cuối
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Giả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á trị đồng hồ lo gích để sắp xếp các thông điệp đến.
Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là C
s
. Đó
chính là đồng hồ lô gích tăng lên giữa hai sự kiện kế tiếp. Trạm e phát
thông điệp ghi dấu E của mình dựa trên giá trị hiện hành của He. Khi
nhận được thông điệp, trạm r cập nhật đồng hồ C
r
riêng của mình bằng
giải thuật sau đây :
III.2 GIẢI THUẬT

Nếu C
r,
thì
C
r
:= C
e
+1
Chấm dứt nếu
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Một sự kiện a sinh ra trong trạm i và được đánh dấu bởi
đồng hồ cục bộ gọi là C
i
(a). Nếu a và b đều là hai sự kiện
trên hai trạm i và j, ta luôn luôn có quan hệ xác định như
sau :
III.2 GIẢI THUẬT
a → b ⇔ C
i
(a) < C
i
(b)
Đó là trật tự không chặt chẽ do vì hai sự kiện trên hai trạm khác nhau có
thể đến cùng một thời điểm giống nhau.
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Ta có thể mở rộng quan hệ → thành quan hệ trật tự chặt
chẽ ⇒ bằng cách kết hợp một số khác cố định cho mỗi
trạm và bằng cách đánh dấu thời gian cho mỗi sự kiện a

của trạm i bằng cặp (C
i
(a),i).
Theo định nghĩa, ta có :
a ⇒ b ⇒ (C
i
(a) < C
i
(b)) hay (C
i
(a) = C
i
(b) và i<j)
III.2 GIẢI THUẬT
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
Giả 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à
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
III.2. TRÌNH BÀY GIẢI THUẬT
STT Thông điệp Giải thích
1 REQ Thông điệp REQ được phát đi cho tất cả các trạm, khi
trạm i muốn vào trong đoạn găng
2 REL Thông điệp REL được phát đi cho tất cả các trạm, khi
trạm i đã rời khỏi đoạn găng
3 ACQ Thông điệp ACQ được gửi bởi trạm i cho trạm j đã nhận

được từ trạm i thông điệp REQ.
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
2.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 :
M
i
= (REL, C
init
, i)
Trong đó, i, C
init
là thời điểm khởi sự giống nhau cho tất cả các trạm.
III.2. TRÌNH BÀY GIẢI THUẬT
III. LẬP TRÌNH BẰNG PHƯƠNG PHÁP
PHÂN TÁN ĐỂ ĐIỀU KHIỂN BÃI ĐỔ XE
III.2. GIẢI THUẬT
Tiêu chí để sắp xếp dựa vào C
i

Mỗi trạm quản lý một hàng đợi các thông điệp được
sắp xếp hoàn toàn bởi quan hệ ⇒ theo cặp <thời gian, số>
của 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)

×