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

Tiểu luận môn Hệ Phân tán Vấn đề đồng bộ hóa

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 (292.63 KB, 17 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC KỸ THUẬT
oOOo
TIỂU LUẬN
HỆ PHÂN TÁN

ĐỀ TÀI :
 Vấn đề đồng bộ hóa
GIÁO VIÊN GIẢNG DẠY: PGS TS. LÊ VĂN SƠN
Đà nẵng, tháng 06/2014
Đề số 18
I. Đồng bộ hóa nhờ dấu.
II. Tự mình đặt ra 1 bài toán (ví dụ giải phương trình bậc 2), lập trình giải trên máy đơn
bằng PASCAL và trên ASP. Hãy rút ra những kết luận quan trọng về phân tá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 có liên quan với nhau.
Trong giới hạn của tiểu luận kết thúc môn học này, với vấn đề chính việc
“Đồng bộ hóa nhờ dấu”, tiểu luận chủ yếu tập trung phân tích cách giải quyết vấn đề
dựa vào các thuật toán liên quan đến đồng bộ của Lamport . Ví dụ của bài toán kinh
điển – bãi đậu xe ô tô, được sử dụng để minh họa cho các yêu cầu đồng bộ và gắn bó
dữ liệu. nội dung của tiểu luận gồm những phần chính sau :
- Khái quát chung về hệ phân tán.
- Bài toán bãi để xe ôtô và vấn đề đồng bộ hoá giữa các tiến trình.
Bài tập : Bài số 4 chương IV – Trang 195.
Để 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 . Tuy nhiên chắc
hẳn vẫn còn nhiều thiếu sót, kính mong sự góp ý của thầy giáo và các bạn .
PHẦN LÝ THUYẾT
ĐỒNG BỘ HÓA NHỜ DẤU
CHƯƠNG I : KHÁI QUÁT CHUNG VỀ HỆ TIN HỌC PHÂN TÁN
I.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 bản như phần
cứng, hệ điều hành, các chương trình ứng dụng và người sử dụng (NSD) … và có
thể được mô tả như hình sau :
Các thiết bị phần cứng bao gồm các thiết bị xử lý trung tâm, bộ nhớ và các
thiết bị ngoại vi đó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 được hiểu
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ể 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 ở đây được hiểu theo nghĩa rộng, dưới góc độ của 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 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 gọi tắt là hệ điều hành được đặt

sát phần cứng, nó gắn kết chặt chẽ với phần 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 của NSD khác nhau với kết quả và hiệu năng chấp nhận được .
Như vậy, hệ tin học bao gồm ba thực thể : phần cứng, phần mềm và dữ liệu ,
được mô tả ở hình I-2.
Vậy hệ thống tin học (Informatic System ) là một hệ thống bao gồm hai thành
phần cơ bản phần cứng (hardware) và phần mềm (software) gắn bó hữu cơ với nhau
và có khả năng xử lý thông tin.
I.2. Hệ tin học phân tán
I.2.1.Định nghĩa
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 đượ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.
I.2.2. Các thực thể trong hệ phân tán
Hệ phân tán gồm 4 thực thể :
I.2.3. Đặc điểm của hệ phân tán :
Đặc điểm cần nhấn mạnh của hệ là các hệ xử lý thông tin thành phần :
• Không dùng chung hoặc chia sẻ bộ nhớ
• Không sử dụng chung đồng hồ xung nhịp
• Chúng liên lạc với nhau thông qua mạng truyền thông
• Mỗi hệ xử lý có bộ xử lý, bộ nhớ và hệ điều hành riêng của nó.
Thành phần của hệ phân tán bao gồm các hệ thống cục bộ trong đó mỗi một
hay nhiều hệ thống phát các yêu cầu thông tin còn các hệ khác trả lời các yêu cầu có
liên quan đến phần dữ liệu của mình. Nói một cách tổng quát là trong hệ luôn luôn
diễn ra việc thực hiện các công việc do các hệ thống yêu cầu. Các hệ thống truyền
thống như hệ rời rạc hay tập trung không thể đáp ứng nhanh chóng và chính xác các
yêu cầu thông tin từ xa với lưu lượng thông tin lớn.
I.2.4.Các ưu điểm của tài nguyên dùng chung trong hệ phân tá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 chức

năng cơ bản nhất là đảm bảo cung cấp cho người sử dụng khả năng truy cập có kết
quả đến các tài nguyên vốn có và rất đa dạng của hệ thống như tài nguyên dùng
chung.
Việc định nghĩa các tài nguyên của hệ như tài nguyên dùng chung sẽ mang đến cho
hệ những hiệu năng tốt trong khai thác ứng dụng
- 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 hóa các loại hình dịch vụ tin học.
- Bảo đảm tính toàn vẹn của thông tin.
Tuy nhiên nó cũng dẫn đến hàng loạt các vấn đề khó khăn trong việc thiết lập
hệ liên quan việc cấp phát tài nguyên dùng chung cho các tiến trình.
Điều quan trọng là để đảm bảo các chức năng, yêu cầu nêu ra trên, hệ tin học
phân tán cần phải có các cơ chế kỹ thuật đủ mạnh nhằm đồng bộ hóa hoạt động của
các tiến trình và sự trao đổi thông tin với nhau sao cho hệ thống tránh được các
trường hợp có thể dẫn đến bế tắc.
I.2.5.Các thao tác chuẩn của hệ phân tán :
- Tiếp nhận và ghi yêu cầu chỉ dẫn.
- Dịch yêu cầu để có các thông tin cần thiết. Thực hiện một số công việc của
hệ thống cục bộ như kiểm tra quyền truy cập thông tin, lập hóa đơn dịch vụ.
- Gửi kết quả cho hệ thống đã phát yêu cầu.
CHƯƠNG II : BÀI TOÁN BÃI ĐẬU XE Ô TÔ
VÀ VẤN ĐỀ ĐỒNG BỘ GIỮA CÁC TIẾN TRÌNH
II.1 Đặt vấn đề:
Mọi hệ thống tin học, đều cần cung cấp cơ chế đủ mạnh và hiệu quả để có thể
đồng bộ hóa các tiến trình, điều 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á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.
Tương tranh chính là nguyên nhân chính của các xung đột của giữa các tiến trình

muốn truy cập vào 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 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. 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.
Vì vậy, 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 điệp 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 kênh
thuộc hệ thống viễn thông.
II.2 Bài toán bãi để xe ô tô.
II.2.1. Bài toán bãi để xe :
Để rút ra các vấn đề đang đặt ra trong hệ
phân tán về việc đồng bộ hóa các tiến trình. Ta
hãy nghiên cứu một ví dụ kinh điển, đó là bài
toán bãi để xe ô tô, với nội dung được nêu ra như
sau :
Hình II-1 mô phỏng bãi để xe ô tô hiện đại. 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 vào ra của ô tô.
Bài toán nêu ra một số tình huống sau:
Tình huống thứ 1:
Giả sử 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 trạng thái của 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 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.
Tình huống thứ 2:

Nếu ta có bãi để xe với nhiều cổng và tại mỗi cổng có một NBV thì mỗi NBV
chỉ có thể biết 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 (hợp lực) như trường hợp minh
họa của hình trên.
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 NBV giải quyết các xe vào cùng một vị trí trong bãi (tương tranh) do vì
họ thiếu thông tin.
Tình huống thứ 2, đặt ra ở đây liên quan trực tiếp đến vấn đề cung cấp tài
nguyên của hệ, chức năng cung cấp được phân tán trên nhiều trạm của hệ. Trong đó
một người bảo vệ có vai trò như là chương trình cung cấp của bãi để xe, Ở đây, chỗ
để xe được xem là tài nguyên của hệ, các ô tô vào bãi là các tiến trình của hệ .
Như vậy, các NBV phải hợp lực với nhau để phân phối chính xác các chỗ
trống trong bãi, đặc biệt là số lượng chỗ còn trống càng ít (tài nguyên hạn chế) thì
vai trò của hợp lực càng quan trọng.
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.
II.2.2 Ví dụ về không gắn bó:
Để thấy được tầm quan trọng mang tính quyết định của trình tự xử lý thông
điệp đối với yêu cầu gắn bó của hệ, ta hãy tiếp tục xem xét một trường hợp về không
gắn bó của bài toán bãi để xe : 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 NBV để 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 thông tin cho ở Bảng II-1 sau:
Bảng II-2:
cho 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

NBV sẽ có thông tin về 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 trạm.
trật tự
xử lý
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ông
điệp
giá
trị
Thông
điệp
giá
trị
100 100 100 100
1 M1 120 M1 120 M3 90 M2 90
2 M3 108 M2 110 M1 110 M3 81
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 bãi
Bảng II-1
3 M2 98 M3 99 M2 100 M1 101
Bảng II-2: Sự không gắn bó giữa 4 người bảo vệ
II.2.3 Qui tắc cho các thuật toán 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 qui tắc sau:
Stt Qui 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.
Qui tắc thứ ba, 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 của các tiến trình cung cấp. Vấn đề nghiên cứu phương pháp sắp xếp nhằm xác
lập một trật tự đảm bảo cho yêu cầu đồng bộ hóa được trình bày ở phần sau.
II.3 Vấn đề đồng bộ giữa các tiến trình.
Trong các hệ tin học tập trung, vấn đề đồng bộ hóa được giải quyết thông qua
cơ chế loại trừ tương hỗ. Cơ chế này cho phép xác lập trật tự hoàn toàn các sự kiện.
Trong hệ phân tán, việc đồng bộ hóa chủ yếu yêu cầu 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ự đó có thể thể hiện thông qua việc trao
đổi các thông điệp với nhau.
Một tiến trình nào đó cần sử dụng tài nguyên để phát triển công việc của
mình, phải yêu cầu bộ cung cấp một cách hợp thức bằng cách gửi thông điệp yêu
cầu. Như thế, một tiến trình có nhu cầu tài nguyên sẽ bị treo chừng nào tài nguyên
đó còn chưa được giải phóng hay chưa được cung cấp cho nó.
II.3.1 Miền găng :
Miền găng: đoạn chương trình mà truy cập vào tài nguyên dùng chung.
Vấn đề miền găng: các sự truy cập chồng lên nhau có thể dẫn đến các kết quả
khác với truy cập tuần tự. Do đó làm thế nào bảo đảm rằng các tiến trình thi hành
miền găng một cách tuần tự chứ không phải là đồng thời; hay nói cách khác là làm
thế nào tuân theo giải thuật loại trừ tương hỗ.
II.3.2 Phân nhóm các thuật toán truy cập loại trừ tương hỗ:
− Truy cập vào miền găng dựa trên sự xác nhận (contention based): Mỗi
tiến trình xác nhận yêu cầu của nó để truy cập vào miền găng. Hay nói cách

khác, các tiến trình cạnh tranh hay tranh giành nhau quyền truy cập vào miền
găng.
− Truy cập vào miền găng dựa trên (Token based): Việc truy cập vào
miền găng được điều khiển bởi một token. Người giữ token có quyền thi hành
đoạn găng của nó.
− Tổng quát
Một trạm bất kỳ trong hệ thống có thể
+ Yêu cầu miền găng
+ Thi hành miền găng
+ Hoặc không làm gì cả đối với miền găng (thi hành trong đoạn không phải
miền găng).
Các thuật toán nên thỏa mãn các yêu cầu: Không bế tắc, không thiếu, các yêu
cầu được thi hành theo thứ tự chúng được tạo, có thể vẫn hoạt động khi có sự cố tại
một hoặc nhiều trạm.
II.4 Sắp xếp kiểu đóng dấu:
Đóng dấu là hành vi gán giá trị nguyên cho một thông điệp nhằm ghi nhận
thời điểm truyền trên cơ sở tham chiếu đồng hồ lôgic. Tức là trạm phát được gắn
một giá trị gọi là dấu. Giá trị này có tính chất thời điểm cho trạm phát thông tin và
đưa vào đồng hồ lôgic cục bộ của chính trạm . Các đồng hồ này được lấy lại thông
tin qua hội thoại giữa các trạm.
II.4.1 Các khái niệm :
* Đồng hồ lôgic :
Đối với nhiều ứng dụng, các sự kiện không cần lập lịch hay đồng bộ đối với
thời gian thực. Nó chỉ là thứ tự sự kiện hoạt động liên quan. Trong trường hợp như
vậy, đồng hồ lôgic có thể được dùng để biểu thị thứ tự thông tin cho các sự kiện, đặc
biệt trong hệ phân tán, nó khó giữ được đồng hồ vật lý chung giữa tất cả các tiến
trình đang sắp xếp. Đồng hồ lôgic Lamport là khái niệm cơ bản để sắp xếp các tiến
trình và các sự kiện trong hệ phân tán.
Mỗi trạm s đều có trang bị công tơ với các giá trị nguyên gọi là H
s .

Đó chính
là đống hồ lôgic 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 của H
e
. Khi nhận được thông điệp, trạm r
cập nhập đồng hồ H
r
riêng của mình bằng giải thuật sau :
Nếu H
r
, thì
H
r
:= E+1
Chấm dứt nếu sự kiện “nhận thông điệp” lúc này được ghi nhận bằng giá trị
của H
r
. Thuật toán này đảm bảo rằng thời gian nhận thông điệp là sau thời gian nó
phát đi.
* Trật tự từng phần:
Trong thực tế một số hệ
thống khi đồng bộ hóa chỉ đòi hỏi trật
tự từng phần. Chính vì vậy, trật tự
hóa từng phần giữa các sự kiện mà
tiến trình của nó cần phải đồng bộ là vấn đề cần phải quan tâm .
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ó trước” (→) hay “ở ngay trước”:
Trật tự các sự kiện được xác định dựa trên các nguyên tắc sau:
- Nếu A và B là hai sự kiện của cùng một trạm và A được thực hiện trước B
trước B thì trật tự cục bộ ta có: A→B

- Nếu A là phát thông điệp từ một trạm nào đó và B là nhận thông điệp thì ta
có A→B. (nhân-quả)
- Nếu A→B và B→C, thì A→C. (bắc cầu)
* Gắn thời gian lôgic với các sự kiện
- Các đồng hồ lôgic: gán một số cho mỗi sự kiện cục bộ.
- Hệ thống các đồng hồ lôgic phải chính xác :
Điều kiện đồng hồ :
∀ sự kiện a,b : nếu a → b thì H(a) < H(b)
- Để thực thi các đồng hồ thỏa mãn điều kiện đồng hồ, ta có thể áp dụng thuật
toán đóng dấu thời gian .
II.4.2 Đồng bộ theo trật tự tổng quát chặt chẽ (Lamport):
Trật tự từng phần chỉ có thể áp dụng cho một số hệ thống , điều này có nghĩa
là một số hệ thống có thể gắn bó được thông qua việc sắp xếp các sự kiện theo trật
tự bằng quan hệ “có trước”. Tuy nhiên có rất nhiều hệ phân tán các sự kiện không
thể sắp được bằng trật tự từng phần, do vậy phải cần đến trật tự chặt chẽ (=>)của
các sự kiện.
* Giải thuật đóng dấu thời gian của Lamport
Đồng hồ lôgic cho phép đóng dấu thời gian, nhằm xác lập trật tự cho từng sự
kiện trong hệ phân tán để với mỗi cặp sự kiện A và B ta có: nếu A có trước B (A →
B) thì đồng hồ lôgic của A nhỏ hơn đồng hồ lôgic của B.
Nguyên tắc thiết lập: Mỗi trạm S đều có trang bị công tơ với các giá trị
nguyên Hs đó chính là đồng hồ lôgic, hoạt động theo các qui tắc sau:
Gia tăng H
i
thêm một trị số giữa hai sự kiện kế tiếp
Trạm e phát thông điệp m , ghi dấu dấu thời gian cho các thông điệp m gửi đi,
T
m
= H
e

(a)
Khi nhận được thông điệp m, trạm nhận r cập nhật đồng hồ H
r
riêng theo :
H
r
= T
m
+ 1 (điều này đảm bảo tính nhân-quả theo trật tự từng phần)
a
H
i
H
i
+1

a
H
i
H
i
+1
(T
m
= H
e
(a) )

P
j

H
r
H
r
= T
m
+ 1
(m, T
m
,s)
Trật tự sự kiện toàn bộ: Một sự kiện a sinh ra trên trạm i được đánh dấu bởi
đồng hồ cục bộ H
i
, nến a và b là hai sự kiện trên hai trạm i và j ta quan hệ sau:
a ⇒ b ⇒ H
i
(a) < H
j
(b) hay H
i
(a) = H
j
(b) và i < j
II.4.3 Thuật toán loại trừ tương hỗ trên cơ sở đóng dấu của Lamport
Thuật toán này được Lamport đưa ra, nó sử dụng cơ chế đóng dấu thời gian
cho việc đồng bộ các đồng hồ lôgic.
-Các giả định:
Chúng ra giả định mô hình mạng kết nối hoàn toàn trong đó các tiến trình liên
lạc thông qua các kênh FIFO tin cậy. Tức là, các thông điệp không thể sắp xếp lại
theo trật tự khác.

Các giả định được thực thi một cách dễ dàng ở tầng giao vận.
-Các kiểu thông điệp:
+ (REQ, H
i
, i) : 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.
+(ACQ, H
i
, i) : Thông điệp ACQ hồi âm bởi trạm i, khi trạm i đã nhận
được thông điệp REQ từ trạm phát .
+ (REL, H
i
, i) : Thông điệp REL được phát đi cho tất cả các trạm, khi i đã
rời khỏi đoạn găng.
-Thuật toán:
Khi một tiến trình tại trạm S
i
muốn thi hành đoạn găng, nó sẽ gửi thông điệp
REQ có đánh dấu thời gian cho tất cả các trạm trong hệ thống .
Mỗi trạm, S
i
, duy trì một hàng đợi chứa các thông điệp yêu cầu được sắp xếp
theo trật tự các dấu thời gian; các đồng hồ lôgic và quan hệ trật tự toàn bộ được sử
dụng để gắn các dấu thời gian.
Khi một trạm nhận được yêu cầu, nó sẽ đưa thông điệp đó vào hàng đợi yêu
cầu của nó theo thứ tự dấu thời gian và gửi một thông điệp trả lời ACQ. Nếu cần,
quan hệ trật tự toàn bộ được sử dụng để phá vỡ các sự ràng buộc.
Ý tưởng chung là một tiến trình không thể thi hành đoạn găng của nó cho đến
khi nó nhận được trả lời từ tất cả các trạm khác.
Tóm lại

Một trạm thi hành miền găng của nó khi:
Nhận được thông điệp trả lời ACQ từ tất cả các trạm còn lại .
Yêu cầu REQ của nó là ở trên đỉnh của hàng đợi cục bộ của nó.
Khi một trạm hoàn thành miền găng của nó, nó sẽ gửi khuyến nghị giải phóng
REL đến tất cả các trạm. Yêu cầu của nó được loại khỏi tất cả các hàng đợi tại thời
điểm này. Nếu các trạm khác đang chờ để thi hành miền găng của chúng, một trong
các trạm đó bây giờ có thể bắt đầu thực hiện miền găng của mình.
Như vậy:
Độ trễ đồng bộ: T (trong đó T thời gian trung bình truyền thông điệp) khi
nhận được thông điệp giải phóng, tiến trình tiếp theo có thể bắt đầu thi hành.
Loại trừ tương hỗ là đạt được: Các dấu thời gian là duy nhất, vì vậy tất cả các
hàng đợi sẽ giữ các yêu cầu trong cùng một thứ tự. Chỉ một tiến trình duy nhất sẽ
nằm ở đỉnh của các hàng đợi.
Các yêu cầu được cấp quyền dựa trên cơ sở của trật tự dấu thời gian và các
tiến trình gửi các thông điệp REL.
Ví dụ:
Xét một mạng bao gồm ba trạm, trong số đó có hai trạm 1 và 2 yêu cầu vào đoạn găng tại thời
điểm 2 của đồng hồ lo gics của chúng. Tập hợp các thông điệp được truyền giữa chúng với
nhau có thể mô tả trong hình vẽ sau:
Ta nhận thấy rằng:
- Trạm 1 vào đoạn găng tại H1 = 8
- Trạm 2 vào đoạn găng tại H2 = 11
Kết luận:
Các dấu được cung cấp bởi đồ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.
Trân một trạm cho trước, việc nhận một thông điệp có đóng dấu không thể cho nó biết được
còn sự kiện nào đến trước sự kiện đó đang ở trên đường. Như thế, ta còn phải nhận thông điệp
từ các trạm khác còn lại.
Trạm 1 Trạm 2 Trạm 3

1 1 1
2 REQ,2,2 REQ,2,2
REQ,2,1
REQ,2,1
2
3
7
8
9
10
11
3
5
6
10
11
ACQ,4,3
ACQ,6,3
ACQ,6,2
ACQ,9,1
REL,10,1
H1 H2 H3
Đoạn găng
của trạm 1
Đoạn găng
của trạm 2
3
4
5
6

REL,10,1
Loại trừ tương hỗ nhờ dấu

×