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

Tiểu luận Hệ Phân Tán – Điều khiển đồng thời bằng cơ chế then cài

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 (163.47 KB, 20 trang )


Phần 1:
Điều khiển đồng thời bằng cơ chế then cài
Phần 2:
Bài toán sử dụng bộ quản lý khóa cơ bản
Giáo viên hướng dẫn: PGS.TS Lê Văn Sơn
Sinh viên thực hiện: Hồ Phước Duy
TIỂU LUẬN
HỆ TIN HỌC PHÂN TÁN
HỆ TIN HỌC PHÂN TÁN
ĐẠI HỌC ĐÀ NẴNG
ĐẠI HỌC ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ THÔNG TIN
Đà Nẵng, 7/2009
Đà Nẵng, 7/2009

NỘI DUNG TRÌNH BÀY
NỘI DUNG TRÌNH BÀY
PHẦN I: Điều khiển đồng thời bằng cơ chế then cài
1. Tổng quan
2. Cơ chế then cài
2.1. Loại trừ tương hổ
2.2. Then cài chọn lựa các đối tượng
2.3. Giao dịch 2 Pha
PHẦN II: Sử dụng bộ quản lý khóa cơ bản
1. Tổng quan
2. Bộ quản lý Khóa cơ bản
3. Những điểm cần cải tiến
Kết Luận


PHẦN I
PHẦN I
Điều khiển đồng thời bằng cơ chế then cài
1. Tổng quan:
+ Khi có nhiều giao tác đang được thực thi đồng thời trên
những tiến trình khác nhau (trong những bộ xử lý khác nhau), một
số cơ chế là cần thiết để giữ chúng không cho xâm nhập vào các
tiến trình khác. Thuật toán điều khiển đồng thời được sử dụng
rộng rãi nhất là then cài.
+ Then cài là bộ làm chậm với nguyên lý là làm chậm một
tác động nào đó cho đến thời điểm mà sự thực hiện của nó không
còn nguy cơ phá huỷ sự gắn bó của trật tự hoá (bằng cách chặn
tiến trình hiện hành).

PHẦN I
PHẦN I (tt)
Điều khiển đồng thời bằng cơ chế then cài
+ Là phép toán được thực hiện bởi một tiến trình nhằm cho
phép đăng ký truy cập vào tài nguyên. Nó gán hay không gán
quyền truy cập căn cứ vào các quy tắc tiền định như luật loại trừ
tương hỗ, luật đọc-hiệu chỉnh thông tin.
+ Một cơ chế CÀI THEN tốt đòi hỏi có nhiều khoá, là nhiều
tốn kém và có nhiều khả năng dẫn đến sự bế tắc

PHẦN I
PHẦN I (tt)
Điều khiển đồng thời bằng cơ chế then cài
Một trong những giải pháp đơn giản để đạt được trật tự
hoá gắn bó thể hiện ở chổ bắt buộc phải sử dụng trật tự hoá tuần
tự. Để làm việc đó, toàn bộ giao dịch được đặt trong cặp hàm

nguyên thuỷ mo_giaodich và dong_giaodich. Đây là sự đảm bảo
cho việc loại trừ tương hỗ giữa các giao dịch.
Nếu ta biết trước các đối tượng được xử lý bởi một giao
dịch nào đó, thì ta có thể cài then công việc truy cập đến các đối
tượng. Điều đó chỉ cho phép thực hiện song song đối với các giao
dịch truy cập vào các đối tượng rời rạc.
Nếu ta muốn nâng cao hơn nữa khả năng sử dụng song
song, thì cần phải thực hiện cài then ở mức độ thấp hơn mức
giao dịch.
2. Cơ chế then cài:
2.1. Loại trừ tương hỗ:

Theo quy tắc : Một giao dịch thay đổi giá trị của đối tượng
phải loại trừ tất cả các đối tượng khác muốn truy cập, ngược lại
thì việc truy cập được tiến hành theo kiểu tương tranh.
Để đảm bảo điều đó luôn luôn được thực hiện, người ta
cho phép tiến hành cài then một đối tượng trước khi việc sử
dụng nó có hiệu lực.
Một giao dịch có thể thực hiện ba hàm nguyên thủy trên đối
tượng e:
2.2. Then cài chọn lựa các đối tượng:
STT Tên hàm Thuyết minh
1 v_doc(e) Sử dụng khi muốn có được quyền đọc e
theo kiểu chia sẻ
2 v_viet(e) Sử dụng khi muốn có quyền đọc và viết
vào e theo kiểu loại trừ
3 giai_phong(e) Giải phóng đối tượng e. Giả sử trước đó
đã được cài then bởi cùng giao dịch này.

Một giao dịch gọi là phát triển nếu:

+ Một phép toán chỉ được thực hiện trên một đối tượng
sau khi đối tượng đó đã được cài then bởi giao dịch theo kiểu
tương thích với phép toán.
+ Không có giao dịch nào cài then được trên đối tượng mà
trước đó đã bị cài then cũng bởi chính giao dịch đó, ngoại trừ
theo kiểu loại trừ trong trường hợp trước đó đã sử dụng kiểu chia
sẽ.
+ Sau khi chấm dứt một giao dịch, không có đối tượng nào
bị cài then.

Một trật tự hoá được gọi là hợp thức nếu:
+ Đối tượng được một giao dịch cài then theo kiểu chia sẽ
không bị bất cứ then cài nào theo kiểu loại trừ của các giao dịch
khác.
+ Một đối tượng bị cài then theo kiểu loại trừ thì không bị
bất kỳ then cài mới nào nữa.
Do vậy, mọi cố gắng cài then không phù hợp với các điều
kiện tương hỗ nêu trên đều phải chờ (bị làm chậm lại) cho đến khi
mở then.
Chú ý: Một giao dịch được gọi là tốt, nếu nó sử dụng các
then cài phù hợp với đặc điểm của chúng. Một trật tự hoá được
gọi là hợp thức, nếu các then cài hoạt động phù hợp với các đặc
điểm này.

Xem xét một giao dịch hình thành hợp thức bằng cách
kiểm tra hai điều kiện:
+ Toàn bộ đối tượng bị cài then vẫn ở trong tình trạng cài
then cho đến cuối giao dịch.
+ Không có then cài nào có thể diễn ra tiếp theo một then
cài khác trong cùng một giao dịch.

Điều kiện này thể hiện ở chổ là dãy các phép toán trên các
then cài được phân tích thành hai pha nối tiếp nhau. Một pha mà
trong đó các đối tượng bị cài then, còn pha kia chúng được mở
then.
2.3. Giao dịch 2 Pha – 2PL:

PHẦN II
PHẦN II
SỬ DỤNG BỘ QUẢN LÝ KHÓA CƠ BẢN
SỬ DỤNG BỘ QUẢN LÝ KHÓA CƠ BẢN


VÀ NHỮNG ĐIỂM CẦN CẢI TIẾN
VÀ NHỮNG ĐIỂM CẦN CẢI TIẾN
I. Sử dụng bộ quản lý khóa cơ bản:
+ Việc điều khiển đồng thời bằng khoá chốt là một cơ chế
thường dùng để giải quyết những vấn đề liên quan đến việc đồng
bộ hoá dữ liệu truy cập dùng chung, đảm bảo dữ liệu dùng chung
cho các thao tác tương tranh chỉ được truy xuất một lần một giao
dịch, mỗi phần tử dữ liệu đều có một khoá chốt kết hợp với
chúng.

+ Điều này được thực hiện bằng cách liên kết một khoá
chốt với mỗi đơn vị khoá. Khoá này được giao dịch đặt ra trước
khi nó truy xuất và được điều chỉnh lại vào lúc nó hết sử dụng.
Hiển nhiên là một đơn vị khoá không thể truy xuất được nếu đã bị
khoá bởi một giao dịch khác. Vì vậy, yêu cầu khoá của một giao
dịch chỉ được trao nếu khoá đi kèm hiện không bị một giao dịch
khác giữ.
+ Bộ xếp lịch đảm bảo rằng chỉ duy nhất giao tác có thể giữ

khoá chốt trong một thời điểm, và chỉ có một giao tác có thể truy
xuất dữ liệu đó tại cùng một thời điểm.

+ Khoá chốt được bộ xếp lịch (Schedule manager) dùng để
đảm bảo tính khả tuần tự.
+ Trước khi một giao tác có thể truy cập dữ liệu dùng
chung, bộ xếp lịch sẽ khảo sát trạng thái khoá chốt của những dữ
liệu này.
+ Nếu không có giao tác nào khác đang giữ chúng thì bộ
xếp lịch sẽ phát lệnh thông báo khoá dữ liệu này lại và sau đó các
giao tác thực hiện các lệnh của mình trên dữ liệu đó.
+ Nếu dữ liệu đang bị khoá bởi giao tác T2, thì giao tác này
phải chờ cho đến khi nào T2 giải phóng khoá đó.

Những quy tắc quản lý và sử dụng khoá:
Qui tắc 1: Khi nhận được một thao tác pi[x] từ bộ quản lý
giao tác (Transaction Manager, TM), bộ xếp lịch kiểm tra xem
pli[x] có đụng độ với một vài qlj[x] được đặt trước đó.
+ Nếu có, nó sẽ trì hoãn pi[x] và buộc Ti chờ cho đến khi
nó có thể đặt được khoá cần thiết.
+ Nếu không đụng độ, bộ xếp lịch (scheduler) sẽ đặt pli[x]
và gởi pi[x] đến bộ quản lý dữ liệu (Data Manager, DM).
Quy tắc này nhằm hạn chế hai giao tác truy xuất đồng thời một
phần tử dữ liệu trong tình trạng đụng độ.
Qui tắc 2: Mỗi khi bộ xếp lịch đặt khoá cho Ti, pli[x], nó
không thể giải phóng khoá đó cho đến khi Bộ quản lý dữ liệu
trả lời đã xử lý thao tác tương ứng của khoá pi[x].
Qui tắc 3: Mỗi khi bộ xếp lịch đã giải phóng một khoá cho
một giao tác, nó không thể lấy tiếp bất kỳ khoá nào cho giao tác
đó.

Thuật toán khóa chốt cơ bản

II. Những điểm cần cải tiến của bộ quản lý Khóa cơ bản:
Thuật toán khóa được cho trong Thuật toán 1 được trình bày ở
trên không đồng bộ hoá chính xác các thực thi giao dịch. Điều
này là do khi tạo ra các lịch biểu khả tuần tự, các thao tác khóa
và giải phóng khóa cũng cần phải được điều phối.
Ví dụ: Xét hai giao dịch sau
đây:
T
1
: Read(x)
x ← x + 1
Write(x)
Read(y)
y ← y – 1
Write(y)
Commit
T
2
: Read(x)
x ← x * 2
Write(x)
Read(y)
y ← y * 2
Write(y)
Commit
Dưới đây là một lịch biểu hợp lệ được bộ quản lý khóa tạo
ra khi sử dụng Thuật toán 1:
S = {wl

1
(x) R
1
(x), W
1
(x), lr
1
(x), wl
2
(x), R
2
(x), W
2
(x), lr
2
(x), wl
2
(y),
R
2
(y), W
2
(y), lr
2
(y), C2, wl
1
(y), R
1
(y), W
1

(y), lr
1
(y), Cl}

Khóa chốt hai pha:
+ Khóa chốt hai pha là một trong những kỹ thuật hiệu quả
trong việc khắc phục một số đụng độ cũng như thời gian chết
trong quá trình thực hiện các lệnh của các giao tác.
+ Nhiệm vụ của bộ xếp lịch 2 giai đoạn (Two phase locking,
2PL) là quản lý khoá chốt và điều khiển giao tác khi nào lấy và khi
nào giải phóng khoá.
+ 2PL nhằm đồng bộ hoá việc đọc và ghi. Trước khi đọc
mục dữ liệu x, phải khóa x (khóa do đọc). Trước khi ghi lên x,
giao tác phải khóa mục x ( khóa do ghi).

Quá trình cấp phát và thu hồi khóa được thể hiện ở biểu đồ sau:
Hình trên cho thấy bộ quản lý khóa giải phóng khóa ngay
sau khi hoàn tất việc truy xuất. Điều này cho phép các giao dịch
đang đợi khoá tiếp tục tiến hành và nhận khoá, do vậy, làm tăng
hoạt động đồng thời.

Khoá chốt hai pha nghiêm ngặt
(strict two-phase locking)
Kỹ thuật này cũng gồm 2 giai đoạn:
+ Giai đoạn tăng trưởng: giống với giai đoạn đầu của kỹ
thuật khóa 2 pha.
+ Giai đoạn thu hồi khóa:
- Tất cả các khóa được giải phóng cùng một lúc sau
khi giao tác T kết thúc hoặc bị hủy bỏ.
- Không có thao tác đọc/ghi nào được thực hiện một

khi khóa được giải phóng bởi giao tác.
Nếu giao tác bị hủy bỏ thì việc phục hồi lại những thay đổi
dữ liệu được thực hiện trước khi khóa được giải phóng.
Khoá chốt hai pha nghiêm ngặt

Khoá chốt hai pha nghiêm ngặt
(strict two-phase locking)
Biểu đồ khoá hai pha nghiêm ngặt

Vấn đề bế tắc luôn xảy ra trong các kỹ thuật dùng cơ chế
khóa chốt.
Giả sử có 2 giao tác T1 và T2 thực hiện các lệnh đọc ghi
trên mục dữ liệu x và y như sau:
T1: lock (x); lock(y); read (x); write (y);
T2: lock (y); lock(x); read (y); write (x);
T1 chiếm giữ khóa x và cố gắng khóa y, T2 chiếm giữ khóa
y và cố gắng khóa x. Hiện tượng bế tắc sẽ xảy ra.
Để khắc phục tình trạng này:
+ Thiết lập thời gian Timeout, nếu thời gian thực hiện giao
tác vượt quá thời gian Timeout thì hủy bỏ giao tác hoặc thực hiện
thuật toán kiểm tra bế tắc.
+ Sắp xếp các mục dữ liệu và truy xuất chúng theo một thứ
tự nhất định.
+ Giảm bớt việc đồng hành các giao tác.

Tất cả các thông tin được trình bày ở trên với mục tiêu tìm
hiểu vấn đề điều khiển đồng bộ bằng cơ chế then cài và bài toán
sử dụng bộ quản lý khoá cơ bản chỉ dừng lại ở phương diện
nghiên cứu nguyên lý, phương pháp kỹ thuật giải quyết các vấn
đề đó. Qua đó đã giúp cho tôi nắm bắt cơ bản được một phần

nào đó bài toán trên.
Tuy nhiên, do mới bước đầu tiếp cận nên có rất nhiều kiến
thức liên quan mà tôi chưa kịp tìm hiểu một cách cặn kẽ. Vì vậy
rất mong nhận được nhiều ý kiến đóng góp và hướng dẫn của
PGS.TS Lê Văn Sơn và các bạn./.
Xin chân thành cám ơn !
KẾT LUẬN
KẾT LUẬN

×