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

Vấn đề liên quan đến chiến lược cung cấp tài nguyên và liên lạc gắn bó giữa các tiến trình

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 (245.45 KB, 29 trang )

MỤC LỤC
LỜI MỞ ĐẦU 2
CHƯƠNG I 3
CÁC KHÁI NIỆM VỀ HỆ TIN HỌC PHÂN TÁN 3
I.Hệ tin học 3
II.Hệ tin học phân tán 3
1.Đặc điểm cơ bản của hệ tin học phân tán 4
2.Các vấn đề điều hành mạng máy tính 5
3.Các đặc trưng của hệ phân tán 5
CHƯƠNG II 8
MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN CHIẾN LƯỢC CUNG CẤP TÀI
NGUYÊN TRONG HỆ PHÂN TÁN 8
I.Một số khái niệm 8
1.Tài nguyên 8
2.Giao dịch, thông điệp yêu cầu, và bộ cung cấp 8
3.Thuật ngữ tải 9
4.Bế tắc và vấn đề thiếu tài nguyên vĩnh viễn 10
II.Các chiến lược cung cấp tài nguyên 11
1.Cung cấp tài nguyên duy nhất 11
2.Cung cấp một tập hợp các tài nguyên. Vấn đề bế tắc 13
CHƯƠNG III 19
VẤN ĐỀ ĐẢM BẢO LIÊN LẠC GIỮA CÁC 19
TIẾN TRÌNH TRONG HỆ PHÂN TÁN 19
I.Đồng bộ hóa giữa các thực thể trao đổi 19
II.Bản chất các thông điệp 20
III.Lai lịch của đối tác (tiến trình) 20
IV.Khả năng có lỗi trong quá trình liên lạc 24
V.Trường hợp trao đổi giữa hai tiến trình 25
1.Chơ chế 1 25
2.Cơ chế 2 25
VI.Trường hợp trao đổi giữa n tiến trình (n>2) 26


TÀI LIỆU THAM KHẢO 29
1
LỜI MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, đặc biệt là các thiết
bị, mạng viễn thông và máy vi tính…chỉ cần kết nối là con người có thể giao tiếp và
chia sẻ tài nguyên thông tin, chia sẻ dữ liệu cho dù khoảng cách giữa họ là xa hay gần.
Nhờ những thành quả của ngành công nghệ thông tin và viễn thông mà nhiều thành
tựu mới đã ra đời, trong đó có sự ra đời của những phần mềm ứng dụng Hệ thống tin
học phân tán (Hệ phân tán): Phần mềm khai thác tài nguyên thông tin, khai thác chia
sẽ dữ liệu, thương mại điện tử (e-commerce)…
Nội dung của tiểu luận tập trung trình bày Vấn đề liên quan đến chiến lược cung
cấp tài nguyên và liên lạc gắn bó giữa các tiến trình, bao gồm các phần chính:
- Một số khái niệm về hệ tin học phân tán.
- Một số khái niệm liên quan đến chiến lược cung cấp tài nguyên trong hệ phân
tán.
- Ngoài ra còn có phần bài tập là đảm bảo việc liên lạc gắn bó giữa các tiến trình.
Nhân đây, tôi xin chân thành cảm ơn PGS.TS Lê Văn Sơn và các bạn lớp Khoa học
máy tính khoá 2008 – 2011 - Đại học Đà Nẵng đã giúp tôi hoàn thành báo cáo tiểu
luận này.
Trong tiểu luận không thể tránh khỏi những thiếu sót về mặt nội dung lẫn hình
thức, em rất mong nhận được sự góp ý, đánh giá của Thầy và các anh, chị học viên
nhằm giúp cho em có một cái nhìn hoàn thiện hơn và bổ sung thêm những kiến thức
về Hệ phân tán.
Học viên thực hiện
Văn Đỗ Cẩm Vân
2
Các khái niệm về hệ tin học phân tán
CHƯƠNG I
CÁC KHÁI NIỆM VỀ HỆ TIN HỌC PHÂN TÁN
I. Hệ 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
và đóng vai trò là một trong hai loại tài nguyên của hệ thống tin học.
Các chương trình ứng dụng là thành phần tiếp theo sau hệ điều hành được hiểu như
là các phần mềm cơ sở phục vụ cho việc triển khai các ứng dụng cụ thể.
Người sử dụng là một đối tượng phải được hiểu theo nghĩa rộng, dưới góc độ hệ
điều hành. NSD có thể là cách nhà chuyên môn, các máy tính, các hệ tự động vân hành
gắn với máy tính,… đang khai thác hệ thống qua 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.
Như vậy xét về mặt quản lý – điều hành các hoạt động của hệ thống thì các thực
thể vừa nêu trên bao gồm phần cứng, phần mềm, và dữ liệu là những đối tượng mà hệ
điều hành phải quan tâm. Những đối tượng này chính là thực thể cơ bản của hệ tin học
Hình 1. Ba thực thể của hệ tin học.
II. Hệ tin học phân tán
Hệ tin học phân tán là hệ thống không chia sẻ bộ nhớ và đồng hồ. Điều đó cho
phép phân biệt với một xu hướng tin học khác về phân tán các tính toán trên nhiều bộ
xử lý hay vi xử lý của hệ thống đa bộ xử lý. Như vậy, hệ tin học phân tán đòi hỏi hệ
thống phần cứng phải trang bị bộ nhớ cục bộ. Các bộ xử lý trao đổi với nhau thông qua
3
Phầ
n
cứn
g
Phầ
n
mề
m
Dữ
liệu

Các khái niệm về hệ tin học phân tán
các hệ thống đường truyền khác nhau như là 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ế, …
1. Đặ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, hệ tin học phân tán có thể bao gồm bốn thực
thể sau:
Hình 2. Bốn thực thể của hệ tin học phân tán.
Để xây dựng một hệ tin học phân tán, cần phải quan tâm đến 4 vấn đề sau:
STT Tên gọi Giải thích
1 Chia sẻ tài nguyên
Một tiến trình trên một trạm nào đó có thể yêu
cầu được cung cấp tài nguyên dùng chung ở một
trạm khác.
2 Liên lạc
Các thực thể của hệ thống có thể trao đổi, liên
lạc với nhau khi hệ thống đã được mắt nối với
nhau.
3 Tin cậy
Một trạm của hệ bị sự cố thì không làm ảnh
hưởng cho toàn hệ, ngược lại, công việc của
trạm đó được phân cho các trạm khác thực hiện.
Ngoài ra, trạm bị sự cố có khả năng phục hồi lại
trạng thái trước khi bị sự cố hay trạng thái ban
đầu của nó.
4 Tăng tốc Đây là khái niệm mới về phân tán tải. Một tính
toán nào đó, nếu chỉ sử dụng một trạm, thì thời
gian trả kết quả sẽ rất lớn. Tính toán này được
chia nhỏ và thực hiện song song trên các trạm.
4
Caïc

hãû thäúng
pháön
mãöm
Hãû thäúng
dæî liãûu
Táûp håüp
pháön
c
æï
n
g
Hãû thäúng
truyãön
thäng
Các khái niệm về hệ tin học phân tán
Điều này cũng rất cần thiết đối với những trạm
bị quá tải.
Mộ 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ác công việc đó trên các trạm xa nhau. Đó là những cơ sở
că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ử số và bệnh viện ảo.
2. Các vấn đề điều hành mạng máy tính
a. Liên lạc: là thuật ngữ được sử dụng để chi các tác vụ trao đổi
thông tin giữa các thực thể thuộc hệ thống, trong đó thực thể gửi gọi là trạm phát.
Trạm phát sẽ phát thông tin cho một hay nhiều thực thể nhận, gọi là trạm nhận. Thông
tin trong quá trình gửi và nhận gọi là thông điệp.
b. Vấn đề trỏ thông tin: Trường hợp NSD mạng muốn liên lạc 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 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
NSD nào đó có thể sử dụng bất cứ trạm nào để liên lạc với NSD mà họ muốn.

c. Thông điệp: Các thông điệp được chia cắt theo kiểu vật lý thông
thường được phân nhóm nhằm thỏa mãn những ràng buộc đường truyền hoặc ràng
buộc về lưu trữ. Những thông điệp này còn gọi là các gói thông tin với 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 quy ước chặt chẽ. Quá trình này được tiến hành tự động ở các tầng thấp
và NSD thường không thể biết.
d. Truyền thông: là sự trao đổi thông tin bằng hình thức thông điệp
giữa các đối tượng gửi và đối tượng nhận. Trao đổi thông tin có thể thực hiện dưới
dạng từng đôi một gọi là đối thoại hoặc một đối tượng gửi cho nhiều đối tượng nhận
gọi là hội thảo.
3. Các đặc trưng của hệ phân tán
a. Trình tự và đồng bộ các tiến trình: chỉ ra 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ệ. cần phải xác định
mối liên hệ trao đổi thông qua các thông điệp với thời hạn truyền khác nhau, những
thông tin tạm thời trao đổi không có giá trị tuyệt đối và trình tự tổng quát cần phải
5
Các khái niệm về hệ tin học phân tán
được thể hiện bằng phương tiện giải thuật đảm bảo hoạt động nhịp nhàng giữa các tiến
trình có liên quan với nhau.
b. Cung cấp tài nguyên: cho 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ý hay logic. Trong không gian phân tán,
khó 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. 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
c. Các thao tác chuẩn của hệ phân tán bao gồm:
- Tiếp nhận và ghi yêu cầu chỉ dẫn.
- Dịch yêu cầu để có thể tìm thông tin cần thiết. Thực hiện một số việc
riêng của hệ thống cục bộ như: kiểm tra quyền truy cập thông tin, lập hóa đơn dịch
vụ…
- Gửi kết quả cho hệ thống đã phát yêu cầu.

Hệ thống gửi yêu cầu gọi là Client, còn hệ thống tiếp nhận và giải quyết yêu cầu
gọi là Server. Phép toán yêu cầu chỉ dẫn gọi là phép giao dịch. Hệ hoạt động theo kiểu
này là tuân thủ các ý tưởng của mô hình Client/Server.
Trong mô hình này việc bảo đảm tính toàn vẹn dữ liệu là một trong các yêu cầu
quan trọng hàng đầu. Một trong những biện pháp có thể áp dụng để giải quyết vấn đề
này là sử dụng thủ thục then_cai và mo_then_cai với các đối tượng găng. Tuy nhiên
biện pháp vừa nêu không phải là duy nhất.
Các biện pháp vừa nêu nhằm:
- Phát hiện xung đột.
- Hủy bỏ công việc thực hiện của các chương trình tham gia xung đột.
- Tái lập việc thực hiện các chương trình bị xung đột.
- Đề phòng trường hợp chờ vô thời hạn.
d. Các đặc điểm cơ bản của tất cả các hệ thống tin học phân tán là:
6
Các khái niệm về hệ tin học phân tán
- 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ể được 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 hệ phân tán có thể bị sự cố và hoạt
động của tòan hệ trở nên kém hiệu quả.
7
Các chiến lược cung cấp tài nguyên trong hệ phân tán
CHƯƠNG II
MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN CHIẾN LƯỢC
CUNG CẤP TÀI NGUYÊN TRONG HỆ PHÂN TÁN
I. Một số khái niệm
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.

Thực hiện các tiến trình của một ứng dụng phân tán đòi hỏi phải có các đối tượng
khác nhau như bộ xử lý, bộ nhớ, thiết bị ngoại vi, các tập tin… cũng như quyền được
truy cập theo kiểu loại trừ tương hỗ đến các thông tin, quyền được sử dụng các hàm,
thủ tục, chương trình.
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 đó,…
2. Giao dịch, thông điệp yêu cầu, và bộ cung cấp
Trong hệ phân tán, thông thường người ta hay sử dụng khái niệm giao dịch như là
thực thể sử dụng, ví dụ người sử dụng các tài nguyên.
8
Các chiến lược cung cấp tài nguyên trong hệ phân tán
Giao dịch là phép toán hợp thành một logic hòan chỉnh mà việc triển khai nó có thể
dẫn đến việc 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.
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 theo
yêu cầu bộ cung cấp một cách hợp thức bằng cách gửi thông điệp yêu cầu. Như vậy,
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 đó 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,…
3. Thuật ngữ 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à:
STT Tham số
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 thỏa 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 thủ 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
9
Các chiến lược cung cấp tài nguyên trong hệ phân tán
Trong hệ, 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 để xay ra bế tắc và thiếu thốn tài nguyên
vĩnh viễn.
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óa 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 hai 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.
Hình vẽ sau cho phép hình dung vấn đề một cách rõ ràng hơn. Theo hình vẽ có
bốn tài nguyên T1, T2, T3, T4 và có ba tiến trình Tr1, Tr2, Tr3 và cả ba tiến trình này
đang ở trong tình trạng bế tắc. Tiến trình Tr2 đang chờ tài nguyên T3 do Tr3 đang
chiếm giữ. Tiến trình Tr3 chờ tài nguyên T2 được giải phóng bởi Tr1 và Tr2. Thêm

vào đó, tiến trình Tr1 chờ tiến trình Tr2 giải phóng T1.
Hình 3. Đồ thị cung cấp tài nguyên bị bế tắc.
Lúc này, có hai chu trình kín trong đồ thị:
Tr1- T1 – Tr2 – T3 – Tr3 – T2 – Tr1 và Tr3 – T2 – Tr2 – T3 – Tr3
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. Để tránh hiện tượng này, bộ cung cấp tài
nguyên cần phải bảo đảm chức năng điều khiển. 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 vô hạn,
10
T3T1
T2
T4
Tr2Tr1 Tr3
Các chiến lược cung cấp tài nguyên trong hệ phân tá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.
II. 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.
1. 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 có tài nguyên mà 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 :
STT Kiểu thực hiện
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
a. Truy cập bởi Server duy nhất
11
Các chiến lược cung cấp tài nguyên trong hệ phân tán
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 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 có thể viết như sau:
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.
Hình 4. Đồ thị truyu cập vào tài nguyên bằng Server duy nhất
b. 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 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.
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 sau cho

thấy được tiến trình bằng một chương trình trực duy nhất. Tiến trình đánh thức duy
nhất D đứng sau hàng đợi làm nhiệm vụ phân phối yêu cầu cho các server cục bộ. Các
tiến trình khách không biết server.
12
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
T: Tài nguyên Tr: Tiến trình khách
S: Server
Tr1
Tr2
Trn
S
T
Các chiến lược cung cấp tài nguyên trong hệ phân tán
Hình 5. Đồ thị truy cập vào tài nguyên bằng một chương trình trực duy nhất.
Trong hình dưới việc truy cập được tiến hành trực tiếp với các server. Vì vậy các
server đều được tiến trình khách biết trước.
Hình 6. Đồ thị truy cập trực tiếp vào các server.
Việc triển khai đặc biệt đối với server có liên quan đến việc phối hợp chúng với các
điểm vào một modul quản lý tài nguyên như chương trình monitor (thường dùng trong
hệ điều hành).
2. 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 tóan 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 hòan tòan hợp thức thì
tài nguyên này được giao 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.
13

Tr1
Tr2
Trn
D
S1
S2
Sn
T
Hàng đợi các yêu cầu
T: Tài nguyên Tr: Tiến trình
Si: Server D: Đánh thức
S1
S2
Sn
T
Tr2
Trn
Tr1
Các chiến lược cung cấp tài nguyên trong hệ phân tán
Trong hệ phân tán sẽ 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 có thể thực hiện song song. Nhằm thu lại tài
nguyên e trên trạm Sj, giao dịch thực hiện phép tóan 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 nguyên bị khóa bởi một tiến trình không thể rút nó về được. Như vậy nó cần được
giải phóng một cách tường minh bởi tiến trình này nhờ phép tóan 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 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 e1 và e2, chúng
được mô tả trong đoạn chương trình sau đây:
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 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.
a. Phân tán chức năng cung cấp
14
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)
Các chiến lược cung cấp tài nguyên trong hệ phân tán
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:
i. 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 hòan 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.

ii. 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. 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 sự gắn bó hữu cơ của các bản sao,
2. 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. 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 đến được các bộ cung cấp tài nguyên khác nhau
theo một trật tự duy nhất được cố định từ trước.

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 bảng sau đây:
STT Nội dung của bản sao
1. Tập hợp các tài nguyên còn chưa được cung cấp
15
Các chiến lược cung cấp tài nguyên trong hệ phân tán
2. Tập hợp các tài nguyên đã 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 thỏa mãn
6. Tập hợp các thông điệp dành cho trường hợp đã 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 thuận, nếu trạng thái xuất phát việc cung cấp

đó được đánh giá là chấp thuận được theo thuật tóan đã sử dụng. Trên cơ sở thực hiện
cùng một thuật tóan và có cùng thông tin, mỗi trạm ra quyết định 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:
- Các 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 sử dụng các bản sao trạng thái từng phần.
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.
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.
16
Các chiến lược cung cấp tài nguyên trong hệ phân tán
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á 3 giao dịch T1, T2 và T3 sử dụng ba tài nguyên ej, e2, e3. Ký hiệu
a_loai_tru_th() là phép toán thông điệp
Giao dịch T1
Giao dịch T2
Giao dịch T3

Giả sử rằng các lệnh thực hiện theo trình tự t11, t21, t31, t12, t22, t32 vào thời
điểm t sau khi thực hiện các lệnh này, đồ thị G có thể biểu diễn như sau.
Để tránh bế tắc diễn ra, duy trì tại mỗi trạm một bản sao của đồ thị G và chỉ được
cung cấp tài nguyên, nếu việc cung cấp đó không phát sinh vòng lặp trên đồ thị này.
17
t11: a_loai_tru_th(e1, e2)
…….
…….
…….
t12: v_loai_tru_th(e1)
…….
…….
…….
t13: v_loai_tru_th(e2)
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)
Các chiến lược cung cấp tài nguyên trong hệ phân tán
Mỗi một thông bá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 trật tự chặt chẽ được xác định bởi dấu.
Hình 7. Vòng khép kín trên đồ thị.

Phương pháp cung cấp tài nguyên 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ộ.
18
T1
T2
e2e2 e1
e3
T3
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
CHƯƠNG III
VẤN ĐỀ ĐẢM BẢO LIÊN LẠC GIỮA CÁC
TIẾN TRÌNH TRONG HỆ PHÂN TÁN
 Một số điểm quan trọng được trình bày trong chương này:
- Việc đồng bộ giữa các thực thể trao đổi nhau.
- Bản chất của các thông điệp.
- Lai lịch của các đối phương.
- Các khả năng xử lý lỗi trong khi truyền thông tin
 Hàm chờ một thông điệp: nội dung của thông điệp sẽ được gán cho biến R. Nếu
không ghi trong phần tham số một X cụ thể nào thì trượng hợp đó được hiểu là trạm
phát bất kỳ.

 Hàm gửi thông điệp:
Đây là trường hợp tiến trình M gửi thông điệp cho tiến trình X
I. Đồng bộ hóa giữa các thực thể trao đổi
Có ít nhất là hai hàm nguyên thủy cần thiết cho quá trình gửi và nhận một thông
điệp. Để triển khai các hàm này, giả thiết rằng có một hộp thư gắn với mỗi tiến trình
mà tại đó các thông điệp được đặt tự động mỗi khi được truyền dẫn. Tiếp nhận thông
điệp là phép toán tường minh theo đó một tiến trình cụ thể có thể nhận thông điệp và
thực hiện công việc xử lý. Nếu một tiến trình nào đó cố gắng lấy thông điệp từ một
hộp thư rỗng, thì nó phải chuyển sang trạng thái chờ. Ngược lại với công việc nhận
một thông điệp, gửi thông điệp được thể hiện dưới hai dạng sau:
STT Dạng Giải thích
1. Không treo Tiến trình gửi thông điệp tiếp tục thực hiện các công việc của

2. Treo Tiến trình gửi thông điệp chờ nhận khẳng định phía nhận đang
19
R:= cho_thong_diep (X)
Gui_thong_diep (M,X)
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
ở trong trạng thái sẵn sàng nhận
II. Bản chất các thông điệp
Một thông điệp nào đó sử dụng có hiệu quả trong quá trình xử lý truyền thông
được xem như là một dãy các ký tự có cấu trúc thông nhất được trạm phát ném ra và
trạm nhận cũng có thể hiểu được.
Xét trên góc độ ngôn ngữ lập trình, việc cải tiến các hàm nguyên thủy chính là gắn
kiểu dữ liệu cho mỗi loại thông điệp, nhờ đó mà ta có thể kiểm tra tính tương thích
giữa thông điệp gửi và thông điệp nhận.
Nhằm đảm bảo một cuộc hội thảo thật gắn bó giữa các tiến trình với nhau, bên
nhận cần phải có khả năng phân loại và lựa chọn giữa các thông điệp gửi đế, trong hộp
thư của mình, các thông điệp cần được xử lý theo đúng từng chức năng riêng biệt của
nó.

Biểu diễn việc chờ đợi một thông điệp và khả năng lựa chọn này theo dạng sau
đây:
Nếu có một thông điệp nào đó được chuyển đến mà nội dung thuộc về kểu 1 thì
việc xử lý được tiến hành theo Xử lý 1. Tương tự vậy, ta có kiểu 2, kiểu 3, …, kiểu n.
III. Lai lịch của đối tác (tiến trình)
Các dạng hàm nguyên thủy liên lạc và các khả năng của chúng sẽ thay đổi dựa vào
việc xác định chính xác hay không lai lịch của các đối tác.
Ở đây, ta sẽ giới thiệu các hình thức phổ biến nhất dựa vào sự minh họa trong ứng
dụng thương mại điện tử. Ta sẽ tìm cách biểu diễn tiến trình truy_van1, thuộc loại
20
V=ChoThongDiep
Lựa chọn:
Nếu V thuộc kiểu 1 thì xử lý 1
Nếu V thuộc kiểu 2 thì xử lý 2

Nếu V thuộc kiểu n thì xử lý n
Kết thúc lựa chọn
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
server, trong điều k iện có hai tiến trình có nhu cầu thông tin về giá cả là phong_van1
và phong_van2.
 Ta có thể giả định là lai lịch của đối tác được ghi nhận theo kiểu tĩnh ở trong
hàm nguyên thủy liên lạc
Ví dụ:
 Tiến trình phong_van1
 Tiến trình phong_van2
 Tiến trình truy_van1
21
Tiến trình phong_van1



Gui_Thong_Diep(mahh) cho truy_van1
gia=Cho_Thong_Diep từ truy_van1


Chấm dứt phong_van1
Tiến trình phong_van2


Gui_Thong_Diep(mahh) cho truy_van1
gia=Cho_Thong_Diep từ truy_van1


Chấm dứt phong_van2
Tiến trình truy_van1
Vòng lặp:
Lựa chọn:
mahh= Cho_Thong_Diep từ phong_van1
gia=…
GuiThongDiep(gia) cho phong_van1
Hoặc
mahh= Cho_Thong_Diep từ phong_van2
gia=…
Gui_Thong_Diep(gia) cho phong_van2
Chấm dứt lựa chọn
Chấm dứt vòng lặp
Chấm dứt tiến trình truy_van1
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
Chú ý:
- Tại đây, lựa chọn được thực hiện căn cứ vào lai lịch của trạm phát thông
điệp mà loại của nó là loại của biến mahh.

- Kiểu biểu thức này thường áp dụng trong hệ CSP cho phép kiểm tra sự
tồn tại của đối tác khi dịch hay liên kết. Ngược lại, viết một vài thuật toán thường gặp
rất nặng nề vì khi đó tiến trình truy_van1 cần phải thực hiện công việc lựa chọn trên
mã hàng hóa của đối tác của mình. Ngòai ra nó còn phải biết tất cả các đối tác khác
gửi thông điệp đến cho nó.
 Để giải bài toán vừa nêu, cần phải xây dựng hàm nguyên thủy tiếp nhận khác
mà không cần lai lịch của người phát.
 Ví dụ :
22
Tiến trình truy_van1
Vòng lặp
mahh=Cho_Thong_Diep
gia= …


Chấm dứt vòng lặp
Chấm dứt truy_van1
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
Trong ví dụ này, truy_van1 chấp nhận các thông điệp từ bất kỳ tiến trình nào miễn
là kiểu của chúng là kiểu mahh
 Khi ta sử dụng loại hàm nguyên thủy như vậy thì cũng cần phải biết lai lịch của
tiến trình gửi để cho trường hợp cần thiết có thể liên lạc được với nhau. Một biện pháp
tổng quát là hàm nguyên thủy nhận cần phát sinh tên của tiến trình đã phát thông điệp.
Tên này có thể được sử dụng cho việc truyền sau này.
Ví dụ:
Trong ví dụ này, biến ten là tên của đối tác, giữ vai trò của một tiếp tục. Đó là một
hệ điều khiển.
Sự mở rộng của phương pháp kỹ thuật này thường được sử dụng trong thiết kế thủ
tục hay rẽ nhánh song song. Lúc này một số hàm nguyên thủy liên lạc cần phải được
xác định. Hàm nguyên thủy gửi thông điệp cho giá trị là lai lịch của hội thoại đặc biệt.

Giá trị này cho phép phối hợp với trả lời yêu cầu tương ứng. Điều đó tạo thuận lợi cho
trường hợp nhiều thông điệp khác nhau được gửi đến cùng một nơi nhận
23
Tiến trình truy_van1
Vòng lặp
(ten,mahh)=Cho_Thong_Diep
gia= …
Gui_Thong_Diep(gia,ten)
Chấm dứt vòng lặp
Chấm dứt truy_van1
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
Ví dụ:
Trong trường hợp gọi thủ tục, ta có thể sử dụng hàm nguyên thủy đặc biệt nhằm
thực hiện gửi và chờ thông điệp.
IV. Khả năng có lỗi trong quá trình liên lạc
Lỗi trong quá trình truyền thông tin có thể xử lý theo hai cách sau:
STT Tên gọi Thuyết minh
1. Ẩn NSD không hề biết các lỗi phát sinh trong quá trình khai thác.
Các lỗi này thường được khắc phục ở mức trong.
2. Điều khiển
tường minh
Các lỗi được điều khiển tường minh bởi người lập chương
trình. Trong trường hợp này các tham số của chương trình
(hàm nguyên thủy) cần phải chỉ ra lỗi, thời hạn cần thiết cho
việc khắc phục và tên thủ tục bị lỗi khi gọi, …
24
Tiến trình phong_van1


ten=Gui_Thong_Diep(mahh,truy_van1)

gia= Cho_Tra_Loi(ten)
Kết thúc tiến trình phong_van1
Tiến trình truy_van1
Vòng lặp
(ten,mahh)=Cho_Thong_Bao
gia=…
Gui_Tra_Loi(gia,ten)
Kết thúc vòng lặp
Kết thúc tiến trình truy_van1
Vấn đề đảm bảo liên lạc giữa các tiến trình trong hệ phân tán
V. Trường hợp trao đổi giữa hai tiến trình
Giả sử gọi 2 tiến trình đó là tiến_trình1(server) và tiến_trình2 (tiến trình yêu cầu)
Do yêu cầu của bài toán chỉ có 2 tiến trình, nên ta không cần thiết phải xác định tên
tiến trình gửi, và tên của tiến trình nhận khi gửi và nhận thông điệp từ tiến trình khác
Xây dựng hai hàm nguyên thủy sau:
- Hàm cho_thong_diep là hàm chờ thông điệp của tiến trình kia
- Hàm gui_thong_diep(X) là hàm gửi yêu cầu X cho tiến trình còn lại
- Hàm loai_yeu_cau(Y) là hàm xác định, phân loại yêu cầu (Y) của tiến
trình gửi tới
Có 2 cơ chế hoạt động như sau:
1. Chơ chế 1
Khi một tiến trình gửi thông điệp cho tiến trình kia và tiếp tục thực hiện công việc
của nó và cũng không quan tâm đến sự phúc đáp của tiến trình nhận, đoạn mã của
tiến_ trình 2 được mô tả như sau:
2. Cơ chế 2
Khi một tiến trình gửi thông điệp cho tiến trình kia và chờ kết quả phúc đáp của
tiến trình kia, thì đoạn mã của tiến_ trình2 đựoc mô tả như sau:
25
Tiến_ trình2
……

Gui_thong_diep(Yêu cầu)
……
Chấm dứt tiến_ trình2
Tiến_ trình2
……
gui_thong_diep(Yêu cầu)
ketqua=cho_thong_diep
……
Chấm dứt tiến_ trình2

×