Rate this post

Chúng ta phải biết rằng phân vùng động bị phân mảnh bên ngoài. Tuy nhiên, điều này có thể gây ra một số vấn đề nghiêm trọng.

Để tránh bị compaction, chúng ta cần thay đổi quy tắc nói rằng tiến trình không thể được lưu trữ ở những nơi khác nhau trong bộ nhớ.

Các bài viết liên quan:

Chúng ta cũng có thể sử dụng compaction để giảm thiểu xác suất phân mảnh bên ngoài. Trong compaction, tất cả các phân vùng miễn phí được tạo liền kề và tất cả các phân vùng đã tải được tập hợp lại với nhau.

Bằng cách áp dụng kỹ thuật này, chúng ta có thể lưu trữ các tiến trình lớn hơn trong bộ nhớ. Các phân vùng miễn phí được hợp nhất và bây giờ có thể được phân bổ theo nhu cầu của các quy trình mới. Kỹ thuật này còn được gọi là chống phân mảnh.

Như thể hiện trong hình trên, tiến trình P5, không thể được tải vào bộ nhớ do thiếu không gian liền kề, có thể được tải ngay trong bộ nhớ vì các phân vùng trống được tạo liền kề.

Sự cố với compaction

Hiệu quả của hệ thống bị giảm trong trường hợp compaction chặt do thực tế là tất cả các không gian trống sẽ được chuyển từ nhiều nơi đến một nơi duy nhất.

Lượng thời gian khổng lồ được đầu tư cho quy trình này và CPU sẽ không hoạt động trong suốt thời gian này. Mặc dù thực tế là compaction tránh được sự phân mảnh bên ngoài, nhưng nó làm cho hệ thống hoạt động kém hiệu quả.

Chúng ta hãy xem xét rằng hệ điều hành cần 6 NS để sao chép 1 byte từ nơi này sang nơi khác.

  1. 1 B chuyển giao cần 6 NS   
  2. Chuyển 256 MB cần 256 X 2 ^ 20 X 6 X 10 ^ -9 giây  

do đó, nó được chứng minh ở một mức độ nào đó rằng việc truyền bộ nhớ kích thước lớn hơn cần một khoảng thời gian lớn tính bằng giây.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now