Tải bản đầy đủ (.doc) (26 trang)

Tiểu luận môn Hệ phân tán VẤN ĐỀ GẮN BÓ DỮ LIỆU TRONG HỆ QUẢN LÝ 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 (1.43 MB, 26 trang )

Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG

TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
Đề tài :
- VẤN ĐỀ GẮN BÓ DỮ LIỆU TRONG BÀI TOÁN BÃI ĐỖ XE
- SẮP XẾP CÁC MESSAGE DỰA TRÊN ĐỒNG HỒ LOGIC
GVHD: PGS-TS Lê Văn Sơn
Học viên: Nguyễn Đình Lâm Khánh
Khóa 2012 - 2014
Đà Nẵng – 8/2014
Học viên: Nguyễn Đình Lâm Khánh Trang 1
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
LỜI MỞ ĐẦU
Cùng với sự phát triển ngày càng cao của công nghệ thông tin. Sự ra đời và phát
triển ồ ạt của máy vi tính và các phương tiện xử lý thông tin khác, cũng như nhu cầu trao
đổi thông tin trong mọi hoạt động xã hội loài người. Đòi hỏi sự phát triển đồng bộ các
phương pháp truyền thông. Mạng máy tính ra đời làm cho mọi người trên thế giới trở nên
gần nhau hơn. Hệ tin học phân tán ra đời nhằm phát triển nhu cầu của công nghệ thông
tin .
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ý nằm tại các vị trí khác
nhau và được liên kết với nhau thông qua phương tiện viễn thông dưới sự điều khiển
thống nhất của một hệ điều hành.
Để đảm bảo tính gắn bó của hệ, yêu cầu đặt ra trước hết là đồng bộ hóa các tiến
trình. Trình tự và đồng bộ các tiến trình trong hệ phân tán chỉ ra cho ta các vấn đề đồng
bộ có thể sẽ dẫn đến phải thiết chế một trật tự tổng quát của các sự kiện diễn ra trong hệ.
Cần phải xác định mối liên hệ trao đổi thông qua các thông điệp với thời gian truyền khác
nhau, những thông tin tạm thời trao đổi không có giá trị tuyệt đối và trình tự tổng quát


cần phải được thể hiện bằng phương tiện giải thuật đảm bảo hoạt động nhịp nhàng giữa
các tiến trình dữ liệu có liên quan với nhau.
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 trong hệ quản lý
bãi đỗ xe và cũng như đưa ra giải thuật sắp xếp các message đến 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 : Phương pháp đảm bảo gắn bó dữ liệu
- Chương 3 : 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 4 : 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).
Để hoàn thành tiểu luận này, tôi xin chân thành cám ơn sự chỉ bảo tận tình của
Thầy giáo: PGS.TS.Lê Văn Sơn và các bạn học viên trong lớp đã nhiệt tình góp ý.
Học viên: Nguyễn Đình Lâm Khánh Trang 2
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
CHƯƠNG 1
CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ PHÂN TÁN
1.1. TỔNG QUAN VỀ HỆ TIN HỌC
Một cách tổng quát, hệ tin học có thể bao gồm các thành phần cơ bản như phần cứng,
hệ điều hành, các chương trình ứng dụng. Hệ tin học nói chung có thể được mô hình hoá
như sau:
Hình 1.1 Các thành phần của hệ tin học
Các thiết bị phần cứng bao gồm bộ xử lý trung tâm, bộ nhớ và các thiết bị ngoại vi và
đóng vai trò là một trong hai loại tài nguyên cơ sở của hệ thống tin học. Các chương trình
ứng dụng là thành phần tiếp theo sau hệ điều hành, là các phần mềm cơ sở phục vụ cho
việc triển khai các ứng dụng cụ thể. Ví dụ như chương trình dịch, hệ quản trị cơ sở dữ
liệu, các chương trình trợ giúp sử dụng các thiết bị chuyên dụng, các trò chơi điện tử

Người sử dụng là một khái niệm được hiểu theo nghĩa rộng, dưới góc độ hệ điều
hành. Đó có thể là các nhà chuyên môn, các máy tính, các hệ tự động vận hành gắn với
máy tính. . . đang khai thác hệ thống qua các lệnh điều khiển theo một thuật toán nào đó
nhằm đạt được mục tiêu xác định từ trước.
Hệ điều hành các máy tính và mạng máy tính được đặt sát phần cứng. Nó gắn kết chặt
chẽ với thiết bị bởi một hệ thống các chương trình điều khiển và sắp xếp nhằm khai thác
phần cứng phục vụ cho các chương trình ứng dụng khác nhau với kết quả và hiệu năng
chấp nhận được.
Học viên: Nguyễn Đình Lâm Khánh Trang 3
II III

I
HỆ ĐIỀU HÀNH
PHẦN
CỨNG
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Như vậy, xét về mặt quản lý - điều hành các hoạt động của hệ thống thì các thực thể
vừa nêu trên bao gồm phần cứng, phần mềm và dữ liệu. Là những đối tượng mà hệ điều
hành phải quan tâm. Những đối tượng này chính là thực thể cơ bản của hệ tin học và
được mô tả hình 1.2
Hình 1.2 Ba thực thể của hệ tin học
Như vậy, hệ thống tin học là một hệ thống bao gồm hai phần cơ bản là phần cứng và
phần mềm gắn bó hữu cơ với nhau và có khả năng xử lý thông tin.
1.2. HỆ TẬP TRUNG
Tiêu biểu là hệ thống máy đơn, là máy không kết nối vật lý và logic với các máy khác
như hình vẽ sau:
Hình 1.3 Hệ thống máy đơn
Ở một thời điểm nhất định, máy đơn được điều hành bởi một hệ điều hành duy nhất.
Hệ thống như vậy được gọi là hệ tin học tập trung, thích hợp với các máy tính loại trung
và loại lớn.

Học viên: Nguyễn Đình Lâm Khánh Trang 4
Phần
cứng
Phần
mềm
Dữ
liệu
Bộ
nhớ
trong
U
1
U
2
U
n
. . .
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Tóm lại, hệ tin học tập trung bao gồm một hệ thống máy đơn được điều khiển bởi một
hệ điều hành duy nhất và quản lý toàn bộ thông tin trên thiết bị nhớ cục bộ của mình.
1.3. HỆ TIN HỌC PHÂN TÁN
Hệ tin học phân tán (Distributed System) là hệ thống không chia sẻ bộ nhớ và đồng
hồ, khác với xu hướng phân tán các tính toán trên nhiều bộ xử lý của hệ thống đa xử lý.
Như vậy, hệ tin học phân tán đòi hỏi hệ thống phần cứng của mình phải trang bị bộ nhớ
cục bộ, các bộ xử lý trao đổi thông tin với nhau thông qua các hệ thống đường truyền như
cáp chuyên dụng, đường điện thoại, cáp quang. . .
Như vậy, hệ tin học phân tán có thể bao gồm bốn thực thể như sau:
Hình 1.4 Các thực thể của hệ phân tán
Một tư tưởng lớn của hệ tin học phân tán là phân tán hoá các quá trình xử lý thông tin
và thực hiện công việc đó trên các trạm khác nhau. Đó là cơ sở căn bản cho việc xây

dựng các ứng dụng lớn như thương mại điện tử, giáo dục điện tử, chính phủ điện tử, thư
viện điện tử, . . .
Hiện nay, đứng trên những phương diện khác nhau, 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 sau:
Hệ tin học phân tán (hệ phân tán) là hệ thống xử lý thông tin bao gồm nhiều bộ xử lý
hay vi xử lý nằm tại các vị trí khác nhau và được liên kết với nhau thông qua phương tiện
viễn thông dưới sự điều khiển thống nhất của một hệ điều hành.
Từ định nghĩa trên, hệ phân tán có các ưu điểm căn bản so với hệ tập trung, như sau:
- Tăng tốc độ bình quân trong tính toán, xử lý.
- Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên.
- Tăng độ an toàn cho dữ liệu.
- Đa dạng hoá các loại hình dịch vụ tin học.
- Đảm báo tính toàn vẹn của thông tin.
Học viên: Nguyễn Đình Lâm Khánh Trang 5
Phần
cứng
Phần
mềm
Dữ
liệu
Truyề
n
thông
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
CHƯƠNG 2
PHƯƠNG PHÁP ĐẢM BẢO GẮN BÓ DỮ LIỆU
2.1. ĐẶT VẤN ĐỀ
Vấn đề gắn bó dữ liệu trong các hệ thống phân tán nói chung và các hệ thống
thông tin đăng ký trên mạng nói riêng như việc đăng ký các tour du lịch, mua bán
trong các giao dịch thương mại điện tử, đăng ký giữ chỗ trong giao thông vận tải,

đăng ký dự thi trong các hệ thống thông tin đào tạo, đã trở thành một lĩnh vực
thu hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất
phần mềm nhằm tìm ra các giải pháp hữu hiệu đảm bảo tính gắn bó thông tin trong
các cơ sở dữ liệu truy cập ngẫu nhiên với số lượng truy cập lớn [6,5,4,1].
Việc nghiên cứu, phát triển các phương pháp đảm bảo gắn bó dữ liệu trong
môi trường phân tán đến nay đã có một số thành công đáng kể. Trước hết, phải nói
đến sự tích hợp hàng loạt các hàm vào các hệ điều hành, hệ quản trị cơ sở dữ liệu,
ngôn ngữ lập trình với phương thức riêng rẽ của từng hệ cho phép đảm bảo phần
cơ bản của việc gắn bó thông tin nói chung trong quá trình đa truy cập thông qua
hệ thống viễn thông. Việc triển khai phương pháp cho phép gắn bó dữ liệu trong
môi trường phân tán trong điều kiện lý tưởng (không có bất kỳ sự cố nào) đã được
áp dụng và mang lại những hiệu quả nhất định cho các hệ thống đăng ký [4,5,1].
Tuy nhiên, trong quá trình triển khai lập trình và vận hành các hệ thống đăng ký,
vấn đề gắn bó dữ liệu trong các cơ sở dữ liệu khi hệ thống bị sự cố đang đặt ra như
là vấn đề quan trọng và có ý nghĩa sống còn trong việc phát triển toàn hệ nói
chung. Nói tóm lại, sự cố trong các hệ thống nói chung, hệ thống đăng ký nói
riêng có thể xảy ra và là nguyên nhân dẫn đến hệ thống cơ sở dữ liệu không thể
đảm bảo tính gắn bó được nữa.
Trong phạm vi của bài viết này, tôi giới thiệu một giải pháp được phát triển
dựa trên giải thuật hai pha tuyến tính và giải thuật MAONT kết hợp với mô hình
xử lý phân tán JavaRMI và các kỹ thuật chuyển tác trong SQL Server 2000 nhằm
đảm bảo tính gắn bó dữ liệu phân tán trong điều kiện có sự cố phục vụ cho các hệ
thống thông tin đăng ký.
2.2. TÁC ĐỘNG CỦA SỰ CỐ ĐỐI VỚI GẮN BÓ DỮ LIỆU
Nhằm nghiên cứu và phát triển phương pháp đảm bảo gắn bó dữ liệu một
cách khả thi trong điều kiện có sự cố cho các hệ thống thông tin đăng ký nói riêng,
các hệ thống tin học phân tán nói chung, bản chất của vấn đề gắn bó dữ liệu cũng
như nguyên nhân dẫn đến sự cố làm cho dữ liệu không còn gắn bó được chỉ ra và
nhóm ghép trong quá trình phân tích, thiết kế hệ thống.
Học viên: Nguyễn Đình Lâm Khánh Trang 6

Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Một cơ sở dữ liệu nào đó được gọi là gắn bó, nếu nó thỏa mãn một tập các
ràng buộc về toàn vẹn ngữ nghĩa. Để đảm bảo tính gắn bó dữ liệu nhiều cơ chế
khác nhau như điều khiển hoạt động đồng thời [5], kiểm soát tính toàn vẹn ngữ
nghĩa, …được sử dụng [4].
Việc kiểm soát tính toàn vẹn ngữ nghĩa tốt sẽ đảm bảo được tính gắn bó dữ
liệu của hệ thống thông tin. Hiện nay, người ta đang áp dụng hai phương pháp chủ
yếu :
1. Loại bỏ các chương trình/thủ tục cập nhật có thể dẫn đến trạng thái
không gắn bó dữ liệu trong các cơ sở dữ liệu [CKP
1
]
2. Triệu gọi các chương trình/thủ tục đặc biệt đã được cài đặt trên hệ thống
nhằm khôi phục trạng thái ban đầu trước khi cập nhật [CKP
2
].
Các ràng buộc toàn vẹn được phân làm hai loại chủ yếu :
1. Ràng buộc cấu trúc (Structural Constraint) diễn tả những đặc tính ngữ
nghĩa cơ bản vốn có trong mô hình. Ví dụ như ràng buộc thể hiện bằng khóa duy
nhất trong mô hình quan hệ hoặc các liên kết theo kiểu 1 – n, (n > 1) giữa các đối
tượng trong mô hình mạng
2. Ràng buộc hành vi (Behavioral Constraint) nhằm điều hòa các hoạt động
của các ứng dụng.
Trong quá trình nghiên cứu bài toán, các tác giả vận dụng phương pháp tổng
quát đảm bảo gắn bó dữ liệu và các ràng buộc toàn vẹn thông tin phục vụ công tác
phân tích, thiết kế hệ quản trị cơ sở dữ liệu cho hệ thống cơ sở dữ liệu đăng ký với
thông tin gắn bó trong điều kiện phân tán. Những thông tin chi tiết có thể tham
khảo trong tài liệu [7].
Để có thể khôi phục lại dữ liệu và trạng thái gắn bó thông tin của toàn hệ
thống khi có sự cố diễn ra, một trong những vấn đề quan trọng hàng đầu là cần

phải xác định được loại, bản chất và vị trí diễn ra sự cố mà từ đó nhận biết một
cách tự động và chuyển đến phương án giải quyết nào cho phù hợp. Bản chất (mã)
sự cố và thủ tục giải quyết sự cố có liên quan đến gắn bó được lưu trữ tại trung
tâm hoặc phân tán trên các trạm của hệ đăng ký phân tán. Trong trường hợp các
thủ tục được phân tán, thì bản thân các thủ tục đó cũng đòi hỏi phải có giải pháp
đảm bảo gắn bó giống như dữ liệu bình thường [5].
Về tổng quan, các sự cố được chia làm hai loại chính là sự cố xảy ra do các
trạm trên hệ thống phân tán và sự cố do hệ thống viễn thông gây ra [4,5]. Song để
tiện lập trình giải pháp, người ta cụ thể hoá ra thành bốn mức với các nguyên
nhân tương ứng thể hiện trong bảng 1.

Học viên: Nguyễn Đình Lâm Khánh Trang 7
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Bảng 1. Các loại sự cố và nguyên nhân gây ra sự cố
TT Loại sự cố Tiếng Anh Nguyên nhân
1
Sự cố
giao dịch
Transaction
Failure
Do một lỗi nào đó trong bản thân giao
dịch gây nên. Ví dụ như dữ liệu nhập
không đúng hoặc do phát hiện ra một
khóa gài tiềm tàng hoặc hiện hữu
2
Sự cố
Vị trí

Site Failure
Do một lỗi phát sinh trong quá trình vận

hành hệ thống. Lỗi này có thể bắt nguồn
từ phần thiết bị như bộ xử lý/bộ vi xử
lý, bộ nhớ, các thiết bị ngoại vi, bị sự
cố. Khi bị sự cố, hệ thống lập tức bị
ngừng hoạt động. Hệ thống chương
trình, đặc biệt là các chương trình điều
khiển cũng có thể sinh lỗi. Đó là các lỗi
do thuật toán, do lệnh viết sai, do phần
lưu trữ chương trình hay do virus. Các
lỗi này thường là ở các chương trình và
cơ sở dữ liệu
3
Sự cố phương tiện
Media Failure
Do sự cố của các thiết bị lưu trữ thứ cấp
dùng để lưu cơ sở dữ liệu. Khi có sự cố
này thì một phần hoặc tất cả cơ sở dữ
liệu trên thiết bị đó được xem như bị
hủy hoại hoặc không thể truy cập một
cách bình thường được
4
Sự cố
đường truyền
Transmission
Failure
Do lỗi trong các thông điệp, các thông
điệp vô trật tự, thông điệp bị thất lạc
hoặc không phân phối thông điệp và sự
cố khác liên quan đến đường truyền.
Phương pháp tổng quát cho việc khắc phục bốn loại sự cố này được trình bày

trong bảng 2 [4].
Học viên: Nguyễn Đình Lâm Khánh Trang 8
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Bảng 2. Phương pháp tổng quát khắc phục sự cố
TT Loại sự cố Cách khắc phục
1 Sự cố giao dịch
[CKP
1
] + [CKP
2
] Hủy bỏ giao dịch, sau đó đặt lại cơ sở dữ
liệu về trạng thái của nó trước khi khởi động giao dịch này
2 Sự cố vị trí [CKP
2
] Thiết kế nghi thức ủy thác nguyên tử không bị phong
tỏa
3 Sự cố phương tiện
[CKP
0
] Được xem như những vấn đề cục bộ của một vị trí, vì
vậy không xem xét trong trường hợp các hệ thống phân tán
4
Sự cố đường
truyền
[CKP
2
] Sử dụng bộ đếm thời gian và cơ chế quá hạn để theo
dõi xem đã qua bao lâu kể từ khi vị trí gửi không nhận được
thông điệp trả lời của vị trí đến.
2.3. PHÁT TRIỄN GIẢI PHÁP KỸ THUẬT ĐẢM BẢO GẮN

BÓ DỮ LIỆU
Để dễ dàng mô tả các giải thuật đảm bảo gắn bó dữ liệu phân tán, chúng ta
giả thiết rằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác
của nó, tiến trình này được gọi là điều phối viên (Coordinator). Điều phối viên trao
đổi với các thành viên (Participant) tại những vị trí có tham gia vào việc thực hiện
các thao tác của giao dịch.
Cải tiến giải thuật hai pha tuyến tính ( Linear 2PC ) [4], giải thuật MAONT
[1], ta thiết kế giải thuật mà trong đó các thành viên có thể trao đổi với nhau.
Có một thứ tự giữa các vị trí trong hệ thống dành cho việc giao tiếp. Chúng ta
hãy giả thiết rằng thứ tự giữa các vị trí có tham gia vào việc thực hiện một giao
dịch là 1, 2,…, N với điều phối viên là vị trí đầu tiên trong thứ tự này (Giải thuật
được minh họa bằng hình 1).
Theo mô hình trong hình vẽ, ta có các đối tượng sau :
1. C
1
, C
2
, , C
n
là các Client truy cập Web Server bằng trình duyệt Web
2. Servlets là các đối tượng xử lý yêu cầu được gửi từ các C
i
, i=1,n
Học viên: Nguyễn Đình Lâm Khánh Trang 9
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
3. TPC-Server-App1, TPC-Server-App2, , TPC-Server-AppN là các RMI
Server cài đặt thuật toán 2PC tuyến tính (Linear Two Phase Commit - TPC)
4. TPCMonitorServer là một trình giám sát cho phép hiển thị quá trình dịch
chuyển của danh sách di chuyển [6] trong quá trình xử lý của các TPC-Server-
Appi, i = 1,N

5. ConnectionPool là chương trình điều khiển các liên kết cơ sở dữ liệu
dùng chung
6. Database1, Database2, , DatabaseN là các cơ sở dữ liệu quan hệ phân
tán trên mạng.
Mô tả hoạt động :
Các C
1
, C
2
, , C
n
là các Client truy cập vào Web Server bằng trình duyệt Web.
Các yêu cầu này đòi hỏi việc xử lý phải truy vấn đến các cơ sở dữ liệu phân tán.
Do đó việc xử lý thành công hay không phụ thuộc vào kết quả của tất cả các truy
vấn này. Điều đó có nghĩa là, xử lý sẽ thành công nếu tất cả các truy vấn đều thành
công, ngược lại, xử lý sẽ không thành công nếu có bất kỳ một truy vấn nào bị lỗi
hoặc không thực hiện được.
Khi nhận được một yêu cầu từ các C
i
, i=1,n, các Servlet sẽ dựa vào yêu cầu
này để thành lập nên một danh sách các Database Server sẽ truy vấn và các câu
lệnh SQL tương ứng được thực hiện tại mỗi Server. Việc thành lập danh sách các
câu lệnh SQL truy vấn tại mỗi Database Server được dựa theo thứ tự ưu tiên
SELECT, DELETE, UPDATE, INSERT. Sau khi thành lập danh sách di chuyển,
Servlet chuyển danh sách di chuyển này cho TPC-Server-App đầu tiên trong danh
sách di chuyển thông qua phương thức gọi từ xa RMI.
Học viên: Nguyễn Đình Lâm Khánh Trang 10
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Mỗi TPC-Server-App cài đặt một giao diện cung cấp phương thức xử lý theo
thuật toán 2PC tuyến tính với tham số là danh sách di chuyển, chỉ mục hiện tại của

danh sách và trả về kết quả là danh sách kết quả truy vấn của chính nó và các
Server đứng phía sau nó trong danh sách di chuyển.
public interface TPCApp extends Remote
{
public ResultQueryList queryApp(MovableList movableList,int index)
throws RemoteException;
}
Nếu quá trình xử lý tại bất kỳ một TPC-Server-App nào bị lỗi thì kết quả trả
về là null. Dựa vào kết quả trả về này, các TPC-Server-App commit hoặc rollback
transaction đang quản lý. Như vậy, khi TPC-Server-App đầu tiên nhận được danh
sách di chuyển, TPC-Server-App bắt đầu một transaction để thực hiện các câu
lệnh SQL truy vấn CSDL cục bộ thông qua kết nối CSDL được lấy từ
ConnectionPool cục bộ .Tiếp theo, TPC-Server-App tăng chỉ mục hiện tại của
danh sách di chuyển lên 1 và chuyển danh sách di chuyển này đến TPC-Server-
App kế tiếp. Quá trình này được lặp lại cho đến khi kết thúc danh sách di chuyển.
Tại Server cuối cùng trong danh sách di chuyển, nếu việc truy vấn CSDL cục bộ
thành công, TPC-Server-App commit transaction và trả về kết quả là
ResultQueryList khác null. Dựa vào kết quả trả về này, Server đứng trước trong
danh sách di chuyển sẽ commit hoặc rollback transaction cục bộ và trả về kết quả
cho Server liền trước. Khi Servlet nhận được kết quả là null có nghĩa là xử lý
không thành công. Ngược lại, Servlet sẽ tiếp tục xử lý kết quả nhận được để trả về
cho Client.
Các bước cơ bản của giải thuật đề xuất nhằm minh họa cho việc cải tiến giải
thuật MAONT và giải thuật hai pha tuyến tính được mô tả qua hình 2. Việc triển
khai xây dựng chương trình bằng ngôn ngữ lập trình Java cùng với thư viện RMI
và tiến hành thực nghiệm sau đó đã đạt được kết quả nhất định.
Học viên: Nguyễn Đình Lâm Khánh Trang 11
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
Học viên: Nguyễn Đình Lâm Khánh Trang 12
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn

CHƯƠNG 3
SỰ GẮN BÓ DỮ LIỆU TRONG HỆ QUẢN LÝ BÃI
ĐỖ XE
3.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.
3.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.
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.
3.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.
Học viên: Nguyễn Đình Lâm Khánh Trang 13
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
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ó.
3.4. BÀI TOÁN QUẢN LÝ BÃI ĐỖ XE


Hình 1:
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 :
Học viên: Nguyễn Đình Lâm Khánh Trang 14
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
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
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
3.5. GẮN BÓ DỮ LIỆU BÀI TOÁN 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

Học viên: Nguyễn Đình Lâm Khánh Trang 15
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 2.1 : Thời hạn truyền và nhận thông điệp có trật tự
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
Bảo vệ 4
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
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 1: Sự gắn bó giữa 4 bảo vệ
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
Học viên: Nguyễn Đình Lâm Khánh Trang 16
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
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 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 2: Sự không gắn bó giữa các bảo vệ
3.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.
Học viên: Nguyễn Đình Lâm Khánh Trang 17
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 2.2 : Thời hạn truyền và nhận thông điệp
M
2
M
2
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
CHƯƠNG 4
SẮP XẾP CÁC THÔNG ĐIỆP ĐẾN DỰA TRÊN
ĐỒNG HỒ LOGIC
4.1 CƠ SỞ LÝ THUYẾT
4 1.1 Các quy tắc
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
4.1.2. Lý do sử dụng đồng hồ logic

• Trong hệ thống không đồng bộ, thường không thể biết sự kiện nào xảy ra trước sự
kiện nào
• Một số ví dụ
– Ví dụ A
• p0 gửi thông báo m0 cho p1
• Trước khi m0 tới p1, p1 gửi thông báo m1 cho p0
• p0 và p1 không thể biết thông báo nào đã được gửi trước
– Ví dụ B
• p0 gửi thông báo m0 cho p1
• Sau khi m0 tới p1, p1 gửi thông báo m1 cho p0
• p0 và p1 biết m0 được gửi và nhận trước khi m1 được gửi
• Cần sắp xếp các sự kiện theo thứ tự bộ phận
4.1.3. Thứ tự bộ phận xảy ra trước
• Trong một thực hiện, sự kiện tính a xảy ra trước sự kiện tính b, ký hiệu a → b,
nếu
1. a và b xuất hiện trên cùng một bộ xử lý và a xảy ra trước b trong thực hiện trên
bộ xử lý đó, hoặc
Học viên: Nguyễn Đình Lâm Khánh Trang 18
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
2. a gây ra việc gửi thông báo m và b bao hàm việc nhận thông báo m, hoặc
3. ∃ sự kiện tính c sao cho a → c và c → b
• Xảy ra trước có nghĩa là thông tin từ sự kiện a có thể ảnh hưởng đến sự kiện b
• Nếu trong hai sự kiện không có sự kiện nào xảy ra trước thì chúng tương tranh,
ký hiệu ║
4.1.4. Đồng hồ logic
• Khái niệm đồng hồ logic
– Là các giá trị gán cho các sự kiện tính để cung cấp thông tin về thứ tự xảy
ra của chúng
• Số nguyên L(e) gán cho sự kiện e trong một thực hiện thỏa mãn
điều kiện a → b ⇒ L(a) < L(b)

• Giải thuật nhãn thời gian logic
– Mỗi bộ xử lý pi duy trì một biến đếm (nhãn thời gian logic) Li, có giá trị
ban đầu là 0
– Mọi thông báo pi gửi đi được gán nhãn thời gian giá trị hiện thời của Li
– Với mỗi sự kiện tính a, Li được tăng để > giá trị trước đó và nhãn thời
gian của mọi thông báo nhận được
• L(a) là giá trị của Li khi sự kiện a kết thúc, ký hiệu Li(a)
Ví dụ: Đồng hồ logic
• Thứ tự bộ phận
– Ví dụ
• a → b : L(a) = 1 < 2 = L(b)
• f → i : L(f) = 4 < 5 = L(i)
• a → e : L(a) = 1 < 3 = L(e)
• Thứ tự toàn phần
– Sử dụng thêm id của bộ xử lý trong nhãn thời gian
– Ví dụ
• L(a) = (1,0) < (1,1) = L(c)
4.1.5. Đồng hồ vector
• Vấn đề đối với đồng hồ logic
– a → b ⇒ L(a) < L(b); chưa chắc L(a) < L(b) ⇒ a → b
– "Xảy ra trước" là thứ tự bộ phận, trong khi các giá trị đồng hồ logic là
những số nguyên có thứ tự toàn phần
Học viên: Nguyễn Đình Lâm Khánh Trang 19
p
0
p
1
p
2
a b

c d e f
g h i
1
2
1 2 3 4
1
2
5
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
• Đồng hồ vector tổng quát hóa của đồng hồ logic
– Các giá trị được lấy từ một tập thứ tự bộ phận thay vì một tập thứ tự toàn
phần
• Khái niệm đồng hồ vector
– Là các giá trị gán cho các sự kiện để cung cấp các thông tin không nhân
quả và nhân quả giữa chúng
• Giá trị V(e), thuộc tập thứ tự bộ phận, gán cho sự kiện e trong một
thực hiện thỏa đáng thỏa mãn a → b ⇔ V(a) < V(b)
4.1.6. Giải thuật nhãn thời gian vector (vector timestamps)
• Mỗi bộ xử lý pi duy trì một vector Vi n chiều, có giá trị ban đầu là (0, , 0)
• Mọi thông báo pi gửi đi được gán nhãn thời gian giá trị hiện thời của Vi
• Với mỗi sự kiện tính a của pi
– Gán Vi[i] := Vi[i] + 1
– Với mỗi thông báo pi nhận được có nhãn thời gian T
• Cập nhật Vi[j] := max(T[j], Vi[j]) ∀ j ≠ i
– Nhãn thời gian vector V(a) = Vi(a) là giá trị của Vi khi sự kiện a kết thúc
4.1.6. So sánh nhãn thời gian vector
• Cho V1 và V2 là hai vector nguyên n chiều
• Bằng
– V1 = V2 ⇔ V1[i] = V2[i] ∀ i
– E.g. (3,2,4) = (3,2,4)

• Nhỏ hơn hoặc bằng
– V1 ≤ V2 ⇔ V1[i] ≤ V2[i] ∀ i
– E.g. (2,1,4) < (3,2,4)
• Nhỏ hơn
– V1 < V2 ⇔ V1 ≤ V2 nhưng V1 ≠ V2
– E.g. (2,1,4) < (3,2,4)
• Không thể so sánh
– V1 ║ V2 ⇔  V1 ≤ V2 và  V2 ≤ V1
– E.g. (3,2,4) ║(4,1,4)
• Lưu ý
– Các phép so sánh không theo như thứ tự chữ cái
Ví dụ về nhãn thời gian vector
Học viên: Nguyễn Đình Lâm Khánh Trang 20
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
• V(g) = (0,0,1) và V(b) = (2,0,0) là không thể so sánh mặc dù L(g) = 1 và L(b) = 2
4.1.7. Thực hiện α
Xét một thực hiện α trên một mạng đầy đủ
– Mỗi bộ xử lý pi liên tiếp gửi một thông báo đến pi+1, pi+2, , pn-1, p0, , pi-2
• Gọi sự kiện gửi đầu tiên là ai
– Mỗi pi liên tiếp nhận được một thông báo từ pi-1, pi-2, , p0, pn-1, , pi+2
• Gọi sự kiện nhận cuối cùng là bi
III.1.8 Thực hiện α với N=4
4.1.8. Trạng thái kênh truyền
Vấn đề
– Trạng thái hệ thống bao gồm không chỉ trạng thái các
bộ xử lý mà cả trạng thái các thông báo đang di chuyển
• Giải pháp với nhát cắt gần nhất
– Mỗi thành phần của mảng store chứa thêm số thông
báo nhận được (trực tiếp) từ mỗi bộ xử lý hàng xóm
– Để tính nhát cắt nhất quán gần nhất, mỗi pi thực hiện

• Duyệt mảng store từ chỉ số nhỏ nhất đến chỉ số lớn nhất, giả lập lại các bước tính
• Ghi dấu các thông báo định gửi trong quá trình giả lập
• Ngừng giả lập khi tìm thấy m' gần nhất sao cho store[m'] có nhãn vector ≤ K
Giải pháp 1
Học viên: Nguyễn Đình Lâm Khánh Trang 21
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
– Mỗi pi thực hiện
• pi gửi tới mỗi bộ xử lý kề cận pj số thông báo nhận được từ pj theo thông tin trong
store[m']
• pj sau khi kết thúc giả lập sẽ xác định được các thông báo nó định gửi cho pi nhưng
chưa đến (trạng thái kênh truyền)
• Đó là các thông báo thuộc nhát cắt nhất quán gần nhất
• Giải pháp với chụp trạng thái
– Mỗi pi ghi lại chuỗi các thông báo nhận được từ pj giữa thời điểm pi thiết lập biến
answer và thời điểm pi nhận được thông báo đánh dấu từ pj
– Đó là các thông báo đang di chuyển thuộc nhát cắt
nhất quán
4.1.10. Hàng đợi
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)
4.2. GIẢI THUẬT
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à Hs. Đó chính là đồng hồ
logic 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ồ Hr
riêng của mình bằng giải thuật sau đây :
Học viên: Nguyễn Đình Lâm Khánh Trang 22

Loại bỏ
Thêm vào
Đầu Cuối
Nếu H
r,
thì
H
r
:= H
e
+1
Chấm dứt nếu
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
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à Hi(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 :
Đó 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.
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 (Hi(a),i).
Theo định nghĩa, ta có :
4.3. TRÌNH BÀY GIẢI THUẬT
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ồ logic 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
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.
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 :
Trong đó, i, Hinit là thời điểm khởi sự giống nhau cho tất cả các trạm.
Tiêu chí để sắp xếp dựa vào Hi
Học viên: Nguyễn Đình Lâm Khánh Trang 23
a → b ⇔ H
i
(a) < H
i
(b)
a ⇒ b ⇒ (H
i
(a) < H
i
(b)) hay (H
i
(a) = H
i
(b) và i<j)
M
i
= (REL, H
init
, i)
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn

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
+ Khi trạm đang truy cập vào tài nguyên
- Để 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 Mi (T,Hi,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 Hj) 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, Hj,j) < (Ti, Hi,i) then
Begin
Send M(T,Hj,j) đến trạm i
INSERT(Mi,hàngđợi) ‘được sắp xếp theo H
End
+ Khi trạm đang thực thi yêu cầu
Trạm i nhận một thông điệp với đồng hồ logic lớn hơn đồng hồ ở thời điểm hiện
tại của trạm i và yêu cầu của trạm i đang ở vị trí của hàng đợi yêu cầu của nó.
If (H>Hi ) 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
những trạm khác sẽ loại bỏ yêu cầu tương ứng
If state=ranh then xử lý(các thông điệp hàng đợi) ‘sau đó xoá
Send thông điệp giải phóng đến các trạm
Những trạm khác cũng sẽ xoá yêu cầu của nó trong hàng đợi của mình
4.3. KẾT LUẬN
- 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ó 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
Học viên: Nguyễn Đình Lâm Khánh Trang 24
M
i
= (REL, H
init
, i)
Tiểu luận: Hệ phân tán GVHD: PGS-TS. Lê Văn Sơn
- 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.
Học viên: Nguyễn Đình Lâm Khánh Trang 25

×