Tải bản đầy đủ (.pdf) (39 trang)

Tiểu luận môn Lập trình mạngLập tì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 (587.63 KB, 39 trang )

LỜI MỞ ĐẦU
Ngày nay Internet cùng với các ứng dụng của nó đã đem lại cho xã hội một cuộc
sống tiện nghi và đầy đủ hơn về thông tin. Mạng Internet đã giúp cho con người bước
vào một kỷ nguyên công nghệ thông tin và tri thức. Để có được thành tựu đó thì lĩnh
vực phân tán trong hệ tin học đã đóng một vai trò hết sức quan trọng.
Mục đích của lập trình mạng phân tán là tận dụng các khả năng tính toán và khai
thác dữ liệu của các hệ thống máy tính ở xa để thực hiện những tính toán nhanh hơn
trên cơ sở sử dụng nhiều bộ xử lý, nhiều bộ nhớ đồng thời hoặc nhiều dữ liệu quý giá
được phân tán khắp nơi. Trên nền hệ thống mạng máy tính được kết nối rộng rãi hiện
nay, việc xử lý phân tán sẽ giải quyết được những bài toán lớn hơn, phức tạp hơn và đa
dạng hơn trong thực tế.
Trong phạm vi của tiểu luận này tôi đề cập đến hai phần:
Phần 1 : Phần lý thuyết:
 Khái quát về hệ tin học phân tán.
 Bài toán về bãi đỗ xe ô tô và vấn đề đồng bộ giữa các tiến trình.
 Lập trình mạng phân tán và RMI
Phần 2 : Phần bài tập:
+
Viết chương trình bài toán bãi đỗ xe để mô phỏng quá trình làm việc
của hệ phân tán.
Tôi xin chân thành cảm ơn: PGS.TS. Lê Văn Sơn và các bạn đồng môn đã
giúp tôi hoàn thành tiểu luận này.














LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 1
HVTH: Lê Quốc Dũng -KHMT K16
CHƯƠNG 1 : CƠ SỞ LÝ THUYẾT
Trong chương này, các vấn đề cơ bản sau đây được trình bày :
• Các khái niệm ban đầu như khái niệm hệ phân tán và các đặc điểm chủ
yếu của hệ.
• Tiến trình nhu cầu tài nguyên trong các hệ phân tán.
• Tầm quan trọng của việc đồng bộ hóa các tiến trình trong hệ phân tán.
• Vấn đề tương thích giữa thuật toán điều khiển bải để xe với chiến lược
cung cấp tài nguyên dùng chung trong hệ phân tán.
• Tổng quan về trật tự từng phần và khái niệm ban đầu về ấn phong di
chuyển trên vòng tròn ảo.
Sau đây, những vấn đề vừa nêu sẽ lần lượt được trình bày.
I. CÁC KHÁI NIỆM CƠ BẢN
1. Hệ phân tán
Hệ tin học phân tán là hệ thống đa dạng, phức tạp về mặt cấu trúc, đang được
các chuyên gia Công nghệ Thông tin quan tâm nghiên cứu với hàng loạt các công trình
được công bố.
Cho đến nay, xét trên các phương diện khác nhau, người ta có thể có các định
nghĩa khác nhau về hệ tin học phân tán, nhưng phổ biến hơn cả là định nghĩa được
phát biểu như sau :
Hệ tin học phân tán hay nói ngắn gọn là hệ phân tán (Distributed System) là hệ
thống xử lý thông tin bao gồm nhiều bộ xử lý (hoặc bộ vi xử lý) phân bố ở những vị trí

địa lý khác nhau, được liên kết với nhau thông qua phương tiện truyền thông (viễn
thông) dưới quản lý thống nhất của một hệ thống điều khiển.
Qua đó ta có thể xem hệ phân tán như là một tập hợp các bộ xử lý (hoặc bộ vi
xử lý) với bộ nhớ và đồng hồ nhịp độc lập. Điều này đồng nghĩa với việc các bộ xử lý
không sử dụng chung bộ nhớ và đồng hồ. Như vậy, mỗi một hệ xử lý thông tin thành
phần của hệ phân tán bao gồm một hay nhiều bộ xử lý và bộ nhớ cục bộ. Trong hệ
phân tán, hệ xử lý thông tin thành phần phải được thiết kế sao cho về cấu trúc, số
lượng và dung lượng có thể cho phép thực hiện một cách trọn vẹn các chức năng mà
nó phải đảm nhận.
Hệ tin học phân tán thực hiện hàng loạt các chức năng phức tạp, nhưng cơ bản
nhất là đảm bảo cung cấp cho người sử dụng (NSD) khả năng truy cập có kết quả đến
các loại tài nguyên vốn có và rất đa đạng của hệ thống như là những tài nguyên dùng
chung.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 2
HVTH: Lê Quốc Dũng -KHMT K16
Việc định nghĩa các tài nguyên của hệ như là tài nguyên dùng chung sẽ mang
đến cho NSD những tiện ích và đem lại cho hệ những hiệu năng tốt trong khai thác
ứng dụng.
Những ưu điểm căn bản của việc sử dụng chung tài nguyên được phản ảnh
trong bảng I.1 sau đây :
TT Ưu điểm so với hệ tập trung
1 Tăng tốc độ bình quân trong tính toán - xử lý
2 Cải thiện tình trạng sẵn sàng của các loại tài nguyên dùng chung
3 Tăng độ an toàn và an ninh cho dữ liệu
4 Cho phép đa dạng hoá các loại hình dịch vụ tin học nói chung
5 Đảm bảo tính vẹn toàn của thông tin do giải quyết được vấn đề gắn bó dữ
liệu (Coherence).

Bảng I.1 Các ưu điểm căn bản của việc sử dụng chung tài nguyên
2 Các đặc điểm của hệ phân tán
Các đặc điểm và yêu cầu được liệt kê dưới đây (bảng I.2 và I.3) giúp ta nhận
biết những đặc trưng cơ bản và phân biệt hệ tin học phân tán với các hệ tin học khác,
đồng thời cung cấp thông tin cơ bản trong quá trình phân tích, thiết kế, xây dựng và
đánh giá một hệ thống nào đó.

TT Các yêu cầu cơ bản cần nghiên cứu giải quyết
1 Lập trình và thực hiện cho hệ thống đa truy cập, ngẫu nhiên, số
lượng lớn
2 Định danh định danh cho các đối tượng qua hệ thống viễn thông
3 Cấu trúc lập trình được cho các truy vấn đa chiều và đáp ứng lại
truy vấn
4 Trình tự và đồng bộ các tiến trình hoạt động
5 Gắn bó thông tin (Coherence) và vấn đề nhiều bản sao
6 Cung cấp từ xa các tài nguyên dùng chung (tài nguyên găng)
7 Vấn đề xử lý - tính toán đồng thời trong hệ
8 Vấn đề đa Server và hệ điều khiển - giám sát của người quản trị hệ
thống
9 Vấn đề tin cậy và hiệu năng hệ thống
Bảng I.2 Các yêu cầu cơ bản của hệ phân tán


LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 3
HVTH: Lê Quốc Dũng -KHMT K16

TT


Đặc điểm
1 Thời gian truyền thông tin trong hệ không giống nhau
2 Các thông điệp có thể bị mất trong quá trình truyền thông tin
3 Các thông điệp có thể được truyền kép
4 Việc phát và nhận thông điệp đối với toàn hệ là ngẩu nhiên
5 Việc cập nhật thông tin (chương trình và dữ liệu) dẫn đến hệ rơi vào
trạng thái thiếu gắn bó
6 Hệ có thể rơi vào trạng thái bế tắc, tắt nghẽn đường truyền, chờ vô hạn
và thiếu thốn tài nguyên
7 Một (hay nhiều) máy tính cấu thành của hệ phân tán có thể bị sự cố
Bảng I.3 Đặc điểm cơ bản của hệ phân tán
II. TIẾN TRÌNH TRONG HỆ PHÂN TÁN
Tiến trình (Process) là khái niệm khá quen thuộc và là đối tượng nghiên cứu
của hệ điều hành. Trong hệ phân tán ta chỉ xem xét và bổ sung đặc điểm hoạt động và
truy cập của các tiến trình có nhu cầu cung cấp tài nguyên dùng chung.
Các đặc điểm đó là :
1. Các tiến trình được hình thành và điều khiển bởi hệ điều khiển duy nhất
có nghĩa là nếu trong các thành phần tham gia hệ phân tán như mạng máy tính,
các hệ tập trung, có thể có các hệ điều hành riêng với các tiến trình riêng của
mình, thì chúng cũng bị phái sinh lại trong nội dung của tiến trình mới, phân
tán.
2. Tiến trình là chương trình hay đoạn chương trình đang hoạt động trong
hệ phân tán là đối tượng chủ yếu có nhu cầu tài nguyên phần cứng hay phần
mềm để thực hiện các lệnh của mình. Tiến trình cần tài nguyên để phát triển.
Về nguyên tắc, tất cả các tiến trình và tài nguyên được cung cấp là các đối
tượng ở xa.
3. Các nguyên lý của hệ tập trung có thể nghiên cứu và áp dụng cho các
tiến trình phân tán như dự phòng và chống bế tắc, chống xung đột,
4. Khi tiến trình được cung cấp tài nguyên có thể nó thực hiện ngay, nếu nó

là đối tượng được gửi đến từ trước trên bộ xử lý (máy) cục bộ hoặc phải gửi đối
tượng là tiến trình qua hệ thống đường truyền.
5. Việc cung cấp tài nguyên cho các tiến trình có thể thực hiện theo 2 cách
trong hệ phân tán :
• Thông qua hệ thống cung cấp chung cho toàn hệ như
Controllor/Allocator.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 4
HVTH: Lê Quốc Dũng -KHMT K16
• Thông qua Allocator cục bộ trên Server/Workstation bằng cách tham
chiếu vào bảng trạng thái, ảnh của thông tin toàn cục.
III. TẦM QUAN TRỌNG CỦA VIỆC ĐỒNG BỘ HOÁ TIẾN TRÌNH
TRONG HỆ PHÂN TÁN
Đồng bộ hoá tiến trình được hiểu như là quá trình điều khiển tạo nên sự ăn
khớp với nhau giữa tất cả các tiến trình khác nhau giúp cho hệ phân tán hoạt động
nhịp nhàng, tin cậy và phòng tránh các sự cố kỹ thuật.
Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh
và hiệu quả để có thể đồng bộ hóa các tiến trình. Tính cấp thiết về mặt nguyên lý và kỹ
thuật của vấn đề này thể hiện ở hai nguyên do cơ bản sau đây :
1. Các tiến trình kể cả 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 rất hạn chế hay truy cập vào thông
tin dùng chung cùng một lúc gây nên hiện tượng truy cập tương tranh.
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 các tài nguyên dùng chung.
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 tóan đặ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.

Hợp lực là nguyên nhân chính của sự tác động tương hỗ được lập trình giữa
các tiến trình nhằm cho phép chúng tham gia vào các hành động chung.
Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi thông tin
qua lại với nhau. Trong các hệ thống tập trung, điều đó được thực hiện nhờ thuật toán
loại trừ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung. Trong
hệ tin học phân tán, các thông tin cần trao đổi thông qua các thông điệp bằng các kênh
viễn thông
IV. BÀI TOÁN ĐỒNG BỘ HOÁ TIẾN TRÌNH NHU CẦU TÀI NGUYÊN
DÙNG CHUNG
. Trong hàng loạt các tài liệu đã nêu lên nhiều mặt khác nhau của bài toán điểu
khiển bãi để xe. Trong phạm vi của tiểu luận này, ta trình bày vấn đề dưới giác độ
đồng bộ hóa đã được xác định trong phần I.3 ở trên. Bãi để xe ô tô được mô tả trong
hình vẽ I.1. Bãi này có m chổ để xe và có thể phân n (n<m, nguyên, dương) khu vực
ứng với n cửa vào/ra ô tô. Tại mỗi cửa vào/ra, ta có người bảo vệ làm nhiệm vụ cung
cấp phiếu cho ô tô vào chổ còn trống và thu hồi lại phiếu khi có một ô tô ra, thông báo
cho các người bảo vệ khác biết để cùng hành động cho chính xác trong việc phân phối
chổ của bãi.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 5
HVTH: Lê Quốc Dũng -KHMT K16
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

Hoạt động của một bãi để xe theo kiểu thủ công bao gồm các thao tác sau đây :
Các hành vi chủ yếu để cấp một chổ còn trống
1. Khẳng định phiếu phát ra phải là chổ còn trống
2. Gửi thông tin về vị trí cấp phát các người bảo vệ khác trong bãi
3. Chờ toàn bộ các người bảo vệ khác khẳng định nhận
4. Gạch chéo vào ô vừa phát phiếu (tồn tại một ma trận chổ)
5. Phát phiếu cho lái xe ô tô và mở cổng vào-ra
6. Gửi thông tin cho toàn bộ các người bảo vệ khác trong bãi.
Các hành vi cơ bản thu hồi chổ bị bận trước đó
1. Thu hồi phiếu cấp phát
2. Gửi đi các người bảo vệ khác trong bãi

3. Chờ khẳng định nhận của tất cả những người bảo vệ khác trong bãi
4. Giải phóng ô phiếu, đưa ô về trạng thái tự do
Xử lý lúc rối loạn như mất điều khiển
1. Khởi động lại nạp lại chính xác số chổ còn trống
2. Trình tự khởi động các người bảo vệ
3. Xác định tính tuần tự
Tình huống sự cố
Không nhận được khẳng định từ người nhận
Hình I.3 : Mô phỏng bãi đậu xe ôtô

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 6
HVTH: Lê Quốc Dũng -KHMT K16
Sự tương quan giữa các đối tượng trong bãi để xe và các đối tượng trong hệ
phân tán có thể mô tả trong bảng I.4 dưới đây.
TT Bãi để xe Hệ phân tán Thuyết minh
1 Ô tô Tiến trình Ở đây, tiến trình được xem như
là đồng nhất (cùng 1 loại).
Trong hệ phân tán, các tiến
trình đa dạng
2 Người bảo vệ Phần mềm
điều khiển
Ký hiệu là ĐK, hoàn toàn
giống nhau trên
Server/Workstation
3 Cổng vào/ra Server/Workstation

Mỗi cổng đặt 1 máy (chưa tính

đến máy dự phòng) và nối
chúng với nhau thông qua hệ
thống đường truyền
4 Chổ để xe Tài nguyên Tài nguyên đồng nhất. Trong
thực tế của hệ phân tán, tài
nguyên có nhiều loại và có các
đặc điểm rất khác xa nhau
5 Ma trận số vị
trí để xe ô tô
Hệ cơ sở dữ liệu
phân tán
Đòi hỏi phải hoàn toàn giống
nhau ở mọi thời điểm truy cập
(Gắn bó dữ liệu)
Bảng I.4 Sự tương quan giữa các đối tượng bãi để xe và hệ phân tán
Bài toán bãi để xe được phát biểu theo tình huống như sau :
Tình huống thứ 1
Ta giả sử rằng bãi để xe ô tô là bãi có số lượng ô lớn và có duy nhất một cổng
vào dưới sự kiểm soát của một (NBV). 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
cho các xe khác tiếp tụ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 để xe do mình
quản lý.
Tình huống thứ 2
Nếu ta có bãi để xe với nhiều cổng vào và tại mỗi cổng vào có một NBV, thì
mỗi người NBV 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 có nhiều trung tâm ra quyết định như trong hình vẽ I.1 ở trên.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe


GVHD: PGS.TS. Lê Văn Sơn
Trang 7
HVTH: Lê Quốc Dũng -KHMT K16
Trong thực tế, một NBV nào đó tin rằng không còn ô trống nữa trong khi một
NBV khác lại vừa mới cho ra khỏi bãi một số xe ô tô mà anh ta chưa kịp báo cho các
NBV 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.
Như vậy, các người bảo vệ phải hợp lực với nhau để phân phối chính xác các
chỗ trong bãi, đặc biệt là số lượng ô còn trống càng ít, thì vai trò của sự hợp lực càng
quan trọng.
V. GẮN BÓ DỮ LIỆU VÀ TẦM QUAN TRỌNG CỦA NÓ VỚI VẤN ĐỀ
CUNG CẤP TÀI NGUYÊN DÙNG CHUNG TRONG HỆ PHÂN TÁN
Vì lý do ổn định và hiệu quả của hệ trong quá trình cung cấp tài nguyên dùng
chung cho các tiến trình mà ta phải phân tán chức năng cung cấp trên nhiều
Server/Workstation khác nhau. 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 để bảo đảm cho hoạt động cung cấp được hoàn toàn chính
xác.
Tiếp tục nghiên cứu khía cạnh đồng bộ và ý nghĩa của việc gắn bó dữ liệu phân
tán của bài toán điều khiển bải đỗ xe dưới đây, ta có thể rút ra một số kết luận quan
trọng làm cơ sở cho việc giải quyết thích hợp các vấn đề đặt ra của tiểu luận văn này.
Trong các phần trước, ta đã xác định một người bảo vệ có vai trò như là chương
trình điều khiển và cung cấp chổ của bãi để xe ô tô. Ở đây, chổ để xe được xem như là
tài nguyên dùng chung của hệ. Giả sử rằng ở thời diể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 của
hệ lúc này là gắn bó. Ba trong số họ phát đi các thông tin như sau :
TT Thông điệp Thông tin phát đi trong thông điệp
1 T1 Thêm 20 chổ trống
2 T2 Đã có 10 chổ bị chiếm
3 T3 Dành 10% chổ trống để quét dọn sân bãi.
Bảng I.5 Nội dung của các thông điệp phát đi

Nếu ta không có ràng buộc nào đối với trình tự xử lý các thông điệp nhận được
của các người bảo vệ, thì các người bảo vệ này sẽ có số lượng chổ trống khác nhau. Để
bảo đảm các bản cập nhật giống nhau, thì trình tự cập nhật nhất thiết phải giống nhau
trên tất cả các Server/Workstation.
Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4 Trật
tự
xử lý

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 T1 120 T1 120 T3 90 T2 90

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 8
HVTH: Lê Quốc Dũng -KHMT K16
2 T3 108 T2 110 T1 110 T3 81
3 T2 98 T3 99 T2 100 T1 101
Bảng I.6 Sự không gắn bó giữa các người bảo vệ
Tại đây, để dễ dàng hình dung vấn đề, ta có thể xem người bảo vệ như là
chương trình cung cấp tài nguyên nêu trên, còn chổ trong bãi là tài nguyên và các ô tô
là các tiến trình của hệ. Dễ dàng nhận thấy rằng các vị trí (chỗ để xe) và các xe là
những thực thể đồng nhất. Vì vậy, tiến trình và tài nguyên được xét trong ví dụ này là
tiến trình và tài nguyên đồng nhất.
Để tìm giải pháp cho bài toán điều khiển bãi để xe, thực chất, là ta phải giải
quyết vấn đề đồng bộ hóa giữa các thực thể tạo ra các sự kiện trong hệ phân tán. Đó
chính là các tiến trình tại các Server/Workstation yêu cầu tài nguyên để phát triển và
tạo nên các thu, phát và là nguyên nhân chính của việc chuyển từ trạng thái này sang
trạng thái khác một cách ngẩu nhiên.
Liên quan đến vấn đề đồng bộ hoá là vấn đề gắn bó dữ liệu và tầm quan trọng
của nó với bài toán điều khiển phân tán, vấn đề trật tự hóa các sự kiện và vai trò của
giải thuật Lamport với giá trị đồng hồ lô gíc mà ta sẽ lần lượt trình bày trong các phần
sau này được đánh giá như là vấn đề ưu tiên hàng đầu cần phải xét đến.
VI.TỔNG QUAN VỀ CHIẾN LƯỢC CUNG CẤP TRONG HỆ PHÂN TÁN
Một sự hoạt động gắn bó của các chương trình cung cấp phân tán quản lý trên
cùng một tập hợp các tài nguyên chỉ đặt được nêu tuân thủ các quy tắc sau, ở đây các
thông điệp được hiểu là các yêu cầu hay khuyến nghị giải phỏng tài nguyên.
TT
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.
Bảng I.7 Các quy tắc tổng quát của việc đồng bộ hoá các tiến trình
Quy tắc sau cùng nhấn mạnh đến sự thiết yếu phải có một trật tự duy nhất trên
tập hợp các thông điệp của hệ. Trật tự này có thể được thực hiện thông qua việc hợp
lực giữa các tiến trình cung cấp mà ta sẽ gặp trong các chương sau hay giữa các tiến
trình phát thông điệp. Trong các phần sau đây của chương này, ta sẽ kiểm tra hai chiến
lược hợp lực giữa các tiến trình phát nhằm phân phối cho mỗi thông điệp một dấu ( có
tài liệu còn gọi là dấu hiệu ) nhằm dựa vào đó, ta có thể xác lập một trật tự hoàn toàn.
Các chiến lược phản ứng được với các sự cố diễn ra trên một Server/Workstation, nếu
giả sử H
4
của được nghiên cứu và triển khai.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 9
HVTH: Lê Quốc Dũng -KHMT K16
VII. SẮP XẾP BẰNG BỘ TUẦN TỰ
1 Khái niệm bộ tuần tự
Khái niệm bộ tuần tự được giới thiệu nhằm mục đích đánh số thứ tự và sắp xếp
các sự kiện của hệ và tránh được các nhược điểm mà các phương pháp nêu trên đã mắc
phải.
Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi yêu cầu một số (hay còn gọi
là một tíc kê) nhằm xác lập trật tự.
Giá trị số mà nó cung cấp phải là các giá trị nguyên, không âm. Để cho hai yêu
cầu kế tiếp nhau, thì hai số liên tục nhau được cung cấp. Giá trị 0 được cung cấp cho
yêu cầu đầu tiên.
Một tiến trình muốn nhận giá trị từ bộ tuần tự S, thì nó phải gọi thủ tục (hoặc

hàm) có tên là phieu(S). Mỗi một giá trị chỉ phục vụ cho một và chỉ một sự kiện mà
thôi.
Giả sử rằng tất cả các sự kiện được đánh số bởi một bộ tuần tự duy nhất S. Khi
một tiến trình cung cấp cho sự kiện i một số thông qua phieu(S), ta có thể khẵng định
như sau (không có sự cố) :
1. rằng các sự kiện t bao hàm các giá trị nhỏ hơn t đã được diễn ra.
2. rằng số thứ tự sự kiện kề liền sau t phải bằng t+1.
Việc triển khai một bộ tuần tự cần phải mang hai đặc tính sau đây :
TT Ký hiệu Đặc tính
1 P1 Nếu a và b là hai sự kiện thực hiện trên cùng hàm
phieu(S), thì ta có a

b hay b

a.

2

P2
Nếu a thực hiện phép t = phieu(S), thì giá trị gán cho t là
số lượng các phép phieu(S) đã được thực hiện trước a.
Bảng I.8 Đặc tính của bộ tuần tự
Đặc tính P1 thể hiện việc loại trừ tương hổ trên các phép toán phieu(S), còn P2
thể hiện tính liên tục trong khi đánh số có nghĩa là không để lại khoản trống khi đánh
số.
Việc triển khai bộ tuần tự trong các hệ thống một bộ xử lý hay nhiều bộ xử lý
với bộ nhớ chung được tiến hành bằng cách triển khai cơ chế sơ đẳng loại trừ tương hổ
là đủ. Trong các hệ thống phân tán, việc vận dụng nó không hề giản đơn bởi vì có sự
hiện diện của các kênh viễn thông sử dụng theo kiểu loại trừ tương hổ và đặc biệt tồn
tại vòng tròn duy nhất hay một kênh lan truyền duy nhất.

Việc vận dụng tương đối tổng quát bộ tuần tự S trong hệ phân tán là sự chuyển
động giữa các trạm một đối tượng duy nhất gọi là ấn phong chứa giá trị hiện hành của
bộ tuần tự. Khi một trạm có ấn phong, nó có thể thực hiện hàm phieu(S).
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 10
HVTH: Lê Quốc Dũng -KHMT K16
Trước hết, chúng ta nghiên cứu hai phương pháp cho phép di chuyển ấn phong,
sau đó là giải thuật triển khai phép toán phieu. Cuối cùng, ta quan tâm hai vấn đề là sử
dụng đường lan truyền và việc sao chép bộ tuần tự trên mỗi trạm.
2. Bộ tuần tự di chuyển
2.1 Vòng tròn ảo
Để triển khai một ấn phong có kết quả, đầu tiên ta cần phải xác định hành trình
của nó trong mạng máy tính như thế nào. Phương pháp đơn giản nhất là lắp đặt các
trạm nằm trên một vòng theo một chiều xác định. Mỗi trạm chỉ được liên hệ với hai
trạm gần nhất.
Ta hãy xem xét một mạng được hoàn toàn nối với nhau có nghĩa là một tập hợp
bao gồm N trạm, trong đó một trạm có thể liên lạc với các trạm khác một cách dễ
dàng. Một số duy nhất bao gồm từ 0 đến N-1 được phân phối một lần cho toàn bộ trên
từng trạm. Trạm i đều có trạm hàng xóm phải hay còn gọi trạm kế tiếp sau mà số của
trạm đó là suc[i] và hàng xóm bên trái hay còn gọi là trạm kề liền trước mà số của nó
là pred[i] . Sự mô tả này cho ta hình dung một vòng tròn ảo. Khi hoạt động bình
thường, N trạm được thể hiện đầy đủ trên vòng tròn, lúc này ta có :



Các thuật toán được giới thiệu sau đây dựa trên nguyên tắc như sau. Ấn phong
được cụ thể hóa trên một vài cấu hình của các biến trạng thái và quay trên vòng tròn ảo
luôn luôn theo một chiều xác định. Để vòng tròn có thể hoạt động tốt, thì cần thiết phải

xây dựng lại vòng tròn khi có một trạm nào đó bị sự cố. Phép xử lý này gọi là cấu hình
lại bao gồm cả việc cập nhật các giá trị của suc[i] và pred[i] của các hàng xóm của
trạm bị sự cố. Việc cấu hình lại mạng không khó khăn lắm, nếu trạm bị sự cố không
phá huỷ hoàn toàn liên kết lô gíc. Khi một trạm bị sự cố có thể hoạt động trở lại, thì
phép toán chèn cho phép nó tham gia vào mạng. Tốt nhất là hai phép toán cấu hình lại
và chèn được thể hiện ở tầng giao vận.
2.2. Ấn phong bằng các biến trạng thái
Giải thuật đầu tiên là một giải pháp thích nghi của giải thuật Dijkstra.
2.2.1. Hoạt động không sự cố
Một số nguyên K (K >1) được chọn cho tập hợp của hệ. Trên trạm i (i chiếm
giá trị từ 0 đến N-1), một tiến trình Pi được giao nhiệm vụ di chuyển ấn phong tuân thủ
các quy tắc sau đây :
1. Mỗi tiến trình Pi đều có biến trạng thái S[i] có thể nhận các giá trị nguyên từ
0 đến K-1.
suc[i] = i + 1 modulo N
pred[i] = i-1 modulo N
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 11
HVTH: Lê Quốc Dũng -KHMT K16
2. Mỗi biến S[i] đều được cập nhật bởi Pi và có thể đọc bởi trạm kế tiếp sau
của Pi.
Thuật toán di chuyển trạng thái ấn phong được thể hiện như sau :
a. Tiến trình Pi có ấn phong chỉ khi :
S[i] ≠ S[i - 1] , cho i ≠ 0
S[0] - S[N - 1] , cho i = 0
b. Khi tiến trình Pi có ấn phong, thì nó phải bỏ ấn phong sau một
khoản thời gian xác định và phải thay đổi trạng thái :
S[i] := S[i-1], nếu i ≠ 0

S[0] := S[0] + 1 mod K, nếu i = 0
Đó là trường hợp duy nhất mà tiến trình có thể cập nhật các biến trạng thái của
mình.
Nếu tất cả các tiến trình loại Pi đều sử dụng thuật toán này, thì quyền bình đẳng
giữa các trạm được bảo đảm vì mỗi tiến trình đều được nhận ấn phong khi đến phiên
mình.
Ta lấy ví dụ với các giá trị N =3 và K = 2. Nếu trạng thái ban đầu của ba biến
trạng thái là 000, hệ thống chuyển qua các trạng thái sau đây. Ta ký hiệu dấu * là biến
của tiến trình có ấn phong.



Hình I.2 Trạng thái hệ thống

Hình vẽ I-3 chỉ ra sự phát triển của hệ trong trường hợp này.
Chú ý :
Vì ấn phong là duy nhất cho nên ta cần áp dụng loại trừ tương hổ trong trường
hợp này. Một trạm nhận được ấn phong nhưng lại không vào đoạn găng thì phải lập
tức giải phóng nó.

*

*

*

*

*


*


0

0

0

-

1

0

0

-

1

1

0

-

1

1


1

-

0

1

1

-

0

0

1


0 1 2
i
0
1
S[i]
(a)
0 1 2
i
0
1

S[i]
(b)
0 1 2
i
0
1
S[i]
(c)
0 1 2
i
0
1
S[i]
(d)

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 12
HVTH: Lê Quốc Dũng -KHMT K16
2.2.2. Đưa trạm bị sự cố vào lại
Để đưa một trạm bị sự cố đã khắc phục xong vào mạng, ta cần phải định lại cấu
hình vòng tròn ảo. Sau đó, tiến trình cần phải khởi động lại S[i]. Miễn là trạm j
=suc[i] không cho phép đọc biến S[j] của mình trong thời gian vào đoạn găng. Chỉ
cần thực hiện như sau là đủ :

Nếu j < i thì S[i] := S[j] - 1 mod K
nếu không S[i] := S[j]
Kết thúc nếu
2.3. Jeton tuần hoàn

Trong thuật toán thứ hai thuộc Le Lann, ấn phong được cụ thể hóa bằng một
thông điệp đặc biệt và gọi là Jeton tuần hoàn trên vòng tròn. Như thế, việc sự cố trên
trạm có thể dẫn đến mất Jeton. Các biến trạng thái được duy trì trên mỗi trạm cho phép
tái sinh jeton trong trường hợp bị mất.
Thuật toán triển khai ý tưởng này là :
1. Jeton mang giá trị là v tương tự với cao độ của mặt trước trong thuật toán
của. Mỗi một trạm j có một biến trạng thái S[j]. Trước khi phát lại jeton vào mạng, các
tác động như sau được thực hiện :

S[j] := v cho j ≠ 0
v := v +1 mod K ; S[j] := v cho j = 0

2. Mỗi một lần chuyển jeton trên trạm j , một đồng hồ bảo vệ được trang bị.
Nếu nó được phát động trước khi jeton đến, thì j tham chiếu đến biến trạng thái S[i]
của trạm kề liền trước i = pred(i) trên vòng tròn.
Nếu một trong hai điều kiện sau đây được kiểm tra,

j > i và S[j] ( S[i]
hay
j < i và S[j] = S[i]

thì jeton được coi như đã bị mất. Trong trường hợp đó, trạm j cần phải tái sinh
lại nó và cho giá trị chính xác S[i] và tái trang bị đồng hồ bảo vệ.
2.4. Triển khai bộ tuần tự tuần hoàn
Hai thuật toán đã trình bày đều dựa vào sự tuần hoàn của ấn phong có thể được
sử dụng nhằm triển khai một bộ tuần tự. Trong thuật toán thứ hai, ví dụ ta áp cho jeton
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 13

HVTH: Lê Quốc Dũng -KHMT K16
một công tơ với các giá trị nguyên mà duy nhất chỉ có trạm có jeton mới có thể tăng và
tham chiếu. Các giá trị xuất phát từ tham chiếu đó được xem như là kết quả của các
phép toán phieu được thực hiện trên trạm.
TT

/Bảng I.9/ Diễn giải
1
Khi có một tiến trình trên một trạm muốn gọi phép toán phieu(S), thì ph
ải có
một yêu cầu đặt vào trong hàng đợi vào của TBTT. Tiến trình yêu cầu đó cần
phải đợi cho đến khi yêu cầu của nó xuất hiện trong hàng đợi ra của TBTT : tại
thời điểm đó, yêu cầu này đã được lan truyền và nó được sắp xếp cùng với các
yêu cầu khác.
2
Trạm i xử lý tất cả các yêu cầu phieu(S) đang có trong hàng đợi ra của TBTT của
nó. Mỗi khi có một yêu cầu đến từ một trong các trạm khác, thì trạm i sẵn sàng
tăng nội dung công tơ cục bộ của mình lên. Khi có một yêu cầu nào đó đến từ
một trong các tiến trình của chính trạm i, thì tiến trình này nhận giá trị hiện hành
của công tơ cục bộ và công tơ này tăng lên một số gia.

Lợi ích hiển nhiên của phương pháp đánh số không lổ hổng này là tránh được
hội thoại giữa các trạm để biết số sự kiện tiếp theo sau một sự kiện đã cho. Nhưng thực
tế, việc hội thoại này lại phải diễn ra để có được số hiện hành. Sự khác nhau của
phương pháp này và phương pháp dấu là ở chổ chịu đựng được các sự cố. Trên thực
tế, các trạm bị sự cố không thể nào phục vụ số được, bộ cung cấp cần phải tìm lại số
lượng và giá trị của các số đó. Để thực hiện điều đó, cần phải hội thoại với các trạm
khác.
3. Bộ tuần tự trên kênh lan truyền
Bây giờ ta hãy xem xét trường hợp liên lạc giữa các trạm được thực hiện bởi

một kênh duy nhất. Các trạm nối với kênh này bởi thiết bị truyền thông (TBTT). Việc
cạnh tranh truy cập đường truyền, việc xử lý các xung đột và việc nhận các thông điệp
được thực hiện thông qua thiết bị này theo các kỹ thuật và công nghệ đã được trình
bày trong môn học mạng máy tính. Theo thiết kế, một lúc, chỉ có một thông điệp được
truyền.
Ta giả sử rằng mỗi TBTT truyền các thông điệp vào đường truyền theo trình tự
mà trạm liên lạc với nó xác định và dội lại trạm này các thông điệp từ đường truyền,
kể cả các thông điệp của chính nó. Ngoài ra, ta còn giả định là
đường truyền không hề làm mất thông điệp và các TBTT đều sắp xếp các thông
điệp theo một trật tự giống nhau. Trong trường hợp này, ta có một trật tự tổng quát và
nó được thể hiện trong hình vẽ I-4.
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 14
HVTH: Lê Quốc Dũng -KHMT K16
Để thực hiện một bộ tuần tự phân tán S , trạm i nào đó cần phải duy trì công tơ
cục bộ và thực hiện cùng một thuật toán.
Thuật toán đó thể hiện như bảng I.9.
Trong trường hợp có một trạm bị sự cố, các trạm khác vẫn tiếp tục hoạt động
theo thuật toán nêu trên hay nói một cách giản đơn cũng có ít nhất một công tơ đang
hoạt động.
Để có thể tự tham gia lại công việc trong mạng sau sự cố, trạm i phải gửi yêu
cầu vào lại cho một trạm nào đó trong số các trạm còn lại, ví dụ như j chẳng hạn, và
đặt mình vào trạng thái lắng nghe đường truyền trong hàng đợi ra của TBTT của mình.
Trạm j sẽ gửi cho nó một thông điệp đồng bộ để cập nhật. Khi thông điệp này xuất
hiện trong hàng đợi ra của TBTT, thì :
1. Trạm j là trạm cần phải gửi thông điệp cho i hiểu rằng nó phải gửi giá trị
hiện hành của công tơ của nó.
2. Trạm i hiểu rằng nó có thể vào lại được trong mạng. Để cho việc đó, nó bắt

đầu bằng cách lờ đi tất cả các thông điệp đến trước thông điệp đồng bộ. Thông điệp
đồng bộ đến sau cùng. Nó lưu trữ mà không xử lý tất cả các thông điệp theo sau nó và
điều đó được duy trì cho đến khi xuất hiện giá trị hiện hành của công tơ được gửi bởi j.
Sau khi thông điệp đồng bộ đến, trạm xử lý tất cả các thông điệp theo sau thông điệp
đồng bộ.







LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 15
HVTH: Lê Quốc Dũng -KHMT K16

Các trạm khác không được phép can thiệp. Do vậy, chúng lờ đi yêu cầu vào lại ,
thông điệp đồng bộ và giá trị truyền.
Phương pháp cập nhật này cũng có thể được sử dụng tại các trạm để trao đổi giá
trị của các công tơ trong việc kiểm tra định kỳ.
Tóm lại, trạng thái của các thành phần thuộc hệ thống tin học phân tán chỉ được
biết một cách không chắc chắn lắm do vì thời gian truyền thông tin trên đường truyền
không cố định, tăng số lượng các trung tâm ra quyết định và đặc biệt có thể xảy ra sự
cố bất cứ lúc nào.
Chúng ta đã nghiên cứu một số vấn đề về đồng bộ không chắc chắn và một số
vấn đề khác trên cơ sở trật tự toàn bộ mà việc triển khai được đặt trên nền tảng đánh số
sự kiện.
Chúng ta cũng đã giả định rằng việc sự cố một trạm hay một đường truyền nào

đó không là nguyên nhân gián đoạn trao đổi giữa các trạm.
VIII. KẾT LUẬN
Thông qua chương 1 của tiểu luận, những vấn đề có tính chất cơ sở về phân
tích, thiết kế, xây dựng, khảo sát - kiểm nghiệm các chiến lược đồng bộ hoá tiến trình
trong hệ phân tán được trình bày. Hệ phân tán với các đặc điểm quan trọng là :
1. Không sử dụng chung bộ nhớ và đồng hồ vật lý,
2. Được mắc nối với nhau thông qua hệ thống đường truyền (viễn thông),
nhưng về cơ bản hệ hoạt động hoàn toàn độc lập với nhau trên bộ xử lý riêng của
mình,
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 16
HVTH: Lê Quốc Dũng -KHMT K16
3. Các thành phần cơ bản của hệ có thể được bố trí trên một phạm vi địa lý rộng
lớn,
4. Việc ăn khớp giữa các hoạt động này (còn gọi là đồng bộ hóa các hoạt động
thành phần) được tiến hành thông qua trao đổi thông điệp giữa các thực thể của hệ,
5. Truy cập mang tính ngẫu nhiên, từ xa và số lượng truy cập lớn
6. Trong qua trình hoạt động, hệ có thể bị sự cố kỹ thuật.
Một hệ thống với những đặc điểm như vậy là hệ thống kỹ thuật lớn, đa dạng và
rất phức tạp về mặt cấu trúc mà việc nghiên cứu đồng bộ hoá các tiến trình đang hoạt
động trong đó là yếu tố then chốt cho sự ổn định của toàn hệ, đặc biệt là tiến trình có
nhu cầu được cung cấp tài nguyên ở xa và bản thân lời yêu cầu cung cấp cũng được
tiến hành từ xa.



LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe


GVHD: PGS.TS. Lê Văn Sơn
Trang 17
HVTH: Lê Quốc Dũng -KHMT K16
CHƯƠNG II :
SỰ GẮN BÓ DỮ LIỆU TRONG HỆ QUẢN LÝ
BÃI ĐỖ XE
I. ĐẶT VẤN ĐỀ
Trong tất cả các hệ thống tin học, ta cần phải nghiên cứu các công cụ đủ mạnh
và hiệu quả để đồng bộ hoá các tiến trình. Tính cấp thiết về mặt nguyên lý và kỹ thuật
của vấn đề này thể hiện ở hai nguyên do cơ bản sau :
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.
Sự tương tranh và hợp lực giữa các tiến trình đòi hỏi phải có trao đổi thông tin
qua lại với nhau. Trong các hệ thống tập trung điều đó được thực hiện nhờ thuật toán
loại bỏ tương hỗ thông qua các biến cùng tác động trong một vùng nhớ chung. Trong
hệ thống tin học phân tán, các thông tin cần trao đổi thông qua các kênh thuộc hệ viễn
thông.
II. TRẬT TỰ TỪNG PHẦN
Cần chú ý rằng, trong các hệ thống tin học tập trung, 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.
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 :

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 18
HVTH: Lê Quốc Dũng -KHMT K16






Hình vẽ II.1 sau đây cho ta một ví dụ về trật tự hoá từng phần của các sự kiện trong hệ
thống.















Hình II.1 : Mô tả trật tự từng phần
Theo hình vẽ trên, ta có thể biểu diễn trật tự như sau :
Trật tự từng phần của các sự kiện
A
1
→ A
2
→ A
3
→ A
4
→ A
5

B
1
→ B
2
→ B
3
→ B
4


Trao đổi thông tin
A
1
→ B
2
và B
3
→ A
4

Chuyển qua
A
1
→ A
2
→ B
2
→ B
3
→ B
4

B
1
→ B
2
→ B
3
→ A
4

→ A
5
A
1
→ A
2
→ B
2
→ B
3
→ A
4
→ A
5

Ví dụ về các sự kiện không so sánh
B
1
và A
1
, A
2
, A
3

A
3
và B
2
, B

3
, B
4

Ràng buộc C
1
thể hiện rằng trật tự có thể được bởi quan hệ có trước là tương
thích với các trật tự cục bộ được định nghĩa trong từng trạm.
Ràng buộc C
2
nói lên nguyên tắt nhân quả.
Quan hệ có trước xác định một trật tự từng phần trên tập hợp các sự kiện của hệ
và trật tự này có thể hiện trong hình vẽ trên
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.
A1
A2
A3
A4
A5
B1
B2
B3
B4

B5
t
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 19
HVTH: Lê Quốc Dũng -KHMT K16
III. 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.
Ta áp dụng các ký hiệu trong bảng sau :
STT Ký hiệu 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ó.
Trước hết, trong đề tài này nghiên cứu sự hoạt động của hệ không có sự cố, rồi
sau đó sẽ chỉ ra hiệu ứng của sự cố hay việc phục hồi lại một trạm. Đó là trường hợp

đã nêu lên trong H
4
ở trên. Ngoài ra còn giả sử rằng hiện tượng gây sự cố trên một
trạm chỉ làm cho trạm đó không liên lạc được với mạng mà hoàn toàn không ảnh
hưởng đến sự hoạt động của các trạm còn lại hoặc ít nhất là một nhóm các trạm khác.
IV. CÁCH GIẢI QUYẾT VẤN ĐỀ ĐỒNG BỘ HOÁ
1. Đồng bộ hoá bằng phương pháp trật tự từng phần
Sử dụng các công tơ sự kiện thích hợp với các vấn đề đặt ra, Mỗi công tơ, biến
nguyên không lùi, được kết hợp với một nhóm đặt biệt các sự kiện. Trên một công tơ
sự kiện nào đó có phối hợp với nhau được thực hiện bởi các hàm nguyên thuỷ. Việc
triển khai các công tơ sự kiện có thể được thực hiện bằng cách giao cho một bộ xử lý
duy nhất đảm trách việc điều khiển toàn bộ công việc này.
2. Đồng bộ hoá theo một trật tự tổng quát chặt chẽ
Trong một số trường hợp cần phải sắp xếp toàn bộ theo kiểu chặt chẽ các sự
kiện của hệ liên quan trực tiếp đến việc cung cấp các tài nguyên. Nguyên lý của vấn đề
được khái quát như sau. Một tiến trình nào đó gởi thông điệp để yêu cầu sử dung tài
nguyên; một tiến trình sử dụng xong tài nguyên nào đó truyền một thông tin giải
phóng khi nó ngừng chiếm dụng.
Cung cấp tập trung
Hiện tại, trong các hệ thống tập trung, mỗi một loại tài nguyên của hệ được
quản lý bởi một chương trình cung cấp duy nhất, goi là bộ cung cấp tài nguyên.
Chương trình này tiếp tục nhận tất cả các yêu cầu, khuyến nghị giải phóng và sắp xếp
chúng trong một hàng đợi xử lý theo kiểu loại trừ tương hỗ và xử lý chúng theo một
trật tự nhất định của hàng đợi này.
Trong các hệ phân tán, chương trình cung cấp nằm trên một trạm và các tiến
trình đề nghị lại ở trên các trạm khác; các yêu cầu và khuyến nghị giải phóng được
truyền cho chương trình cung cấp thông qua hình thức thông điệp chuyển theo các
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn

Trang 20
HVTH: Lê Quốc Dũng -KHMT K16
kênh của hệ thống viễn thông. Chính vì vậy nhu cầu sắp xếp các yêu cầu này theo một
trật tự nhất định nào đó luôn được đặt ra.
Nếu chỉ có một thông điệp đến chương trình cung cấp thì trật tự đến thể hiện
một trật tự chặt chẽ. Ngược lại, nếu có nhiều thông điệp đến cùng một lúc thì việc sắp
xếp chúng phải theo kiểu loại trừ tương hỗ trong hàng đợi cục bộ của trạm có chứa
chương trình cung cấp. Điều đó cũng cho phép ta có một trật tự chặt chẽ.
Trật tự có được tại trạm cung cấp có thể không giống như trật tự phát, nếu thời
gian truyền không được cố định. Đây là trường hợp khá phổ biến trong mạng máy
tính. Nhưng nếu ta muốn xử lý các thông điệp theo trình tự không tính tới thời gian
truyền, thì cần phải tính đến một trật tự tổng quát của các lần truyền thông điệp từ các
trạm khác nhau.
Cung cấp phân tán
Vì lý do ổn định và hiệu quả mà ta phải phân tán chức năng cung cấp trên nhiều
trạm khác nhau. 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 được hoàn toàn chính xác. Bài toán sau
đây sẽ chỉ ra vấn đề sự không gắn bó dữ liệu trong hệ quản lý bãi đỗ xe
V. BÀI TOÁN HỆ QUẢN LÝ BÃI ĐỖ XE
Bài toán bãi để xe được phát biểu như sau : cho một bãi đậu xe ô tô N chỗ và có
ít nhất là 2 lối vào. Hành vi của ô tô là vào bãi, đậu và ra khỏi bãi. Việc quản lý bằng
cách ghi lại số lượng xe vào và số lượng xe ra. Người bảo vệ phát một phiếu cho ô tô
vào và nhận lại phiếu đó khi ô tô ra. Mỗi người bảo vệ cầm giữ một số phiếu cho việc
quản lý cục bộ của mình và chuyển cho người khác những cái dư. Bài toán được mô
phỏng theo hình vẽ II.2.
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

Hình II.2 : Mô phỏng bãi đậu xe ôtô

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 21
HVTH: Lê Quốc Dũng -KHMT K16


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ể.
Các mũi tên hai chiều được sử dụng để mô tả dòng ra vào của ô tô.
Trong bài toán này chúng ta nhận thấy :
- 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
+ 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.
+ 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 đó
đã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ẽ II.2
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.
Như vậy các người bảo vệ phải hợp lực với nhau để phân phối chính xác các
chổ trong bãi, đặc biệt là số lượng chổ còn trống càng ít thì vai trò của hợp lực còn
quan trọng. Đây chính là sự không gắn bó dữ liệu ở bãi đậu xe ô tô
+ Tính huống thứ 3 :
Một người bảo vệ có vai trò như là chương trình cung cấp chổ của bãi để xe ô
tô. Ở đây, chỗ để xe được xem như là tài nguyên của hệ. 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

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 22
HVTH: Lê Quốc Dũng -KHMT K16
các người bảo vệ ra các quyết định để ôtô vào và ra khỏi bãi đậu một cách có
trật tự theo hình vẽ II.3


















Theo cách truyền và nhận các thông điệp giữa các trạm bảo vệ trên thấy rằng
việc phát và nhận các thông điệp xảy ra theo một trật tự nhất định về thời gian, như là :
người bảo vệ thứ phát thông điệp m1 sau khi 3 người bảo vệ còn lại đã nhận được
xong thông điệp m1 thì mới đến người bảo vệ thứ 2 phát thông điệp m2.

Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4 Trật
tự
xử lý
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ệ
Sau khoảng thời gian, ta nhận thấy rằng dữ liệu ở các trạm trên bảng II.1 là
giống nhau hoàn toàn. Trường hợp này cho thấy dữ liệu ở hệ quản lý đỗ xe là gắn bó.
Nhưng trong thực tế của bài toán hệ quản lý đổ xe việc phát và nhận các thông tin
không được biết lúc nào truyền và lúc nào là nhận cho nên trường hợp trên là quá lý
tưởng (ít xảy ra) và trong khi giải quyết bài toán quản lý bãi đổ xe chúng ta cố gắng
đưa hệ về tình huống này theo một trình tự cập nhật nhất thiết phải giống nhau trên các
trạm.

+ Tình huống thứ 4 :
Cũng theo giả định của tình huống 3 nhưng lúc này các thông điệp được phát và
nhận không theo một trật tự được sắp xếp. Quá trình truyền và nhận thông tin được thể
hiện ở hình II.3
Bảo vệ 1
Bảo vệ 2 Bảo vệ 3 Bảo vệ 4
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ự

LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 23
HVTH: Lê Quốc Dũng -KHMT K16




















Từ hình vẽ trên cho ta thấy, nếu ta không có ràng buộc nào đối với trình tự xử
lý các thông điệp nhận được của các người bảo vệ thì các người bảo vệ này sẽ có số
lượng chỗ trống khác nhau.

Bảo vệ 1 Bảo vệ 2 Bảo vệ 3 Bảo vệ 4 Trật
tự
xử lý
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 M2 90 M3 90 M1 120
2 M3 108 M3 81 M1 110 M2 110
3 M2
118
M1
101
M2
100
M3
99
Bảng II.2 : Sự không gắn bó giữa bốn người bảo vệ
Tại đây, để dễ dàng hình dung vấn đề, ta có thể xem người bảo vệ như là
chương trình cung cấp, còn chỗ trong bãi là tài nguyên và các ô tô là các tiến trình của
hệ.
Trong bảng trên thì chúng ta thấy sau một khoảng thời gian thông tin về dữ liệu
của 4 người bảo vệ ở các trạm khác nhau sẽ có số lượng chỗ con trống là hoàn toàn sai
khác (người thứ 1 số lượng chỗ còn trống 118, người thứ 2 số lượng chỗ còn trống
101, người thứ 3 số lượng chỗ còn trống 100, người thứ 4 số lượng chỗ còn trống 99),
sự sai khác này chính là vấn đề không gắn bó dữ liệu ở bài toán hệ quản lý bãi đậu
xe.bởi vì trong cùng một mốc thời gian thông tin về số lượng chỗ trống trên các trạm
là không hoàn toàn giống nhau. Để đảm bảo các bản cập nhật giống nhau thì trình tự
cập nhật nhất thiết phải giống nhau trên tất cả các trạm.
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
LT Mạng nâng cao Lập tình bằng các phương pháp phân tán để điều khiển bãi đỗ xe

GVHD: PGS.TS. Lê Văn Sơn
Trang 24
HVTH: Lê Quốc Dũng -KHMT K16
VI. 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.






































×