Điều phối theo phương pháp chia sẻ thời gian (Time sharing)

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 155)

- Đọc/Ghi ngày, tháng, năm

HỆ ĐIỀU HÀNH NHIỀU BỘ VI XỬ LÝ

6.4.1. Điều phối theo phương pháp chia sẻ thời gian (Time sharing)

Đầu tiên, hãy tìm hiểu việc điều phối trong trường hợp các tiến trình độc lập nhau. Giải thuật điều phối đơn giản nhất để giải quyết các tiến trình (hoặc tiểu trình) độc lập nhau là dùng một cấu trúc dữ liệu cho tồn hệ thống cho các tiến trình sẵn sàng, cĩ thể là một danh sách, nhưng cĩ thể là một tập các danh sách cho các tiến trình với các độ ưu tiên khác nhau như được chỉ ra trong hình 7- 11(a). Ở đây, 16 CPU hiện đang ở trạng thái bận, và một tập được ưu tiên gồm 14 tiến trình đang đợi để chạy. CPU đầu tiên phải kết thúc cơng việc hiện tại của nĩ (hoặc tiến trình của nĩ phải bị khĩa) là CPU 4. Sau đĩ CPU này khĩa các hàng đợi điều phối và chọn tiến trình cĩ độưu tiên cao nhất, A, như chỉ ra trong hình 7-11(b). Tiếp theo, CPU 12 đi vào trạng thái rỗi và chọn tiến trình B, như minh họa trong hình 7-11(c). Miễn là các tiến trình hồn tịan độc lập nhau, thì việc điều phối theo kiểu này là một chọn lựa hợp lý.

Hình 6.10. Sử dụng một cấu trúc dữ liệu duy nhất để thực hiện qúa trình điều phối cho hệ thống đa xử lý.

Ưu thế của cách tiếp cận này là sử dụng chung một cấu trúc dữ liệu để điều phối. Điều này cho phép cân bằng tải, nghĩa là sẽ khơng cĩ trường hợp một CPU nào đĩ rỗi trong khi các CPU khác thì làm việc quá tải. Hai hạn chế trong trong tiếp cận này là sự cạnh tranh cấu trúc dữ liệu điều phối khi số lượng CPU tăng lên và lượng overhead lớn khi thực hiện chuyển đổi ngữ cảnh trong trường hợp một tiến trình bị khĩa đểđợi thao tác nhập xuất.

Một vấn đề khác cũng đĩng một vai trị quan trọng trong điều phối là trong khi hầu hết các CPU cĩ năng lực như nhau, thì một vài CPU lại cĩ năng lực cao hơn. Đặc biệt, khi tiến trình A đã thực thi trong một thời gian dài trên CPU k, cache của CPU k sẽ chứa đầy các block của A. Nếu A tiến hành thực thi trở lại liền, nĩ cĩ thể sẽ thực hiện tốt hơn nếu chạy với CPU k. Cĩ nhiều blockđược nạp trước lên cache sẽ giúp hệ thống đáp ứng nhanh hơn cho từng tiến trình. Nhờ vậy, TLB cĩ thể cũng chứa các trang đúng, giảm thiểu các lọai lỗi TLB.

Một số hệ thống cĩ nhiều bộ xử lý thực hiện điều phối theo cách gọi là affinity scheduling. Ý tưởng chính của cách điều phối này cho phép một tiến trình (chạy trên cùng một CPU mà nĩ đã chạy trước đĩ) sử dụng giải thuật điều phối hai mức. Khi một tiến trình được tạo ra, nĩ được gán cho một CPU. Việc gán các tiến trình cho các CPU được thực hiện ở mức cao. Kết quả là mỗi CPU chiếm giữ một tập các tiến trình của chính nĩ. Việc điều phối thực sự cho các tiến trình diễn ra ở mức thấp. Điều được thực hiện bởi từng CPU riêng lẻ sử dụng các quyền ưu tiên hoặc dựa vào một vài yếu tố khác. Bằng cách giữ một tiến trình trên cùng một CPU, cacheđược tận dụng tối đa. Ngồi ra, nếu một CPU khơng cĩ tiến trình nào để thực thi, nĩ sẽ lấy một tiến trình nào đĩ từ một CPU khác hơn là phải đi vào trạng thái rỗi. Cơ chếđiều phối hai mức này cĩ ba lợi điểm. Đầu tiên, nĩ phân bố tải đều trên các CPU hiện cĩ. Thứ hai, cacheđược tận dụng tối đa. Thứ ba, bằng cách cho phép mỗi CPU cĩ một danh sách các tiến trình sẵn sàng của chính nĩ, việc tranh chấp danh sách sẵn sàng được giảm thiểu.

Một phần của tài liệu Giáo trình tổng quan về DHD (Trang 155)

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

(200 trang)