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ìnhphải 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.. Bộ cung cấp có thể áp dụng nhiề
Trang 1LỜI MỞ ĐẦU
Ngày nay, với sự phát triển thần kỳ, ngành công nghệ thông tin đã đem đến cho loài người rất nhiều tiện ích trong công việc và trong cuộc sống Dù ở bất cứ nơi đâu, chúng ta đều có thể giao tiếp, chia sẽ thông tin, tài liệu thông qua các hệ thống thông tin Các thành tựu mới được phát minh ra nối tiếp nhau, trong đó phải kể đến các phần mềm tăng khả năng điều hành, khai thác hiệu quả các tài nguyên của hệ thống tin học Đặc biệt, các nhà nghiên cứu và các lập trình viên chuyên nghiệp rất quan tâm đến việc nghiên cứu và ứng dụng hệ thống tin học phân tán.
Trong phạm vi của đề tài, tôi chủ yếu trình bày “Mô hình và chức năng của bộ cung cấp phân tán ” Tôi xin chân thành cảm ơn thầy giáo PGS- TS Lê Văn Sơn đã
nhiệt tình giảng dạy và giúp tôi hoàn thành tiểu luận này
Học viên: Lê Quang Vũ 1
Trang 2CHƯƠNG I : MÔ HÌNH VÀ CHỨC NĂNG CỦA BỘ CUNG CẤP
PHÂN TÁN
I Các chiến lược cung cấp tài nguyên trong hệ tin học phân tán:
I.1 Một số khái niệm
Vấn đề cung cấp tài nguyên thường được đánh giá như là một trong những lĩnhvực tri thức rất quan trọng vì nó được vận dụng thường xuyên trong quá trình triển khainghiê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ệ tinhọc phân tán nói riêng
Việc thực hiện xây dựng 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, Bêncạnh đó cần phải có 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 và các chương trình
Tài nguyên được định nghĩa như 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, đó là vấn đề quyền truy cập loại trừ hay truy cập chia
sẽ, có hạn chế số lượng người sử dụng hay không
Khái niệm giao dịch là một thực thể sử dụng chẳng hạn như người sử dụng cáctài nguyên thường được sử dụng trong hệ tin học phân tán Giao dịch là phép toán hợpthành một logic hoàn chỉnh mà việc triển khai nó có thẻ dẫn đến thực hiện một tiếntrì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ìnhphải 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 Thôngđiệp yêu cầu này được gọi ngắn gọn là yêu cầu Như vậy, một tiến trình có nhu cầu tàinguyên sẽ bị treo chừng nào đó tài nguyên đó còn chưa được giải phóng hay chưa đượccung 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 duynhấ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àinguyê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áclệnh đặc biệt…
Thuật ngữ tải là tập hợp các yêu cầu tuân theo các quy tắc của một bộ cung cấpvới các tham số đặc trưng : số lượng các yêu cầu được cung cấp tài nguyên, bản chấtcủa các vấn đề , 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 thủ các quy định nhất định
Có hai điều kiện cho tiến trình mất khả năng sử dụng tài nguyên đã được cungcấp là :
Giải phóng: là tiến trình phát tín hiệu ngừng sử dụng tài nguyên.
Trang 3Thu hồi: là 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
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ùngchung được xem là tuyệt vời nếu không để xảy ra bế tắc và thiếu thốn tài nguyên vĩnhviễ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ốngcò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ạiphát yêu cầu về nhu cầu sử dụng tài nguyên mà tiến trình còn lại đang sử dụng
Chúng ta sẽ hình dung vấn đề một cách chi tiết, rõ ràng hơn qua hình 2 bên dưới:
Theo hình vẽ, ta có bốn tài nguyên T1, T2, T3, T4 và có ba tiến trình nhu cầu tàinguyên Tr1, Tr2, Tr3, Cả ba tiến trình này đều đang ở trạng thái bế tắc Tiến trình Tr2chờ tài nguyên T1 do Tr1 đang chiếm giữ Tiến trình Tr1 chờ tài nguyên T2 được giảiphóng bởi Tr1 và Tr3 Thêm vào đó tiến trình Tr1 chờ tiến trình Tr2 giải phóng T1
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ầucủa nó trễ đến mức không thể xác định được Nguyên nhân của hiện tượng này có nhiềunhưng chú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àinguyê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 huỷ hoại hiệună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 Chẳng hạn như sự sụp đổ của hệ đa chương trình Để tránhcác hiện tượng đó, bộ cung cấp tài nguyên cần phải đảm bảo chức năng điều khiển
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ánHọc viên: Lê Quang Vũ 3
T 3
T 1
Trang 4, 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ạirỗ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ếntrình hay số các giao dịch được chọn (trúng tuyển) sử dụng toàn bộ hay từngphầ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ácquy 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 ( cùng có thể thỏa mãn) và giới hạn nhu cầu nhằmduy trì hệ thống hoạt động đạt mức hiệu quả nhất định
Mục đích của phần này là phân tích các vấn đề mới phát sinh chỉ trong các hệphân tán và giới thiệu các giải thuật hoạt động trong môi trường phân tán
Việc triển khai vấn đề cung cấp tài nguyên phân tán còn ít và chúng ta cũngkhông có nhiều kinh nghiệm về việc hoạt động của hệ này
I.2 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ệntheo hai cách sau:
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
I.2.1 Truy cập bằng một 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àinguyê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 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ươngtrình đánh thức
Chương trình có thể viết 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
Trang 5Do vậy, sơ đồ này loại bỏ tất cả các đặc tính song song để truy cập vào tàinguyên Tiến trình server có thể được lập trình để triển khai toàn bộ chiến lược liênquan đế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).
I.2.2 Truy cập các tương tranh có điều kiệ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 thay đổi Các server này thực hiện các truy cập tương ứng với các yêu cầudướ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 bắt đầu bằng hai cách bởi các tiến trình khách , hình vẽ 3dưới đây cho thấy việc truy cập bằng một chương trình 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êucầu cho các server cục bộ Các tiến trình khách không biết server
Ở hình 4 bên dưới việc truy cập được tiến hành trực tiếp với các server Các máyserver đều được các tiến trình khách biết trước
Học viên: Lê Quang Vũ 5
Trang 6Việ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úngvớ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 đượcdùng trong các hệ điều hành.
I.3 Cung cấp một tập hợp các tài nguyên Vấn đề bế tắc
Tiến trình p đưa ra yêu cầu cung cấp tài nguyên e để thực hiện phép toán cài then
có tình loại trừ v_loai_tru_th(e) Ngoại trừ một số trường hợp đặc biệt, tất cả các tài
nguyên đều được truy cập theo kiểu loại trừ Nếu việc cung cấp hoàn toàn hợp thức thìtài nguyên này được giao cho p sử dụng Ta nói rằng tài nguyên này đã được p càithen , nếu không thì p bị treo và tất nhiên là 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àinguyê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ợpcác tiến trình thể hiện là các đại diện của chúng trên các trạm có thể thực hiện songsong Nhằm thu hồi lại tài nguyên e trên trạm Si , giao dịch thực hiện phép toá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 tài nguyên 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ó trở về được Như thế
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 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ừ đượcphâ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ờinhiều tài nguyên
Ví dụ 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 như sau:
không được giải phóng
Bế tắc có thể được giải quyết bằng cách dự báo và phòng tránh ( gọi 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ườnghợ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ấpnà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
Trang 7I.4 Phân tán chức năng cung cấp
Ví dụ rằng chức năng cung cấp tài nguyên không thể tin tưởng giao phó hoàntoà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ộ cungcấp trên các trạm khác nhau, trong đó mỗi bộ cung cấp chỉ quản lý các đối tượng cục bộcủa trạm đó mà thôi Chúng ta có hai nhóm phương pháp cho vấn đề đặt ra:
Duy trì tính duy nhất của trạng thái tài nguyên
Biểu hiện duy nhất của trạng thái tài nguyên được chia sẽ bởi tập hợp các bộcung cấp Biểu hiện này tuần hoàn giữa các trạm khác nhau dưới dạng một thôngđiệp Các trạm luân phiên đóng vai trò của bộ cung cấp tài nguyên mà mình đangchị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ộtcá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 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 sự gắn bó hữu cơ của các bản sao
Giải pháp 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êncá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ệccung cấp phải được gắn bó với nhau
Giải pháp 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 đến được các bộcung cấp khác nhau theo một trật tự duy nhất được cố định từ trước
Vấn đề thứ nhất là vấn đề nhiều bản sao thông tin Các phương pháp khác mangtí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 của trạng thái tài nguyên
I.4.1 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 các 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ộtbả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ể được phản ánh trong bảnsau đây:
Học viên: Lê Quang Vũ 7
Trang 8Stt Nội dung của bản sao
1 Tập hợp 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 đã 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 đã đượ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
Cung cấp tài nguyên chỉ được chấp thuận nếu trạng thái xuất phát từ việc cungcấp đó được đánh giá là chấp nhận được theo thuật toán đã sử dụng Trên cơ sở thựchiện 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àobản sao trạng thái cục bộ của nó Việc cung cấp cho tiến trình đề nghị sẽ thực hiện ngaytrê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 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ểntrạ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êntất cả các trạm Trật tự này có thể khác với trật tự đến Ta có thể sử dụng các kỹ thuật
đã được kiểm tra như dấu, bộ tuần tự tuần hoàn để giải quyết vấn đề đồng bộ thông tin
Khi thực hiện một giao dịch Ti thì giao dịch này cần phải phát thông điệp hợpthứ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 đó là một phần của thông điệp
Ta định nghĩa một quan hệ là phụ thuộc thế năng giữa hai giao dịch TJ và Tk và
ký hiệu là Tj>Tk điều đó nói lên rằng Tj chậm hơn Tk
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ầnthuộc thông điệp Tk
Quan hệ này có thể được biểu diễn bằng đồ thị G, biế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
Trang 9Ví dụ: Hãy đánh giá 3 giao dịch T1, T2 và T3 sử dụng ba tài nguyên e1,e2 và e3.
Ta ký hiệu a_loai_tru_th() là phép tốn thơng điệp.
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 tsau khi thực hiện các lệnh này, đồ thị G cĩ thể biểu diễn như sau Bế tắc khơng tránhkhỏi được Đồ thị G được biểu diễn trong hình vẽ 5 sau:
Để tránh bế tắc diễn ra, chúng ta phải duy trì tại mỗi trạm một bản sao của đồ thị
G và ta chỉ được cung cấp tài nguyên nếu việc cung cấp đĩ khơng phát sinh vịng lặptrê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ấurồi phát ra cho tất cả các trạm Để cập nhật bản sao của mình với đồ 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ứ theo phương pháp chỉ dẫn trong chương 4
I.4.2 Các phương pháp cung cấp theo kiểu sử dụng trạng thái từng phần.
Cĩ hai thuật tốn rất thích hợp với mơi trường phân tá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ơngtin cục bộ Tất cả các tài nguyên đều được truy cập theo kiểu loại trừ
.
t 22 :v_loải_tru_th(e 2 ) .
.
t 23 :v_excl(e 3 )
t 31 :a_loải_tru_th(e 3 ,e 1 ) .
.
t 32 :v_excl(e 3 ) .
Trang 10Đây là thuật toán Lomet với phiên bản sử dụng trạng thái từng phần.
Xét một ví dụ minh hoạ các khó khăn trong khi ứng dụng vào hệ phân tán
Trở lại với ví dụ đã xét ở phần trên, bổ sung thêm các điểm như sau : giả sử rằngcác tài nguyên e1,e2, và e3 được bố trí trên các trạm tương ứng với 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 nguyên mà nó quản lý thì nó chỉ duy trì đồthị Gi là hình ảnh thu nhỏ của G cho các giao dịch đã phát thông cáo Như vậy, sau khi
đã thực hiện t32, ta có các hình ảnh như hình 6 sau:
Rõ ràng thông qua ba đồ thị trên đây, ta không phát hiện 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 phải từngphần, ta có đồ thị như hình 7 bên dưới
Trong thực tế mặc dù rằng không có đồ thị nào trong số này cho phép phát hiện
sự hình thành 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ôngthể dự phòng bế tắc có kết quả được
Ta sẽ thay thế điều kiện cung cấp trong đồ thị G không vòng một điều kiện khácmạnh hơn nhưng được kiểm tra bằng các 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ì Gi’ hình ảnh thu nhỏ cho Si
của đồ thị một quan hệ trật tự toàn bộ chặt chẽ được xác định trên tập hợp các giaodị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àinguyê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ẽ được chỉ ra G có đượctình trạng không vòng lặp như thế nào Để làm việc đó, ta bắt đầu chỉ ra sự tồn tại củavòng trong G kéo theo sự tồn tại của vòng trong ít nhất một Gi’
Trang 11Ta ký hiệu TJ>Tk lă quan hệ trật tự toăn phần chặt chẽ trín câc giao dịch Lúcnăy, Gi’ lă hình ảnh thu nhỏ của trạm Si của đồ thị quan hệ >> xâc định bởi
Tj>>Tk tương đương 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 câi khâc theo chiều của quan hệ >>
Thuật toân dự phòng được triển khai như sau:
Bước 1 : 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ệccung cấp đó không tạo ra vòng lặp trong đồ thị Gi’
Bước 2: 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
Bước 3: 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 thỏa mên
Quâ trình vận hănh thuật toân được minh hoạ bởi ví dụ sau đđy:
Ví dụ :
Xĩt lại thí dụ 1 Khi T1 thực hiện T12: v_loai_tru_th(e1), yíu cầu năy văo xungđột với thông câo a_loai_tru_th(e1) thực hiện bởi T3 Như thế cung T1-T3 được thănh lậptrong G Lúc năy, yíu cầu vẫn được chấp nhận vì T1>>T3
Sau khi diễn ra việc cung cấp năy, câc đồ thị Gi’ trín ba trạm sẽ như hình vẽ 8sau:
Học viín: Lí Quang Vũ 11
T3
T2Trạm S3
Hình 8: Trạng thái cung cấp tài nguyên
trên 3 trạm
Trang 12Yêu cầu t22 :v_loai_tru_th(e2) kéo trên trạm S2 sự tạo nên cung T2-T1 bị loại bỏ,bởi vì nó sinh ra vòng lặp trên S2 Tương tự như vậy, yêu cầu t32:v_loai_tru_th(e3) bị từchối bởi vì nó tạo ra vòng lặp trên S3 Nhưng ta cần lưu ý là nếu trật tự theo dạng T1,T2,
T3 thì yêu cầu vừa nêu 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ờ dài nhất sau một khoảng thời gian xácđị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ởithông điệp
Thuật toán phát hiện bế tắc.
Khi các tài nguyên được sử dụng bởi giao dịch được xác định theo kiểu độngtrong 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ảngcá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ápphát hiện và chữa trị
Phương pháp này được mô tả bởi Menasce sẽ được trình bà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 đó chophép phát hiện bế tắc
Tương tự như thuật toán vừa nêu, mỗi một trạm quản lý các đối tượng tiêng củamì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 tai một trạm nào đócần phải đề ra các biện pháp chữa trị cho mình
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ặntrực tiếp như sau:
TJ > Tk tương đương tồn tại ít nhất một tài nguyên bị cài then bởi TJ và yêu cầubở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ộtgiao dịch không bị chặn có nghĩa là trong đồ thị biểu hiện bằng một nút 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ướngcủa chúng và gọi là tập hợp các chặn của Tk kí hiệu là R(Tk) Các giao dịch thuộc vàoR(Tk) là các giao dịch có nguồn gốc từ sự chặn của Tk
Tại một thời điểm cho trước, đồ thị các xung đột hiện 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ấtphát từ Tk
Trang 13Cho đồ thị các xung đột hữu hiệu như hình 9 sau:
Tồn tại k: B(Tk) E(Tk) khác 0 {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
Đó là điều mà ta thực hiện trong giải thuật sau đây:
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ạmS(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ệntrê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 e của trạm Si nào đó Trên trạm này, tathực hiện các phép toán sau đây:
Bước 1: Nếu e là có sẵn để dùng, yêu cầu được thỏa mãn và ta ghi nhận là Tk đang cótài nguyên
Bước 2: Nếu e đã được cung cấp cho giao dịch TJ thì thông điệp TJ chặn Tk được truyềncho trạm S(Tj) và S(Tk) Sau này( j,k) chỉ 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ácsau đây:
Trên trạm S(Tj) nguồn của giao dịch chặn Tk ta thêm Tk vào tập hợp B(Tj) vàkiểm tra rằng ta không làm phát sinh bế tắc có nghĩa là :
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 T1 chặn Tj
nhằm cho phép các trạm S(Ti) cập nhật các tập hợp B(Ti) của các giao dịch bị chặn bởiHọc viên: Lê Quang Vũ 13
Trang 14Ti 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ácgiao dịch Tk để cập nhật tập hợp E(Tk) của các giao dịch chặn Tk.
Trên trạm S(Tk) nguồn của giao dịch bị chặn Tk, ta thêm Tj cho tập hợp E(Tk)
và kiểm tra không có bế tắc, có nghĩa là:
B(Tj) giao E(Tk) =0
Ta tiếp tục gởi thông điệp (j,m) về phía các trạm nguồn của các giao dịch Tm bịchặn bởi Tk nhằm cho phép các trạm S(Tm ) cập nhật các tập hợp E(Tm) của các giaodịch chặn Tm
I.5 Điều khiển tải
Chức năng quan trọng nhất của việc điều khiển tải là duy trì một cách nhịpnhàng các yêu cầu về tài nguyên của hệ trong một giới hạn chấp nhận được trên cơ sở
số lượng tài nguyên hiện hành và các thông số hiệu năng cần tuân thủ
Vai trò của việc điều khiển tải trong hệ được thể hiện dưới hai phương diện sau:
Điều khiển tổng quát: Điều khiển tải một cách tổng quan trong hệ như là
người giữ nhịp cho các hoạt động cung cấp tài nguyên
Điều khiển phân tán: Phân tán tải cho các đối tượng có khả năng cung cấp
như là người điều khiển hợp lý việc phân bố các tài nguyên
I.5.1.Điều khiển tải tổng quát.
Về mặt tổ chức, các yêu cầu về sử dụng tài nguyên được gửi đến hệ thống thôngqua sự trung gian của một tiến trình gọi là bộ phân phối tải và được thể hiện bởi hìnhsau:
Trình tự làm việc như sau: đầu tiên, yêu cầu tài nguyên được hình thành bởi một
đề nghị phục vụ nào đó cho một server xác định trong số các server có khả năng phục
vụ Bộ điều khiển tải có chức năng cung cấp thông tin kịp thời và tương đối chính xác
về khả năng của các server chấp nhận hay không chấp nhận các yêu cầu