Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

외부단편화, 내부단편화에 대해 설명하시오 #103

Open
sustainable-git opened this issue Feb 17, 2022 · 4 comments
Open

외부단편화, 내부단편화에 대해 설명하시오 #103

sustainable-git opened this issue Feb 17, 2022 · 4 comments

Comments

@sustainable-git
Copy link
Member

No description provided.

@inuinseoul
Copy link
Collaborator

  • 외부단편화 : 메모리 할당 및 해제의 반복으로 사용이 어려운 작은 메모리단위들이 많이 발생하는 것
  • 내부단편화 : 프로세스에 필요한 양보다 더 큰 메모리가 할당되어 낭비되는 메모리단위들이 발생하는 것

@duyeonnn
Copy link
Collaborator

내부 단편화란 메모리를 할당할 때 프로세스가 필요한 양보다 더 큰 메모리가 할당되어 프로세스에서 사용하는 메모리 공간이 낭비되는 현상을 말합니다.
예를 들어 메모리를 할당하는 최소 블록 크기를 10K라 할때 프로세스가 7K의 공간을 사용하더라도 10K를 할당해야 하고 3K가 낭비하게 됩니다.

외부단편화란 메모리 할당 및 해제 작업의 반복으로 작은 메모리가 중간 중간 생겨 여유 공간이 여러 조각으로 나뉘어서 총 메모리 공간은 충분한데 실제로는 할당할 수 없는 상황을 말합니다.

@tmfrlrkvlek
Copy link
Collaborator

메모리에 20MB가 남아있더라도 작업 크기가 50MB면, 남은 공간이 너무 작아 다른 작업들이 사용하지 못한다. 이 때 작은 빈 공간들을 내부단편화라고 한다.
메모리에는 빈 공간이 각각 50MB, 50MB로 총 100MB가 남아있더라도, 작업의 크기가 70MB인 경우 메모리에 올리지 못한다. 이렇듯 작업 크기보다 많은 공간이 남아있음에도 실제로 그 작업을 메모리에 올리지 못하는 경우를 외부단편화라고 한다. 빈 공간들을 한 공간으로 몰아서 큰 공간으로 만드는 “압축"을 통해 외부단편화 문제를 해결할 수 있다.

@sustainable-git
Copy link
Member Author

  • 단편화는 기억 장치의 빈 공간 또는 자료가 여러 조각으로 나뉘는 현상을 말합니다. RAM이 여러 조각으로 나뉘어져 사용 가능한 Memory가 존재하지만, 할당이 불가능한 상태입니다.
  • 내부 단편화는 Memory를 할당할 때 Process가 필요한 양보다 더 큰 Memory가 할당되어 낭비되는 상태입니다. Paging을 활용할 경우 발생할 수 있습니다.
  • 외부 단편화는 Memory가 할당, 해제되는 과정에서 연속적인 Memory공간이 존재하지 않아 할당할 수 없는 상태를 의미합니다. Segmentation을 활용할 경우 발생할 수 있습니다.

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

4 participants