LOGO
Các phương pháp cung cấp sử dụng trạng thái
từng phần, thuật toán dự phòng bế tắc.
GVHD: PGS TS. Lê Văn Sơn
HVTH: Nguyễn Văn Hùng
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
LỚP KHOA HỌC MÁY TÍNH - KHÓA 10
LỚP KHOA HỌC MÁY TÍNH - KHÓA 10
BÁO CÁO TIỂU LUẬN
BÁO CÁO TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
Đà Nẵng, 07 - 2009
03/23/15 Nguyễn Văn Hùng 2
NỘI DUNG BÁO CÁO
NỘI DUNG BÁO CÁO
Giới thiệu đề tài
Giới thiệu đề tài
1
Bài tập
Bài tập
4
Cơ sở lý thuyết
Cơ sở lý thuyết
2
03/23/15 Nguyễn Văn Hùng 3
A. LÝ THUYẾT:
Các phương pháp cung cấp sử dụng trạng thái từng
phần, thuật toán dự phòng bế tắc.
B. BÀI TẬP
Trong hệ thống có 3 Server phục vụ việc đăng ký du
lịch bao gồm: Tour du lịch, Xe vận chuyển và khách
sạn. Hãy xây dựng chương trình giao dịch lồng ghép để
thực hiện đăng ký các tài nguyên trên.
GIỚI THIỆU ĐỀ TÀI
GIỚI THIỆU ĐỀ TÀI
03/23/15 Nguyễn Văn Hùng 4
Một số khái niệm cơ bản
Bế tắc và vấn đề thiếu tài nguyên
Chiến lược cung cấp tài nguyên
Các phương pháp cung cấp theo kiểu sử dụng trạng
thái từng phần
Thuật toán dự phòng bế tắc
CƠ SỞ LÝ THUYẾT
CƠ SỞ LÝ THUYẾT
03/23/15 Nguyễn Văn Hùng 5
Tiến trình là chương trình hay đoạn chương trình đang
trong quá trình thực hiện
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 hay
nhiều tiến trình trên các trạm khác nhau
Tài nguyên 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
Thông điệp yêu cầu là một thông điệp được gửi bởi
một tiến trình khi nó có nhu cầu về tài nguyên
MỘT SỐ KHÁI NIỆM CƠ BẢN
MỘT SỐ KHÁI NIỆM CƠ BẢN
03/23/15 Nguyễn Văn Hùng 6
Bế tắc (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 xảy 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 đang còn nắm giữ
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
03/23/15 Nguyễn Văn Hùng 7
Chẳng hạn, ta có 4 tài nguyên T
1
, T
2
, T
3
, T
4
và 3 tiến trình
nhu cầu tài nguyên là Tr
1
, Tr
2
, Tr
3
được minh họa như
sau:
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
Có hai chu trình kín trong đồ
thị:
Tr
1
– T
1
– Tr
2
– T
3
– Tr
3
- T
2
-
Tr
1
Tr
3
– T
2
– Tr
2
– T
3
– Tr
3
03/23/15 Nguyễn Văn Hùng 8
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
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
BẾ TẮC VÀ VẤN ĐỀ THIẾU TÀI NGUYÊN
03/23/15 Nguyễn Văn Hùng 9
Có một số chiến lược cung cấp tài nguyên:
Cung cấp tài nguyên duy nhất
Cung cấp tập hợp các tài nguyên
Các phương pháp sử dụng trong hệ tập trung
Phân tán chức năng cung cấp
Các phương pháp cung cấp sử dụng trạng thái tổng quát
Các phương pháp cung cấp sử dụng trạng thái từng phần
CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN
CHIẾN LƯỢC CUNG CẤP TÀI NGUYÊN
03/23/15 Nguyễn Văn Hùng 10
Mỗi trạm chỉ quản lý các tài nguyên cục bộ của mình
Các quyết định cung cấp được đưa ra dựa trên thông tin
cục bộ
Tất cả các tài nguyên được truy cập theo kiểu loại trừ
Hai thuật toán được đề cập:
Thuật toán dự phòng bế tắc
Thuật toán phát hiện bế tắc
PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG
PHƯƠNG PHÁP CUNG CẤP SỬ DỤNG
TRẠNG THÁI TỪNG PHẦN
TRẠNG THÁI TỪNG PHẦN
03/23/15 Nguyễn Văn Hùng 11
Là một trong những phiên bản của thuật toán Lomet
Sử dụng trạng thái từng phần
Phát biểu bài toán
Cho 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
của 3 trạm S
1
, S
2
và S
3
. Ta ký hiệu a_loai_tru_th() là
phép toán thông điệp
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 12
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
Giao dịch T1
t11: a_loai_tru_th(e1, e2)
……
t12: v_loai_tru_th(e1)
…….
t13: v_loai_tru_th(e2)
Giao dịch T2
t21: a_loai_tru_th(e2, e3)
……
t22: v_loai_tru_th(e2)
…….
t23: v_loai_tru_th(e3)
Giao dịch T3
t31: a_loai_tru_th(e3, e1)
……
t32: v_loai_tru_th(e3)
…….
t33: v_loai_tru_th(e1)
Nếu các lệnh thực hiện theo trình tự: t11, t21, t31, t12, t22,
t32. Đến thời điểm t nào đó, bế tắc sẽ xảy ra.
03/23/15 Nguyễn Văn Hùng 13
Ta có đồ thị như sau:
Giả sử các tài nguyên e
1
, e
2
và e
3
được bố trí trên các trạm tương
ứng là S
1
, S
2
và S
3
Nếu trạm S
i
chỉ nhận thông cáo tương ứng với tài nguyên mà nó
quản lý thì nó duy trì đồ thị G
i
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 14
Sau khi thực hiện t32 ta có hình ảnh:
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
Tại trạm S
1
ta có
đồ thị G
1
Tại trạm S
2
ta có
đồ thị G
2
Tại trạm S
3
ta có
đồ thị G
3
T
1
T
3
e
1
T
2
T
1
e
2
T
3
T
2
e
3
03/23/15 Nguyễn Văn Hùng 15
Nhận xét:
Ở trạng thái từng phần 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.
Nếu ở trạng thái không tập trung hay không từng phần thì ta
có đồ thị:
Trên thực tế, các đồ thì riêng rẽ trên không cho phép phát
hiện sự hình thành 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.
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 16
Nguyên lý và thuyết minh thuật toán:
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.
Thêm vào cho từng đồ thị G’i hình ảnh thu nhỏ cho Si của
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 giao dịch.
Điều kiện cung cấp tài nguyên là duy trì tình trạng không
vòng lặp cho các đồ thị Gi
=> Chỉ ra G có được tình trạng không vòng lặp?
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 17
Nguyên lý và thuyết minh thuật toán:
Ký hiệu T
j
>>T
k
là quan hệ trật tự toàn phần chặt chẽ trên các
giao dịch.
G’i là hình ảnh thu nhỏ của trạm Si của đồ thị quan hệ >>
xác định: T
j
>>T
k
T
j
>T
k
hoặc T
j
>>T
k
Giả sử G có vòng lặp bao gồm một tập hợp của n giao dịch
được đánh số thứ tự từ 0 … 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ử T
p
là nguyên tố của tập hợp này đến trước tiên theo
chiều quan hệ >> và q = p-1 modulo n. ta có
T
p
>>T
q
G’i sẽ chứa vòng lặp nếu S 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 của T
p
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 18
Thuật toán: Thứ tự thực hiện như sau
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
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
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
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 19
Minh họa: Sử dụng lại ví dụ trên
Khi T
1
thực hiện t
12
: v_loai_tru_th(e
1
), yêu cầu này xung đột
với thông cáo a_loai_tru_th(e
1
) thực hiện bởi T
3
.
=> Hình thành cung T
1
-T
3
trong G. Nhưng yêu cầu vẫn được
chấp nhận vì T
1
>>T
3
Ta có đồ thị G:
Các yêu cầu t
22
: v_loai_tru_th(e
2
) và t
32
: v_loai_tru_th(e
3
) bị từ
chối vì nó tạo ra vòng lặp trên các trạm S
2
và S
3
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 20
Nhận xét
Thuật toán đặt ra nguyên tắc tương tự như các nhóm sắp xếp
nhưng nó tránh được sự thiếu thốn vô hạn
Ta sử dụng kỹ thuật 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
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
THUẬT TOÁN DỰ PHÒNG BẾ TẮC
03/23/15 Nguyễn Văn Hùng 21
Phát biểu bài toán
Trong hệ thống có 3 Server phục vụ việc đăng ký du lịch bao
gồm: Tour du lịch, Xe vận chuyển, Khách sạn. Anh/ chị hãy
xây dựng chương trình giao dịch lồng ghép để thực hiện đăng
ký tài nguyên nêu trên
Xây dựng chương trình
Xây dựng 3 database tương ứng là Tour, Hotel và Transport
Phân chia các hệ thống Server quản lý các database
Lồng ghép các Server
Xây dựng các module xử lý chính cho các Server
Xây dựng lưu đồ thuật toán thuật toán theo giải thuật danh
sách di chuyển
BÀI TẬP
BÀI TẬP
03/23/15 Nguyễn Văn Hùng 22
Xây dựng 3 database tương ứng là Tour, Hotel và
Transport
XÂY DỰNG CHƯƠNG TRÌNH
XÂY DỰNG CHƯƠNG TRÌNH
03/23/15 Nguyễn Văn Hùng 23
Phân chia các hệ thống Server quản lý các database
Server 1: lưu trữ databse về Tour
Server 2: lưu trữ databse về Hotel
Server 3: lưu trữ database về Transport
XÂY DỰNG CHƯƠNG TRÌNH
XÂY DỰNG CHƯƠNG TRÌNH
03/23/15 Nguyễn Văn Hùng 24
Lồng ghép các server:
XÂY DỰNG CHƯƠNG TRÌNH
XÂY DỰNG CHƯƠNG TRÌNH
Begin_transaction Register
Begin
Begin_transaction Tour
…
End {Tour}
Begin_transaction Hotel
…
End {Hotel}
Begin_transaction Car
…
End {Car}
End.
Begin_transaction Register
Begin
Begin_transaction Tour
…
Begin_transaction Hotel
Begin_transaction Car
…
End {Car}
End {Hotel}
End {Tour}
End.
03/23/15 Nguyễn Văn Hùng 25
Xây dựng các module xử lý chính cho các Server
Module giao tiếp với Client. Module này có tên là
ClientHandle, nó có chức năng nhận dữ liệu từ các chương
trình Client để lưu vào cơ sở dữ liệu.
Module xử lý danh sách di chuyển. Module này có tên
MobListHandle, nó có chức năng nhận dữ liệu từ module
ClientHandle và cập nhật vào tất cả các server theo giải thuật
danh sách di chuyển.
XÂY DỰNG CHƯƠNG TRÌNH
XÂY DỰNG CHƯƠNG TRÌNH