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

Tiểu luận môn Hệ phân tán Tài nguyên và chiến lược cung cấp tài nguyê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 (374.21 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



Học viên: Nguyễn Nương Quỳnh

1


Tiểu luận môn học Hệ phân tán

LỜI MỞ ĐẦU
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 tồ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 ngun nói chung, tài ngun 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 hồn tồ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 q 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 hồ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à chun 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 tố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 q 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 ngun 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 hố đ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 tố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ác hệ
thống phần
mềm

Hệ thống
truyền
thơng

Các hệ

thống phần
cứng

Hệ thống dữ
liệu

Hình 1: Bốn thực thể của hệ tin học phân tán.

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 hồn
tồ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
Thực tế phát triển mạng máy tính đặt ra một vấn đề lớn
Chia sẽ tài là cần phải dùng chung tài ngun. Một tiến trình trên
1.
ngun
một trạm nào đó có thể cung cấp tài nguyên dùng chung
ở một trạm khác.
Khi các hệ thống đã được mắc nối với nhau, các thực thể
2.
Liên lạc

trong hệ có thể trao đổi thơng tin với nhau.
Một trạm trong hệ bị sự cố không làm cho tồn hệ ảnh
hưởng mà ngược lại, cơng việc đó được phân cho các
3.
Tin cậy
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ó
Đây là khái niệm mới về phân tán tải. Một tính tốn lớn
nào đó nếu chỉ sử dụng một trạm thì thời gian cho kết
4.
Tăng tốc
quả lâu. Tính tố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 hố các q 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


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ữ
tồ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ẽ. Q 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 q 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 ngun 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 q 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 u cầu và bộ cung cấp
Giao dịch là phép toán hợp thành một logic hồ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 ngun).
Một tiến trình nào đó cần sử dụng tài ngun để 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

ngun sẽ bị treo chừng nào tài ngun đó 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 u cầu sử dụng
tài ngun 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
1
Giải phóng

Điều kiện
Tiến trình phát tín hiệu ngừng sử dụng tài nguyên
Sự lấy lại tài nguyên đã được cung cấp cho tiến trình. Bộ

2
Thu hồi
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à khố 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:
T2

T1

Tr1

Tr2

T3

Tr3

T4

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,T2, T3, T4 và có ba tiến trình nhu cầu
tài ngun là Tr1, Tr2, và Tr3. Cả 3 tiến trình này đang ở tình trạng bế tắc. Tiến trình
Tr2 chờ tài nguyên T2 do Tr3 đang chiếm giữ. Tiến trình Tr3 chờ tài nguyên T3 được
giải phóng bởi Tr1 trạm Tr3. Thêm vào đó, tiến trình Tr1 chờ tiến trình Tr2 giải phóng

T1. 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
Chu trình 1:

Tr1-T1-Tr2-T2-Tr3-T3-Tr1

Chu trình 2: Tr3-T -Tr2-T2-Tr3
Thiếu tài nguyên vĩnh viễn là sự chờ3 đợ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. Ngun 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 ngun 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


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
ngun. Tiến trình server có thể được lập trình để triển khai tồ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.
Tr1
Tr2
Tr3

T

T: Tài nguyên
Tr: Tiến trình (Khách)

Server

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


Tiểu luận môn học Hệ phân tán
Tr1

Hàng đợi các yêu cầu

S1

D

Tr2
...
T: Tài nguyên
Si- Server

Trn

T

Tr: Tiến trình (Khách) S2
...
D-Đánh thức


Sn

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:

Tr1

KiĨm tra truy
cËp

S1
T

Tr2
S2

...

Trn
Sn

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


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 ngun e để thực hiện phép tố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 Ti 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 Sj, giao dịch Ti
cho thực hiện phép tốn v_loai_tru_th(e) thơng qua đại diện pij 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 ngun bị khố 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 tố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 ngun.

Ví dụ: Giả sử có hai tiến trình p và q cùng sử dụng hai tài nguyên e1 và e2,
chúng được mô tả trong đoạn chương trình sau đây:
Tiến trình p
p1: v_loai_tru_th(e1)
p2: v_loai_tru_th(e2)

Tiến trình q
q1: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ự p1, q1 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à p2 và q2 không bao giờ được đáp ứng,
nếu e1 và e2 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 tố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 C1, C2,…,Cn. Một tiến trình nào đó chỉ có thể thu hồi các tài nguyên
của nhóm Ci 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ó C1, C2,…,Ci-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 u cầu
khơng được thoả mãn, các cung tài ngun-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ỏ hồn tồ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ó
hồn tồ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 ln 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ể:
Giải pháp
STT
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
1
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.
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
2
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.
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ả
3
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 tố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 tố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 ngun.
Để 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 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 qt 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 hồ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ụ ngun lý triển khai thuật tố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 tố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 Ti 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 Tj và
Tk, ký hiệu là Tj > Tk, điều đó nói lên rằng Tj chậm hơn Tk. Nếu Tj > Tk nghĩa là tồn
tại ít nhất một tài nguyên bị cài then bởi Tj và là thành phần thuộc thơng điệp của
Tk. 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 T1, T2, T3 sử dụng ba tài nguyên e1, e2, e3. Ta ký
hiệu a_loai_tru_th( ) là phép tốn thơng điệp.
Giao dịch T1:
Giao dịch T2:

Giao dịch T3:
t11: a_loai_tru_th(e1,
t21: a_loai_tru_th(e2,
t31: a_loai_tru_th(e3,
e3)
e1)
e2)






t22: v_loai_tru_th(e2)
t32: v_excl(e3)
t12: v_loai_tru_th(e1)






Giả sử rằng các lệnh thựct23: v_excl(e3) tự t11, t21, t31, t12, t22v_loai_tru_th(e1)
hiện theo trình
t33: , t32 vào thời điểm
t13: v_loai_tru_th(e2)
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
T3

T2
e3

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

19


Tiểu luận mơn học Hệ phân tán

Chương 3
THUẬT TỐN DỰ PHỊNG BẾ TẮC
THUẬT TỐN PHÁT HIỆN BẾ TẮC
1. Thuật tốn dự phịng bế tắc- Thuật tố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 Tj và Tk, kí hiệu
Tj>Tk, nghĩa là tồn tại ít nhất một tài nguyên bị cài then bởi Tj và là thành phần
thuộc thông điệp của Tk.
- Một quan hệ gọi là chặn thế năng giữa 2 giao dịch Tj và Tk, kí hiệu
Tj<>Tk, 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 Tk
đều bị cài then bởi Tj. 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 Tj và Tk là sự nhận thông điệp yêu cầu cung
cáp tài nguyên của Tj và Tk đúng vào cùng một thời điểm. Nếu ta ký hiệu
D = TG J − TG k 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 D = 0
Ví dụ:
Xét ba giao dịch T1, T2, T3 sử dụng ba tài nguyên R1, R2, R3. Giả sử
v_chia_se_th() là phép tố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 tốn thơng điệp
Giao dịch T1:
Giao dịch T2:
Giao dịch T3
t11: a_th(R3, R1, R2)
t21: a_th(R1, R3)
t31: a_th(R2, R1)



t12: v_loai_tru_th(R3)
v_chia_se_th(R1)



t22: v_chia_se_th(R1)

t32: v_loai_tru_th(R2)





t23: v_loai_tru_th(R3)
t33: v_loai_tru_th(R1)
t13: v_loai_tru_th(R2)
Ta giả sử rằng với các tài nguyên R1, R2 và R3 được bố trí trên các trạm tương
ứng S1, S2 và S3. Nếu trạm Si chỉ nhận các thông cáo tương ứng với tài ngun mà
nó quản lý, thì nó chỉ duy trì đồ thị Gi .
(Gi 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

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ự: t11 - t21 - t31 - t12 - t22 - t32. Như vậy, sau
khi đã thực hiện t32, ta có hình ảnh đồ thị G1, G2, G3 tại các trạm tương ứng S1, S2, S3
như sau:
Tại trạm S1 có đồ thị G1:
e

T3


s

R1

T2

s

T1

Tại trạm S2 có đồ thị G2:
T3
e
R2

T1

e

Tại trạm S3 có đồ thị G3:
T2
e
T1

e

R3

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


Tiểu luận môn học Hệ phân tán
e

T3

T2

s

e
R2

s

R1

T1


e

Ti

Ts

Rj

Rr

s: Truy cËp chia sẻ

e
R3

e

Cung tiến trình đang
nắm giữ tài nguyên
Cung tiến trình đang
đợi tài nguyên
e:Truy cập loại trừ

Hỡnh 6: Phỏt sinh b tc
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. Ngun 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 Si
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ị Gi. 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 Tj>>Tk hoặc Tj<>Tk 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 Si của đồ thị quan hệ >> hoặc <> xác định
bởi:
Tj>>Tk ⇔ Tj>Tk hay Tj>>Tk

hoặc

Tj<>Tk ⇔ Tj>Tk hay Tj<>Tk

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 Tp 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


Tiểu luận mơn học Hệ phân tán
Tp>>Tq hoặc Tj<>Tk vì Tp đến trước các cái khác
Tj>Tk trong vòng lặp của đồ thị G
Nếu S là số của trạm chứa tài nguyên bị cài then bởi Tq và thuộc quyền sở hữu

của thơng cáo Tp thì G’i chứa vịng lặp.
1.3. Thuật tốn
Thuật tốn dự phịng được triển khai như sau:
Bước

Triển khai
Nhận yêu cầu cung cấp tài nguyên từ giao dịch Ti. Phân biệt thông điệp đã nhận
1
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).
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
3
cho giao dịch.
Việc cung cấp tài nguyên tại trạm S cho giao dịch Ti được tiến hành, nếu việc
4
cung cấp đó khơng tạo ra vịng lặp trong đồ thị G’i.
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
5
vào hàng đợi cục bộ tại S
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
6
nếu các yêu cầu của chúng có thể được thoả mãn.
Q trình vận hành thuật tốn được minh hoạ qua ví dụ nêu trên như sau:
Khi T1 thực hiện t12:
v_loai_tru_th(R3)
v_chia_se_th(R1)
Trong đó:
v_loai_tru_th(R3) u cầu này vào xung đột với thơng cáo a_th(R3) thực hiện

bởi T2. Như vậy, cung P2-R3-P1 đượ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 T1>>T2.
Yêu cầu t22: v_chia_se_th(R1) được chấp nhận, vì tài nguyên này được T1 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 t32: v_loai_tru_th(R2) bị từ chối vì nó tạo ra vịng lặp trên S2.
(Nhưng cần lưu ý rằng nếu trật tự giao dịch theo dạng T1, T2, T3 thì 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


Tiểu luận mơn học Hệ phân tán
2. Thuật tố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 Tj và Tk quan hệ chặn
trực tiếp như sau:
Tj>Tk ⇔ Tồn tại ít nhất một tài nguyên bị cài then bởi Tj và
yêu cầu bởi Tk nhưng không được đáp ứng.
Và quan hệ chặn hiệu lực là:
Tj<>Tk ⇔ 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 Tj và yêu cầu bởi Tk 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 Tk 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ừ Tk, 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 Tk, ký hiệu là E(Tk). Các giao dịch
thuộc vào E(Tk) là các giao dịch có nguồn gốc từ sự chặn từ Tk.
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(Tk) là tập hợp các giao dịch bị
chặn do Tk, 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ừ Tk.
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à
T3, T4, T5.
T1

T2
T3

T4

T5

Ta có:
E(T1) = {T2, T3, T4, T5}
B(T5) = {T1, T2}
Đồ 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 Tk
mà tập hợp chặn của nó chứa một giao dịch bị chặn bởi Tk:

∃ k: B(Tk) ∩ E(Tk) ≠ ∅
{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(Tk) là trạm nguồn của giao dịch Tk. Để cho mỗi giao dịch Tk,
trạm S(Tk) duy trì các tập hợp B(Tk) và E(Tk). Việc cập nhật E(Tk) 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(Tk). Thực tế giao
dịch chặn Tk 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(Tk).
Giả sử rằng Tk đã 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 Si 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
Nếu e là có sẵn để dùng, yêu cầu được thoả mãn và ta ghi nhận là Tk đang có
1
tài nguyên.
Nếu e đã được cung cấp cho giao dịch Tj thì thơng điệp “Tj chặn Tk” được
2
truyền cho trạm S(Tj) và S(Tk). 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(Tj) nguồn của giao dịch chặn Tj, ta thêm Tk vào tập hợp B(Tj) và
kiểm tra rằng không phát sinh bế tắc, nghĩa là: B(Tj) ∩ E(Tj) = ∅
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 Tl và Tj
nhằm cho phép các trạm S(Tl) cập nhật các tập hợp E(Tl), B(Tl) của các giao dịch bị

Học viên: Nguyễn Nương Quỳnh

25


×