Các giải thuật Round Robin và Bandwidth Proportion

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp mạng ngang hàng cho hệ thống truyền hình theo yêu cầu Luận văn ThS. Công nghệ thông tin 60 48 15 (Trang 59 - 60)

Trên cơ sở phân tích các giải thuật nêu trên, tác giả đã xây dựng giải thuật cho hệ thống với mục tiêu tận dụng băng thông đóng góp của tất cả các peer cung cấp và đạt được thời gian khởi tạo bộ đệm nhỏ nhất, tạm gọi là giải thuật Estimate Time (ET). Giải thuật được thực hiện tại receiver để sinh ra lịch biểu gửi cho các supplier đã được lựa chọn. Ý tưởng chính của giải thuật là gán block cho các supplier theo nguyên tắc supplier nào có ước lượng thời gian nhỏ nhất sẽ được gán cho block hiện tại, lần lượt từ block đầu tiên cho đến block cuối. Giải thuật được thực hiện như sau:

Tương ứng với supplier[i] thì estimatedTime[i] là ước lượng thời gian để hoàn thành việc gửi block kế tiếp. Khởi tạo ban đầu estimatedTime[i] được gán giá trị

blk_size/Bw[i] là thời gian để mỗi supplier hoàn thành việc gửi block đầu tiên. Bước vào vòng lặp, ta duyệt qua tất cả các supplier để tìm ra giá trị estimatedTime[i] nhỏ nhất. Giả sử supplier[k]estimatedTime nhỏ nhất thì block hiện tại block[curr_blk]

được gán cho supplier[k]. Sau đó tăng giá trị của estimatedTime[k] lên thêm

theo của supplier[k]. Còn ước lượng thời gian gửi block kế tiếp của những supplier còn lại đều không thay đổi. Thủ tục này được tiếp tục lặp lại cho các block

block[curr_blk+1], block[curr_blk+2], … cho đến khi kết thúc việc gán block cuối cùng. Dưới đây mã giả của giải thuật:

Giải thuật đề xuất – Estimate Time Input:

num_suppliers : số supplier;

supplier[i] : các peer cung cấp;

Bw[i] : băng thông đóng góp của supplier[i];

num_blks : số block;

block[i] : chỉ số của block;

blk_size : kích thước định trước của block;

Scheduling:

1: for i := 1 to num_suppliers do

2: estimatedTime[i] : = blk_size / Bw[i];

3: for curr_blk := 0 to num_blks-1 do

4: Chọn k sao cho estimatedTime[k] = Min {estimatedTime[i]};

5: Gán block[curr_blk] cho supplier[k];

6: estimatedTime[k] := estimatedTime[k] + blk_size / Bw[k];

7: end for cur_blk

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu giải pháp mạng ngang hàng cho hệ thống truyền hình theo yêu cầu Luận văn ThS. Công nghệ thông tin 60 48 15 (Trang 59 - 60)

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

(86 trang)