1. Trang chủ
  2. » Công Nghệ Thông Tin

Chương 2: Những vấn đề khác trong điều kiển đồng thời pptx

12 162 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Những vấn đề khác trong điều kiển đồng thời
Trường học Trường Đại Học
Thể loại Bài giảng
Định dạng
Số trang 12
Dung lượng 226,14 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Những vấn đề khác trongđiều kiển đồng thời Chương 2 Những vấn đề khác trong điều khiển đồng thời 2 z Quay lui dây chuyền cascading rollback z Lịch khả phục hồi recoverable schedule z De

Trang 1

Những vấn đề khác trong

điều kiển đồng thời

Chương 2

Những vấn đề khác trong điều khiển đồng thời 2

z Quay lui dây chuyền (cascading rollback)

z Lịch khả phục hồi (recoverable schedule)

z Deadlock

z Phát hiện (detection)

Nội dung chi tiết

Ví dụ

T2

T1

S

Write(B,t); Unlock(B)

Read(B,t); t:=t+100

t:=t+100; Write(A,t)

Lock(A); Read(A,t)

Lock(B); Unlock(A)

Lock(B); Ulock(A)

Read(B,t); t:=t*2

Write(B,t); Unlock(B)

s:=s*2; Write(A,s)

Lock(A); Read(A,s)

Lock(B)

Chờ

125

250

125

250

Trang 2

Những vấn đề khác trong điều khiển đồng thời 4

Ví dụ (tt)

T2

T1

S

Abort; Unlock(B);

Read(B,t);

t:=t+100; Write(A,t)

Lock(A); Read(A,t)

Lock(B); Unlock(A)

Lock(B); Ulock(A)

Read(B,t); t:=t*2

Write(B,t); Unlock(B)

s:=s*2; Write(A,s)

Lock(A); Read(A,s)

Lock(B)

Chờ

125

250

50

Tính nhất quán bị vi phạm

Những vấn đề khác trong điều khiển đồng thời 5

Ví dụ (tt)

T2

RT=0 WT=0 RT=0 WT=0 RT=0 WT=0

S

Write(B)

Read(B)

Read(A)

Read(C)

Write(C)

WT=150

RT=150

RT=0

WT=150 RT=200

WT=0

RT=175 WT=0

Abort

Write(A) WT=175RT=150

WT=0

giá trị của B

Quay lui dây chuyền

.

r(A)

.

.

abort

.

abort

.

.

w(A)

.

.

.

.

.

abort

.

Trang 3

Những vấn đề khác trong điều khiển đồng thời 7

Lịch khả phục hồi

.

w(A)

.

commit

abort

z Xét mỗi cặp Tivà Tjsao cho

z Tjđọc dữ liệu sau khi Tighi

z Tiphải được hoàn tất (commit) trước khi Tjhoàn tất

z Ký hiệu ci: giao tác thứ i hoàn tất

Những vấn đề khác trong điều khiển đồng thời 8

Lịch khả phục hồi (tt)

S 1 : w 1 (A); w 1 (B); w 2 (A); r 2 (B); c 1 ; c 2 ;

T2đọc B sau

T1ghi B

T1hoàn tất trước T2

Lịch khả phục hồi (tt)

S 2 : w 2 (A); w 1 (B); w 1 (A); r 2 (B); c 1 ; c 2 ;

T1ghi B trước

T2đọc B sau

T1hoàn tất trước T2

Trang 4

Những vấn đề khác trong điều khiển đồng thời 10

Lịch khả phục hồi (tt)

T1ghi B trước

T2đọc B sau

T2hoàn tất trước T1

S 3 : w 1 (A); w 1 (B); w 2 (A); r 2 (B); c 2 ; c 1 ;

Những vấn đề khác trong điều khiển đồng thời 11

Lịch khả phục hồi (tt)

z Nhận xét

z Muốn khôi phục đôi khi cần quay lui dây chuyền

z Nhưng quay lui dây chuyền không thể xãy ra

z Tốn nhiều chi phí

→ Lịch không quay lui dây chuyền (cascadeless schedule)

Lịch không quay lui dây chuyền

.

w(A)

r(A)

commit

Các giao tác chỉ đọc những giá trị đã được hoàn tất

Trang 5

Những vấn đề khác trong điều khiển đồng thời 13

Lịch không quay lui dây chuyền (tt)

S 1 : w 1 (A); w 1 (B); w 2 (A); r 2 (B); c 1 ; c 2 ;

S 1 : w 1 (A); w 1 (B); w 2 (A); c 1 ; r 2 (B); c 2 ;

z Khả phục hồi

z Ngăn ngừa quay lui dây chuyền

z → Các lịch ngăn ngừa quay lui dây chuyền đều khả

phục hồi

Những vấn đề khác trong điều khiển đồng thời 14

z Quay lui dây chuyền (cascading rollback)

z Lịch khả phục hồi (recoverable schedule)

z Deadlock

z Phát hiện (detection)

Nội dung chi tiết

z Nhắc lại 2 tình huống

Deadlock

T2

T1

S

Lock(B)

Lock(A)

Read(A)

Lock(B)

Write(A)

Write(B)

Chờ

Lock(A)

Read(B)

↓ Chờ Qui tắc khóa 2PL

T2

T1

S

RLock(A)

WLock(A)

Read(A)

WLock(A)

↓ Chờ

RLock(A)

Read(A)

↓ Chờ

Nâng cấp khóa

Trang 6

Những vấn đề khác trong điều khiển đồng thời 16

z Hệ thống rơi vào trạng thái deadlock khi

z Các giao tác phải chờ đợi lẫn nhau để được thao tác lên

các đơn vị dữ liệu bị khóa bởi chúng

z Và không một giao tác nào có thể thực hiện tiếp công việc

của mình

Deadlock (tt)

Những vấn đề khác trong điều khiển đồng thời 17

z Phát hiện

khôi phục lại hệ thống

z Chọn 1 giao tác để rollback

z Đồ thị chờ (wait-for graph)

z Ngăn ngừa

z Quản lý các giao tác sao cho không bao giờ có deadlock

z Sắp thứ tự tài nguyên (resource ordering)

z Timeout

z Wait-die

z Wound-wait

Giải quyết Deadlock

z Đồ thị gồm

z Đỉnh là các giao tác đang giữ khóa hoặc đang chờ khóa

z Cung đi từ đỉnh T sang U khi

z U đang giữ khóa trên đơn vị dữ liệu A

z T đang chờ khóa trên A

z T không thể khóa đơn vị dữ liệu A nếu U không giải phóng khóa

z Nếu đồ thị chờ không có chu trình

z Các giao tác có thể hoàn tất

z Ngược lại

z Không một giao tác nào trong chu trình có thể tiếp tục thực

hiện→ deadlock

Đồ thị chờ

Trang 7

Những vấn đề khác trong điều khiển đồng thời 19

Ví dụ

L(A); R(A)

L(C); R(C) 1

L(B); R(B) L(D); R(D)

2

3

4

5

6

7

8

L(A) L(C) L(A)

Chờ

↓ Chờ

↓ Chờ

Chờ

T2

Những vấn đề khác trong điều khiển đồng thời 20

Ví dụ (tt)

T2

L(A); R(A)

L(C); R(C) 1

L(B); R(B) L(D); R(D)

2

3

4

5

6

7

8

L(A) L(C) L(A) L(B)

z Áp đặt một thứ tự nào đó lên các đơn vị dữ liệu

z Nếu các giao tác thực hiện khóa những đơn vị dữ liệu

theo thứ tự này

z Thì không có deadlock xãy ra trong khi chờ đợi

z Chứng minh

z Bài tập về nhà

Sắp thứ tự tài nguyên

Trang 8

Những vấn đề khác trong điều khiển đồng thời 22

z Giả sử các đơn vị dữ liệu được sắp thứ tự theo

alphabet

Ví dụ

Những vấn đề khác trong điều khiển đồng thời 23

Ví dụ (tt)

Ví dụ (tt)

L(A); R(A)

L(A) 1

L(B); R(B)

L(A)

2

3

4

5

6

7

8

↓ Chờ

↓ Chờ L(C); W(C) U(B); U(C)

9

10

11

12

13

14

L(B); R(B)

U(A); U(B)

L(A); L(C) R(A); W(C) U(C); U(A)

L(A); L(D) R(D); W(A) U(D); U(A)

Trang 9

Những vấn đề khác trong điều khiển đồng thời 25

z Giới hạn các giao tác chỉ được thực hiện trong 1

khoảng thời gian nào đó

z Nếu giao tác vượt quá thời gian này

z Thì giao tác phải bị rollback

Timeout

Những vấn đề khác trong điều khiển đồng thời 26

z Mỗi giao tác sẽ được gán một nhãn ghi nhận thứ tự

xuất hiện, kí hiệu: ts(T)

z Xét 2 giao tác T và U

z U đang giữ khóa trên đơn vị dữ liệu A

z T muốn khóa đơn vị dữ liệu A

z T sẽ chờ-wait U khi ts(T) < ts(U)

z Ngược lại T sẽ bị hủy-die

và bắt đầu làm lại ở 1 thời

điểm khác

Wait-die

U T

U T

Ví dụ

L(A); R(A)

L(A) 1

L(B); R(B)

L(A)

2

3

4

5

6

7

8

Dies

Dies

L(C); W(C) U(B); U(C) L(B); R(B)

U(A); U(B)

Trang 10

Những vấn đề khác trong điều khiển đồng thời 28

Ví dụ (tt)

z T2bắt đầu trước T4

L(A); R(A)

L(A) 1

L(B); R(B)

L(A)

2

3

4

5

6

7

8

Dies

Dies

L(C); W(C) U(B); U(C) L(B); R(B)

U(A); U(B)

9

10

11

12

13

14

L(A); L(C) R(A); W(C) U(C); U(A)

L(A)

R(D); W(A) U(D); U(A) L(A); L(D)

Dies

15

Những vấn đề khác trong điều khiển đồng thời 29

Ví dụ (tt)

z T4bắt đầu trước T2

L(A); R(A)

L(A) 1

L(B); R(B)

L(A)

2

3

4

5

6

7

8

Dies

Dies

L(C); W(C) U(B); U(C) L(B); R(B)

U(A); U(B)

9

10

11

12

13

14

L(A); L(C) R(A); W(C) U(C); U(A)

L(A); L(D) R(D); W(A) U(D); U(A)

Waits

15

L(A)

z Mỗi giao tác sẽ được gán một nhãn ghi nhận thứ tự

xuất hiện, kí hiệu: ts(T)

z Xét 2 giao tác T và U

z U đang giữ khóa trên đơn vị dữ liệu A

z T muốn khóa đơn vị dữ liệu A

z T buộc U rollback và trao khóa

lại cho T-wound khi ts(T) < ts(U)

z Ngoại lệ: nếu U đã kết thúc và giải

phóng khóa, U sẽ không rollback

z Ngược lại T sẽ chờ-wait U

Wound-wait

U T U T

Trang 11

Những vấn đề khác trong điều khiển đồng thời 31

Ví dụ

L(A); R(A)

L(A) 1

L(B); R(B)

L(A)

2

3

4

5

6

7

8

Waits

Waits

9

10

11

12

13

14

15

L(B); R(B)

U(A); U(B)

Wound

L(A); L(C) R(A); W(C) U(C); U(A)

L(A); L(D) R(D); W(A) U(D); U(A) L(B); R(B) L(C); W(C) U(B); U(C)

Những vấn đề khác trong điều khiển đồng thời 32

z Timeout

z Khó chọn được khoảng thời gian timeout thích hợp

z Có hiện tượng starvation

z Giao tác lập đi lập lại quá trình: bắt đầu, deadlock, rollback

z Resource ordering

z Không thực tế

z Chờ đợi nhiều→ tiềm ẩn của deadlock

Nhận xét

z Wait-die và Wound-wait

z Không có starvation

z Wound-wait ít rollback các giao tác hơn wait-die

z Dễ cài đặt hơn wait-for graph

z Có thể rollback những giao tác không gây ra deadlock

z Wait-for graph

z Nếu đồ thị quá lớn sẽ tốn nhiều thời gian phân tích

z Giảm tối thiểu rollback các giao tác

z Chỉ rollback 1 trong những giao tác gây ra deadlock

Nhận xét (tt)

Ngày đăng: 29/03/2014, 12:20

HÌNH ẢNH LIÊN QUAN

Đồ thị chờ - Chương 2: Những vấn đề khác trong điều kiển đồng thời pptx
th ị chờ (Trang 6)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w