Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa phân mảnh bên trong và bên ngoài

Bất cứ khi nào một quá trình được tải hoặc xóa khỏi khối bộ nhớ vật lý, nó sẽ tạo ra một lỗ nhỏ trong không gian bộ nhớ được gọi là đoạn. Do sự phân mảnh, hệ thống thất bại trong việc phân bổ không gian bộ nhớ liền kề cho một quá trình mặc dù nó có lượng bộ nhớ được yêu cầu nhưng, theo cách không liền kề. Sự phân mảnh được phân loại thành hai loại Phân mảnh bên trong và bên ngoài.

Cả phân loại bên trong và bên ngoài đều ảnh hưởng đến tốc độ truy cập dữ liệu của hệ thống. Chúng có một sự khác biệt cơ bản giữa chúng tức là phân mảnh bên trong xảy ra khi các khối bộ nhớ có kích thước cố định được phân bổ cho quy trình mà không liên quan đến kích thước của quy trình và phân mảnh bên ngoài xảy ra khi các quy trình được cấp phát bộ nhớ một cách linh hoạt. Chúng ta hãy tiến xa hơn và thảo luận về sự khác biệt, lý do, giải pháp đằng sau sự phân mảnh bên trong và bên ngoài với sự trợ giúp của biểu đồ so sánh được hiển thị dưới đây.

Biểu đồ so sánh

Cơ sở để so sánhPhân mảnh nội bộPhân mảnh bên ngoài
Căn bảnNó xảy ra khi các khối bộ nhớ có kích thước cố định được phân bổ cho các quy trình.Nó xảy ra khi không gian bộ nhớ kích thước thay đổi được phân bổ cho các quy trình một cách linh hoạt.
Xảy raKhi bộ nhớ được gán cho quy trình lớn hơn một chút so với bộ nhớ mà quy trình yêu cầu, việc này sẽ tạo không gian trống trong khối được phân bổ gây ra sự phân mảnh bên trong.Khi quá trình được loại bỏ khỏi bộ nhớ, nó tạo ra không gian trống trong bộ nhớ gây ra sự phân mảnh bên ngoài.
Dung dịchBộ nhớ phải được phân vùng thành các khối có kích thước thay đổi và gán khối phù hợp nhất cho quy trình.Nén, phân trang và phân đoạn.

Định nghĩa phân mảnh nội bộ

Sự phân mảnh bên trong xảy ra khi bộ nhớ được chia thành các khối có kích thước cố định . Bất cứ khi nào một yêu cầu quá trình cho bộ nhớ, khối có kích thước cố định được phân bổ cho quy trình. Trong trường hợp bộ nhớ được gán cho quá trình có phần lớn hơn bộ nhớ được yêu cầu, thì sự khác biệt giữa bộ nhớ được gán và bộ nhớ được yêu cầu là phân mảnh Nội bộ .

Không gian còn lại bên trong khối có kích thước cố định này không thể được phân bổ cho bất kỳ quy trình nào vì nó sẽ không đủ để đáp ứng yêu cầu của bộ nhớ theo quy trình. Hãy để chúng tôi hiểu phân mảnh nội bộ với sự giúp đỡ của một ví dụ. Không gian bộ nhớ được phân vùng thành các khối có kích thước cố định là 18.464 byte. Giả sử một yêu cầu quy trình cho 18.460 byte và khối có kích thước cố định 18.464 byte được phân bổ cho quy trình. Kết quả là 4 byte của 18.464 byte vẫn trống, đó là sự phân mảnh bên trong.

Chi phí theo dõi lỗ bên trong được tạo ra do sự phân mảnh bên trong đáng kể hơn số lượng lỗ bên trong. Vấn đề phân mảnh nội bộ có thể được giải quyết bằng cách phân vùng bộ nhớ thành khối có kích thước thay đổi và gán khối có kích thước tốt nhất cho quy trình yêu cầu bộ nhớ. Tuy nhiên, nó sẽ không hoàn toàn loại bỏ vấn đề phân mảnh nội bộ nhưng sẽ giảm nó đến một mức độ nào đó.

Định nghĩa phân mảnh bên ngoài

Sự phân mảnh bên ngoài xảy ra khi có đủ dung lượng trong bộ nhớ để đáp ứng yêu cầu bộ nhớ của một quá trình. Nhưng yêu cầu bộ nhớ của quá trình không thể được thỏa mãn vì bộ nhớ khả dụng là không liên tục. Hoặc bạn áp dụng chiến lược phân bổ bộ nhớ phù hợp đầu tiên hoặc phù hợp nhất, nó sẽ gây ra sự phân mảnh bên ngoài.

Khi một quá trình được tải và xóa khỏi bộ nhớ, không gian trống sẽ tạo ra lỗ hổng trong không gian bộ nhớ và có nhiều lỗ như vậy trong không gian bộ nhớ, đây được gọi là phân mảnh bên ngoài. Mặc dù sự phù hợp đầu tiên và phù hợp nhất có thể ảnh hưởng đến lượng phân mảnh bên ngoài, nhưng nó không thể được loại bỏ hoàn toàn. Nén chặt có thể là giải pháp cho sự phân mảnh bên ngoài.

Thuật toán nén xáo trộn tất cả các nội dung bộ nhớ sang một bên và giải phóng một khối lớn bộ nhớ. Nhưng thuật toán nén là đắt tiền. Có một giải pháp thay thế để giải quyết vấn đề phân mảnh bên ngoài sẽ cho phép một quá trình có được bộ nhớ vật lý theo cách không tiếp giáp. Các kỹ thuật để đạt được giải pháp này là phân trang và phân đoạn.

Sự khác biệt chính giữa phân mảnh bên trong và bên ngoài

  1. Lý do cơ bản đằng sau sự xuất hiện của phân mảnh bên trong và bên ngoài là sự phân mảnh bên trong xảy ra khi bộ nhớ được phân chia thành các khối có kích thước cố định trong khi phân mảnh bên ngoài xảy ra khi bộ nhớ được phân chia thành các khối có kích thước thay đổi .
  2. Khi khối bộ nhớ được phân bổ cho quá trình xuất hiện lớn hơn một chút so với bộ nhớ được yêu cầu, thì không gian trống còn lại trong khối bộ nhớ được phân bổ sẽ gây ra sự phân mảnh bên trong. Mặt khác, khi quá trình được loại bỏ khỏi bộ nhớ, nó tạo ra không gian trống gây ra một lỗ hổng trong bộ nhớ được gọi là phân mảnh bên ngoài.
  3. Vấn đề phân mảnh nội bộ có thể được giải quyết bằng cách phân vùng bộ nhớ thành các khối có kích thước thay đổi và gán khối phù hợp nhất cho quy trình yêu cầu. Tuy nhiên, giải pháp cho phân mảnh bên ngoài là nén, nhưng rất tốn kém khi thực hiện, do đó các quy trình phải được phép có được bộ nhớ vật lý theo cách không liền kề, để đạt được điều này, kỹ thuật phân trang và phân đoạn được đưa ra.

Phần kết luận:

Vấn đề phân mảnh nội bộ có thể được giảm bớt, nhưng nó không thể được loại bỏ hoàn toàn. Việc phân trang và phân đoạn giúp sử dụng không gian được giải phóng do sự phân mảnh bên ngoài bằng cách cho phép một quá trình chiếm bộ nhớ theo cách không tiếp giáp.

Top