2009-07-29 69 views
50

Bất cứ ai có thể vui lòng cho tôi biết sự khác biệt giữa phân mảnh nội bộ và bên ngoài trong khi phân bổ không gian đĩa cho các tệp?Phân mảnh bên trong và bên ngoài

+1

@binary worrier: Tôi xin lỗi .. Tôi mới dùng stackoveerflow..nhưng tôi nhận được câu trả lời cho câu hỏi của mình cho dù chúng có liên quan đến lập trình hay không. – wantobegeek

+17

Hoàn toàn có liên quan đến chương trình - mọi khóa học trên hệ điều hành sẽ bao gồm trong hệ thống tệp. –

Trả lời

-13

Có lẽ từ this site:

Internal Fragmentation Internal phân mảnh xảy ra khi bộ nhớ cấp phát lá thêm không gian bên trong trống rỗng của một khối bộ nhớ mà đã được phân bổ cho một khách hàng. Điều này thường xảy ra do thiết kế của bộ xử lý quy định bộ nhớ phải được cắt thành các khối các kích thước nhất định - ví dụ: các khối có thể được yêu cầu đồng đều là chia cho bốn, tám hoặc 16 byte. Khi điều này xảy ra, một khách hàng mà cần 57 byte bộ nhớ, ví dụ, có thể được cấp phát một khối mà chứa 60 byte hoặc thậm chí 64. Các byte thừa mà khách hàng không cần phải lãng phí và theo thời gian những phần nhỏ của bộ nhớ không sử dụng có thể xây dựng và tạo ra một số lượng lớn bộ nhớ mà không thể được đặt để sử dụng bởi người cấp phát. Bởi vì tất cả các byte vô ích này nằm trong các khối bộ nhớ lớn hơn, các phân mảnh được xem là nội bộ.

Phân mảnh bên ngoài Phân mảnh bên ngoài xảy ra khi phân bổ bộ nhớ để lại các phần của khối bộ nhớ không sử dụng giữa các phần của bộ nhớ được cấp phát. Ví dụ, nếu một số khối bộ nhớ được phân bổ trong một đường liên tục nhưng một trong các khối giữa trong dòng được giải phóng (có lẽ vì quá trình đang sử dụng khối đó bộ nhớ ngừng chạy), khối tự do bị phân mảnh. Khối này là vẫn có sẵn để sử dụng bởi người cấp phát sau nếu có nhu cầu cho bộ nhớ phù hợp với khối đó, nhưng khối hiện không sử dụng được cho các yêu cầu bộ nhớ lớn hơn đối với . Nó không thể được gộp lại với tổng số bộ nhớ miễn phí có sẵn cho hệ thống, vì tổng bộ nhớ phải tiếp giáp với để có thể sử dụng được cho các tác vụ lớn hơn. Bằng cách này, toàn bộ các bộ phận của bộ nhớ miễn phí có thể bị tách ra khỏi toàn bộ thường quá nhỏ để sử dụng đáng kể, giúp giảm thiểu bộ nhớ miễn phí theo thời gian có thể dẫn đến thiếu bộ nhớ khả dụng cho khóa nhiệm vụ.

+11

Rất tiếc, bạn dường như đã sao chép văn bản này từ một trang web khác, có thể là [trang này] (http://everydaylife.globalpost.com/internal-external-memory-fragmentation-28851.html). Nếu bạn làm điều đó, tối thiểu, bạn được yêu cầu thêm một liên kết quay lại trang web, cho biết nơi bạn đã sao chép nó từ đó. Tôi đã làm điều đó cho bạn ở đây. Tuy nhiên, đây vẫn là câu trả lời biên giới - trong tương lai, ** vui lòng sử dụng thông tin như thế này làm cơ sở cho câu trả lời bạn tự viết chứ không phải toàn bộ câu trả lời **. –

116

phân mảnh ngoài
Tổng dung lượng bộ nhớ là đủ để đáp ứng một yêu cầu hoặc cư trú một quá trình trong nó, nhưng nó không phải là tiếp giáp nên nó không thể được sử dụng.

External fragmentation

phân mảnh nội khối
Memory giao cho quá trình lớn. Một phần bộ nhớ còn lại không được sử dụng vì nó không thể được sử dụng bởi một quá trình khác.

Internal fragmentation

9

Trước hết nhiệm kỳ phân mảnh tín hiệu có một thực thể chia thành nhiều phần - mảnh.

  • phân mảnh nội bộ: cuốn sách giấy điển hình là một tập hợp các trang (văn bản chia thành các trang). Khi kết thúc của chương không nằm ở cuối trang và chương mới bắt đầu từ trang mới, có khoảng cách giữa các chương đó và đó là sự lãng phí không gian - một đoạn (trang cho sách) có không gian chưa sử dụng bên trong () nội) - "không gian trắng"

  • phân mảnh bên ngoài: Giả sử bạn có một cuốn nhật ký giấy và bạn đã không viết trang suy nghĩ liên tục của bạn sau khi trang, nhưng, thay vì một cách ngẫu nhiên. Bạn có thể kết thúc với một tình huống khi bạn muốn viết 3 trang liên tiếp, nhưng bạn không thể vì không có 3 trang sạch một, bạn có thể có 15 trang sạch trong cuốn nhật ký, nhưng chúng không tiếp giáp với nhau

Các vấn đề liên quan