Tải bản đầy đủ (.doc) (13 trang)

Tiểu luận môn hệ phân tán Điều khiển tải

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 (179.93 KB, 13 trang )

Trang
Lời mở đầu
Môn học “Hệ tin học phân tán” là môn học cơ sở nhằm đặt nền móng
và kiến thức cơ bản cho công việc nghiên cứu và phát triển về sau. Nhằm
nghiên cứu sâu hơn về môn học tôi chọn đề tài “Điều khiển tải” để nghiên
cứu và làm tiểu luận cho môn học này.
Điều khiển tải là một trong những vấn đề được quan tâm đặc biệt
trong quá trình nghiên cứu hệ phân tán. Bởi đây là vấn đề có ảnh hưởng
lớn đến hoạt động và năng suất của hệ và cũng chưa có những thuật toán
hay giải pháp tối ưu để thực hiện. Vì thế, nó là mảnh đất màu mỡ cho việc
nghiên cứu. Tuy nhiên, trong phạm vi tiểu luận này tôi chỉ tham vọng được
bổ sung kiến thức để phục vụ cho quá trình nghiên cứu về sau.
Tiểu luận được chia làm 2 phần như sau:
Phần I:Lý thuyết về điều khiển tải
Phần này trình bày các khái niệm cơ bản về tải, điều khiển tải, các thuật
toán sử dụng trong điều khiển tải và một số giải pháp đang được sử dụng
phổ biến hiện nay.
Phần II:Bài tập
Phân tích một mô hình và lập trình mô phỏng để giải quyết những
vấn đề thường gặp trong điều khiển tải.
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
1
Trang
PHẦN I LÝ THUYẾT VỀ ĐIỀU KHIỂN TẢI
1. Định nghĩa về tải
Tải là thuật ngữ chỉ tập hợp các yêu cầu phục tùng các qui tắc của một
bộ cung cấp.
Các tham số đặt trưng của tải là:
- Số lượng các yêu cầu được cung cấp tài nguyên;
- Bản chất của các yêu cầu;
- Phân tán theo thời gian và các yêu cầu tạo ra nó.


2. Giới thiệu về điều khiển tải
Điều khiển tải là duy trì một cách nhịp nhàng các yêu cầu về tài nguyên
của một hệ trong một giới hạn chấp nhận được trên cơ sở số lượng tài
nguyên hiện hành và các thông số hiệu năng cần phải tuân thủ.
Nói một cách ngắn gọn, vai trò của điều khiển tải trong hệ được thể hiện
dưới hai phương diện sau đây:
+ Điều khiển tải tổng quát: điều khiển tải tổng quát chịu trách nhiệm
giữ nhịp cho các hoạt động cung cấp tài nguyên.
+ Điều khiển tải phân tán: Phân tán tải cho các đối tượng có khả
năng cung cấp như là người điều khiển hợp lý việc phân bố tài nguyên.
2.1. Điều khiển tải tổng quát
Về mặt tổ chức, các yêu cầu sử dụng tài nguyên được gửi đến hệ
thông qua sự trung gian của một tiến trình gọi là bộ phân phối tải được
thể hiện như trong hình 1 dưới đây.
Hình 1. Sơ đồ tổ chức điều khiển tải tổng quát
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
Tr
1
Tr
1
Tr
2
Tr
2
Tr
n
Tr
n
S
1

S
1
S
2
S
2
S
n
S
n
T
Bộ điều
khiển tải
2
Trang
Trình tự làm việc như sau: Đầu tiên, yêu cầu tài nguyên được hình
thành bởi một đề nghị phục vụ nào đó cho một Server xác định trong số
các Server có khả năng phục vụ. Bộ điều khiển tải có chức năng cung
cấp thông tin kịp thời và tương đối chính xác về khả năng các Server
chấp nhận hay không chấp nhận các yêu cầu.
Trong khi vận hành hệ, bộ điều khiển tải chỉ biết được giá trị gần đúng
của tải này, đó là nguyên nhân cơ bản của hai vấn đề khó khăn sau
đây:
1. Nếu tải vượt quá mức cho phép, bộ điều khiển tải có thể quyết
định sai là ném các yêu cầu ra ngoài tầm phục vụ. Điều đó có thể
dẫn đến việc sử dụng dưới mức giới hạn cho phép của các tài
nguyên được điều khiển bởi các Server.
2. Nếu tải còn dưới mức cho phép, bộ điều khiển tải chấp nhận một
yêu cầu; nếu các Server không có bộ điều khiển tải riêng của
mình. Điều đó dẫn đến sử dụng quá mức giới hạn của các tài

nguyên.
Cần lưu ý rằng, chức năng của các Server là đảm bảo cho hệ nói
chung mỗi khi tiếp nhận các yêu cầu mới cần phải tính ngay đến việc
các yêu cầu này sẽ cần phải kết thúc một cách bình thường.
2.2. Điều khiển phân tán tải
Chúng ta cần biết rằng, để các Server có thể phục vụ được các yêu
cầu thì việc đầu tiên là các yêu cầu đó phải được dịch qua ngôn ngữ
đang được sử dụng tại Server đó. Ngoài ra, việc phân bố tải được tiến
hành sao cho các Server có khả năng phục vụ phải có tải tương đương
nhau.
Bộ phân phân phối tải hình thành chỉ để sử dụng cho những tài nguyên
phần cứng như bộ vi xử lý, các thiết bị ngoại vi, đường truyền và không
phải cho các tài nguyên đã được giao hẳn cho các trạm như là các tập
tin.
Về chiến lược phân tán tải, người ta chia thành hai loại chiến lược như
sau:
+ Chiến lượt tĩnh: Trong chiến lượt tĩnh việc phân tán các yêu
cầu giữa các Server được xác định theo kiểu cố định.
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
3
Trang
+ Chiến lược thích nghi: Việc phân tán này được xác định như
là chức năng phân tán của hệ.
3. Triển khai quá trình điều khiển
Trong các hệ thống phân tán, việc điều khiển tải được tiến hành ở tầng
giao vận, nơi bao gồm nhiều tài nguyên phần cứng như các đường
truyền thông tin hay các bộ nhớ đệm trong các nút mạng.
Trong các ứng dụng khác, các trạm thông thường được chuyên môn
hóa và do vậy, ta có rất ít cơ hội để thực hiện các công việc này.
Tiếp theo chúng ta sẽ nghiên cứu một số ví dụ triển khai các công nghệ

điều khiển, chủ yếu được rút ra từ các tầng giao vận. Có hai công nghệ
chúng ta cần lưu ý là điều khiển tổng quát và phân phối tải thích nghi.
Để nắm rõ hơn về các phương pháp điều khiển tải dưới đây chúng ta
xét các ví dụ trong các trường hợp điều khiển tải như sau:
3.1. Ví dụ về điều khiển tải tổng quát
Trong ví dụ này chúng ta xét cho trường hợp sử dụng phương pháp
này để mô phỏng cho mạng máy tính quốc gia về thí nghiệm vật lý để
từ đây ta rút ra những kinh nghiệm cần thiết cho việc triển khai bộ phân
phối tải một cách hiệu quả nhất.
Một vấn đề quan trọng nảy sinh mà ta cần quan tâm giải quyết là giới
hạn các gói thông tin lưu thông trong mạng. Khi tăng số lượng các gói
thông tin có nghĩa là tăng tải cho đường truyền dẫn đến lưu lượng
thông tin trên đường truyền giảm mạnh rồi đến mục lúc sẽ dừng hẳn
lại.
Hình 2. Sự quá tải trong mạng giao vận
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
Lưu lượng
(gói/giây)
36 10872
4
Trang
Phương pháp điều khiển này thể hiện việc duy trì số lượng toàn bộ các
gói luận chuyển phải nhỏ hơn hay bằng một giá trị tối ưu T nào đó. Số
lượng này phát huy tác dụng trong toàn mạng và được gọi là “cái cho đi
qua” của chính mạng đó.
Một gói đầy đủ tham gia vào quá trình tuần hoàn cần phải là vật mang
một cái “cho đi qua” về phía đầu bên kia của mạng. Mỗi nút mạng được
coi là một thiết bị đầu cuối và được phép tự động lưu trữ bất kỳ từ các
cái “cho đi qua” có sẵn nhằm có thể tiếp nhận các gói mới. Nó truyền
tiếp các cái “cho đi qua” về các nút khác theo số dôi ra. Nếu một nút

nào đó không có cái “cho đi qua” thì nó không được nhận các gói mới.
Thay đổi các giá trị chu chuyển các cái “cho đi qua” có sẵn, người ta rút
ra được một vài kết luận sau:
1. Nếu đồ thị cũng không phân tán trong mạng, các cái “cho đi
qua” có thể tập trung trong một vùng. Kết quả là lưu lượng vào bị chậm
lại trong phần còn lại của mạng.
2. Thành tích của mạng phụ thuộc rất nhiều vào một số tham số
mà khó có thể xác định giá trị tối ưu. Đó là số lượng toàn bộ các cái
“cho đi qua” trong một mạng, số lượng cực đại các cái “cho đi qua” bởi
một nút, kiểu phân phối lại các cái “cho đi qua” bằng số dôi trong một
nút.
3. Các cái “cho đi qua” khi chu chuyển trong mạng có thể bị mất
hay bị nhân lên, điều đó làm thay đổi số lượng của chúng.
3.2. Ví dụ về điều khiển tải thích nghi
Để tìmhiểu về phương pháp điều khiển tải thích nghi ta khảo sát ba ví
dụ về các trường hợp của mạng ARPANET, cơ chế tiền tố của hệ DCS
và cách vung cấp bộ xử lý trong hệ MCS.
• Mạng ARPANET
Mạng ARPANET là mạng viễn thông sử dụng kiểu mạng chuyển mạch
gói X.25, các phương pháp chọn đường thích nghi trong trường hợp này
xác định con đường cho mỗi gói theo kiểu động dựa vào các tiêu chuẩn
tối ưu như độ trễ hành trình, khoảng cách phải đi qua, sự cố đường
truyền v.v được xét đến.
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
5
Trang
Trong mạng ARPANET các nút đều lưu bảng TD cho mỗi nút D và cho
mỗi đường ra L. Bảng này cho biết thời hạn cần thiết để đến nút D bằng
cách tận dụng đường L như là giai đoạn thứ nhất. Xuất phát từ bảng này,
đối với mỗi nút, ta xây dựng bảng chọn đường TR và véc tơ giới hạn VD.

Bảng này cho ta biết lần lượt các con đường cần đi qua để đến nút đích
trong thời hạn ngắn nhất và giá trị cụ thể của thời hạn này.
Ta ký hiệu {D
j
} là tập hợp các đích của mạng (j=1 m) và {L
j
} là tập hợp
các đường xuất phát từ nút (i=1 n).
Các bảng cần duy trì trong mỗi nút mạng như sau:
TD(j,i) Thời hạn để đến được D
j
xuất phát từ L
i
TR(j) Số hiệu của đường truyền tối ưu được đánh giá để
đến được D
j
(theo VD(j))
Hàm tối
ưu
VD(j)=min TD(j,i) với i=1 n
Hình dưới đây cho phép ta hình dung về bảng chọn đường thích nghi.
Trong ví dụ này, ta sử dụng một nút có 3 đường ra (n=3) và có thể gửi
đến năm nút nhận (m=5).
L1 L2 L3
D
1
0.2 0.1 0.4 L
2
0.1
D

2
0.1 0.3 0.5 L
1
0.1
D
3
0.6 0.4 0.2 L
3
0.2
D
4
0.3 0.5 0.1 L
3
0.1
D
5
0.6 0.4 0.2 L
3
0.2
Hình 3. Bảng chọn đường thích nghi
Các bảng này được cập nhật trong hai trường hợp sau:
1. Cập nhật nội dung hàng đợi đã được phối hợp với đường ra. Mỗi khi
có gói được rút ra (hay cho vào) từ hàng đợi đã được phối hợp với
một đường truyền L, các thời hạn trong bảng, tương ứng với cột
TD(j,L), cần phải được thay đổi để thích ứng với tải mới của đường
truyền.
2. Tiếp nhận một Vecto biểu hiện thời hạn được gửi đến từ nút lân cận.
Bây giờ, ta hãy xem xét cấu hình được thể hiện trong hình bên dưới:
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
6

Trang
Hình 4. Mô hình chọn đường thích nghi
Tại thời điểm cho trước, các nút mạng A,B,C lần lượt có các véc tơ VA,
VB, VC. Véc tơ VA cung cấp các thời hạn đánh giá cho các con đường AB,
AC, …AX. Theo chu kỳ cứ 2/3 giây trong mạng ARPANET mỗi nút đều
tính lại Véc tơ. Đó chính là thời hạn của mình và truyền giá trị đó cho các
bút lân cận để cập nhật các bảng thời hạn của chúng.
Ví dụ:
Khi A nhận được từ B và C các giá trị VB và VC, nó tính toán lại các thời
hạn để cho các đích truy cập thông qua B và C. Đó chính là thời hạn mới
để cho đích X là tối thiểu của AB + BX và AC + CX.
Ta lưu ý rằng các thời hạn được tính toán tương ứng với các tình hình
trước vài giây so với thời điểm hiện hành vì lý do cập nhật. Điều đó có thể
dẫn đến biến động tải trong các nút. Để điều khiển các gói tin, thời hạn của
đường đi ngắn nhất là đường xiên có nghĩa là tại đó ta phải thêm một số
gia.
• Cơ chế tiền tố của hệ DCS
Cơ chế này được sử dụng trong hệ DCS để cung cấp các tài nguyên như
các bộ xử lý chức năng hay các tập tin. Tài nguyên của hệ DCS được
quản lý bởi một Server. Các tài nguyên cùng loại được nhóm lại và quản lý
bởi một nhóm các Server. Nhóm này được định danh bởi một tên tổng quát
như đã trình bày ở trên. Một yêu cầu về tài nguyên được thể hiện bằng
cách gửi thông điệp, nhờ đó mà tất cả các Server liên quan đều có thể
nhận biết, thông thường thông qua tên tổng quát.
Việc cấp phát tài nguyên hoạt động theo hệ tiền tố. Khi hệ nhận được yêu
cầu về sử dụng tài nguyên, một Server sẽ trả lời bằng cách cho “phần trị “
cho việc phục vụ của nó phụ thuộc vào phần tải thiết bị được quản lý. Như
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
B
B

A
A
C
C
X
X
X
X Nút
Đường truyền
trực tiếp
Đường truyền
gián tiếp
7
Trang
thế, tiến trình có yêu cầu nhận được nhiều khả năng từ các Server khác
nhau, nó chọn một trong số đó và báo cho Server được chọn. Server này
sẽ kiểm tra tính hợp thức của “phần trị” vì lý do trong thời gian đó đã giải
quyết cho các trường hợp khác. Nếu phần trị không thay đổi, sự việc trở
thành hợp thức có nghĩa là tài nguyên được dự trữ. Trường hợp ngược lại
ta phải bắt đầu lại từ đầu.
Các nhà thiết kế DCS đã đưa ra nhiều thông số cho cơ chế này. Cụ thể là:
STT Thông số
1 Việc kiểm tả được phân tán: không có trạm đặc quyền. Điều
đó cải thiện đáng kể tính ổn định.
2 Tải của hệ được cân đối: một Server ít tải cho phanà trị thấp
3 Dễ dàng thêm hay bớt tài nguyên
Ngược lại, ta cần ghi nhận rằng số lượng giao dịch có thể trở thành rất lớn
và không loại bỏ khả năng thiếu thốn vô hạn.
• Cung cấp bộ xử lý trong hệ MCS
Trong hệ MCS, các bộ xử lý được chia thành các nhóm gọi là phân tử và

có thể truy cập vào bộ nhớ chung. Việc thực hiện một tiến trình được tiến
hành trên một trong các bộ xử lý thuộc vào một phân tử cho trước. Một
phân tử có thể thực hiện nhiều tiến trình cùng một lúc.
Cơ chế mà ta sẽ giới thiệu liền sau đây nhằm phục vụ cho việc cung cấp
một phân tử để thực hiện một tiến trình trong điều kiện tuân thủ tính cân
bằng tải giữa các phân tử với nhau. Cách đo tải được xác định bởi số
lượng các bộ xử lý có trong một phân tử. Khi tạo ra một tiến trình thì có
một yêu cầu được đăng ký vào trong bộ nhớ chung. Tất cả các phân tử
đều được biết đến khi có một yêu cầu diễn ra. Trong một phân tử, một bộ
xử lý tự do chờ một thời gian thích hợp với số lượng các bộ xử lý bị bận
trong phân tử này trước khi có ý định rút yêu cầu. Việc rút các yêu cầu
được tiến hành theo kiểu loại trừ tương hỗ.
Bộ xử lý nhận yêu cầu là bộ xử lý có thời gian chờ ít nhất. Do vậy, nó
thuộc về phần tử mà tải của phần tử này là ít nhất. Các bộ xử lý khác
thấy rằng yêu cầu đã bị xóa và chỉ cố gắng đáp ứng các yêu cầu mới mà
thôi. Thời gian chờ của một bộ xử lý được chọn rất bé để không làm tăng
thời gian thực hiện của tiến trình.
4. Kết luận
Để chọn lựa phương án triển khai giải quyết vấn đề tải trong hệ phân
tán, người ta quan tâm hàng đầu đến độ tin cậy, ổn định và chi phí thực
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
8
Trang
hiện của chúng. Tuyệt đại bộ phận các giải thuật đã được nghiên cứu
cho vấn đề tải, đến nay vẫn còn là các giải thuật tương đối chính xác có
nghĩa là chưa có giải thuật nào đạt đến độ hoàn hảo như mong muốn.
Như vậy, trong truờng hợp chọn đường theo kiểu thích nghi như mạng
APARNET hay Internet là giải pháp chấp nhận được.
Để cung cấp các bộ xử lý với các tải tương đối đồng đều, người ta đã
đề ra chiến lược phân nhóm theo các phần tử như trong hệ MCS.

Cơ chế tiền tố của hệ DCS là cơ chế được sử dụng trong hệ DCS để
cung cấp các tài nguyên như các bộ xử lý chức năng hay các tập tin.
Tài nguyên của hệ DCS được quản lý bởi một Server. Đó làm một trong
những phương án giải quyết vấn đề phân bố tải trong một mạng cụ thể.
PHẦN 2 BÀI TẬP
1. Đề bài
Giả sử rằng ta có bảng CSDL phối hợp với một hoạt động được gọi từ bên
ngoài nhằm phục vụ cho việc cập nhật hay tra cứu thông tin cần thiết. Hãy
viết chương trình trên ngôn ngữ giả định cho phép cập nhật CSDL được
tiến hành có kiểm tra.
2. Phân tích bài toán:
Để giải quyết vấn đề của bài toán trên ta qui bài toán về trường hợp cụ thể
của một kho hàng phân tán mà bảng cơ sở dữ liệu của chúng ta chính là
bảng kho tại một trạm.
Bảng cơ sở dữ liệu này phối hợp với một bộ đáp ứng truy vấn và bộ truy
vấn từ bên ngoài. Bộ truy vấn từ bên ngoài này có thể sử dụng nhiều trạm
khác nhau trên mạng và chính vì lẽ đó khi thao tác cơ sở dữ liệu chúng ta
cần kiểm tra. Mô hình bố trí có thể khái quát như sau:
Hình 5. Mô phỏng mô hình bài toán
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
CSDLCSDL
PC
PC
PC
PC
Bộ đáp ứng
truy vấn
Bộ truy vấn
9
Trang

Các thao tác cập nhật và tra cứu cơ sở dữ liệu để đơn giản ta qui về bài
toán truy xuất giá trị tồn kho và thao tác nhập kho. Giả sử bảng mô tả kho
có các nội dung sau:
Tên trường Mô tả
MaMH Mã mặt hàng
Soluong Số lượng mặt hàng
3. Chương trình mô phỏng
Theo yêu cầu của bài toán ta chỉ mô phỏng chương trình tại trại đáp ứng
truy vấn tại nơi chứa cơ sở dữ liệu mà thôi.
3.1. Mô phỏng việc tra cứu thông tin
Thủ tục tra cứu nhận một yêu cầu truy vấn là tra cứu thông tin tại trạm
thông qua một câu truy vấn có gắn theo 3 ký tự đầu tiên làm mã trạm.
Khi nhận được câu truy vấn bộ đáp ứng truy vấn sẽ cắt phần đầu của
câu truy vấn để kiểm tra giá trị của trạm. Nếu đúng thì thực hiện câu
truy vấn nếu không sẽ trả về giá trị Null.
Tên thủ tục Tracuu(QueryMessage)
{
// Kiểm tra thông tin
// Cắt lấy đoạn thông tin đầu để xác định trạm cần
truy vấn
Prefix=Cat_chuoi(QueryMessage)
If (Prefix=Mã trạm)
{
Gia_tri_ton_kho=Thuc_hien_cau_lenh(Select)
}
Else //Khong phai tram nay
{
Tracuu=null
Exit
}

//Trả giá trị về cho bộ truy vấn
Tracuu=Gia_tri_ton_kho
}
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
10
Trang
3.2. Mô phỏng việc cập nhật thông tin
Tương tự như thủ tục tra cứu, thủ tục cập nhật thông tin sẽ thực hiện
theo các bước như sau:
Tên thủ tục CapNhat(MaMH, GiatriCN, Add) as
boolean
{
// Kiểm tra thông tin
// Cắt lấy đoạn thông tin đầu để xác định trạm cần
truy vấn
Prefix=Cat_chuoi(QueryMessage)
If (Prefix=Mã trạm)
{
//Nhap kho
If (Add=1) then
Thuc_hien_cau_lenh(Update)
Capnhat=true
Else
//Xuat kho
Ton_Kho=Thuc_hien_cau_lenh(Select)
If (Ton_Kho>=GiaTriCN)
Thuc_hien_cau_lenh(Update)
Capnhat=true
Else
Capnhat=False

}
Else //Khong phai tram nay
{
Capnhat=False
}
}
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
11
Trang
TÀI LIỆU THAM KHẢO

[1] Hệ phân tán – TS. Lê Văn Sơn, Nhà xuất bản Đại học quốc gia TP.
Hồ Chí Minh.
[2] Distributed Systems (Concepts and Design) – George Coulouris,
Jean Dollimore và Tim Kindberg.
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
12
Trang
MỤC LỤC

Lời mở đầu 1
PHẦN I LÝ THUYẾT VỀ ĐIỀU KHIỂN TẢI 2
1. Định nghĩa về tải 2
2. Giới thiệu về điều khiển tải 2
2.1. Điều khiển tải tổng quát 2
2.2. Điều khiển phân tán tải 3
3. Triển khai quá trình điều khiển 4
3.1. Ví dụ về điều khiển tải tổng quát 4
3.2. Ví dụ về điều khiển tải thích nghi 5
4. Kết luận 8

PHẦN 2 BÀI TẬP 9
1. Đề bài 9
2. Phân tích bài toán: 9
3. Chương trình mô phỏng 10
3.1. Mô phỏng việc tra cứu thông tin 10
3.2. Mô phỏng việc cập nhật thông tin 11
Tiểu luận Hệ tin học phân tán - Đề tài Điều khiển tải
13

×