- Đọ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.