Tải bản đầy đủ (.doc) (23 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 (389.51 KB, 23 trang )

Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
B GIO DC V ĐO TO
ĐI HC Đ NNG
o0o
BO CO TIỂU LUẬN
HỆ TIN HC PHÂN TN
Đề tài số 19:
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 xẻ.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.
Học viên: Đào Thị Diệu Nhơn Trang 1
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơ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 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.
Để xây dựng một hệ phân tán cần thể hiện được bốn khía cạnh sau:
1.Chia sẻ tài nguyên.
2.Hệ thống liên lạc.
3.Độ tin cậy.
4.Tốc độ truyền thông tin.
Một trong những tư tưởng lớn của hệ tin học 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ông việc đó trên các trạm khác nhau. Do đó hệ tin học phân
tán phải bao gồm một hệ thống về cẩu trúc chặt chẽ và nó thực hiện hàng loạt các chức
năng phức tạp, mà 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. 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. 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
Học viên: Đào Thị Diệu Nhơn Trang 2
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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. Những ưu
điểm nổi bật trong việc sử dụng chung tài nguyên của hệ phân tán được thể hiện qua:
1.Tăng tốc độ bình quân trong tính toán, xử lý.
2.Cải thiện tình trạng luôn sẵn sàng của các loại tài nguyên.

3.Tăng độ an toàn cho dữ liệu.
4.Đa dạng hóa các loại hình dịch vụ tin học.
5.Đảm bảo tính vẹn toàn của thông tin.
Tóm lại: 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:
Phần 1: Tài nguyên và các chiến lược cung cấp tài nguyên.
Phần 2: Thuật toán dự phòng bế tắc (Thuật toán Lomet)
Thuật toán phát hiện bế tắc (Thuật toán Menasce).
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 Lê Văn Sơn đã cung cấp và định hướng để tôi có thể
hoàn thành tiểu luận này!
Học viên: Đào Thị Diệu Nhơn Trang 3
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
PHẦN 1
TÀI NGUYÊN VÀ CÁC CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN
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.
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.1. Một số khái niệm:
1.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.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 lô gích 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
Học viên: Đào Thị Diệu Nhơn Trang 4
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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,

1.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.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:
Học viên: Đào Thị Diệu Nhơn Trang 5
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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à:
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.
1.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.
Học viên: Đào Thị Diệu Nhơn Trang 6
Lớp Khoa học máy tính - Khóa 10.
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: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
1.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:
1.Truy cập bằng một tiến trình duy nhất.
2.Truy cập bằng các tiến trình tương tranh.
1.2.1.1. Truy cập bởi server 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
1.2.1.2. 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: Đào Thị Diệu Nhơn Trang 7
Lớp Khoa học máy tính - Khóa 10.
T: Tài nguyên
Tr: Tiến trình (Khách)
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơ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: Đào Thị Diệu Nhơn Trang 8
Lớp Khoa học máy tính - Khóa 10.
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: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
1.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:
*Một số thuật ngữ và khái niệm:
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: Đào Thị Diệu Nhơn Trang 9
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
1.2.2.1. Các phương pháp sử dụng trong hệ tập trung:
A.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.
B.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.
C.Kết luậ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 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.
Học viên: Đào Thị Diệu Nhơn Trang 10
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơ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.
1.2.2.2 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:
A.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.
B.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.
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.
Học viên: Đào Thị Diệu Nhơn Trang 11
Lớp Khoa học máy tính - Khóa 10.

Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
1.2.2.3. 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:
1.Thông điệp của mình.
2.Các yêu cầu của mình.
3.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.
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
và 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.
Học viên: Đào Thị Diệu Nhơn Trang 12
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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ứ.
1.2.2.4. Các phương pháp cung cấp theo kiểu sử dụng trạng thái từng phần:
Mỗi trạm chỉ quản lý các tài nguyên cục bộ của mình và các quyết định cung cấp
được đưa ra dựa trên thông tin cục bộ.
Học viên: Đào Thị Diệu Nhơn Trang 13
Lớp Khoa học máy tính - Khóa 10.
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)
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
PHẦN 2
THUẬT TOÁN DỰ PHÒNG BẾ TẮC (LOMET)
VÀ THUẬT TOÁN PHÁT HIỆN BẾ TẮC (MENASCE)
2.1.Yêu cầu:
Cho hai loại tài nguyên: 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 xẻ được cung cấp cho một tập hợp bất kỳ

các giao dịch.
1.Trình bày thuật toán Lomet 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.
2.Trình bày thuật toán 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.
2.2. Thuật toán dự phòng bế tắc- Thuật toán Lomet:
2.2.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 −=

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
2.2.2.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
Học viên: Đào Thị Diệu Nhơn Trang 14
Lớp Khoa học máy tính - Khóa 10.
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
)
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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).
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ó
Học viên: Đào Thị Diệu Nhơn Trang 15
Lớp Khoa học máy tính - Khóa 10.
T1
T2
R3
e
e
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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:
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.
2.2.3. 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:

Học viên: Đào Thị Diệu Nhơn Trang 16
Lớp Khoa học máy tính - Khóa 10.
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: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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

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ó:
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.
2.2.4. Thuật toán:
Thuật toán dự phòng được triển khai như sau:

STT 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).
Học viên: Đào Thị Diệu Nhơn Trang 17
Lớp Khoa học máy tính - Khóa 10.
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: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơ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.
2.3. 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.3.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
và 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
.
Học viên: Đào Thị Diệu Nhơn Trang 18
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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
.
2.3.2.Ví dụ:
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

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.3.3. 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:
Học viên: Đào Thị Diệu Nhơn Trang 19
Lớp Khoa học máy tính - Khóa 10.
T5
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
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ị chặn bởi T
l
.
Song song với tác động trên, các thông điệp (l,k) được gửi về trạm nguồn của các giao
dịch T
k
để cập nhật tập hợp E(T
k
) của các giao dịch chặn T
k
.
2.Trên trạm S(T
k
) nguồn của giao dịch bị chặn T
k

, ta thêm T
j
cho tập hợp E(T
k
) và
kiểm tra không có bế tắc, nghĩa là: B(T
k
)

E(T
k
) =


Ta gửi tiếp tục thông điệp (j,m) về phía các trạm nguồn của các giao dịch T
m
bị chặn
bởi T
k
nhằm cho phép các trạm S(T
m
) cập nhật các tập hợp E(T
m
) của các giao dịch chặn
T
m
.
2.3.4.Mính họa:
Xét ba trạm S
1

, S
2
và S
3
. Mỗi trạm S
i
chứa đối tượng e
i
và là nguồn của giao dịch T
i
:
T
1
T
2
T
3
v_loai_tru_th(e
1
)
……………
v_chia_se_th(e
3
)
v_loai_tru_th(e
2
)
………….
v_chia_se_th(e
1

)
v_loai_tru_th(e3)
……………
v_loai_tru_th(e2)
Ta hãy tưởng tượng rằng tại thời điểm mà tất cả các giao dịch đã được thực hiện có
kết quả phép toán đầu tiên của then cài. Khi đó chuyển sang thời điểm thứ hai, các giao
dịch đều bị chặn. Điều đó kéo theo các sự kiện sau đây:
T
1
: Trên S
3
đề nghị cung cấp e
3
( yêu cầu truy cập chia sẻ) có trên T
3
(lưu ý rằng e
3
được T
3
truy cập theo kiểu loại trừ); S
3
gửi (3,1) cho S
1
và S
3
, từ đó ta có:
E(T
1
)= {T
3

} , B(T
1
)=∅ B(T
3
)= {T
1
}, E(T
3
)= ∅
T
2
: Trên S
1
đề nghị cung cấp e
1
(yêu cầu truy cập chia sẻ) có trên T
1
(lưu ý rằng e
1
được T
1
truy cập theo kiểu loại trừ); S
1
gửi (1,2) cho S
1
và S
2
, từ đó ta có:
E(T
2

)= {T
1
}, B(T
2
)= ∅ E(T
1
)= {T
3
}, B(T
1
)= {T
2
}
S
1
gửi (2,3) cho S
3
và từ đó sinh ra:
E(T
2
)= {T
1
,T
3
} B(T
2
)= ∅
T
3
: Trên S

2
đề nghị cung cấp e
2
(truy cập loại trừ) trên T
2
; S
2
sinh ra T
3
trong
B(T
2
) (nghĩa là B(T
2
)= {T
3
}) và ta ghi nhận là:
Học viên: Đào Thị Diệu Nhơn Trang 20
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
B(T
2
) ∩ E(T
2
) = {T
3
}
Như vậy, bế tắc được phát hiện trên S
2
.

2.4. Kết luận:
Hai thuật toán Lomet và Menasce trên đây xuất phát từ cơ sở cùng một nguyên lý
tương tự. Đó là sự thiếu chắc chắn của trạng thái các trạm xa phát sinh vấn đề lưu trữ một
“giới hạn an toàn” nhất định. Điều đó lại ngăn cản các phép toán không kéo theo bế tắc
trong một số trường hợp nhất định.
Nhưng bản thân hai thuật toán này, khi triển khai, lại cho phép sử dụng các kỹ thuật
khác nhau. Trong thuật toán dự phòng, ta kiểm tra trên trạng thái từng phần một điều kiện
mạnh hơn điều kiện tối thiểu. Trong thuật toán phát hiện bế tắc, ta có trong một trạm
trạng thái của các trạm khác. Thông thường, mỗi trạm đều nhận các thông tin dư thừa.
Các thuật toán Lomet và Menasce đặ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ó dự phòng, phát hiện và tránh được sự thiếu thốn
tài nguyên một cách 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, vì thế cho nên 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. Khi các tài nguyên
được sử dụng bởi giao dịch được xá đị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 sẽ không còn
phù hợp thì lúc này ta được sử dụng các phương pháp phát hiện và chữa trị. Phương pháp
này sẽ đặ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 được các bế tắc. Mỗi một trạm quản lý các đối tượng riêng của mình
và 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 cần phải đề ra các biện pháp chữa trị cho mình. Đó là những ưu
điểm của hai thuật toán Lomet và Menasce có chức năng mạnh, gắn bó hữu cơ với nhau,
hỗ trợ nhau cùng giải quyết các vấn đề cấp thiết trong hệ tin học nói chung và hệ tin học
phân tán nói riêng hiện nay như là bế tắc thông tin, nghẽn giao dịch, thiếu thốn tài
nguyên,
Học viên: Đào Thị Diệu Nhơn Trang 21
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
TÀI LIỆU THAM KHẢO

1. PGS.TS.Lê Văn Sơn (2002), Hệ phân tán, Nhà xuất bản Đại học quốc gia TP. Hồ
Chí Minh.
2.Nguyên lý các hệ cơ sở dữ liệu phân tán của Patrick Valduriez, Trần Đức Quang
Biên Dịch Tập 1 + Tập 2, NXB Thống Kê.
3. />Học viên: Đào Thị Diệu Nhơn Trang 22
Lớp Khoa học máy tính - Khóa 10.
Tiểu luận: HỆ TIN HỌC PHÂN TÁN Giáo viên hướng dẫn: PGS.TS. Lê Văn Sơn
MỤC LỤC
Lời mở đầu 1
Phần 1: Lý thuyết 3
1.1. Một số khái niệm: 4
1.1.1. Tài nguyên: 4
1.1.2. Giao dịch, thông điệp yêu cầu và bộ cung cấp: 4
1.1.3. Tải 5
1.1.4. Bế tắc và vấn đề thiếu tài nguyên vĩnh viễn 5
1.2. Các chiến lược cung cấp tài nguyên 6
1.2.1. Chiến lược cung cấp tài nguyên duy nhất: 7
1.2.1.1. Truy cập bởi server duy nhất: 7
1.2.1.2. Truy cập tương tranh có điều khiển 7
1.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: 9
1.2.2.1. Các phương pháp sử dụng trong hệ tập trung: 10
1.2.2.2 Phân tán chức năng cung cấp: 11
1.2.2.3. Các phương pháp cung cấp sử dụng trạng thái tổng quát: 12
1.2.2.4. Các phương pháp cung cấp theo kiểu sử dụng trạng thái từng phần:
13
2.1.Yêu cầu: 14
2.2. Thuật toán dự phòng bế tắc- Thuật toán Lomet: 14
2.2.1.Các định nghĩa: 14
2.2.2.Ví dụ: 14
2.2.3. Nguyên lý: 16

2.2.4. Thuật toán: 17
2.3. Thuật toán phát hiện bế tắc - Thuật toán Menasce: 18
2.3.1. Các định nghĩa: 18
2.3.2.Ví dụ: 19
2.3.3. Thuật toán: 19
2.3.4.Mính họa: 20
2.4. Kết luận: 21
Học viên: Đào Thị Diệu Nhơn Trang 23
Lớp Khoa học máy tính - Khóa 10.

×