THựC HÀNH VỚI MỘT số THUẬT TOÁN ĐIỀU KHIÊN TƯOỈNG T R A N H T R O N G Q U Ả N L Ý G IA O D ỊC H P H Â N T Á N

Một phần của tài liệu Giáo trình hệ cơ sở dữ liệu phân tán và suy diễn phần 2 nguyễn văn huân, phạm việt bình (Trang 51 - 54)

- Bao caovedoi tac

(1), Thiết kế các bảng dữ liệu

5.2. THựC HÀNH VỚI MỘT số THUẬT TOÁN ĐIỀU KHIÊN TƯOỈNG T R A N H T R O N G Q U Ả N L Ý G IA O D ỊC H P H Â N T Á N

Hai thuật tốn điều khiển tương tranh được trình bày là các thuật tốn dùng khĩa và dùng nhăn thời gian. Để minh họa cho các thuật tốn này như sau;

• T h u ậ t to á n s ử d ụ n g k h ĩ a

Sử dụng đồ thị tuần tự số hĩa, trong đĩ các đỉnh biểu thị cho các giao dịch, các cung biểu thị cho mối quan hệ thứ tự giữa các giao dịch.

Đe biểu diễn đồ thị tuần tự hĩa ta dùng ma trận kề. Đồ thị tuần tự hĩa là một sổ đồ thị hữu hạn cĩ hưĩng G = <T, u > , trong đĩ T = {T|, T2,. -, Tii} tập các giao dịch là các đỉnh của đề thị, u là tập các c ung của đồ thị cĩ hướng từ giao dịch Ti đến Tị.

Đồ thị G được biểu diễn bằng ma trận kề vuơng cấp n mà phần từ hàng i cột j của nĩ cĩ giá trị bằng 1 biều diễn dưĩi đối với cặp đỉnh (T|, T|), từ T, đến Tj cĩ một cung (nghĩa là giao djch T| phải đi sau giao dịch T, trong lịch biếu tuần tự tương đương), ngược lại nếu phần tử này cĩ giá trị bằng 0 thì khơng cĩ cung nào đỉnh nào đi từ đỉnh T| đến đỉnh Tj (nghĩa là giao dịch Tj

khơng nhất thiết phải đi sau giao dịch Tj trong một lịch biểu tuần tự tương đưong).

Vi dụ: Xét đồ thị G = <T, u> Ma trận kề của nĩ là: M3x3 _ n T2 0 1 0 0 1 1 T3 1 0 1 T h u ật to á n tạ o m a trậ n k ề ch o đ ồ th ì tu ầh tự hỏa

Tùy theo mỏ hình khĩa được sử dụng mà tạo ra ma trận kề tương ứng.

+ M a trận kề cho m ơ hình hĩa cơ băn:

Các bước thực hiện:

1. Đầu tiên gán các giá trị 0 cho các phần tử của ma trận.

2. Lần lưọt kiểm tra từng thao tác trong lịch biểu, mỗi thao tác là một bộ 3 ’cĩ dạng:

<Tị, Oj, Ai> Hay <T„ Operation, ítem > trong đĩ: Tj - là định danh của giao dịch.

Operation - là các thao tác dữ liệu, cĩ thề là l o c k '- khĩa đọc hoặc ‘unlock'- mở khĩa. Item - là mục dữ liệu, già sử A.

3. Neu thao tác là 'lo ck' thì khơng làm gì kiềm tra thao tác tiếp theo.

4. Nếu thao tác là 'unlock' thi: tìm thao tác tiếp theo cĩ dạng Tj lock A, nếu cĩ thao tác như vậy thì gán giá trị I vào phần tử tương ứng của ma trận kề nằm trên hàng i cột j, kiểm tra thao tác tiếp theo.

5. Lặp lại việc kiem tra cho đến khi khơng cịn thao tác nào tronu lịch biều.

Thuật tốn 5,1: Ma trận kề cho mơ hình khỏa CO' băn

D e c e la re ty p e

Operation^ recod {bản ghi một thao tác trong lịch biếu Ị Tìd: Byte {Sitelci định danh một giao dịch ỉ

Op, {thao tác: khĩa I mớ khỏa ^Li') Item : char {Mục dữ liệu cần thao tác) End

Declare var

A ; array[byte,byte] o f 0... 1

NumberOfOpe : byte {So các thao tác trong lịch biểu} S : array[byte] o f Operation {Mảng chứa các lịch biểu} Begin

For \: ~] to NumberOfOpe do

Forj:^^l to NumberOfOpe do A [ij]-^0

For i:^ 1 to NumberOfOpe do ifS[i].op=’u' then begin

j H + I

while(j<= NumberOfOpe) do begin

if (S[i].op=’ 1 ’) and (Sfij.ltem) then Begin

A [ i J ] r - l

Thốt khỏi vịng lặp while End.

end end.

+ Ma Irận kề cho mơ hình khĩa đọc và khĩa ghi

1. Đầu tiên gán giá trị 0 cho các phần từ của ma trận

2. Lần iưọt kiếm tra từng thao tác trong lịch biểu, mỗi thao tác là một bộ ba cĩ dạng; <T„ o,. A,> Hay <T,. Operation, ỉtem >

trong đĩ: T, - là định danh của giao dịch.

Operation - là các thao tác dCr liệu, cĩ thé là 'rlock'- khĩa đọc hoặc 'w lo ck'- mở khĩa. Item - là mục dữ liỘLK giá sứ A.

3. Neu thao tác là 'rlock' hoặc 'w lock' thì khơng làm gì. kiểm tra thao tác tiếp theo. 4. Nếu thao tác là 'unlock' thì: tim thao tác tiếp theo cĩ dạng Tj wlock A, nếu cĩ thao

tác như vậy thì gán giá trị ] vào phần tử tương ứng của ma trận kề nằm trên hàng i cộtj.

5. Lặp lại việc kiểm tra cho đến khi khơng cịn thao tác nào trên lịch biểu.

Thuật íoản 5.2: M a trận kề cho mơ hình khỏa đọc và khỏa ghi

Decelare type

Operation recod (bản ghi một thao tác trong lịch biẻu} Tid: Byte {Siteld định danh một giao dịch}

Op. {thao tác; khỏa ' I \ mỡ khĩa 'Li'} Item ; char {Mục dữ liệu cần thao tác ỉ End

Declare var

A : arravfbyte,byte] o f 0... 1

NumberOfOpe : byte {SỐ các thao tác trong lịch biếul

Một phần của tài liệu Giáo trình hệ cơ sở dữ liệu phân tán và suy diễn phần 2 nguyễn văn huân, phạm việt bình (Trang 51 - 54)

Tải bản đầy đủ (PDF)

(80 trang)