- Đọc/Ghi ngày, tháng, năm
HỆ ĐIỀU HÀNH NHIỀU BỘ VI XỬ LÝ
6.4.2. Điều phối theo phương pháp chia sẻ khơng gian (Space Sharing)
Một cách tiếp cận phổ biến khác cho vấn đềđiều phối trên hệ thống đa xử lý khi các tiến trình cĩ liên quan với nhau theo một cách nào đĩ là space sharing. Chẳng hạn chương trình make trong ví dụ trên cũng là một trường hợp. Hoặc như, một cơng việc gồm nhiều tiến trình liên quan với nhau,
hoặc một tiến trình gồm nhiều tiểu trình làm những việc tương tự nhau. Việc điều phối cho nhiều tiểu trình ở cùng thời điểm cho nhiều CPU gọi là space sharing.
Thuật tĩan space sharingđơn giản nhất làm việc như sau. Giả sử tất cả các tiểu trình thuộc cùng một nhĩm được tạo tại cùng một thời điểm. Vào lúc chúng được tạo, bộđiều phối kiểm tra xem cĩ nhiều CPU rỗi cho các tiểu trình này khơng! Nếu cĩ, mỗi tiểu trình được cấp cho một CPU tương ứng và tất cảđều bắt đầu. Nếu khơng đủ CPU, khơng cĩ tiểu trình nào được thực hiện và chúng phải đợi cho đến khi cĩ đủ CPU cho mọi tiểu trình. Mỗi tiểu trình sẽ nằm giữ CPU của nĩ cho đến khi kết thúc. Nếu một tiểu trình bị khĩa do chờ thao tác nhập/xuất, nĩ vẫn tiếp tục giữ CPU cho đến khi tiểu trình quay trở lại. Khi cĩ một nhĩm các tiểu trình khác xuất hiện, thuật tĩan được lặp lại. Tập các CPU được chia cốđịnh thành các nhĩm (partition), mỗi nhĩm thực thi các tiểu trình của cùng một tiến trình. Trong hình 7-12, cĩ các nhĩm gồm 4, 6, 8, 12 CPU và 2 CPU chưa được gán. Sau một thời gian thực thi, kích thước của mỗi nhĩm sẽ thay đổi do một vài tiến trình kết thúc và các tiến trình khác phát sinh.
Hình 6.11. Một tập gồm 32 CPU được chia thành 4 nhĩm và 2 CPU chưa được chia
Theo định kỳ, các quyết định điều phối phải được tạo ra. Trong các hệ thống cĩ một bộ xử lý,
shortest-job-first là thuật tĩan được sử dụng nhiều nhất đểđiều phối cho nhĩm. Thuật tĩan tương tự trong hệ thống đa xử lý là chọn ra tiến trình đang cần số lượng nhỏ nhất các chu kỳ CPU. Tuy nhiên, trong thực tế, thơng tin này ít khi cĩ sẵn. Vì vậy giải thuật này rất khĩ để thực hiện. Thực vậy, giải thuật first-come first-served rất khĩ được thay thế. Một cách tiếp cận khác hỗ trợ tốt cho cơ chế xử lý song song là dùng một server chính để theo dõi dấu vết của các tiến trình đang chạy, muốn chạy và những yêu cầu về CPU của chúng. Định kỳ, mỗi CPU thăm dị server chính để hỏi xem cĩ bao nhiêu CPU mà nĩ cĩ thể dùng được. Sau đĩ, nĩ sẽđiều chỉnh số lượng tiến trình hoặc tiều trình để phù hợp với số lượng cho phép. Ví dụ, một Web Server cĩ 1, 2, 5, 10, 20 hoặc một số lượng nào đĩ các tiểu trình đang chạy song song. Nếu hiện thời nĩ cĩ 10 tiểu trình đang chạy, và bất ngờ nĩ cần nhiều CPU hơn nữa, nĩ sẽ yêu cầu giảm xuống cịn 5 tiểu trình (bỏđi 5 tiểu trình), sau khi 5 tiểu trình này thực hiện xong, nĩ yêu cầu thĩat chứ khơng tiếp tục cơng việc mới. Sơđồ này cho phép kích thước của mỗi nhĩm được thay đổi một cách linh động để phù hợp với cơng việc hiện hành, hiệu quả hơn hệ thống cốđịnh như cách tiếp cận trong hình 7-12.