1. Trang chủ
  2. » Luận Văn - Báo Cáo

Slide tiểu luận hệ phân tán – điều khiển đồng thời bằng cơ chế then cài

20 465 2
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

Định dạng
Số trang 20
Dung lượng 188,5 KB

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

Nội dung

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

Trang 1

Phần I:

Điều khiển đồng thời bằng cơ chế then cài

Phần II:

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: Võ Minh Trang

TIỂU LUẬN

HỆ TIN HỌC PHÂN TÁN

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN

Đà Nẵng, tháng 4/2012

Trang 2

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

Trang 3

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)

Trang 4

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

Trang 5

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ỗ

Trang 6

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

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.

Trang 7

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

Trang 8

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

Trang 9

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

Trang 10

PHẦN II

PHẦN II

SỬ DỤNG BỘ QUẢN LÝ KHÓA CƠ BẢ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

Trang 11

+ Đ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

Trang 12

+ 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á đó

Trang 13

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

Trang 14

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:

Trang 15

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)

Trang 16

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.

Trang 17

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

Trang 18

Khoá chốt hai pha nghiêm ngặt (strict two-phase locking)

Nhận khoá

Giải phóng khoá

Thời gian sử dụng mục dữ liệu

Trang 19

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

Trang 20

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

Ngày đăng: 29/12/2013, 14:29

HÌNH ẢNH LIÊN QUAN

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 - Slide tiểu luận hệ phân tán – điều khiển đồng thời bằng cơ chế then cài
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 (Trang 16)

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