c) Giải pháp trao đổi thông điệp
3.4.2 Hệ thống đa chương với phân vùng cố định
Một trong những phương pháp đơn giản nhất để cấp phát bộ nhớ là chia bộ nhớ thành những phân vùng với các biên vùng cố định có kích thước khác nhau hay bằng nhau. Một tiến trình có thể được nạp vào bất kỳ phân vùng nào nêú kích thước của tiến trình này nhỏ hơn hoặc bằng của kích thước của phân vùng và phân vùng này còn trống. Mỗi phân vùng chỉ có thể chứa một tiến trình. Do đó, cấp độ đa chương được giới hạn bởi số lượng phân vùng. Khi tiến trình kết thúc, phân vùng trở nên sẵn dùng
cho một tiến trình khác. Có hai tiếp cận để tổ chức hàng đợi, khi có một tiến trình yêu cầu bộ nhớ:
• Sử dụng nhiều hàng đợi: mỗi phân vùng sẽ có một hàng đợi tương ứng. Khi một tiến trình mới được tạo lập sẽ được đưa vào hàng đợi của phân vùng có kích thước nhỏ nhất đủ lớn để chứa tiến trình. Cách tiếp cận này sẽ đơn giản trong việc đưa một tiến trình từ hàng đợi vào phân vùng vì không có sự lựa chọn khác ở đây, khi phân vùng mà tiến trình đợi trống
Cách tổ chức này có khuyết điểm trong trường hợp các hàng đợi của một số phân vùng lớn thì trống trong khi các hàng đợi của các phân vùng nhỏ lại đầy, buộc các tiến trình trong những hàng đợi này phải chờ được cấp phát bộ nhớ, do vậy sử dụng không hiệu quả bộ nhớ.
• Sử dụng một hàng đợi: Hệ thống dùng một hàng đợi chung cho tất cả các phân vùng, do tất cả các tiến trình muốn được nạp vào phân vùng sẽ được đưa vào hàng đợi chung này. Sau đó nếu có một phân vùng trống thì hệ thống sẽ xem xét để đưa một tiến trình có kích thước vừa đủ vào phân vùng trống đó. Cách tiếp cận này linh động hơn so với việc sử dụng nhiều hàng đợi ở trên, nhưng việc chọn một tiến trình trong hàng đợi vào phân vùng là một việc làm khá phức tạp vì nó phải dựa vào nhiều yếu tố khác nhau như: độ ưu tiên của tiến tình, trạng thái của tiến trình, các mối quan hệ của tiến trình,…
Xuất hiện hiện tượng phân mảnh nội vi (internal fragmentation): do kích thước tiến trình được nạp nhỏ hơn kích thước của phân vùng chứa tiến trình, phần bộ nhớ không được sử dụng đến trong phân vùng này gọi là phân mảnh nội vi.
Nhận xét:
-Mức độ đa chương của hệ thống bị giới hạn bởi số lượng phân vùng. - Sử dụng bộ nhớ không hiệu quả:
Tổng bộ nhớ nhỏ tự do, rời rạc còn lớn nhưng không thể sử dụng để nạp tiến trình khác.
Tiến trình có kích thước lớn hơn phân vùng lớn nhất sẽ không bao giờ được thực hiện.
- Ưu điểm: đơn giản, dễ tổ chức bảo vệ, giảm thời gian tìm kiếm.
Cách tổ chức phân vùng cố định ít được sử dụng trong các hệ điều hành hiện nay.