LÝ THUYẾT CÁC PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG TRẠNG THÁIGiao dịch là phép toán hợp thành một logic hoàn chỉnh mà việc triển khai nó có thể dẫn đến thực hiện một tiến trình duy nhất hay nhiề
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN MÔN HỌC
HỆ TIN HỌC PHÂN TÁN
Đề tài:
CÁC PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG
TRẠNG THÁI TỪNG PHẦN VÀ PHƯƠNG PHÁP DỰ
PHÒNG BẾ TẮC
Trang 2Hệ tin học phân tán là hệ thống xử lý thông tin 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ễnthông dưới sự điều khiển thống nhất của một hệ điều hành Hệ tin học phân tán rất đadạng, đa diện, phức tạp về mặt cấu trúc, tập hợp bao gồm các bộ xử lý hoặc bộ vi xử lývới bộ nhớ và đồng hồ nhịp độc lập, các bộ xử lý không sử dụng chung bộ nhớ và đồng
hồ Như vậy, mỗi một hệ xử lý thông tin thành phần của hệ tin học phân tán bao gồm mộthay nhiều bộ xử lý và bộ nhớ cục bộ Trong hệ phân tán, hệ xử lý thông tin thành phầnphả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ệnmột cách trọn vẹn các chức năng mà nó phải đảm nhận
Hiện nay, với sự phát triển nhanh chóng của công nghệ và đặc biệt là số lượngngười sử dụng ngày cang tăng, hệ phân tán ngày càng được ứng dụng rộng rãi hơn và phổbiến hơn trong các lĩnh vực: hệ kinh doanh từ xa, đăng ký vé máy bay, đăng ký tour dulịch, … Đối với các hệ thống thông tin lớn, cơ sở dữ liệu không chỉ được lưu trữ và quản
lý bởi các Server độc lập mà thường được phân tán trên nhiều Server và phân bố ở các vịtrí địa lý khác nhau Hệ thống cho phép xử lý đa truy cập đồng thời và cho phép đăng ký
từ xa Một trong những lợi ích của việc phân tán dữ liệu như vậy là nhằm phân chia yêucầu xử lý dữ liệu cho nhiều máy nhằm tăng năng lực xử lý thông tin của hệ thống và đảmbảo yêu cầu an toàn dữ liệu Vấn đề đặt ra là phải đảm bảo tính đồng bộ, gắn bó dữ liệu,phát hiện và xử lý các bế tắc phát sinh trong quá trình hoạt động của hệ thống
Để tìm hiểu rõ hơn về vấn đề bế tắc và thuật toán dự phòng bế tắc của Lomet, bản
thân tôi đã được PGS TS Lê Văn Sơn - Hiệu trưởng trường Đại học Sư phạm Đà Nẵng
giao đề tài tiểu luận “Các phương pháp cung cấp sử dụng trạng thái từng phần và
thuật toán dự phòng bế tắc Xây dựng chương trình giao dịch lồng ghép để thực hiện việc đăng ký du lịch trên hệ th ống gồm 3 Servers quản lý tài nguyên” Trong thời
gian thực hiện đề tài, tôi đã nhận được sự giúp đỡ nhiệt tình của Thầy Lê Văn Sơn, cùngvới sự cộng tác của đồng nghiệp và đặc biệt là sự quan tâm giúp đỡ của các học viên tronglớp cao học Khoa học Máy tính 2008 - 2011
Đà nẵng, tháng 07 năm 2009
Trang 4A LÝ THUYẾT CÁC PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG TRẠNG THÁI
Giao dịch là phép toán hợp thành một logic hoàn chỉnh mà việc triển khai nó có
thể dẫn đến thực hiện một tiến trình duy nhất hay nhiều tiến trình được định vị trên cáctrạ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à đốitượng mà ta cần phải quan tâm nghiên cứu trong chương này
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 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ư thế,
rõ ràng là 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ònchư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 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ác lệnhđặc biệt,…
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 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 đã đượccung cấp trước đó Đó là:
cấp tài nguyên sẽ tiến hành công việc nàyTrong 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àinguyên dùng chung được xem là tuyệt vời, nếu không để xảy ra bế tắc và thiếu thốn tàinguyê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 hai tài nguyên lại phát yêucầ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ẽ 1.1 sau đây cho phép chúng ta hình dung vấn đề một cách rõ ràng hơn.Theo hình vẽ này, ta có 4 tài nguyên T1, T2, T3 và T4 và có 3 nhu cầu tài nguyên là Tr1, Tr2
Trang 5do 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à
Tr3.Thêm vào đó, tiến trình chờ tiền trình Tr2 giải phóng T1
Lúc này, ta thấy có hai chu trình kín trong đồ thị là:
Tr1 – T1 – Tr2 – T3 – Tr3 – T2 – Tr1
và
Tr3 – T2 – Tr2 – T3 – Tr3
Hình 1.1 Đồ thị cung cấp tài nguyên bị bế tắc
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
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 Ví dụ như sự sụp đổ của hệ đa chương trình
Để tránh cá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ể phân chia thành hai phương diện để nghiên cứu:
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 thoả mãn.
Chức năng này gọi là phân phối tải Trong hệ phân tán, nó cần phải tạo điều kiện để tránhtình hình mà ở đó các yêu cầu đợi đến lượt được thoả mãn trên một trạm đầy, trong khi đócác tài nguyên tương đương lại rỗi rãi trên các trạm khác
2 Giới hạn số lượng các yêu cầu được phép cho một số tài nguyên Việc đó có
thể thực hiện bằng cách hạn chế (tĩnh hay động) số các tiến trình hay số các giao dịchđược chọn (trúng tuyển) sử dụng toàn bộ hay từng phần tài nguyên.Ta gọi trường hợp này
là điều khiển tải tổng quát
Tóm lại: Bộ cung cấp cần phải phân phối các tài nguyên trên cơ sở tuân thủ cá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 đềugiữa các tài nguyên cùng loại(cùng có thể thoả mãn) và giới hạn nhu cầu nhằm duy trì hệ
T2
T4
Trang 6II Cung cấp tập hợp các tài nguyên Vấn đề bế tắc
Trước hết, ta tìm hiểu một số thuật ngữ và khái niệm có quan hệ mật thiết vớinhững vấn đề sẽ sử dụng trong phần này
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àinguyê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ếukhông thì p bị treo và đương nhiên p không cài then được tài nguyên này
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ợ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 khác nhau Hai tiến trình củacù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
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ầnphải đượ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).
Bế tắc có thể được 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ó nghiã 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ếpnhận tất cả các yêu cầu và biết rõ trạng thái của tất cả các tài nguyên
Ta bắt đầu việc nghiên cứu trong phần này bằng cách nhắc lại các kết quả chủ yếucủa trường hợp nêu trên, trước khi phát triển các vấn dề về hướng tin học phân tán
1 Các phương pháp sử dụng trong hệ tập trung
Phương pháp dự phòng
Phương pháp dự phòng đơn giản và thường hay sử dụng là phương pháp cácnhó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
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êncủa chúng và do vậy làm giảm khả năng thực hiện song song của hệ
Trang 7Phươ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 các tiến trình Các cung tiến trình- 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ápnà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ônquan tâm nghiên cứu và phát triển
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 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 đối tượng cục bộ của trạm
đó mà thôi
Tồn tại hai nhóm giải pháp cho vấn đề đặt ra:
Duy trì tính duy nhất của trạng thái tài nguyên
Biểu hiện duy nhất (thể hiện tính 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ạngmột thông điệp Các trạm luân phiên đóng vai trò của bộ cung cấp các tài nguyên màmình đang chịu trách nhiệm quản lý Giải pháp này loại bỏ tất cả các khả năng song song,không loại bỏ khả năng mất thông điệp trạng thái, thiếu thốn tài nguyên một cách vô hạn
Phân tán biểu hiện trạng thái và chức năng cung cấp
Có rất nhiều giải pháp có thể:
trường hợp này, cần phải đảm bảo sự gắn bó hữu cơ giữa các bản sao
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ủaviệc cung cấp phải được gắn bó với nhau
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.
Các phương pháp khác nhau 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 trang
thái tài nguyên
Trong các phần tiếp theo, ta sẽ được giơi thiệu lần lượt các vấn đề sau đây:
1 Nguyên lý được hiện bằng giải thuật dự phòng bế tắc cho trường hợp đầu tiênvừa nêu theo kiểu sử dụng các bản sao trang thái tổng quát
Trang 82 Hai giải thuật toán cho các trường hợp sau; một cho dự phòng và một cho pháthiện bế tăc được trình bày bằng cách sử dụng quan điểm tưng phần của trạng tháitoàn phần
3 Các phương pháp cung cấp sử dụng trạng thái từng phần
Hai thuật toán mà ta sẽ giới thiệu sau đây 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ông tin cục bộ Ta giới hạn về việc trình bày của mình cho mục đích kháđơn giản Đó là tất cả các tài nguyên đều được truy cập theo kiểu loại trừ Các tài nguyênchia sẻ sẽ là đối tượng xử lý của bài tập số 2 của chương này
Hãy đánh giá 3 giao dịch T 1 , T 2 và T 3 sử dụng 3 tài nguyên e 1 , e 2 và e 3 Ta ký hiệu
a_loai_tru_th() là phép toán thông điệp.
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_loai_tru_th(e3)
t31: a_loai_tru_th(e3, e1) ……
t32: v_loai_tru(e3) ……
t33: v_loai_tru_th(e1)
S 2 và S 3 Nếu trạm Si chỉ nhận thông cáo tương ứng với tài nguyên mà nó quản lý thì nó
Trang 9chỉ duy trì đồ thị G i –hình ảnh thu nhỏ của G cho các giao dịch đã phát thông báo Như
Hình 3.4 Phát sinh bế tắc
Trong thực tế, mặc dầu 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ông thể dựphòng bế tắc có kết quả được
b) Nguyên lý và thuyết minh phương pháp
Ta sẽ thay thế vào điều kiện cung cấp trong đồ thị G không vòng lặp một điềukiện khác mạ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
đồ thị của một quan hệ trật tự toàn bộ chặt chẽ được xác định trên các tập hợp giao dịch.Quan hệ trật tự này có thể được nhờ phương tiện dấu Điều kiện cung cấp tài nguyên là
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
e2
e3
e1 T1
T3 T2
T1 T3 e1
T2 T1 e2
T3 T2 e3
Trang 10lặp như thế nào Để làm việc đó, ta bắt đầu chỉ ra sự tồn tại của vòng trong G kéo theo sự
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ừ
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ó :
T p >>T q 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
của thông cáo của T p thì G ’
c) Thuật toán:
Như vậy, thuật toán dự phòng được triển khai như sau:
i
được đưa vào hàng đợi cục bộ tại S
được kiểm tra nếu các yêu cầu của chúng có thể được thoả mãnQui trình vận hành thuật toán được minh hoạ bởi ví dụ kề liền sau đây:
Ví dụ 2:
Trang 11Hình 2.9 Trạng thái cung cấp tài nguyên trên 3 trạm
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ỉkhác nhau có 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 xác định, 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
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ảng cácthông điệp không còn phù hợp 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 Phương pháp này đặt ravấ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épphát hiện bế tắc
Tương tự như thuật toán vừa nêu, mỗi trạm quản lý các đối tượng 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ầnphải đề ra các biện pháp chữa trị cho mình
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 E(Tk) Các giao dịch thuộc vàoE(Tk) là các giao dịch có nguồn gốc từ sự chặn của Tk
Trang 12Tạ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ệ
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
thực hiện các phép toán sau đây:
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 tác động
sau đây:
1 Trên trạm S(T j. ) nguồn của giao dịch chặn T k , ta thêm T k. vào tập hợp B(T j. ) và
giao dịch T k. để cập nhật tập hợp E(T k. ) của các giao dịch bị 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. )