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

TIỂU LUẬN MÔN HỌC HỆ PHÂN TÁN

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 (369.71 KB, 28 trang )

Tiểu luận môn học Hệ phân tán
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
TIỂU LUẬN MÔN HỌC
HỆ PHÂN TÁN
ĐỀ TÀI:
I. Tài nguyên và chiến lược cung cấp tài nguyên
II. Cho hai loại tài nguyên: tài nguyên truy cập theo kiểu loại
trừ và tài nguyên truy cập theo kiểu chia sẻ. Trình bày thuật toán
Lomet và Menasce nhằm xử lý việc cung cấp tài nguyên của hai
nhóm tài nguyên nêu trên.
Giảng viên hướng dẫn: PGS.TS. Lê Văn Sơn
Học viên thực hiện: Nguyễn Nương Quỳnh
Lớp: Khoa học Máy tính - K24 Quảng Bình
Quảng Bình, tháng 12 năm 2012
LỜI MỞ ĐẦU
Học viên: Nguyễn Nương Quỳnh
1
Tiểu luận môn học Hệ phân tán
Hệ thống tin học hiện đại ngày nay đóng một vai trò quan trọng không thể
thiếu trong sự phát triển của toàn xã hội. Một thành tựu nổi bật nhất trong hệ thống
công nghệ thông tin là sự phát triển các phần mềm cơ sở nhằm trực tiếp làm tăng
khả năng điều hành, khai thác hiệu quả tất cả các tài nguyên của hệ thống thông tin.
Hệ thống tin học nói chung là hệ thống bao gồm hai phần cơ bản là phần cứng
và phần mềm được gắn bó một cách hữu cơ với nhau để thực hiện có hiệu quả cao
nhất về xử lý thông tin. Hệ tin học phân tán (hay nói gọn hệ phân tán) cũng là một
hệ thống xử lý thông tin nhưng 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. Có thể xem hệ phân tán như là một tập
hợp bao gồm các bộ xử lý, bộ vi xử lý với bộ nhớ và đồng hồ nhịp độc lập (tức là hệ
phân tán không chia sẻ bộ nhớ và đồng hồ). Do vậy, hệ tin học phân tán đòi hỏi hệ


thống phần cứng của máy tính phải trang bị bộ nhớ cục bộ, các bộ xử lý trao đổi với
nhau thông qua các hệ thống đường truyền khác nhau. 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 của nó.
Khác nhau cơ bản của hệ tin học phân tán với hệ tin học tập trung là ngoài hệ
thống phần cứng, phần mềm, dữ liệu như cấu thành hệ tin học tập trung, hệ tin học
phân tán còn có hệ thống truyền thông. Với sự khác nhau đó mà một số vấn đề được
đặt ra là: Một xu hướng kỹ thuật mới ra đời - xu hướng phân tán các thành phần tạo
nên hệ tin học theo hướng tiếp cận nơi sử dụng và nơi sản xuất thông tin. Đồng thời
để khai thác có hiệu quả cao nhất của hệ thống thông tin, vấn đề hàng đầu là cần
phải tính đến các tài nguyên nói chung, tài nguyên thông tin nói riêng và các chiến
lược khai thác, cung cấp, sử dụng tài nguyên ấy một cách tối ưu nhất.
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, chương trình này tiếp 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ừ và xử lý chúng theo một trật tự nhất định của hàng đợi đó. Còn trong hệ phân
tán, chương trình cung cấp được 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 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 kênh của hệ thống
viễn thông. Hơn nữa, 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.
Học viên: Nguyễn Nương Quỳnh
2
Tiểu luận môn học Hệ phân tán
Hệ tin học phân tán là hệ xử lý thông tin bao gồm nhiều bộ xử lý hay bộ vi xử
lý được phân bổ tại những vị trí khác nhau và được nối ghép vào nhau thông qua
các phương tiện truyền tin và được điều khiển bởi một hệ điều hành duy nhất. Vì
vậy, thời hạn truyền thông tin trong hệ sẽ không giống nhau, các thông điệp có thể

bị mất trong quá trình chuyển tải, các thông điệp có thể được truyền kép và hệ thống
có thể rơi vào sự cố bất cứ lúc nào. Mặt khác, một hay nhiều máy tính cấu thành của
hệ phân tán cũng có thể xảy ra sự cố và hoạt động của hệ sẽ trở nên đình trệ, kém
hiệu quả. Do đó, việc bảo vệ tính vẹn toàn dữ liệu, quản lý tài nguyên, cung cấp tài
nguyên và sử dụng tài nguyên là vấn quan trọng hàng đầu. Chiến lược cung cấp tài
nguyên và các biện pháp khắc phục tình trạng bế tắc là nội dung được trình bày
trong tiểu luận này.
Với một lĩnh vực kiến thức còn khá mới, đa dạng và phức tạp cho nên việc
nghiên cứu của tôi còn nhiều hạn chế, rất mong được sự góp ý và định hướng của
Thầy Lê Văn Sơn và các anh chị cùng lớp để tôi có thể tiếp tục nghiên cứu và đạt
được kết quả tốt hơn trong thời gian tới.
Xin chân thành cảm ơn Thầy PGS.TS. Lê Văn Sơn đã nhiệt tình giảng dạy và
giúp tôi hoàn thành tiểu luận này.
Học viên: Nguyễn Nương Quỳnh
3
Tiểu luận môn học Hệ phân tán
MỤC LỤC
A.
Học viên: Nguyễn Nương Quỳnh
4
Tiểu luận môn học Hệ phân tán
Chương 1
HỆ TIN HỌC PHÂN TÁN
1. Quá trình phát triển hệ thống tin học
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 và người sử dụng…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 đó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 ví dụ như các phần mềm ứng dụng.
Người sử dụng 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 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. Ở từng
thời điểm, số lượng người sử dụng cho mỗi thành phần ứng dụng là khác nhau và bị
giới hạn trong khả năng kỹ thuật ghép.
Chiếc máy tính đầu tiên ra đời trong những năm 50 của thế kỷ 20 là các hệ
thống đồ sộ, nặng nề, tiêu tốn nhiều năng lượng, hiệu quả hoạt động kém, dung
lượng bé và đặc biệt là rất khó khăn trong quá trình sử dụng, vận hành nhưng chính
các hệ thống này đã đóng góp cho nhân loại những bài học về nguyên lý mà giá trị
của chúng vẫn còn nguyên vẹn cho đến tận hôm này và có lẽ mãi mãi về sau. Đặc
trưng của thời kỳ này là tỷ trọng phần mềm trong hệ thống không đáng kể so với
phần cứng. Các chương trình trợ giúp hệ thống vừa thiếu về số lượng vừa yếu về
chức năng phục vụ.
Và theo thời gian, con người đã xây dựng nên các chương trình trợ giúp có
tính chất hệ thống như chương trình dịch từ hợp ngữ sang ngôn ngữ máy, chượng
trình soạn thảo theo dòng,…do đó làm giảm nhẹ công việc lập chương trình.
Vào cuối những năm 50, đầu những năm 60, con người đã xay dựng các
chương trình monitor thường trú cho phép liên kết hợp các công việc lại với nhau
và thực hiện một lần. Việc liên kết ấy có ý nghĩa rất lớn trong tự động hoá và các
hoạt động của hệ tin học.
Năm 1960, chương trình BPS( Batch processing system) được xây dựng thành
công nhằm vào các thiết bị phần cứng nhằm sử dụng hết hiệu năng của bộ xử lý và
bước đầu triển khai cơ chế bảo vệ
Năm 1969, hệ điều hành UNIX được xây dựng bởi ông Ken Thompson cho
phép người sử dụng làm việc theo kiểu chia sẽ thời gian trong hệ thống đa nhiệm.
Vào những năm 70, các máy tính cá nhân ra đời với sự tiện ích cao, khả năng
vượt trội, và đặc biệt là giá cả hợp lý đã nhanh chóng chinh phục mọi người và mở
ra một trang mới trong việc phát triển ngành tin học.
Học viên: Nguyễn Nương Quỳnh
5
Tiểu luận môn học Hệ phân tán

Tiếp theo là sự xuất hiện của hệ thống song song cho phép cải tiến các máy
vốn sử dụng một bộ xử lý hay bộ vi xử lý duy nhất thành hệ thống đa bộ xử lý nhằm
tăng độ tin cậy của hệ thống.
Vào những năm 80. Hệ thống mạng cục bộ Ethernet và Token Ring được phát
minh là những mạng tiêu biểu cả về lý thuyết lẫn triển khai ứng dụng.
Hệ tin học phân tán đòi hỏi 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 qua các hệ thống đường truyền khác nhau như cáp
chuyên dụng, bus trao đổi, đường điện thoại, đường cáp quang, mạng điện chiếu
sáng cao và hạ thế.’…
Hệ thống thời gian thực với hệ điều hành tiêu biểu là hệ tự động hoá điều
khiển lò luyện thép.
Vào năm 1974, xuất hiện mạng Internet toàn cầu là mạng ARPANET với giao
thức NCP. Tuy nhiên, khi giao thức TCP/IP được xây dựng bởi Vint Cert và Robert
Kahn thì khái niệm mạng của các mạng mới được hình thành. Và đến năm 1990 thì
mạng Internet phát triển vượt bậc với những kết quả mà chúng ta có được như ngày
hôm nay.
2. Hệ tin học phân tán
2.1. Khái niệm hệ tin học phân tán
Hệ tin học phân tán hay gọi tắt là hệ phân tán là một hệ thống xử lý thông tin
bao gồm nhiều bộ xử lý hoặc các bộ vi xử lý được đặt ở xa tại các vị trí khác nhau
và được liên kết với nhau thông qua các phương tiện viễn thông dưới sự thống nhất
của hệ điều hành
Hệ tin học phân tán là một hệ thống không chia sẽ bộ nhớ và đồng hồ. Các
tính toán trong hệ tin học phân tán có thể được thực hiện trên nhiều bộ xử lý hay vi
xử lý của hệ thống đa bộ xử lý. Do đó hệ thống tin học phân tán đòi hỏi hệ thống
của mình phải trang bị bộ nhớ cục bộ. Các bộ xử lý trao đổi thông tin thông qua các
đường truyền khác nhau như cáp mạng chuyên dụng, bus trao đổi, đường điện thoại,
cáp quang hoặc có thể là sóng…
Không như các máy tính đơn lẽ, mạng máy tính là tập hợp các thiết bị đầu
cuối được nối với nhau bởi hệ thống đường truyền, những đường truyền nối với các

trạm rất xa nhau có thể là một mạng viễn thông. Các thiết bị đầu cuối của mạng
máy tính rất đa dạng, bao gồm tập hợp các máy tính, các thiết bị chuyên dụng, các
thiết bị truyền tin, các thiết bị nhận và hiển thị thông tin…Hệ thống mạng máy tính
được điều khiển bằng hệ điều hành mạng. Hệ tin học này có thể là hệ tập trung hay
là hệ phân tán.
Học viên: Nguyễn Nương Quỳnh
6
Tiểu luận môn học Hệ phân tán
2.2. Đặc điểm cơ bản của hệ tin học phân tán
Căn cứ vào thành phần của hệ tin học, ta nhận thấy hệ tin học phân tán có thể
bao gồm bốn thực thể như hình 1 bên dưới.
Cấu hình phần cứng của mạng có thể bao gồm các bộ xử lý có cấu tạo hoàn
toàn khác nhau về khả năng, tốc độ và được thiết kế cho các chức năng không giống
nhau. Chúng có thể là các bộ xử lý, các trạm làm việc, các máy tính trung và các
máy tính điện tử vạn năng lớn.
Bên cạnh hệ thống phần cứng, phần mềm, dữ liệu, hệ phân tán còn có hệ thống
truyền thông. Nhưng điều cơ bản để phân biệt hệ tin học phân tán với mạng máy
tính và hệ điều hành mạng chính là nguyên tắc xây dựng hệ được liệt kê như bản
dưới đây:
Stt Tên gọi Thuyết minh
1.
Chia sẽ tài
nguyên
Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn
là cần phải dùng chung tài nguyên. Một tiến trình trên
một trạm nào đó có thể cung cấp tài nguyên dùng chung
ở một trạm khác.
2. Liên lạc
Khi các hệ thống đã được mắc nối với nhau, các thực thể
trong hệ có thể trao đổi thông tin với nhau.

3. Tin cậy
Một trạm trong hệ bị sự cố không làm cho toàn hệ ảnh
hưởng mà ngược lại, công việc đó được phân cho các
trạm khác đảm nhận. Ngoài ra, trạm bị sự cố có thể tự
động phục hồi lại trạng thái ban đầu trước khi có sự cố
hay trạng thái ban đầu của nó
4. Tăng tốc
Đây là 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 cho kết
quả lâu. Tính toán này được chia nhỏ và thực hiện song
song trên các trạm. Điều này cũng cần thiết đối với các
trạm quá tải
Một trong những tư tưởng lớn của hệ 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 xa nhau. Đó là những cơ sở căn
Học viên: Nguyễn Nương Quỳnh
7
Các hệ
thống phần
mềm
Hệ thống dữ
liệu
Các hệ
thống phần
cứng
Hệ thống
truyền
thông
Hình 1: Bốn thực thể của hệ tin học phân tán.
Tiểu luận môn học Hệ phân tá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ử và bệnh viện ảo.
2.3. Các vấn đề liên quan đến mạng máy tính
Liên lạc là thuật ngữ được sử dụng để chỉ các thao tác trao đổi thông tin giữa
các thực thể thuộc hệ thống. Trạm phát sẽ phát thông tin được gọi là thông điệp, là
một hình thức phổ biến trao đổi thông tin đến trạm nhận.
Nếu người sử dụng mạng muốn liên hệ với nhau, họ phải sử dụng hệ thống tên
quy ước hay còn gọi là địa chỉ mạng. Các địa chỉ này phải tuân theo nguyên tắc xây
dựng nhất định và không trùng nhau. Trong mạng, một người sử dụng nào đó có thể
sử dụng bất cứ trạm nào để liên lạc với người sử dụng mà họ muốn liên lạc
Trong cấu trúc tập trung, ta có hệ thống máy trung tâm để cho phép lưu trữ
toàn bộ thông tin, người sử dụng có thể truy cập vào đó để xử lý thông tin của mình.
Giải pháp này dễ dàng triển khai và được ứng dụng rộng rãi trong thập niên 60 và
70.
Khi nhiều người sử dụng liên lạc với nhau trong mạng để thực hiện công việc
nào đó thông qua kênh truyền hình bằng cách sử dụng giao diện của mình, giao thức
là tập hợp những quy tắc cần thiết cho các dịch vụ tầng có thể thực hiện được và
cho phép việc nhận và gửi thông tin đến tầng tương ứng.
Người sử dụng có thể chia cắt thông tin truyền theo các kiểu khác nhau, song,
chung quy có thể có hai kiểu là chia cắt logic và chia cắt vật lý.
Chia cắt logic thường khi các thông điệp bao gồm tập hợp thông tin gắn bó với
nhau theo một logic nào đó như bản ghi, tập tin, do đó kích cỡ của thông điệp
thường không phải là đại lượng cố định, để truyền các thông điệp này người ta phải
có thêm những thông tin điều khiển như giá trị số chỉ kích cỡ, tín hiệu bắt đầu và
kết thúc một thông điệp.
Chia cắt vật lý thông thường được phân nhóm nhằm thoả mãn những ràng
buộc đường truyền hoặc ràng buộc về mặt lưu trữ. Những thông điệp này thường là
những gói thông tin có kích cỡ cố định. Trước khi phát thông tin vào đường truyền,
trạm phát phải chia thông tin thành các gói theo những quy ước chặt chẽ. Quá trình
này được tiến hành tự động ở các tầng thấp và người sử dụng không thể nhận biết
được quá trình đó.

2.4. Các đặc trưng của hệ tin học phân tán
Đối tượng nghiên cứu của môn học hệ tin học phân tán là xử lý các vấn đề đặt
ra một cách tương đối chi tiết.
Các khía cạnh của hệ tin học phân tán chỉ dừng lại ở các vấn đề cơ bản có tính
chất nguyên lý .
Học viên: Nguyễn Nương Quỳnh
8
Tiểu luận môn học Hệ phân tán
Vấn đề lập trình và thực hiện ứng dụng phân tán mô tả các phương pháp điều
khiển thực hiện chương trình phân tán, vấn đề định danh và đặc biệt là vấn đề cấu
trúc truy vấn tổng quát trong hệ.
Trình tự và đồng bộ các tiến trình chỉ ra cho ta các vấn đề đồng bộ có thể 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ệ.
Cung cấp tài nguyên cho thấy được những khó khăn đang gặp phải trong quá
trình phân tán dữ liệu và cung cấp các tài nguyên vật lý và logic. Trong không gian
phân tán ta có thể nắm bắt được ngay lập tức trạng thái tổng quát của việc cung cấp
tài nguyên và cũng khó có thể tránh được tình trạng bế tắc diễn ra.
Thời hạn truyền thông tin trong hệ không giống nhau. Các thông điệp có thể bị
mất trong quá trình chuyển tải, các thông điệp có thể truyền kép và hệ thống có thể
rơi vào sự cố.
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ố và hoạt
động của toàn bộ hệ sẽ trở nên kém hiệu quả
Không có phương pháp xử lý duy nhất cho các vấn đề về độ tin cậy của hệ
phân tán, các phương pháp nhằm tăng độ tin cậy chủ yếu nhằm vào các vấn đề
chống dư thừa, tái lập cấu hình, phát hiện sự cố,….
Học viên: Nguyễn Nương Quỳnh
9
Tiểu luận môn học Hệ phân tán
Chương 2
TÀI NGUYÊN VÀ CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN

Vấn đề cung cấp tài nguyên được đánh giá như là một trong những lĩnh vực tri
thức rất quan trọng vì nó vận dụng thường xuyên trong quá trình triển khai nghiên
cứu, khảo sát, phân tích, thiết kế và xây dựng các hệ điều hành nói chung, hệ tin học
phân tán nói riêng. Trong chương này sẽ tập trung nghiên cứu vấn đề về tài nguyên
và các chiến lược cung cấp tài nguyên cho hệ phân tán.
1. Một số khái niệm
1.1. Tài nguyên
Chúng ta định nghĩa tài nguyên như là một đối tượng mà trong đó các quy tắc
sử dụng và chia sẻ được kết hợp với nhau. Nói chính xác, đó là những vấn đề quyền
truy cập loại trừ hay truy cập chia sẻ, có hạn chế người sử dụng hay không,…
Trong đó, tài nguyên truy cập theo kiểu loại trừ chỉ cung cấp cho một giao dịch và
tài nguyên truy cập theo kiểu chia sẻ được cung cấp cho một tập hợp bất kỳ các giao
dịch. Hệ tin học phân tán thực hiện 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 loại tài nguyên vốn có và rất đa
dạng của hệ thống như là những tài nguyên dùng chung, nó mang đến cho người sử
dụng 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.
Chia sẻ tài nguyên có thể hiểu là chia sẻ dữ liệu, chia sẻ máy in, chia sẻ các
tập tin, chia sẻ tài liệu, hay chia sẻ những đối tượng nào đó,…
1.2. Giao dịch, thông điệp yêu cầu và bộ cung cấp
Giao dịch là phép toán hợp thành một logic hoàn chỉnh mà việc triển khai nó
có thể dẫn đến thực hiện một tiến trình duy nhất hay nhiều tiến trình được định vị
trên các trạm khác nhau. Trường hợp dẫn đến thực hiện nhiều tiến trình trên các
trạm ở xa là đối tượng mà ta cần quan tâm nghiên cứu. Khái niệm giao dịch được sử
dụng như là một thực thể sử dụng (ví dụ như người sử dụng các tài nguyên).
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 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 (ta quy
ước gọi các thông điệp yêu cầu là 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ó.

Bộ cung cấp có thể áp dụng nhiều kiểu cung cấp khác nhau như tiến trình duy
nhất, tập hợp các tiến trình, tập hợp các thủ tục,… Các thông điệp yêu cầu sử dụng
tài nguyên cũng có thể có các dạng khác nhau như gọi thủ tục, thông báo, thực hiện
các lệnh đặc biệt,…
Học viên: Nguyễn Nương Quỳnh
10
Tiểu luận môn học Hệ phân tán
1.3. Tải
Thuật ngữ tải là tập hợp các yêu cầu phục tùng các quy tắc của một bộ cung
cấp. Các tham số đặc trưng cho tải là:
1. Số lượng các yêu cầu được cung cấp tài nguyên.
2. Bản chất của các yêu cầu.
3. Phân tán theo thời gian các yêu cầu tạo ra nó.
Một yêu cầu được thoả mãn bởi bộ cung cấp tài nguyên cho tiến trình đề nghị
với điều kiện là yêu cầu đó phải tuân theo các quy tắc nhất định.
Có hai điều kiện làm cho tiến trình mất khả năng sử dụng tài nguyên đã được
cung cấp trước đó. Đó là:
STT Tên gọi Điều kiện
1 Giải phóng Tiến trình phát tín hiệu ngừng sử dụng tài nguyên
2 Thu hồi
Sự lấy lại tài nguyên đã được cung cấp cho tiến trình. Bộ
cung cấp tài nguyên sẽ tiến hành công việc này.
Trong hệ phân tán, hoạt động của một tập hợp các tiến trình trên một tập hợp
các tài nguyên dùng chung được xem là tuyệt vời, nếu không xảy ra bế tắc hay thiếu
thốn tài nguyên vĩnh viễn.
1.4. Bế tắc và vấn đề thiếu tài nguyên vĩnh viễn
Bế tắc (hay còn gọi là khoá tương hỗ) là sự kẹt chéo lẫn nhau có tính chất
sống còn của các tiến trình. Bế tắc diễn ra khi hai tiến trình đang sử dụng tài nguyên
lại phát yêu cầu về nhu cầu sử dụng tài nguyên mà tiến trình kia còn đang sử dụng.
Ví dụ xét đồ thị cung cấp tài nguyên như hình vẽ sau đây:

T1
T2
T4
T3
Tr1 Tr2 Tr3
Hình 1: Đồ thị cung cấp tài nguyên bị bế tắc
Theo đồ thị này, ta có bốn tài nguyên T
1
,T
2
, T
3
, T
4
và có ba tiến trình nhu cầu
tài nguyên là Tr
1,
Tr
2,
và Tr
3.
Cả 3 tiến trình này đang ở tình trạng bế tắc. Tiến trình
Tr
2
chờ tài nguyên T
2
do Tr
3
đang chiếm giữ. Tiến trình Tr
3

chờ tài nguyên T
3
được
giải phóng bởi Tr
1
trạm Tr
3
. Thêm vào đó, tiến trình Tr
1
chờ tiến trình Tr
2
giải phóng
T
1
. Ta có hai chu trình kín trong đồ thị trên là:
Học viên: Nguyễn Nương Quỳnh
11
Tiểu luận môn học Hệ phân tán
Thiếu tài nguyên vĩnh viễn là sự chờ đợi bất tận của một tiến trình mà yêu cầu
của nó trễ đến mức không thể xác định được. Nguyên nhân của hiện tượng vừa nêu
có nhiều, nhưng ta có thể chỉ ra ví dụ thường gặp là do sử dụng luật ưu tiên để cung
cấp tài nguyên.
2. Các chiến lược cung cấp tài nguyên
Một chiến lược cung cấp tài nguyên tồi cũng có thể là nguồn gốc hủy hoại
hiệu năng hoạt động của hệ do các hiện tượng “sốc”, làm tăng các yêu cầu mà
không được đáp ứng của một số tài nguyên (ví dụ như sự sụp đổ của hệ đa chương
trình). Để tránh hiện tượng đó, bộ cung cấp tài nguyên cần phải bảo đảm chức năng
điều khiển.
Cung cấp tài nguyên cho chúng ta thấy những khó khăn gặp phải trong quá
trình phân tán dữ liệu và cung cấp các tài nguyên vật lý và logic. Trong không gian

phân tán, ta khó có thể nắm bắt ngay lập tức trạng thái tổng quát của việc cung cấp
tài nguyên và khó có thể tránh được tình trạng bế tắc xảy ra. Tồn tại nhiều biện
pháp khác nhau cho phép khắc phục hiện tượng vừa nêu. Bộ cung cấp cần phải
phân phối các tài nguyên trên cơ sở tuân thủ các quy tắc sử dụng, tránh xảy ra các
bế tắc và thiếu thốn vô hạn, phân bố tải tương đối đồng đều giữa các tài nguyên
cùng loại và giới hạn nhu cầu nhằm duy trì hệ thống hoạt động để dạt hiệu quả cao
nhất.
Ta có thể chia thành hai phương diện để nghiên cứu:
- Phương diện 1: Phân tán các yêu cầu giữa các tài nguyên tương đương có
khả năng thỏa mãn. Chức năng này gọi là phân phối tải. Trong hệ thống phân tán ,
nó cần phải tạo điều kiện để tránh tình hình mà ở đó các yêu cầu đợi đến lượt được
thoã mãn trên một trạm bị đầy, trong khi đó các tài nguyên tương đương lại rỗi trên
các trạm khác.
- Phương diện 2: Giới hạn số lượng các yêu cầu được phép cho một số tài
nguyên. Việc đó có thể thực hiện bằng cách hạn chế (tĩnh hay động) số các tiến
trình hay số các giao dịch được chọn (trúng tuyển) sử dụng toàn bộ hay từng phần
tài nguyên. Ta gọi trường hợp này là điều khiển tải tổng quát.
Tóm lại, Bộ cung cấp cần phải phân phối các tài nguyên trên cơ sở tuân thủ
các quy tắc sử dụng, tránh xảy ra bế tắc và thiếu thốn vô hạn, phân bố tải tương đối
đồng đều giữa các tài nguyên cùng loại và giới hạn nhu cầu nhằm duy trì hệ thống
hoạt động đạt mức hiệu quả nhất định.
Học viên: Nguyễn Nương Quỳnh
12
Chu trình 1: Tr
1
-T
1
-Tr
2
-T

2
-Tr
3
-T
3
-Tr
1
Chu trình 2: Tr
3
-T
3
-Tr
2
-T
2
-Tr
3
Tiểu luận môn học Hệ phân tán
2.1. Chiến lược cung cấp tài nguyên duy nhất
Vấn đề cung cấp tài nguyên duy nhất trên một trạm trong hệ phân tán liên
quan đến việc phân phối tài nguyên này cho một tập hợp các tiến trình trên cơ sở
quy tắc: truy cập loại trừ hay chia sẻ, có hệ số ưu tiên, không được mất,…Các tiến
trình có thể đề nghị sử dụng tài nguyên ngay tại trạm và cũng có thể ở các trạm
khác từ xa. Việc quản lý các truy cập đến một tài nguyên duy nhất có thể được thực
hiện theo hai cách:
- Truy cập bằng một tiến trình duy nhất.
- Truy cập bằng các tiến trình tương tranh.
Truy cập bởi tiến trình duy nhất
Một tiến trình duy nhất hay còn gọi là server được giao nhiệm vụ quản lý tài
nguyên. Nó xử lý tất cả các yêu cầu truy cập từ các tiến trình và các khách (client).

Sự loại trừ truy cập được bảo đảm bởi tính duy nhất của server. Server đồng thời
cũng là chương trình đánh thức. Chương trình như sau:
Vòng lặp
M:=cho_thong-diep(nil) {treo}
<Chương trình xử lý các yêu cầu và gửi trả kết quả>
Kết thúc vòng lặp
Do vậy, sơ đồ này loại bỏ tất cả các đặc tính song song để truy cập vào tài
nguyên. Tiến trình server có thể được lập trình để triển khai toàn bộ chiến lược liên
quan đến loại trừ tương hỗ của các yêu cầu (độ ưu tiên, quyền truy cập tài nguyên).
Ví dụ: Server quản lý các tập tin hoạt động dựa vào nguyên lý trên trong môi
trường phân tán của Swinchart.
Server
T
Tr1
Tr2
Tr3
Hình 2: Đồ thị truy cập vào tài nguyên bằng server duy nhất
Truy cập tương tranh có điều khiển
Trong trường hợp này, tài nguyên được truy cập bởi nhiều server, thông
thường có số lượng không cố định. Các server này thực hiện các truy cập tương ứng
với các yêu cầu dưới dạng gọi thực hiện các thủ tục. Việc thực hiện các thủ tục này
được điều khiển bởi cơ chế đảm bảo tôn trọng các quy tắc truy cập.
Học viên: Nguyễn Nương Quỳnh
13
T: Tài nguyên
Tr: Tiến trình (Khách)
Tiểu luận môn học Hệ phân tán
Tr2
Trn
Tr1

D
Sn

S2
S1

T
Hình 3: Đồ thị truy cập tài nguyên bằng một chương trình trực duy nhất
Các quy tắc này được khởi sự bằng hai cách bởi các tiến trình khách. Hình 3
cho thấy việc truy cập được tiến hành bằng một chương trình trực duy nhất.
Trong cách thứ hai, việc truy cập được tiến hành trực tiếp với các server và thể
hiện bằng hình 4 sau đây:
S1
Tr1
S2
Tr2
Sn
Trn

T
KiÓm tra truy
cËp
Hình 4: Truy cập trực tiếp vào các server
Trong hình 3, ta thấy một tiến trình đánh thức D duy nhất sau hàng đợi làm
nhiệm vụ phân phối các yêu cầu cho các server cục bộ. Các tiến trình khách không
biết server. Ngược lại trong hình 4, các máy server đều được các tiến trình khách
biết trước.
Việc triển khai đặc biệt đối với các server có liên quan đến việc phối hợp
chúng với các điểm của một mô-đun quản lý các tài nguyên như chương trình
monitor chẳng hạn.

Học viên: Nguyễn Nương Quỳnh
14
Hàng đợi các yêu cầu
T: Tài nguyên Tr: Tiến trình (Khách)
Si- Server D-Đánh thức
Tiểu luận môn học Hệ phân tán
2.2. Chiến lược cung cấp một tập hợp các tài nguyên. Vấn đề bế tắc
Tiến trình p đưa ra yêu cầu cung cấp tài nguyên e để thực hiện phép toán cài
then có tính loại trừ v_loai_tru_th(e). Ngoại trừ một số trường hợp đặc biệt, tất cả
các tài nguyên đều được truy cập theo kiểu loại trừ. Nếu việc cung cấp hoàn toàn
hợp thức thì tài nguyên này được trao cho p sử dụng. Ta nói rằng tài nguyên này đã
được p cài then, nếu không thì p bị treo và đương nhiên p không cài then được tài
nguyên này.
Trong hệ phân tán, ta sẽ tập trung xem xét các giao dịch T
i
có thể sử dụng các
tài nguyên được định vị trên các trạm. Mỗi một giao dịch được triển khai nhờ một
tập hợp các tiến trình thể hiện là các đại diện của chúng trên các trạm khác nhau.
Hai tiến trình của cùng một giao dịch được định vị trên các trạm khác nhau có thể
được thực hiện song song. Nhằm thu hồi lại tài nguyên e trên trạm S
j
, giao dịch T
i
cho thực hiện phép toán v_loai_tru_th(e) thông qua đại diện p
ij
của mình trên trạm
này.
Ngoại trừ một số trường hợp đặc biệt, việc cung cấp diễn ra không có thu hồi.
Một tài nguyên bị khoá bởi một tiến trình không thể rút nó trở về được. Như thế, nó
cần được giải phóng bởi tiến trình này một cách tường minh nhờ vào phép toán mở

then cài mo_then(e).
Như vậy, có thể xảy ra rủi ro do bế tắc, khi các tiến trình truy cập loại trừ được
phân phối mà không có khả năng thu hồi và các tiến trình cần phải sử dụng đồng
thời nhiều tài nguyên.
Ví dụ: Giả sử có hai tiến trình p và q cùng sử dụng hai tài nguyên e
1
và e
2
,
chúng được mô tả trong đoạn chương trình sau đây:
Tiến trình p Tiến trình q
p1: v_loai_tru_th(e1) q1:v_loai_tru_th(e2)
p2: v_loai_tru_th(e2) q2:v_loai_tru_th(e1)
Nếu các yêu cầu được thoả mãn theo trình tự p
1
, q
1
thì tất yếu xảy ra vấn đề
chặn nhau giữa p và q. Lý do hiển nhiên là p
2
và q
2
không bao giờ được đáp ứng,
nếu e
1
và e
2
không được giải phóng.
Bế tắc có thể giải quyết bằng cách dự báo và vòng tránh (gọi chung là dự
phòng) có nghĩa là tài nguyên được cung cấp theo kiểu có đề phòng trường hợp bế

tắc. Một phương pháp khác có liên quan đến vấn đề này là phát hiện và chữa trị có
nghĩa là khi có sự cố thì quay trở về trạng thái trước đó.
Các thuật toán dự phòng, phát hiện và chữa trị đã được nghiên cứu cho trường
hợp là tất cả các tài nguyên đều được quản lý bởi bộ cung cấp duy nhất. Bộ cung
cấp này tiếp nhận tất cả các yêu cầu và biết rất rõ trạng thái của tất cả các tài
nguyên.
Học viên: Nguyễn Nương Quỳnh
15
Tiểu luận môn học Hệ phân tán
Các phương pháp sử dụng trong hệ tập trung
Phương pháp dự phòng
Phương pháp dự phòng đơn giản và thường hay sử dụng là các nhóm sắp xếp
Havender.
Tư tưởng cơ bản của phương pháp này là các tài nguyên được sắp xếp theo
các nhóm con C
1
, C
2
,…,C
n
. Một tiến trình nào đó chỉ có thể thu hồi các tài nguyên
của nhóm C
i
với i>1, nếu trước đó nó đã thu hồi tất cả các tài nguyên của các nhóm
cần thiết cho nó C
1
, C
2
,…,C
i-1

. Như thế, trật tự duy nhất của việc thu hồi các tài
nguyên được xác định sẽ tránh bế tắc. Phương pháp này dẫn đến các tiến trình cần
thu hồi trước (tạm ứng) các tài nguyên của chúng và do vậy làm giảm khả năng thực
hiện song song của hệ.
Khi các tiến trình phát triển và thông báo trước về nhu cầu cực đại các tài
nguyên, thì các phương pháp mềm dẻo hơn có thể được sử dụng.
Phương pháp phát hiện và chữa trị
Phương pháp Holt sử dụng một đồ thị trạng thái định hướng mà các nút là các
tài nguyên hay tiến trình. Các cung tiến trình-tài nguyên biểu hiện các yêu cầu
không được thoả mãn, các cung tài nguyên-tiến trình thể hiện các cung cấp đã được
thực hiện. Nếu có sự hiện diện của vòng lặp khép kín trong đồ thị này thì đó chính
là biểu hiện của tình trạng bế tắc.
Sau khi đã phát hiện bế tắc, vấn đề chữa trị được đặt ra, nhưng các phương
pháp này rất phức tạp, tốn kém. Hiện nay, thuật toán chữa trị đang được các nhà
chuyên môn quan tâm nghiên cứu và phát triển.
Thực tế, trong các hệ điều hành người ta thường sử dụng:
- Hoặc là các phương pháp dự phòng đơn giản như cung cấp tổng quát tất cả
các tài nguyên hay phương pháp nhóm sắp xếp.
- Hoặc là các phương pháp phát hiện thường rất cồng kềnh, khắc phục nó đòi
hỏi phải loại bỏ hoàn toàn các tiến trình và khởi sự chúng trở lại từ đầu. Điều đó đòi
hỏi phải lưu trữ ngữ cảnh theo từng chu kỳ hết sức phức tạp và tốn kém bộ nhớ.
Việc phát triển các cơ sở dữ liệu (CSDL) đã làm cho hệ phân tán có thêm các
hoạt động mới về vấn đề bế tắc. Nhằm tăng khả năng thực hiện song song, các then
thường mang dữ liệu rất sơ đẳng. Điều đó làm tăng số lượng tài nguyên cần quản lý.
Một mặt, các phương pháp thông báo không phải lúc nào cũng sử dụng được bởi vì
các tài nguyên cần cho một giao dịch thông thường chỉ được xác định trong qúa
trình thực hiện.
Phương pháp đường tránh thường xuyên tỏ ra thích nghi được với CSDL đã
được giới thiệu bởi Chamberlin. Mỗi một giao dịch có một điểm check-point (điểm
không trở về), theo đó các cập nhật thông tin trên CSDL là không thể quay trở lại

Học viên: Nguyễn Nương Quỳnh
16
Tiểu luận môn học Hệ phân tán
nữa. Chừng nào mà một giao dịch không vượt quá điểm này, các tài nguyên mà nó
thu hồi có thể trưng dụng cho đề nghị cuối cùng, nếu bế tắc được phát hiện.
Sự thiếu thốn vô hạn có thể được loại bỏ bằng cách tuần hoàn một ấn phong
bảo vệ cho giao dịch đang giữ nó và chống lại việc thu hồi. Đã có thuật toán phân
tán dựa trên nguyên tắc tương tự là thuật toán quản lý nhiều bản sao.
Các phương pháp mà ta vừa giới thiệu có thể áp dụng cho cấu trúc phân tán để
làm rõ vai trò của các bộ cung cấp bằng cách cho một trạm có đặc quyền nhận tất cả
các yêu cầu và duy trì bức tranh toàn cục về trạng thái cung cấp của tất cả các tài
nguyên. Giải pháp này còn chưa giải quyết vấn đề nhạy cảm đối với trường hợp sự
cố trạm đặc quyền và qúa tải đối với trạm này cũng là nguyên nhân dừng mạng.
Điều vừa nêu trên dẫn tới ý tưởng phân tán chức năng cung cấp trên các trạm của
mạng.
Phân tán chức năng cung cấp
Bây giờ, ta giả định rằng chức năng cung cấp không thể tin tưởng giao phó
hoàn toàn cho một bộ cung cấp duy nhất, mà được phân tán thành một tập hợp các
bộ cung cấp trên các trạm khác nhau, trong đó mỗi bộ cung cấp chỉ quản lý các đố
tượng cục bộ của trạm đó mà thôi.
Tồn tại hai nhóm giải pháp cho vấn đề đặt ra:
Duy trì tính duy nhất của trạng thái tài nguyên
Biểu hiện duy nhất của trạng thái tài nguyên được chia sẻ bởi tập hợp các bộ
cung cấp. Biểu hiện này tuần hoàn giữa các trạm khác nhau dưới dạng một thông
điệp. Các trạm luân phiên đóng vai trò của bộ cung cấp các tài nguyên mà mình
đang chịu trách nhiệm quản lý. Giải pháp này loại bỏ tất cả các khả năng song song,
không loại bỏ khả năng mất thông điệp trạng thái, thiếu thốn tài nguyên một cách
vô hạn.
Phân tán biểu hiện trạng thái và chức năng cung cấp
Có rất nhiều giải pháp có thể:

STT
Giải pháp
1
Ta duy trì tại mỗi trạm một bản sao trạng thái tài nguyên tổng quát. Trong
trường hợp này, cần phải bảo đảm gắn bó hữu cơ của các bản sao.
2
Ta phân tán biểu hiện trạng thái trên các trạm, mỗi một trạm chỉ có trạng
thái của các tài nguyên cục bộ của mình. Các quyết định được đưa ra trên
các trạm khác nhau cần phải được phối hợp theo kiểu sao cho dữ liệu của
việc cung cấp phải được gắn bó với nhau.
3
Một phương pháp đầy ấn tượng là nhóm sắp xếp nhằm bảo đảm cho tất cả
các yêu cầu tài nguyên xuất phát từ các tiến trình đều được các bộ cung cấp
khác nhau theo một trật tự nhất định cố định từ trước.
Học viên: Nguyễn Nương Quỳnh
17
Tiểu luận môn học Hệ phân tán
Các phương pháp khác mang tính năng động cao cho phép ra các quyết định
cung cấp tài nguyên xuất phát từ quan điểm từng phần (ngược với toàn phần) của
trạng thái tài nguyên.
Các phương pháp cung cấp sử dụng trạng thái tổng quát
Vấn đề quan trọng được đặt ra là tại sao có thể áp dụng thuật toán dự phòng bế
tắc của hệ tập trung vào môi trường phân tán theo kiểu duy trì trên mỗi trạm một
bản sao trạng thái cung cấp của tất cả các tài nguyên.
Nội dung của các bản sao trên các trạm của hệ có thể phản ánh trong mỗi bảng
sau đây:
STT Nội dung của các bản sao
1 Tập hợp của tất cả các tài nguyên còn chưa được cung cấp
2 Tập hợp các tài nguyên đã được cung cấp
3 Đối tượng đang chiếm giữ tài nguyên

4 Kiểu sử dụng
5 Tập hợp các yêu cầu không được thoả mãn
6 Tập hợp các thông điệp dành cho trường hợp đã được sử dụng
7 Tập hợp các thông điệp dành cho trường hợp thất bại
8 …
Cung cấp tài nguyên chỉ được chấp nhận, nếu trạng thái xuất phát từ việc cung
cấp được đánh giá là chấp nhận được theo thuật toán đã sử dụng. Trên cơ sở thực
hiện cùng một thuật toán và có cùng thông tin, mỗi trạm ra quyết định cung cấp căn
cứ vào bản sao trạng thái cục bộ của nó. Việc cung cấp cho tiến trình đề nghị sẽ
được thực hiện ngay trên trạm có tài nguyên.
Để cập nhật thông tin, mỗi tiến trình phát đi cho một tập hợp nhất định các
trạm:
- Thông điệp của mình.
- Các yêu cầu của mình.
- Các thông điệp giải phóng của mình.
Các bản sao trạng thái tổng quát trên các trạm phải có cùng các bước chuyển
trạng thái. Để đảm bảo điều đó, cần phải xử lý các yêu cầu trong cùng một trật tự
trên tất cả các trạm. Trật tự này có thể khác với trật tự đến. Có thể sử dụng các kỹ
thuật như dấu, bộ tuần hoàn,… để giải quyết vấn đề trong đồng bộ thông tin.
Ta sẽ sử dụng với tư cách là ví dụ nguyên lý triển khai thuật toán trình bày
trong ấn phẩm của Lomet và ứng dụng hợp lý thông cáo hợp thức. Một phiên bản
của thuật toán này được trình bày trong chương sau của tiểu luận này.
Khi bắt đầu thực hiện giao dịch T
i
thì giao dịch này cần phải phát thông điệp
hợp thức của tập hợp các tài nguyên mà nó định sử dụng. Một tài nguyên chỉ có thể
thu hồi, nếu nó là một phần của thông điệp.
Học viên: Nguyễn Nương Quỳnh
18
Tiểu luận môn học Hệ phân tán

Ta định nghĩa một quan hệ gọi là phụ thuộc thế năng giữa hai giao dịch T
j

T
k
, ký hiệu là T
j
> T
k
, điều đó nói lên rằng T
j
chậm hơn T
k
. Nếu T
j
> T
k
nghĩa là tồn
tại ít nhất một tài nguyên bị cài then bởi T
j
và là thành phần thuộc thông điệp của
T
k
. Quan hệ này có thể biểu diễn bằng đồ thị G, biến thiên theo thời gian gọi là đồ
thị các xung đột thế năng. Tồn tại vòng lặp trong đồ thị này sinh ra bế tắc.
Ví dụ: Đánh giá ba giao dịch T
1
, T
2
, T

3
sử dụng ba tài nguyên e
1
, e
2,
e
3
. Ta ký
hiệu a_loai_tru_th( ) là phép toán thông điệp.
Giao dịch T
1
: Giao dịch T
2
: Giao dịch T
3
:
Giả sử rằng các lệnh thực hiện theo trình tự t
11
, t
21
, t
31
, t
12
, t
22
, t
32
vào thời điểm
t sau khi thực hiện các lệnh này, đồ thị G có thể biển diễn trong hình 5, bế tắc

không tránh khỏi.
e2
T1
e1
e3
T3
T2
Hình 5: Vòng khép kín trên đồ thị
Để tránh bế tắc diễn ra, ta duy trì tại mỗi trạm một bản sao của đồ thị G, tài
nguyên chỉ được cung cấp nếu việc cung cấp đó không phát sinh vòng lặp trên đồ
thị này.
Mỗi một thông cáo, thông điệp hay khuyến nghị giải phóng đều nhận một dấu,
rồi phát ra cho tất cả các trạm. Để cập nhật bản sao của mình về đồ thị G, mỗi trạm
xử lý các thông điệp mà nó nhận được trong một trật tự chặt chẽ được xác định bởi
dấu căn cứ.
Học viên: Nguyễn Nương Quỳnh
t
11
: a_loai_tru_th(e1,
e2)


t12: v_loai_tru_th(e1)


t13: v_loai_tru_th(e
2
)
t21: a_loai_tru_th(e2,
e3)



t22: v_loai_tru_th(e2)


t23: v_excl(e3)
t31: a_loai_tru_th(e3,
e1)


t32: v_excl(e3)


t33: v_loai_tru_th(e1)
19
Tiểu luận môn học Hệ phân tán
Chương 3
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN PHÁT HIỆN BẾ TẮC
1. Thuật toán dự phòng bế tắc- Thuật toán Lomet
1.1. Các định nghĩa
- Một quan hệ gọi là phụ thuộc thế năng giữa 2 giao dịch T
j
và T
k
, kí hiệu
T
j
>T
k

, nghĩa là tồn tại ít nhất một tài nguyên bị cài then bởi T
j
và là thành phần
thuộc thông điệp của T
k
.
- Một quan hệ gọi là chặn thế năng giữa 2 giao dịch T
j
và T
k
, kí hiệu
T
j<>
T
k
, nghĩa là tất cả tài nguyên thuộc tập hợp theo yêu cầu của thông điệp T
k
đều bị cài then bởi T
j
. Hai quan hệ này có thể biểu diễn bằng đồ thị G, biến thiên
theo thời gian gọi là đồ thị các xung đột thế năng. Nếu tồn tại vòng lặp trong đồ
thị G này thì sẽ sinh ra bế tắc.
- Sự xung đột giữa hai giao dịch T
j
và T
k
là sự nhận thông điệp yêu cầu cung
cáp tài nguyên của T
j
và T

k
đúng vào cùng một thời điểm. Nếu ta ký hiệu
kJ
TGTGD −=
là khoảng cách giữa thời điểm nhận thông điệp thì sự xung đột sẽ
xãy ra khi
0=D
Ví dụ:
Xét ba giao dịch T
1
, T
2
, T
3
sử dụng ba tài nguyên R
1
, R
2
, R
3
. Giả sử
v_chia_se_th() là phép toán cài then có tính chia sẻ, v_loai_tru_th() yêu cầu cung
cấp tài nguyên e, và a_th() là phép toán thông điệp
Giao dịch T
1
: Giao dịch T
2
: Giao dịch T
3
Ta giả sử rằng với các tài nguyên R

1
, R
2
và R
3
được bố trí trên các trạm tương
ứng S
1
, S
2
và S
3
. Nếu trạm S
i
chỉ nhận các thông cáo tương ứng với tài nguyên mà
nó quản lý, thì nó chỉ duy trì đồ thị Gi .
(G
i
hình ảnh thu được của G cho các giao dịch đã phát thông cáo).
Học viên: Nguyễn Nương Quỳnh
t
11
: a_th(R
3
, R
1
, R
2
)


t
12
: v_loai_tru_th(R
3
)
v_chia_se_th(R
1
)

t
13
: v_loai_tru_th(R
2
)
t
21
: a_th(R
1
, R
3
)

t
22
: v_chia_se_th(R
1
)

t
23

: v_loai_tru_th(R
3
)
t
31
: a_th(R
2
, R
1
)

t
32
: v_loai_tru_th(R
2
)

t
33
: v_loai_tru_th(R
1
)
20
Tiểu luận môn học Hệ phân tán
Giả sử các lệnh thực hiện theo trình tự: t
11
- t
21 -
t
31 -

t
12 -
t
22 -
t
32.
Như vậy, sau
khi đã thực hiện t
32
, ta có hình ảnh đồ thị G
1,
G
2,
G
3
tại các trạm tương ứng S
1,
S
2,
S
3
như sau:
Tại trạm S
1
có đồ thị G
1
:
T3 R1
T1
T2

s
s
e
Tại trạm S
2
có đồ thị G
2
:
T3
T1R2
e
e
Tại trạm S
3
có đồ thị G
3
:
Rõ ràng, thông qua
ba đồ thị trên đây, ta
không phát hiện được
mạch khép kín có thể dẫn
đến tình trạng bế tắc.
Nhưng, nếu ở hệ tập trung
hay trạng thái không từng phần, ta có đồ thị sau:
Học viên: Nguyễn Nương Quỳnh
21
T1
T2
R3
e

e
Tiểu luận môn học Hệ phân tán
T3 R1
T1
T2
R2 R3
s
s
e
e e
e
e
Ti Rj
RrTs
Cung tiÕn tr×nh ®ang
n¾m gi÷ tµi nguyªn
Cung tiÕn tr×nh ®ang
®îi tµi nguyªn
s: Truy cËp chia sÎ e:Truy cËp lo¹i trõ
Hình 6: Phát sinh bế tắc
Trong thực tế, mặc dù không có đồ thị nào trong số này cho phép phát hiện
một vòng lặp bế tắc, nhưng trên một trạm cho trước nào đó, ta lại không thể dự
phòng bế tắc có kết quả được.
1.2. Nguyên lý
Ta sẽ thay thế vào điều kiện cung cấp trong đồ thị G không vòng một điều
kiện khác mạnh hơn, nhưng được kiểm tra bằng thông tin cục bộ trên từng trạm.
Để làm được điều đó, ta thêm vào cho từng đồ thị G’
i
hình ảnh thu nhỏ cho S
i

của đồ thị một quan hệ toàn bộ chặt chẽ được xác định trên tập hợp các giao dịch.
Quan hệ trật tự này có thể có được nhờ phương tiện dấu. Điều kiện cung cấp tài
nguyên là duy trì tình trạng không vòng lặp cho các đồ thị G
i
. Căn cứ theo cấu trúc,
điều kiện này có thể được kiểm tra cục bộ trên từng trạm. Ta sẽ chỉ ra G có được
tình trạng không vòng lặp như thế nào. Đầu tiên chúng ta bắt đầu chỉ ra sự tồn tại
của vòng lặp trong G kéo theo sự tồn tại của vòng lặp có trong ít nhất một G’
i
. Kí
hiệu T
j
>>T
k
hoặc T
j
<>
T
k
là quan hệ trật tự từng phần chặt chẽ trên các giao dịch.
Lúc này, G’
i
là hình ảnh thu nhỏ của trạm S
i
của đồ thị quan hệ >> hoặc
<>
xác định
bởi:

Giả sử rằng G có vòng lặp bao gồm một tập hợp của n giao dịch được đánh số

từ 0 đến n-1 trong trật tự của vòng lặp của trật tự xác định bởi quan hệ >. Giả sử
rằng T
p
là nguyên tố của tập hợp này đến trước tất cả các cái khác theo chiều của
quan hệ >> và giả sử rằng q=p-1 modulo n. Ta có:
Học viên: Nguyễn Nương Quỳnh
22
T
j
>>T
k
⇔ T
j
>T
k
hay T
j
>>T
k
T
j
<>
T
k
⇔ T
j
>T
k
hay T
j

<>
T
k
hoặc
Tiểu luận môn học Hệ phân tán
Nếu S là số của trạm chứa tài nguyên bị cài then bởi T
q
và thuộc quyền sở hữu
của thông cáo T
p
thì G’
i
chứa vòng lặp.
1.3. Thuật toán
Thuật toán dự phòng được triển khai như sau:
Bước Triển khai
1
Nhận yêu cầu cung cấp tài nguyên từ giao dịch T
i
. Phân biệt thông điệp đã nhận
là yêu cầu cung cấp tài nguyên theo kiểu loại trừ hay chia sẻ (tức là đã phân
nhóm giao dịch).
2 Kiểm tra khoảng cách D giữa hai giao dịch. (Nếu D=0 thì thông báo xung đột).
3
Kiểm tra tài nguyên theo yêu cầu của giao dịch và gởi thông điệp tương thích
cho giao dịch.
4
Việc cung cấp tài nguyên tại trạm S cho giao dịch T
i
được tiến hành, nếu việc

cung cấp đó không tạo ra vòng lặp trong đồ thị G’
i
.
5
Trong trường hợp bị từ chối, tiến trình thực hiện giao dịch trên trạm S được đưa
vào hàng đợi cục bộ tại S
6
Khi tài nguyên được giải phóng, tất cả các tiến trình của hàng đợi được kiểm tra
nếu các yêu cầu của chúng có thể được thoả mãn.
Quá trình vận hành thuật toán được minh hoạ qua ví dụ nêu trên như sau:
Khi T
1
thực hiện t
12
:
v_loai_tru_th(R
3
)
v_chia_se_th(R
1
)
Trong đó:
v_loai_tru_th(R
3
) yêu cầu này vào xung đột với thông cáo a_th(R
3
) thực hiện
bởi T
2
. Như vậy, cung P

2
-R
3
-P
1
được thành lập trong G. Lúc này yêu cầu vẫn được
chấp nhận, vì giao dịch T
1
>>T
2
.
Yêu cầu t
22
: v_chia_se_th(R
1
) được chấp nhận, vì tài nguyên này được T
1
truy
cập theo kiểu chia sẻ nên hoàn toàn cho giao dịch khác truy cập chia sẻ.
Yêu cầu t
32
: v_loai_tru_th(R
2
) bị từ chối vì nó tạo ra vòng lặp trên S
2
.
(Nhưng cần lưu ý rằng nếu trật tự giao dịch theo dạng T
1
, T
2

, T
3
thì yêu cầu vừa
nên có thể được chấp nhận).
Thuật toán này đặt ra một nguyên tắc tương tự như các nhóm sắp xếp. Duy chỉ
có khác nhau một điều là nó tránh được sự thiếu thốn vô hạn, bởi vì trật tự tổng quát
được triển khai cho các giao dịch chứ không phải cho các tài nguyên. Một giao dịch
trở nên rất cần thiết là giao dịch có thời gian chờ đợi dài nhất sau một khoảng thời
gian nhất định, do vậy nó trở thành giao dịch được ưu tiên nhất trên tất cả các trạm
mà nó đã gửi thông điệp.
Học viên: Nguyễn Nương Quỳnh
23
T
p
>>T
q
hoặc T
j
<>
T
k
vì T
p
đến trước các cái khác
T
j
>T
k
trong vòng lặp của đồ thị G
Tiểu luận môn học Hệ phân tán

2. Thuật toán phát hiện bế tắc - Thuật toán Menasce
Khi các tài nguyên được sử dụng bởi giao dịch được xác định theo kiểu động
trong quá trình thi hành giao dịch, các phương pháp dự phòng bế tắc dựa trên nền
tảng các thông điệp không còn phù hợp được nữa. Lúc này, ta phải sử dụng các
phương pháp phát hiện và chữa trị.
Phương pháp được mô tả bởi Menasce sẽ được trình bày ở đây. Phương pháp
này đặt ra vấn đề sử dụng một đồ thị các tranh chấp mà việc kiểm tra các tranh chấp
đó cho phép phát hiện bế tắc.
Tương tự như thuật toán Lomet vừa nêu, mỗi một trạm quản lý các tài nguyên
riêng của mình và việc phát hiện chỉ dựa vào thông tin cục bộ. Các trạm khởi sự các
giao dịch bị treo được đề phòng phát sinh bế tắc (mà bế tắc này có thể phát hiện tại
một trạm nào đó) cần phải đề ra các bịên pháp chữa trị cho mình.
2.1. Các định nghĩa
Ta cần xác định trong mọi thời điểm giữa hai giao dịch T
j
và T
k
quan hệ chặn
trực tiếp như sau:
T
j
>T
k
⇔ Tồn tại ít nhất một tài nguyên bị cài then bởi T
j

yêu cầu bởi T
k
nhưng không được đáp ứng.
Và quan hệ chặn hiệu lực là:


T
j
<>
T
k
⇔ Tài nguyên thuộc tập hợp theo yêu cầu của giao
dịch bị cài then bởi T
j
và yêu cầu bởi T
k
nhưng không được
đáp ứng.
Quan hệ này được biểu hiện bằng một đồ thị gọi là đồ thị các xung đột hữu
hiệu. Sự tồn tại một vòng lặp trong đồ thị này báo hiệu cho ta biết sẽ có bế tắc diễn
ra. Một giao dịch “không bị chặn”, nghĩa là, được biểu diễn bằng một nút trong đồ
thị mà tại đó không có cung nào dẫn đến.
Giả sử rằng T
k
là một giao dịch bị chặn. Tập hợp tất cả các giao dịch mà có thể
đạt được bằng cách chạy khắp các cung xuất phát từ T
k
, theo chiều ngược lại với
hướng của chúng, và gọi là tập hợp các chặn của T
k
, ký hiệu là E(T
k
). Các giao dịch
thuộc vào E(T
k

) là các giao dịch có nguồn gốc từ sự chặn từ T
k
.
Tại một thời điểm cho trước, đồ thị các xung đột hữu hiệu sinh ra các quan hệ
chặn tồn tại giữa các giao dịch của hệ. Ta ký hiệu B(T
k
) là tập hợp các giao dịch bị
chặn do T
k
, có nghĩa là các giao dịch có thể đạt được bằng cách chạy khắp các cung
xuất phát từ T
k
.
Ví dụ:
Học viên: Nguyễn Nương Quỳnh
24
Tiểu luận môn học Hệ phân tán
Cho đồ thị các xung đột hữu hiệu như sau: Với các giao dịch không bị chặn là
T
3
, T
4
, T
5
.
T1
T2
T3
T4
Ta có:

E(T
1
) = {T
2
, T
3
, T
4
, T
5
}
B(T
5
) = {T
1
, T
2
}
Đồ thị các xung đột hữu hiệu chứa vòng lặp nếu và chỉ nếu tồn tại giao dịch T
k
mà tập hợp chặn của nó chứa một giao dịch bị chặn bởi T
k
:

k: B(T
k
)

E(T
k

)



{Tồn tại vòng lặp}
Nếu ta không muốn duy trì trên mỗi trạm một bản sao của đồ thị tổng quát thì
cần phải xây dựng một ảnh cục bộ cho phép đánh giá các điều kiện vừa nêu trên.
Điều đó sẽ được thực hiện trong giải thuật Menasce sau đây.
2.2. Thuật toán
Ta ký hiệu S(T
k
) là trạm nguồn của giao dịch T
k
. Để cho mỗi giao dịch T
k
,
trạm S(T
k
) duy trì các tập hợp B(T
k
) và E(T
k
). Việc cập nhật E(T
k
) cần phải được
biểu hiện trên tất cả các trạm nguồn của các giao dịch thuộc B(T
k
). Thực tế giao
dịch chặn T
k

là phần tử của toàn bộ tập hợp chặn của các giao dịch thuộc B(T
k
).
Giả sử rằng T
k
đã yêu cầu một tài nguyên (hay một tập hợp tài nguyên) e của
trạm S
i
nào đó. Trên trạm này ta thực hiện các phép toán sau đây:
STT Phép toán
1
Nếu e là có sẵn để dùng, yêu cầu được thoả mãn và ta ghi nhận là T
k
đang có
tài nguyên.
2
Nếu e đã được cung cấp cho giao dịch T
j
thì thông điệp “T
j
chặn T
k
” được
truyền cho trạm S(T
j
) và S(T
k
). Sau này (j,k) chỉ là một thông điệp như vậy.
Khi nhận một thông điệp (j,k) trên một trạm S nào đó, ta thực hiện các động
tác sau đây:

1.Trên trạm S(T
j
) nguồn của giao dịch chặn T
j
, ta thêm T
k
vào tập hợp B(T
j
) và
kiểm tra rằng không phát sinh bế tắc, nghĩa là: B(T
j
)

E(T
j
) =


Ta gửi tiếp thông điệp (l,k) về phía các trạm nguồn của các giao dịch T
l
và T
j
nhằm cho phép các trạm S(T
l
) cập nhật các tập hợp E(T
l
), B(T
l
) của các giao dịch bị
Học viên: Nguyễn Nương Quỳnh

25
T5

×