Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
261,15 KB
Nội dung
Tính khảtuầntự của
lịch thaotáctrongcơ
chế Lock.
1. CơchếLock
2. CơchếLock 2 giai đoạn (2 Phases Locking)
3. Bài tập và hướng dẫn:
CHÚ Ý:
Quy ước:
Để thuận lợi cho việc biểu diễn các thaotác theo thời gian, 1 thaotác được viết dưới dạng M
iTj
.
Trong đó:
- M là tên thao tác, có thể là Read, Write, Lock, Unlock, Rlock …
- Với i là thứ tự theo thời gian từ trên xuống.
- Với j là mã số của giao tác, ví dụ T1,T2 … Tj.
TÍNH KHẢTUẦNTỰCỦALỊCHTHAOTÁCTRONGCƠCHẾLOCK
I. CƠCHẾLOCK :
1. Đặc điểm:
Chỉ xét các thaotácLock và Unlock để xét tính khảtuầntự của lịch.
2. Đồ thị khảtuầntự ( cơchếlock )
- S là tập các giao tác T1,T2,T3…Tn
- Xét các thaotác Mi có dạng Lock(A) và Unlock(A).
- Nếu Ti có 1 thaotác dạng Unlock(A), Tj cóthaotác tiếp theo sau đó có dạng
Lock(A) thì vẽ 1 cung có hướng từ Ti Tj .
- Lịchthaotáckhảtuầntự đồ thị không có chu trình .
Ví dụ 1:
Time
T1 T2
1 Lock(A)
2
Read (A) a1
3 Unlock(A)
4
Lock(A)
5
Read(A) a2
6
a2 + 1 a2
7
Write(a2) A
8
Unlock(A)
9
a1 + 1 a1
10 Lock(A)
11
Write(a1) A
12 Unlock(A)
Hướng dẫn:
- T1 thực hiện Unlock
3T1
(A) sau đó T2 thực hiện Lock
4T2
(A) ta có : T1 T2
- T2 thực hiện Unlock
8T2
(A) sau đó T1 thực hiện Lock
10T1
(A) ta có: T2 T1
- Kết luận: Đồ thị có chu trình Lịch S không khảtuần tự.
3. Cách xây dựng đồ thị khảtuần tự:
- Đánh dấu tất cả lệnh Unlock.
- Xét tuầntự từng lệnh Unlock:
o Giả sử đang xét lệnh Unlock (A) của giao tác Ti.
o Với mỗi lệnh Lock (A) của các giao tác Tj (j <> I ) được thực hiện sau lệnh
này, vẽ 1 cung hướng từ Ti Tj.
- Nếu đồ thị không có chu trình Lịch S khảtuần tự.
Ví dụ 2: Cho lịch S như sau. Xét tínhkhảtuầntựcủalịch S.
Time
T1 T2 T3 T4
1
Lock(A)
2
Lock(A)
3
Lock(B)
4
Unlock(A)
5
Unlock(B)
6
Lock(B)
7
Unlock(A)
8
Lock(B)
9
Lock(A)
10
Unlock(B)
11
Lock(C)
12 Unlock(A)
13
Lock(A)
14
Unlock(A)
15 Unlock(B)
16 Unlock(C)
HƯỚNG DẪN:
B1. Đánh dấu ( tô đậm như trên hình vẽ trên)
B2: Lần lượt xét các Unlock ( có dạng Unlock
xTy
(X) với x là thứ tự thời gian và y là thứ tự giao
tác):
Xét Unlock
4T2
(A) của T2 trên ĐVDL là A:
o Ta có: Lock
9T1
(A) và Lock
13T4
(A) thực hiện sau thaotác đó nên Ta có 2 cung
sau: T2 T1 và T2 T4
Xét Unlock
5T2
(B) của T2 trên ĐVDL là B:
o Ta có: Lock
6T1
(B) và Lock
8T4
(B) thực hiện sau thaotác đó nên Ta có 2 cung
sau: T2 T1 và T2 T4
Xét Unlock
7T3
(A) của T3 trên ĐVDL là A:
o Ta có: Lock
9T1
(A) và Lock
13T4
(A) thực hiện sau thaotác đó nên Ta có 2 cung
sau: T3 T1 và T3 T4
Xét Unlock
10T4
(B) của T4 trên ĐVDL là B:
o Sau thaotác trên không có giao tác Tj nào thực hiện Lock(B) nên ta không tìm
được thêm cung nào.
Xét Unlock
12T1
(A) của T1 trên ĐVDL là A:
o Ta có: Lock
13T4
(A) thực hiện sau thaotác trên nên ta có cung : T1T4
Xét các Unlock
14T4
(A), Unlock
15T1
(B) và Unlock
16T1
(C) ta có:
o Sau các thaotác này không có các giao tác khác thực hiện Lock trên ĐVDL tương
ứng nên ta không tìm được thêm cung nào nữa.
B3: Vẽ đồ thị.
Sau bước 2 ta có các cung và đồ thị tương ứng sau:
Cung ĐVDL
T2T1 A,B
T2T4 A,B
T3T1 A
T3T4 A
T1T4 B
Nhận xét đồ thị không có chu trình:
Lịch S khảtuầntự theo thứ tự thực hiện sau:
T2 T3 T1 T4
hoặc
T3 T2 T1 T4
II. KHÓA 2 GIAI ĐOẠN (2 PL , Two Phase Lock):
1. Điều kiện thỏa nghi thức khóa 2 giai đoạn (2PL):
- Sau khi thực hiện thaotác Unlock (A ) không thực hiện lại thaotácLock (A) nào cả.
- Trước khi thực hiện thaotácLock (A) không tồn tại 1 thaotác Unlock(A) nào cả.
- Ví dụ:
T1
Lock(A)
Read(A)
Lock(B)
Read(B)
B=B+A
Write(B)
Unlock(A)
Unlock(B)
2. Quy tắc xét lịchthaotáckhảtuần tự:
- S là tập các giao tác T1,T2,T3… Tn.
- Xét các thaotác Mi có dạng Lock(A) và Unlock(A).
o Nếu Ti thực hiện thaotác Rlock(A) hoặc WLock(A) và trong giao tác Tj thực
hiện sau đó thaotác Wlock(A) thì vẽ cung từ Ti Tj . (tạm gọi là cung kiểu
1)
o Nếu Ti thực hiện thaotác Wlock(A) , và trong Tj thực hiện thaotác Rlock(A)
sau khi Ti thực hiện xong thaotác Unlock(A) nhưng trước khi các thaotác
khác thực hiện thaotác Wlock(A) thì vẽ 1 cung từ Ti Tj . (tạm gọi là cung
kiểu 2)
- Lịchthaotáckhảtuầntự đồ thị không có chu trình.
T2
Lock(A)
Read(A)
Unlock(A)
Lock(B)
Read(B)
B=B+A
Write(B)
Unlock(B)
Thỏa nghi thức 2PL Không thỏa nghi thức 2PL
II. BÀI TẬP :
1. Bài tập 1 : Cho lịch S như sau :
Time
T1 T2
1 RL(A)
2
Read(A)
3 UL(A)
4
RL(B)
5
Read(B)
6
UL(B)
7
WL(A)
8
Read(A)
9
A=A+B
10
Write(A)
11
UL(A)
12 WL(B)
13
Read(B)
14
B=B+A
15
Write(B)
16 UL(B)
a. Xét lịch S cókhảtuầntự hay không?
b. Giao tác nào trong 2 giao tác T1, T2 không thỏa 2PL.
Hướng dẫn:
a. Xét tínhkhảtuầntựcủa S.
- Giao tác T1 thực hiện Rlock
1T1
(A), sau đó T2 thực hiện Wlock
7T2
(A), ta có cung :
T1 T2
- Giao tác T2 thực hiện Rlock
4T2
(B) sau đó T1 thực hiện Wlock
12T1
(B),ta có cung :
T2 T1
- Kết luận: Đồ thị có chu trình Lịch không khảtuần tự.
b. Xét thỏa tính chất 2PL
- Xét T1: RLock(A) Read (A) Unlock(A) Wlock(B) Read(B) B=B+A
Write(B) Ulock(B).
o Ta có : Wlock(B) thực hiện sau Unlock (A) T1 không thỏa 2PL.
- Xét T2: RLock(B) Read(B) Unlock(B) Wlock(A) Read(A) A=A+B
Write(A) Unlock(A) .
o Ta có: Wlock(A) thực hiện sau Unlock(B) T2 không thỏa 2PL.
2. Bài tập 2: Cho lịch S như sau.
Time
T1 T2 T3 T4
1
RL(A)
2
RL(A)
3
WL(B)
4
UL(A)
5
WL(A)
6
UL(B)
7 RL(B)
8
UL(A)
9
RL(B)
10 RL(A)
11
UL(B)
12 WL(C)
13 UL(A)
14
WL(B)
15
UL(B)
16 UL(B)
17 UL(C)
a. Xét S cókhảtuầntự không
b. Các giao tác T1, T2, T3, T4 có thỏa 2PL không.
HƯỚNG DẪN:
a. Xét tính khảtuần tự.
Cách 1:
Xét trên đơn vị dữ liệu A(màu cam), xét lần lượt từ trên xuống các Rlock và Wlock trên
ĐVDL A:
o T2 thực hiện Rlock
1T2
(A) sau đó T3 thực hiện Wlock
5T3
(A) nên ta có cung: T2
T3.
o T3 thực hiện Wlock
5T3
(A) rồi thực hiện Unlock
8T3
(A), sau đó T1 thực hiện
Rlock
10T1
(A) ta có cung T3 T1.
o Rlock2T3(A) của T3 và Rlock
10T1
(A) không tạo thêm cung nào vì sau nó không
có thaotác Wlock(A) nào cả.
Xét trên đơn vị dữ liệu B(màu xanh dương), ta cũng xét các thaotác Rlock và Wlock lần
lượt từ trên xuống, ta có:
[...]... cung: T2 T4 o T1 thực hiện Rlock7T1(B): T4 thực hiện Wlock14T4 (B) sau thaotác trên của T1 nên ta có cung: T1 T4 o Việc xét các thaotác Rlock9T4(B) và Wlock14T4(B) không tạo thêm cung nào mới vì sau các thaotác trên không tồn tại 1 thaotác Wlock(B) và Rlock(B) nào trên các giao tác khác T4 Xét trên ĐVDL C (màu xanh lá cây): o Dễ dàng thấy được, việc xét các thaotác trên ĐVDL này không thể... thực hiện Wlock3T2(B) (xét cung kiểu 1): Ta có T4 thực hiện Wlock14T4(B) sau thaotác trên của T2 nên ta có cung: T2 T4 o T2 thực hiện Wlock3T2(B) sau đó thực hiện Unlock6T2(B) (xét cung kiểu 2) và: T1 thực hiện Rlock7T1(B) ngay sau đó mà chưa có bất kì 1 giao tác nào khác T1 thực hiện Wlock(B) nên T1 phải thực hiện sau T2 Ta có cung: T2 T1 Tương tự với giao tác T4 với thaotác Rlock9T4(B)... vì tất cả các thaotác đều thuộc T1 Như vậy, sau khi xét lần lượt các thaotác cho từng ĐVDL ta có danh sách các cung và đồ thị sau: Cung T2T3 T3T1 T2T1 T2T4 T1T4 ĐVDL A A B B B Nhận xét: Đồ thị không có chu trình Kết luận: S khả tuầntự : T2 T3 T1 T4 Cách 2: Sau câu b bên dưới ta thấy được rằng, T1, T2,T3,T4 đều thỏa 2PL và S thỏa 3 quy tắc (1),(2),(3) nên việc đồ thị ưu tiên của S tồn tại... Sau câu b bên dưới ta thấy được rằng, T1, T2,T3,T4 đều thỏa 2PL và S thỏa 3 quy tắc (1),(2),(3) nên việc đồ thị ưu tiên của S tồn tại 1 chu trình là vô lý (xem thêm trongtàiliệu và slide của cô) nên S khả tuầntự b Xét thỏa 2PL Giao tác T1 T2 T3 T4 Thỏa 2PL Thỏa Thỏa Thỏa Thỏa Ghi chú Dạng nâng cấp khóa .
Tính khả tuần tự của
lịch thao tác trong cơ
chế Lock.
1. Cơ chế Lock
2. Cơ chế Lock 2 giai đoạn (2 Phases Locking)
3. Bài tập. thao tác Lock và Unlock để xét tính khả tuần tự của lịch.
2. Đồ thị khả tuần tự ( cơ chế lock )
- S là tập các giao tác T1,T2,T3…Tn
- Xét các thao tác