Thuật toán Lập lịch dựa trên thuật toán Giải thuật di truyền cải tiến

Một phần của tài liệu Cơ chế quản lý máy chủ ảo trong điện toán đám mây Phạm Anh Dũng. (Trang 59)

Số hóa bởi Trung tâm Học liệu 54 http://www.lrc-tnu.edu.vn/

Phần này sẽ nghiên cứu thuật toán lập lịch GA cải tiến, trong đó các phƣơng pháp lập lịch Min-Min và Max-Min đƣợc sát nhập trong một thuật toán GA tiêu chuẩn. Các kỹ thuật Min-Min, Max-Min và Genetic đƣợc phân tích trong hiệu năng cuối cùng của thuật toán GA tiêu chuẩn và có sự so sánh với GA cải tiến.

b) Thuật toán

Input: tài nguyên host, công suất xử lý của host Output: máy ảo có tải nhẹ nhất

Tạo quần thể với các phƣơng án ngẫu nhiên

Bắt đầu

Ƣớc lƣợng mỗi phƣơng án

Chọn bố mẹ

Phối hợp lai các đôi bố mẹ Đánh giá ứng viên mới Chọn cá thể cho thế hệ tiếp theo Kết thúc Thỏa mãn điều kiện Có không

Số hóa bởi Trung tâm Học liệu 55 http://www.lrc-tnu.edu.vn/

Thuật toán di truyền cải tiến

Tạo quần thể với kết quả ở buớc 2

Bắt đầu

Đánh giá mỗi ứng viên

Chọn bố mẹ

Phối hợp lai các đôi bố mẹ Đánh giá ứng viên mới Chọn cá thể cho thế hệ tiếp theo Kết thúc Thỏa mãn điều kiện Có không Tìm phƣơng thức bởi Min-Min và Max-Min

Số hóa bởi Trung tâm Học liệu 56 http://www.lrc-tnu.edu.vn/

c) Cài đặt

static inline struct server

*get_server_rr_with_conns(struct proxy *px) {

int newidx;

/* Biến này dùng để đặt giá trị mới cho srv_rr_idx sau khi chọn được server */

struct server *srv;

/*Kiểm tra nếu kích thước của srv_map bằng không, nghĩa là không tồn tại server nào đang hoạt động, thuật toán trả về null */

if (px->srv_map_sz == 0)

return NULL;

/*Nếu như giá trị của srv_rr_idx nhỏ hơn 0, hoặc vượt quá kích thước srv_map_sz, nghĩa là đã đi đến cuối server map chúng ta sẽ cập nhập giá trị cho nó bằng 0 */

if(px->srv_rr_idx < 0 || px->srv_rr_idx >= px- >srv_map_sz)

px->srv_rr_idx = 0;

/*Gán giá trị của srv_rr_idx cho newidx */

newidx = px->srv_rr_idx; (adsbygoogle = window.adsbygoogle || []).push({});

/*Thực hiện vòng lặp cho đến khi lấy được server phù hợp lẽ ra ở đây vì newidx = pr->srv_rr_idx, chúng ta sẽ lấy được luôn server thỏa mãn, tuy nhiên cần phải loại trừ trường hợp server đó đã đầy, hoặc số kết nối hiện tại lớn hơn số kết nối cho phép */

do { srv = px->srv_map[newidx++]; if (!srv->maxconn || srv->cur_sess < srv_dynamic_maxconn(srv)) { px->srv_rr_idx = newidx; return srv; } if (newidx == px->srv_map_sz) newidx = 0;

} while (newidx != px->srv_rr_idx);

return NULL; }

Số hóa bởi Trung tâm Học liệu 57 http://www.lrc-tnu.edu.vn/

CHƢƠNG 3

Một phần của tài liệu Cơ chế quản lý máy chủ ảo trong điện toán đám mây Phạm Anh Dũng. (Trang 59)