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ó.. Giới thiệu về điều khi
Trang 1Lờ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
Trang 2PHẦ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
Tr1
Tr1
Tr2
Tr2
Trn
Trn
S1
S1
S2
S2
Sn
Sn
T
Bộ điều khiển tải
Trang 3Trì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
Trang 4+ 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
Lưu lượng (gói/giây)
Trang 5Phươ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 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
Trang 6Trong 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 {Dj} là tập hợp các đích của mạng (j=1 m) và {Lj} 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 Dj xuất phát từ Li
TR(j) Số hiệu của đường truyền tối ưu được đánh giá để
đến được Dj (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
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:
Trang 7Hì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ư
B
A
C
X
Đường truyền trực tiếp
Đường truyền gián tiếp
Trang 8thế, 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à:
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
Trang 9cho 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ể
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
CSDL CSDL
PC
PC
Bộ đáp ứng truy vấn
Bộ truy vấn
Trang 10Cá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:
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
{
// 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
}