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

Tiểu luận môn hệ thống phân tán CÔNG CỤ HÓA TIẾN TRÌNH CỦA HỆ THỐNG TRONG TIN HỌC

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 (236.06 KB, 24 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
ĐỀ TÀI :
CÔNG CỤ HÓA TIẾN TRÌNH
CỦA HỆ THỐNG TRONG TIN HỌC
SINH VIÊN : NGUYỄN ĐĂNG HUY
LỚP : KHMT K10
CBHD : PGS.TS LÊ VĂN SƠN
ĐÀ NẴNG, 07/2014
LỜI MỞ ĐẦU
Hệ tin học phân tán là hệ thống rất đa dạng, đa diện, phức tạp về mặt cấu trúc, là
vùng tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan
tâm và đổi mới rất nhanh chóng.
Một trong những tư tưởng lớn của các hệ phân tán là phân tán hóa các quá trình
xử lý thông tin và thực hiện các công việc đó trên các trạm xa nhau. Đó là cơ sở để
xây dựng các hệ ứ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ử. . .
Phân tán hóa các quá trình xử lý, tạo nên ưu thế của hệ có thể đáp ứng việc giải
quyết các bài toán lớn, một cách nhanh chóng. Nhưng cũng tạo tính phức tạp, nan
giải trong các yêu cầu thiết lập hệ. Việc hợp lực của các thành viên trong hệ, dẫn đến
hàng loạt các vấn đề như: định danh, cấp phát tài nguyên dùng chung (đảm bảo tránh
tương tranh), giải quyết sự cố tạo nên tính tin cậy của hệ. . . Để đả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. Với hệ phân tán
(không có bộ nhớ chung, bộ tạo xung đồng hồ chung), khả năng gắn bó và việc đồng
bộ hóa cho hệ chỉ dựa trên phương tiện duy nhất là truyền thông điệp, nên lời giải
cho yêu cầu đồng bộ hóa thường chỉ dừng lại ở mức chấp nhận được đối với mỗi hệ .
Về mặt bố cục, ngoài phần mở đầu, tài liệu tham khảo và mục lục, báo cáo được
chia làm 3 chương, chương 1 tổng quan về hệ phân tán, chương 2 nói về các công cụ


đồng bộ hoá các tiến trình trong hệ thống tin học và chương 3 đề ra các giải pháp
thích hợp đối với các sự cố ở một trạm nào đó của một bộ tuần tự tuần hoàn trên
vòng tròn ảo.
Em rất chân thành cảm ơn Thầy giáo PGS-TS. Lê Văn Sơn đã cung cấp kiến thức,
tài liệu để tôi hoàn thành báo cáo này.
Do thời gian và trình độ hạn chế, đề tài nhất định không tránh khỏi sai sót. Kính
mong sự chỉ bảo của Thầy giáo hướng dẫn cũng như các Anh, Chị trong lớp. Xin
chân thành cảm ơn.
MỤC LỤC
TỔNG QUAN VỀ HỆ TIN HỌC PHÂN TÁN 2
.I Hệ tin học phân tán 2
.I.1. Định nghĩa 2
.I.2. Đặc điểm cơ bản của hệ tin học phân tán 2
.I.3. Ưu điểm và khuyết điểm của hệ tin học phân tán 3
CÁC CÔNG CỤ ĐỒNG BỘ HÓA CÁC TIẾN TRÌNH TRONG HỆ
THỐNG TIN HỌC 5
.I Các khái niệm 5
.I.1. Thời gian lôgic và trật tự sự kiện từng phần 5
.I.2. Gắn thời gian lôgic với các sự kiện 8
.I.3. Thuật toán đóng dấu thời gian của Lamport 8
.II Các thuật toán loại trừ tương hỗ 10
.II.1. Thuật toán giả phân tán : Hàng đợi tập trung 10
.II.2. Thuật toán Lamport: Hàng đợi phân tán 11
.II.3. Thuật toán Ricart và Agrawala 15
BÀI TẬP 18
.I Cơ sở lý thuyết 18
.I.1. Bộ tuần tự 18
.I.2. Vòng tròn ảo 19
.II Giải quyết bài toán 19
[1] PGS. TS Lê Văn Sơn. Hệ tin học phân tán. Nhà xuất bản ĐHQG Tp HCM-200222

[2] Modern Operating System – Andrwe S. Tanebaun, prentice Hall 1994 22
[3] Distributed Systems: Concepts and Design - Addison-Wesley 2001 22
[4] Operating System Concept – Silberschatz, Galvin and Gagne @ 2002 22
i
CHƯƠNG 1
TỔNG QUAN VỀ HỆ TIN HỌC PHÂN TÁN
.I Hệ tin học phân tán
.I.1. Định nghĩa
Hệ tin học phân tán là hệ thống rất đa dạng, đa diện, phức tạp về mặt cấu trúc, là
vùng tri thức hiện đại đang được các chuyên gia công nghệ thông tin đặc biệt quan
tâm và đổi mới rất nhanh chóng
Hiện nay, đứng trên những 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 sau đây:
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 hệ điều hành.
Từ định nghĩa, người ta có thể xem hệ phân tán như là một tập hợp bao gồm các
bộ xử lý, các bộ vi xử lý với bộ nhớ và đồng hồ nhịp độc lập. Có nghĩa là 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ộ
.I.2. Đặc điểm cơ bản của hệ tin học phân tán
Hệ tin học phân tán gồm bốn thực thể như sau:
Hệ thống phần mềm: gồm hệ điều hành, các chương trình cơ sở & các chương
trình ứng dụng
Nguyễn Đăng Huy 2
Hệ thống
truyền
thông
Hệ thống

truyền
thông
Các hệ
thống
phần
mếm
Các hệ
thống
phần
mếm
Hệ thống
dữ liệu
Hệ thống
dữ liệu
Tập hợp
phần
cứng
Tập hợp
phần
cứng
Tiểu luận: Hệ tin học phân tán
Tập hợp phần cứng: gồm những máy tính cụ thể, những mạng nhỏ nối với nhau để
trở thành mạng lớn hơn.
Hệ thống truyền thông (đường truyền): gồm các thiết bị giao tiếp
Hệ thống dữ liệu: gồm các Cơ sở dữ liệu
Nguyên tắc xây dựng một hệ phân tán có thể liệt kê trong bốn điểm sau:
STT Tên gọi Thuyết minh
1 Chia sẻ tài nguyên Một tiến trình trên một trạm nào đó có thể yêu cầu
được cung cấp tài nguyên dùng chung ở một trạm
khác

2 Liên lạc Khi hệ thống đã được mắc nối với nhau, các thực
thể của hệ có thể trao đổi thông tin cho nhau
3 Tin cậy Một trạm của hệ bị sự cố không làm cho toàn hệ bị
ảnh hưởng, mà ngược lại, công việc của trạm đó
được phân cho các trạm khác đảm nhiệm. Ngoài ra,
trạm bị sự cố có thể được tự động phục hồi lại các
trạng thái trước khi bị sự cố hay trạng thái ban đầu
của nó
4 Tăng tốc Đây là một khái niệm mới về phân tán tải. Một
tính toán lớn nào đó, nếu chỉ sử dụng một trạm thì
thời gian tính toán sẽ rất lớn. Tính toán này được
chia nhỏ và thực hiện song song trên các trạm, tránh
tình trạng trạm bị quá tải.
.I.3. Ưu điểm và khuyết điểm của hệ tin học phân tán
Hệ tin học phân tán thực hiện hang 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 khả năng truy cập đến các loại tài
nguyên vốn có và rất đa dạng của hệ thống như những tài nguyên dùng chung. Ưu
điểm của điều đó được thể hiện trong bảng sau:
STT Ưu điểm so với hệ tập trung
1 Tính kinh tế. Cho tỉ số giá/hiệu suất tốt hơn
2 Tăng tốc độ bình quân trong tính toán, xử lý. Nâng cao hiệu suất
thông qua song song hóa
3 Thực hiện công việc chung hay chia sẻ công việc. Có sức mạnh
của nhiều máy tính cộng lại
3
Tiểu luận: Hệ tin học phân tán
4 Tính phân tán. Thích hợp với các hệ thống có tính phân tán
5 Cái thiện tình trạng luôn luôn sẵn sàng của các loại tài nguyên
6 Độ tin cậy. Hệ thống vẫn làm việc tốt khi có máy bị lỗi ngừng làm
việc

7 Có khả năng mở rộng. Có thể mở rộng hệ thống theo từng bước
8 Đảm bảo tính toàn vẹn của thông tin
Ưu điểm so với các máy tính riêng lẻ
9 Khả năng chia sẻ dữ liệu. Cho phép nhiều người dùng truy cập đến
1 CSDL chung
10 Khả năng chia sẻ thiết bị. Cho phép người dùng chia sẻ các thiết bị
đắt tiền
11 Khả năng truyền thông. Cho phép trao đổi thông tin giữa người
dùng và người dung một cách dễ dàng
12 Tính mềm dẻo. Chia sẻ công việc cho nhiều máy một cách hiệu
quả
13 Đơn giản thiết kế thông qua chuyên dụng hóa
Bên cạnh những ưu điểm, hệ thống phân tán cũng có những nhược điểm của mình.
Để đảm bảo các chức năng, yêu cầu như trên, hệ phân tán phải có các yêu cầu 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. Ngoài ra,
trong hệ, người ta còn cần phải giải quyết hang loạt các vấn đề mới phát sinh mà
trước đây chưa từng gặp trong các hệ thông thường.
STT Nhược điểm của hệ thống phân tán
1 Phần mềm. Sự phức tạp trong cách thiết kế, xây dựng và sử dụng
phần mềm cho hệ thống phân tán
2 Truyền thông mạng. Phải xử lý các vấn đề liên quan đến truyền
thông mạng như sự chậm trễ, sự mất mát dữ liệu
3 Tính bảo mật: người dùng dễ truy cập = dễ tiết lộ thông tin
4
CHƯƠNG 2
CÁC CÔNG CỤ ĐỒNG BỘ HÓA CÁC TIẾN
TRÌNH TRONG HỆ THỐNG TIN HỌC
Trong một hệ thống cho phép các tiến trình liên lạc với nhau, bao giờ nó cũng cần
cung cấp kèm theo những cơ chế đồng bộ hóa để bảo đảm hoạt động của các tiến

trình đồng hành không tác động sai lệch đến nhau vì các lý do sau đây:
- 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.
- 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.
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 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ệ 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.
.I Các khái niệm
.I.1. Thời gian lôgic và trật tự sự kiện từng phần
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. Tuy
nhiê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ải quyết.
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.
Trở lại năm 1979, Lamport đã đưa ra rằng hai sự kiện từ các trạm khác nhau chỉ có
thể có trật tự nếu chúng được tách rời với nhau bằng cách gửi và nhận thông điệp.
Ngược lại, cho dù một sự kiện xảy ra trước sự kiện khác theo thời gian, không có
cách nào cho sự kiện thứ hai có thể quan sát trật tự này và vì vậy, không có cách nào

cho sự chính xác của nó phụ thuộc vào nó. Giả định ở đây là không có sự quan sát
Nguyễn Đăng Huy 5
bên ngoài của trật tự sự kiện. Nếu sự chính xác của hệ thống phụ thuộc vào trật tự
được quan sát bởi con người, ví dụ, thì sự quan sát Lamport không áp dụng. Tuy
nhiên, sự chính xác trật tự chỉ phục thuộc vào sự đồng bộ bên trong của các sự kiện
và vì thế định nghĩa của Lamport có thể áp dụng.
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” (→):
Bây giờ ta xem xét về trật tự sự kiện:
Các sự kiện trên P có quan hệ như thế nào với các sự kiện trên Q?
Các sự kiện nào của P xảy ra trước các điều kiện nào của Q?
Trật tự từng phần của các sự kiện:
P
1
→ P
2
→ P
3
, và
Q
1
→ Q
2
→ Q
3
Nguyễn Đăng Huy 6


a
b

P
1.
a “có trước” b (a

b)

a
P
2.
a “có trước” b (a

b)

b
Q

3.
a
P
a “xảy ra trước” c (a

c) - bắc cầu -

b
Q

c
P
1
P

2
P
3
Q
1
Q
2
Q
1
P
Q
P
1
P
2
P
3
Q
1
Q
2
Q
1
P
Q
thông điệp
Tiểu luận: Hệ tin học phân tán
Nếu P
1
là sự kiện phát thông điệp và Q

2
là sự kiện nhận tương ứng thì:
P
1
→ Q
2
Trật tự các sự kiện được định nghĩa như sau:
− Nếu A và B là hai sự kiện của cùng một trạm và A xảy ra trước B thì 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.
− Nếu A→B và B→C, thì A→C.
Sơ đồ của “ có trước ”:
+ a → b có nghĩa: chúng ta có thể đi từ a đến b theo sơ đồ bằng cách di chuyển
về phía trước theo thời gian dọc theo các đường tiến trình và thông điệp, ví dụ
p1 → r4
+ Chúng ta nói rằng a tác động nhân quả đến b
+ Hai sự kiện là hợp lực nếu chúng có tác động nhân quả với nhau, ví dụ p3 và
q3 là hợp lực.
+ Cho dù q3 xảy ra tại thời điểm vật lý sớm hơn p3 , tiến trình P không biết tiến
trình Q đã làm gì tại thời điểm q3 cho đến khi nó nhận được thông điệp tại thời
điểm p4.
7
p2
p1
p3
p4
q1
q2
q3
q4

q5
q6
r1
r2
r3
r4
P RQ
Tiểu luận: Hệ tin học phân tán
.I.2. 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ộ nhưng không liên quan đến
thời gian vật lý.
− Hệ thống các đồng hồ lôgic phải chính xác :
− Hay nói cách khác:
− Làm thế nào chúng ta có thể thực thi các đồng hồ thỏa mãn Điều kiện Đồng hồ?
Bằng thuật toán đóng dấu thời gian của Lamport – cung cấp một tập hợp các
quy luật thực thi đơn giản.
.I.3. Thuật toán đóng dấu thời gian của Lamport
− Đồng hồ lôgic là thuật toán cho phép đóng dấu 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.
− Các quy luật:
+ Quy luật 1: Mỗi tiến trình P
i
gia tăng C
i
thêm một trị số giữa hai sự kiện thành
công
+ Quy luật 2: Mỗi tiến trình Pi đóng dấu thời gian cho các thông điệp m gửi đi,
T
m

= C
i
(a)
+ Quy luật 3: Khi nhận được thông điệp m, tiến trình P
j
đặt lại giá trị C
j
:
8
∀ sự kiện a,b : nếu a

b thì C(a) < C(b)
Điều kiện đồng
hồ

a
Pi

b
Pj

c
Ci (a) < Cj (b) và Cj (b) < Cj (c)

P
i
a
C
i
C

i
+1

P
i
a
C
i
C
i
+1
(m, T
m
= C
i
(a) )
Tiểu luận: Hệ tin học phân tán
C
j
= max (C
j
, T
m
) + 1
− Trật tự sự kiện toàn bộ: giả sử là các đồng hồ thỏa mãn Điều kiện Đồng hồ, ta
định nghĩa quan hệ sau:
với các sự kiện a trên Pi và b trên P
j

− Trật tự từng phần với trật tự toàn bộ

+ Chú ý rằng quan hệ “có trước”chỉ định nghĩa trật tự từng phần của các sự kiện.
Điều này có nghĩa là trong khi một số sự kiện được sắp xếp trật tự bằng quan
hệ “có trước”, vẫn còn một số sự kiện không được sắp xếp theo thứ tự
+ Thỉnh thoảng chúng ta cần đến trật tự toàn bộ của các sự kiện.
+ Trật tự toàn bộ sắp xếp thứ tự cho từng sự kiện để tất cả các trạm đồng ý với
trật tự này.
+ Lamport định nghĩa trật tự toàn bộ dựa trên quan hệ “có trước”, nó gán cho
mỗi trạm một số duy nhất và sau đó sử dụng số này để lập trật tự cho các sự
kiện không được sắp xếp thứ tự bằng quan hệ “có trước”.
+ Trật tự nhất quán của các sự kiện phát:
+ Định dạng thông điệp từ P
i
: (m, T
m
, i)
+ Tại tiến trình Pi, một sự kiện phát (m, T
m
, j) từ P
j
được gọi là có trước sự kiện
phát (n, T
n
, k) từ P
k
nếu :
Nếu T
m
< T
n
, hoặc

Nếu T
m
= T
n
và j < k
+ Chú ý, đây là trật tự ⇒
9

P
j
C
j
C
j
= max (C
j
, T
m
) + 1
(m, T
m
)
a
a

b nếu
C
i
(a) < C
j

(b)
hoặc
C
i
(a) = C
j
(b) và i < j
P1 P2 P3 P4
0 0 0 0
(a,1,1)
(b,1,4)
3
2
2
3
2
2
Tiểu luận: Hệ tin học phân tán
.II Các thuật toán loại trừ tương hỗ
.II.1. Thuật toán giả phân tán : Hàng đợi tập trung
− Có một trạm là trạm điều khiển đảm nhiệm việc cung cấp tài nguyên.
− Các trạm khi yêu cầu miền găng sẽ gửi các thông điệp đến trạm điều khiển.
− Trạm điều khiển duy trì một hàng đợi chứa các yêu cầu và cấp cho mỗi trạm
quyền truy cập vào miền găng theo lần lượt.
− S
d
(trễ đồng bộ) = 2T
− Thông lượng: 1/(2T + E)
− Tiến trình trạm điều khiển với Hàng đợi Yêu cầu (Request Queue):
10

1 2 3
C
REQ
A
CK
1
Tiến trình 1 yêu cầu truy cập vào miền
găng CS. Điều phối viên đưa yêu cầu
vào hàng đợi và cấp quyền truy cập vì
lúc đầu hàng đợi trống.
1 2 3
C
REQ
1
Không hồi âm
2
Tiến trình 2 yêu cầu truy cập vào CS.
Điều phối viên xếp yêu cầu vào hàng
đợi và từ chối không cho truy cập vì
hàng đợi không trống.
Tiểu luận: Hệ tin học phân tán
− Ưu điểm: chính xác, công bằng, không đói, đơn giản
− Nhược điểm: điểm sự cố đơn, hoạt động theo cách cổ chai
.II.2. Thuật toán Lamport: Hàng đợi phân tán
− Khái quát:
+ Thuật toán là sự suy rộng của Hàng đợi tập trung cho việc cài đặt phân tán.
+ Thuật toán này được Lamport (1978) đư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, C
i
, i) : Một yêu cầu cho việc truy cập vào miền găng CS của tiến trình
Pi. Yêu cầu này được phát đi cho tất các các tiến trình khác.
+ (REP, C
i
, i) : Hồi âm từ tiến trình Pi cho tiến trình Pj khi Pi nhận được yêu cầu
từ Pj.
+ (REL, C
i
, i) : Thông điệp giải phóng từ Pi thông báo cho biết nó đã rời khỏi
CS. Thông điệp này được gửi cho tất cả các tiến trình khác.
− Các biến tiến trình:
+ C
i
: Đồng hồ cục bộ của Pi, khởi tạo từ 0.
+ q
i
: Hàng đợi [0 … n-1] chứa các thông điệp.
11
Tiến trình 1 rời khỏi CS. Điều phối
viên loại bỏ 1 khỏi hàng đợi và cấp
quyền truy cập cho tiến trình đầu tiên
trong hàng đợi – đó là tiến trình 2
1 2 3
C

REL
ACK
2
Tiểu luận: Hệ tin học phân tán
− 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 kể có trạm S
i
.
+ 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ồ logic 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 REP. 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. Các thông điệp trả lời sẽ
“flush out” các yêu cầu bất kỳ từ các tiến trình khác, để chúng ta biết hàng đợi
được cập nhật.
+ Đặc biệt hơn nữa, một trạm thi hành miền găng của nó khi:
1) Nhận được thông điệp trả lời từ tất cả các trạm còn lại và
2) 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.

+ Hoạt động: 3(N-1) thông điệp cần thiết cho mỗi miền găng được thi hành. (N-
1) thông điệp REQ, (N-1) thông điệp REP và (N-1) thông điệp REL.
+ Độ 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.
− Thuật toán yêu cầu của P
i
:
12
ci ← ci + 1 ;
broadcast (REQ, ci, i) ;
qi [i] ← (REQ, ci, i) ;
wait

∀ j = i timestamp(qi[i]) < timestamp(qi[j]) ;
< CSi >
ci ← ci + 1 ;
broadcast (REL, ci, i) ;
qi [i] ← (REL, ci, i) ;
Tiểu luận: Hệ tin học phân tán

trong đó - timestamp( (m, c, i ) ) = (c, i)
- (c, i) < (d, j) nếu c < d hoặc ( c = d và i < j )
− Thuật toán nhận thông điệp của P
i
:
13
on receipt

of (REQ, k, j) begin
ci ← max(ci , k) + 1 ;
qi [j] ← (REQ, k, j) ;
send(REP, ci, i) to j ;
end ;
of (REL, k, j) begin
ci ← max(ci , k) + 1 ;
qi [j] ← (REL, k, j) ;
end ;
of (REP, k, j) begin
ci ← max(ci , k) + 1 ;
if type of (qi [j]) = REQ then
qi [j] ← (REP, k, j) ;
end ;
Tiểu luận: Hệ tin học phân tán
− Ví dụ 1:
− Ví dụ 2:
− Sự chính xác:
14
C
2
= 1
q2 = [(REL, 0, 1),
(REQ, 1, 2)]
C
1
= 3
q1 = [(REQ, 3, 1),
(REQ, 1, 2)]
C

1
= 5
q1 = [(REQ, 3(1), 1),
(REQ, 1, 2)]
C
2
= 3
q2 = [(REP, 2, 1),
(REQ, 1, 2)]
C
1
= 2
q1 = [(REL, 0, 1),
(REQ, 1, 2)]
C
2
= 4
q2 = [(REQ, 3(1), 1),
(REQ, 1, 2)]
(REQ, 1, 2)
(REP, 2, 1)
(REQ, 3, 1)
(REP, 4, 2)
(REQ, 1, 1)
C
2
= 3
q2 = [(REQ, 1, 1),
(REQ, 1, 2)]
C

1
= 2
q1 = [(REQ, 1, 1),
(REQ, 1, 2)]
(REQ, 1, 2)
(REP, 2, 1)
(REQ, 1, 1)
C
2
= 1
q2 = [(REL, 0, 1),
(REQ, 1, 2)]
C
1
= 1
q1 = [(REQ, 1, 1),
(REL, 0, 2)]
C
2
= 2
q2 = [(REQ, 1, 1),
(REQ, 1, 2)]
(REP, 2, 2)
C
1
= 3
q2 = [(REQ, 1, 1),
(REQ, 1, 2)]
Tiểu luận: Hệ tin học phân tán
+ Loại trừ tương hỗ: Giả sử rằng P

i
và P
j
đang ở trong CS
i
và CS
j
tại cùng một
thời điểm. Đồng thời, giả sử thời gian lôgic t
i
của yêu cầu mới nhất của P
i
nhỏ
hơn t
j
, thời gian lôgic của yêu cầu mới nhất của P
j
.

Bằng phương pháp FIFO, (REQ, t
i
) phải đã ở trong hàng đợi q
j
trước CS
j
.
Vì vậy, không có thông điệp REP đã đi vào vào hàng đợi q
j

timestamp(qj [i]) = ti. Mâu thuẫn.

+ Khô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.
.II.3. Thuật toán Ricart và Agrawala
− Mục tiêu là để giảm việc chuyển thông điệp bằng cách kết hợp các thông điệp
REL và REP.
− Nếu một trạm đang thi hành miền găng khi một yêu cầu REQ đến, hoặc nếu yêu
cầu đang chờ của chính nó có dấu thời gian sớm hơn, nó không đáp ứng yêu cầu
đó ngay lập tức. Thay vào đó, nó chờ cho đến khi nó ra khỏi miền găng của nó.
Tại thời điểm đó, nó có thể gửi một thông điệp hồi âm/giải phóng đến tất cả các
yêu cầu đang chờ.
15
CS
i
CS
j
(REQ, t
i
)
(REQ, t
j
)
t
i
< t
j
ti < tj < timestamp(qj [i])
Tiểu luận: Hệ tin học phân tán
− Một trạm sẽ phải chờ cho đến khi nó nhận được trả lời từ tất cả các trạm còn lại
trước khi đi vào miền găng của nó, và yêu cầu của nó vẫn phải còn nằm ở đỉnh
của hàng đợi.

− Thuật toán này yêu cầu 2(N-1) thông điệp: một nửa cho các yêu cầu, nửa còn lại
để trả lời.
− Các thời gian lôgic được tạo ra như trong thuật toán Lamport (Hàng đợi phân
tán).
− Phần yêu cầu của Pi :
+ Gửi đi thông điệp REQ cho tất cả các tiến trình như trong thuật toán Lamport.
+ Truy cập vào CS
i
sau khi P
i
nhận được thông điệp ACK từ tất cả các tiến trình
khác.
− Phần thu của P
i
khi nhận được thông điệp REQ từ P
j
:
1. Nếu P
i
không muốn truy cập vào miền găng CS
i
của nó (nó chưa gửi đi
thông điệp REQ), thì P
i
trả lời với thông điệp ACK.
2. Nếu P
i
đang ở trong miền găng CS
i
thì Pi hoãn lại việc hồi âmcho đến khi

nó rời khỏi miền găng CS
i
.
3. Nếu Pi muốn truy cập vào miền găng CS
i
(nó đã gửi cho tất cả các tiến
trình khác thông điệp REQ), thì P
i
so sánh thời gian lôgic t
i
của thông điệp
yêu cầu của chính nó với thời gian lôgic t
j
của yêu cầu từ P
j
:
– Nếu t
i
> t
j
thì P
i
trả lời với thông điệp ACK.
– Nếu t
i
< t
j
thì P
i
hoãn lại việc hồi âm (cho đến sau khi Pi kết

thúc CS tiếp theo).
− Các xung đột được giải quyết nhờ vào yêu cầu “sớm hơn”, được xác định bởi các
thời gian lôgic.
− Ví dụ:
16
Tiểu luận: Hệ tin học phân tán
− Sự chính xác:
+ Loại trừ tương hỗ: Giả sử rằng P
i
và P
j
đang ở trong CS
i
và CS
j
tại cùng một
thời điểm. Đồng thời, giả sử là thời gian lôgic t
i
của yêu cầu mới nhất của P
i
nhỏ hơn t
j
, thời gian lôgic của yêu cầu mới nhất của P
j
.
+ Không đói: Thỏa mãn
17
(1,1) < (1,2)
hoãn hồi âm
(REQ, 1,

2)
(REQ, 1,
1)
C
2
= 1C
1
= 1
A
CK
đi vào CSi
(1,1) < (1,2)
ra khỏi CSi
A
CK
đi vào CS
j
CS
i
CS
j
(REQ, t
i
)
(REQ, t
j
)
t
i
< t

j
t
i
’ > t
j
> t
i
mâu thuẫn là
receive

send
Pi đã gửi đi REQ và
hoãn lại việc hồi âm
CHƯƠNG 3
BÀI TẬP
Với một bộ tuần tự tuần hoàn trên vòng tròn ảo sẽ đặt ra nhiều vấn đề khi bị sự cố
ở một trạm nào đó.
1. Trạm bị sự cố không thể tự phục vụ các số mà nó đã rút được. Trong trường
hợp đó, cần phải có một giải thuật có tính chất mặc định để sắp xếp lại.
2. Khi một trạm có Jeton lại bị sự cố, nó giữ luôn jeton đó. Người hàng xóm
bên phải phải tái sinh jeton mới. Nếu trạm sự cố đã rút số, phép toán này là
nguyên nhân lờ đi người bên phải. Hay trạm trước khi sự cố đã có thể phục
vụ số được rút.
3. Một trạm vào lại trong mạng cần phải tìm một giá trị thích hợp của jeton.
Bạn hãy phân tích các tình huống khác nhau và đề ra các giải pháp (chiến lược)
thích hợp.
.I Cơ sở lý thuyết
.I.1. Bộ tuần tự
Bộ tuần tự là đối tượng đồng bộ cung cấp cho mỗi yêu cầu một số nhằm xác lập
trật tự.

Để cho 2 yêu cầu kế tiếp nhau thì 2 số liên tục nhau được cung cấp. Giá trị 0 được
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 Phieu(S). Mỗi 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 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:
• Các sự kiện t bao hàm các giá trị nhỏ hơn t đã được diễn ra
• Số thứ tự liền kề sau t phải là t+1
Một bộ tuần tự mang 2 đặc tính sau :
• Nếu a và b là 2 sự kiện được thực hiện trên cùng hàm Phieu(S), thì ta có
a→b hay b→a.
• 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.
Nguyễn Đăng Huy 18
Tiểu luận: Hệ tin học phân tán
Đặc tính thứ nhất thể hiện việc loại trừ tương hỗ trên các phép toán Phieu(S), còn
đặc tính thứ hai thể hiện tính liên tục trong khi đánh số có nghĩa là không để lại
khoảng trống khi đánh số.
Việc triển khai bộ tuần tự trong 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ề đơn giả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 của 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).
.I.2. Vòng tròn ảo
Ta gọi việc di chuyển một đối tượng duy nhất giữa các trạm trong hệ thống là việc
di chuyển ấn phong. Để triển khai một ấn phong có kết quả, đầu tiên ta cần 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. Ấn phong sẽ chứa những giá trị hiện hành của bộ tuần tự và
quay trên vòng tròn ảo luôn luôn theo một chiều xác định.
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 hệ 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ố 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ó:
Suc[i] = i + 1 modulo N
Pred[i] = I – 1 modulo N
.II Giải quyết bài toán
Giả thiết tất cả các trạm được sắp xếp trên một vòng tròn ảo, các trạm đều được
đánh số và đều biết đến các trạm cạnh nó.
Jeton là một thông điệp đặc biệt chứa giá trị hiện hành của bộ tuần tự. Bắt đầu quá
trình truyền, trạm 0 sẽ được trao một jeton. Jeton này có thể lưu hành xung quanh
vòng tròn ảo. Nó được chuyển từ trạm k đến trạm (k+1) bằng cách truyền thông điệp
điểm – điểm.
19
Tiểu luận: Hệ tin học phân tán
Khi một trạm có jeton, nó kiểm tra xem nếu nó có thể vào đoạn găng hay không.
Nếu không có trạm khác đang thi hành đoạn găng, nó vào đoạn găng và thực hiện các
công việc của nó.
Sau khi hoàn thành phần việc của mình, nó tăng giá trị hiện hành của bộ tuần tự
lên 1, sau đó chuyển jeton cho trạm kế tiếp. Jeton có thể di chuyển tự do trong vòng
tròn ảo. Nếu 1 trạm muốn vào đoạn găng thì nó sẽ giữ lấy jeton, ngược lại nếu trạm
đó không có ý định vào đoạn găng nó vẫn tăng giá trị hiện hành của bộ tuần tự lên 1
trước khi chuyển jeton cho trạm tiếp theo.

Chỉ có một trạm có jeton tại một thời điểm và nó phải có jeton để vào đoạn găng,
vì vậy loại trừ tương hỗ được bảo đảm.
1. Trạm bị sự cố không thể tự phục vụ các số mà nó đã rút đượ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.
Để 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ì:
• 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ó.
• 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ộ.
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.
20
Jeton
Tiểu luận: Hệ tin học phân tá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ỳ.
2. Khi một trạm có Jeton lại bị sự cố, nó giữ luôn jeton đó. Người hàng xóm bên
phải phải tái sinh jeton mới.
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à:

• Jeton mang giá trị là v. 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
• 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 liền kề trước i=pred(j) trên vòng tròn.
Nếu một trong hai điều kiện sau được kiểm tra:
j>i và S[j] ≠ S[i]
hay j<i và S[j] = S[i]
thì jeton được xem 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ệ.
21
TÀI LIỆU THAM KHẢO
[1] PGS. TS Lê Văn Sơn. Hệ tin học phân tán. Nhà xuất bản ĐHQG Tp HCM-
2002
[2] Modern Operating System – Andrwe S. Tanebaun, prentice Hall 1994
[3] Distributed Systems: Concepts and Design - Addison-Wesley 2001
[4] Operating System Concept – Silberschatz, Galvin and Gagne @ 2002
Nguyễn Đăng Huy 22

×