Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

메모리 단편화(Memory Fragmentation)에 대해 설명해주세요 #7

Open
mywnajsldkf opened this issue Aug 11, 2022 · 0 comments
Labels
CS 공부 비서 매일 오는 질문들 정리

Comments

@mywnajsldkf
Copy link
Owner

mywnajsldkf commented Aug 11, 2022

메모리 단편화

메모리 단편화는 프로그램이 디스크에서 메모리로 올라오고 내려가면서 메모리가 조각으로 나뉘어져 빈 공간이 발생하는 것을 말한다. 이 공간은 사용 불가능한 상태이다. 이때 메모리를 가변적으로 분할하여 프로그램에게 자리를 할당하는지, 고정적으로 분할하여 프로그램에게 자리를 할당하는지에 따라 내부 단변화가 일어나고 하고 외부 단편하가 일어나고 한다.

내부 단편화

내부 단편화는 고정 분할 방식에서 나타난다. 고정 분할 방식은 메모리를 일정한 크기로 나누고(ex. 100MB를 20MB*5로 나누고) 프로그램에게 메모리를 할당한다. 만약 30MB 프로그램을 메모리에 올린다면, 프로그램의 크기와 상관없이 자동으로 10MB의 내부 단편화가 발생한다. 이처럼 프로세스가 필요한 양보다 더 큰 메모리가 할당되어서 메모리에에서 사용하는 공간이 낭비되는 상황이다.

외부 단편화

외부 단편화는 가변 분할 방식에서 나타난다. 가변 분할 방식은 메모리에 올라올 프로그램의 크기에 따라 메모리를 나누는 것이다. 예를 들어 프로세스가 연속으로 배치된 상태에서 가운데 프로세스가 작업을 마치고 메모리에서 내려가면 가운데 빈 공간이 생기는데 이것을 외부 단편화라고 한다. 이때 컴퓨터가 빈 공간을 합치는 작업을 조각 모음이라고 한다.

메모리 단편화 해결 방법

  1. 페이징(Paging) 기법
  2. 세그멘테이션(Segmentation) 기법
  3. 메모리 풀(Memory Pool)
@mywnajsldkf mywnajsldkf changed the title 2022-08-11 메모리 단편화(Memory Fragmentation)에 대해 설명해주세요 메모리 단편화(Memory Fragmentation)에 대해 설명해주세요 Aug 12, 2022
@mywnajsldkf mywnajsldkf added the CS 공부 비서 매일 오는 질문들 정리 label Aug 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CS 공부 비서 매일 오는 질문들 정리
Projects
None yet
Development

No branches or pull requests

1 participant