TRẬT TỰ TỪNG PHẦN VÀ VẤN ĐỀ
TRẬT TỰ TỪNG PHẦN VÀ VẤN ĐỀ
ĐỒNG BỘ HÓA CÁC TIẾN TRÌNH
ĐỒNG BỘ HÓA CÁC TIẾN TRÌNH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
BÁO CÁO TIỂU LUẬN HỆ PHÂN TÁN
BÁO CÁO TIỂU LUẬN HỆ PHÂN TÁN
Đà Nẵng, tháng 07 năm 2009 1
GVHD : TS Lê Văn Sơn
Học viên : Nguyễn Thị Hạnh
Chuyên ngành : Khoa học máy tính
Khóa : 2008 - 2011
Nội dung
Cơ sở lý thuyết
Giới thiệu về hệ tin phân tán
•
Hệ phân tán
•
Các điểm mạnh trong hệ phân tán
•
Xử lý phân tán
•
Các mô hình ứng dụng phân tán
Một số phương pháp đồng bộ hóa
•
Đồng bộ hóa bằng phương pháp kiểm tra luân phiên
•
Đồng bộ hóa bằng giải pháp phần cứng thông qua
chỉ thị TSL
•
Đồng bộ hóa bằng phương pháp trao đổi thông điệp
Nội dung
Cơ sở lý thuyết
Đồng bộ hóa bằng phương pháp trật tự
•
Đồng bộ hóa bằng phương pháp trật tự từng phần
•
Đồng bộ hóa bằng phương pháp trật tự tổng quát
chặc chẽ
Kết luận
Bài tập
Bài toán
Giải thuật
Kết luận
Giới thiệu về hệ tin học phân tán
Định nghĩa
Hệ tin học phân tán hay nói ngắn gọn là hệ phân
tán (Distributed System) là hệ thống xử lý thông tin
bao gồm nhiều bộ xử lý hoặc vi xử lý nằm tại các vị trí
khác nhau và được liên kết với nhau thông qua
phương tiện viễn thông dưới sự điều khiển thống nhất
của một hệ điều hành.
Trật tự từng phần
Trong các hệ thống phân tán, việc đồng bộ hóa
chỉ đặt ra duy nhất vấn đề thiết lập một trật tự giữa các
sự kiện. Giữa các trạm khác nhau, trật tự đó chỉ thể
hiện được thông qua việc trao đổi các thông điệp với
nhau.
Trật tự từng phần
Xác định một trật tự giữa các sự kiện của hệ
phân tán nhờ vào quan hệ được ký hiệu là và gọi là
“có trước”. Quan hệ này tối thiểu phải thỏa mãn được
các ràng buộc thể hiện qua hai cách:
+ Nếu A và B là hai sự kiện của cùng một trạm
và nếu A được thực hiện trước B thì theo trật tự cục
bộ của trạm ta có: A B.
+ Nếu A là phát thông điệp bởi một trạm nào đó
và nếu B là thu của thông điệp này thì ta có A B.
Trật tự từng phần
Trật tự từng phần của các sự kiện
A1A2A3A4A5
B1B2B3B4B5
Trao đổi thông điệp
A2B2 và B3A4
Chuyển qua
A1A2B2B3B4 B5
B1B2B3A4A5
A1A2B2B3A4A5
t
A1
A2
A3
A4
A5
B1
B2
B3
B4
B5
Ví dụ: Mô tả trật tự từng phần
Đồng bộ hóa bằng phương pháp trật tự từng phần
Xét mô hình người sản xuất-người tiêu thụ
Người sản xuất P và người tiêu thụ C là hai
người nằm trên hai trạm cách xa nhau.
NP là số lượng sản xuất ra
NC là số lượng tiêu thụ
C chỉ tiêu thụ được một sản phẩm, nếu
NP – NC > 0
P chỉ sản xuất một thông tin, nếu
NP – NC <N
Đồng bộ hóa bằng phương pháp trật tự từng phần
Hai quan hệ này thể hiện các điều kiện của việc
đồng bộ hóa và có thể mô tả trong hình sau:
P
i+N
P
i+N+1
P
1
C
1
P
2
C
2
P
i
C
i
C
i+1
P
i
: Sản xuất thứ i
C
i
: Tiêu thụ thứ i
Hình 2: Quan hệ có trước trong mô hình
người sản xuất- người tiêu thụ
Đồng bộ hóa bằng phương pháp trật tự từng phần
Vì nguyên nhân xa cách giữa người sản xuất và
người tiêu thụ mà trật tự tổng quát này không cần thiết
và chỉ cần sủ dụng để đồng bộ hóa các bản sao các
biến trạng thái gần đúng là đủ.
Trong hệ thống người sản xuất - người tiêu thụ,
nếu N = 1, thì có sự liên kết chặt chẽ giữa hai tiến
trình cho phép xác định một trật tự chặt chẽ giữa các
sự kiện.
Đồng bộ hóa bằng phương pháp trật tự từng phần
Cơ chế đồng bộ ở đây là dùng các công tơ sự
kiện phù hợp với từng vấn đề đặt ra. Mỗi một công tơ,
biến nguyên không lùi, được kết hợp với một nhóm
đặt biệt các sự kiện.
Trên một công tơ sự kiện nào đó có phối hợp với
nhóm E nào đó, được xác định bởi ba hàm nguyên
thủy:
Đồng bộ hóa bằng phương pháp trật tự từng phần
+ Tang_len(E) : Tăng nội dung công tơ lên 1 đơn
vị, cũng có nghĩa là một sự kiện nhóm E đến.
+ Truy_van(E) : Cung cấp giá trị hiện hành
của công tơ phối hợp với E
+ Cho(E,n) : Treo tiến trình gọi chừng nào giá trị
công tơ còn nhỏ hơn n.
Mỗi công tơ được khởi động ngay khi thành lập
nó.
Đồng bộ hóa bằng phương pháp trật tự từng phần
Với bài toán người sản xuất - người tiêu thụ, cần
định nghĩa:
Hai công tơ sự kiện NP’ và NC’, được khởi động
bằng giá trị 0.
Hai biến nguyên NP và NC, khởi sự là 0, là cục
bộ đối với tiến trình người sản xuất P và người tiêu thụ
C.
Đồng bộ hóa bằng phương pháp trật tự từng phần
Các tiến trình có thể viết như sau:
Người sản xuất Người tiêu thụ
Vòng lặp
cho(NC’, NP-N+1)
{Chuyển khi NP - NC’ < N}
san_xuat
tang(NP’)
NP:=NP+1
Kết thúc vòng lặp
Vòng lặp
cho(NP’, NC+1)
{Chuyển khi NP’ - NC > 0}
tieu_thu
tang(NC’)
NC:=NC+1
Kết thúc vòng lặp
Bài tập
Bài toán đặt ra
Một nhóm tình báo được tổ chức phân cấp theo cấu trúc
hình cây: mỗi thành viên chỉ có thể giao tiếp với cấp trên và các
cấp dưới trực tiếp theo phương thức truyền thông báo. Lãnh
đạo cao nhất của nhóm là L, tương ứng với nút gốc của cây.
Các thành viên không có một cấp dưới nào được gọi là những
lính chiến (tương ứng với các nút lá). Tất cả những thành viên
khác được gọi là những sĩ quan (tương ứng với các nút trong).
Giả sử tổng số thành viên của nhóm tình báo là n > 1.
Bài tập
Giải thuật
Một giải thuật phân tán không đồng bộ khởi đầu từ L cho
phép L biết được số lượng sĩ quan và số lượng lính chiến của
nhóm. Một giải thuật phân tán khởi đầu từ nút gốc có nghĩa là
nút gốc thực hiện đầu tiên, các nút khác chỉ bắt đầu thực hiện
sau khi nhận được thông báo từ đâu đó gửi đến.
Mỗi thành viên i bất kỳ trong nhóm sẽ lưu trữ hai biến thông tin:
officeri = 0 và soldieri = 0 tương ứng với số sĩ quan và số lính
chiến dưới quyền của thành viên thứ i. Các giá trị này đều
được khởi tạo = 0
Bài tập
Bước 0: L sẽ gửi một thông báo REQUEST tới tất cả các
cấp dưới trực tiếp của L.
Bước 1: Một thành viên bất kỳ i khi nhận được thông báo
REQUEST:
Nếu thành viên đó có các cấp dưới trực tiếp:
- officeri = 1
- soldieri = 0
- chuyển tiếp thông báo đó cho các cấp dưới trực tiếp
của nó.
Nếu thành viên đó không có cấp dưới trực tiếp:
- officeri = officeri + 1
- soldieri = 0
- Gửi ngược trở lên cho cấp trên trực tiếp của nó (chính
là thành viên vừa gửi thông báo) một thông báo
RESPONE(0,1) tương ứng officeri=0 và soldieri=1
- Kết thúc
Bài tập
Bước 2: Một thành viên i bất kỳ (bao gồm cả L) khi nhận được
thông báo RESPONE(x,y) từ các thành viên cấp dưới trực tiếp
của nó:
- Tiến hành tính toán:
+ officeri = officeri + x
+ soldieri = soldieri + y
- Chờ cho tới khi nhận được đủ thông báo RESPONE từ
các thành viên cấp dưới trực tiếp của nó
- Sau khi tập hợp đủ các thông báo RESPONE từ các thành
viên cấp dưới trực tiếp, thành viên i sẽ
+ Nếu có cấp trên trực tiếp:
Gửi ngược trở lên cho cấp trên trực tiếp của nó thông báo
RESPONE(officeri, soldieri)
chứa số sĩ quan và lính chiến mà thành viên thứ i đã tổng hợp
được.
+ Kết thúc
Cảm ơn Thầy và các bạn đã lắng nghe