Tải bản đầy đủ (.ppt) (19 trang)

Tiểu luận môn hệ phân tán Trật tự từng phần và vấn đề đồng bộ hóa các tiến trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (646.16 KB, 19 trang )

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
A1A2A3A4A5
B1B2B3B4B5
Trao đổi thông điệp
A2B2 và B3A4
Chuyển qua
A1A2B2B3B4 B5
B1B2B3A4A5
A1A2B2B3A4A5
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

×