Tải bản đầy đủ (.ppt) (28 trang)

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

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 (524.34 KB, 28 trang )

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

×