단편화
단편화
단편화
[외부 단편화(external fragmentation)]
- 프로그램의 크기보다 분할의 크기가 작은 경우, 해당 분할이 비어있음에도 불구하고 프로그램을 적재하지 못하기 때문에 발생하는 메모리 공간을 말한다.
- 어떤 프로그램에도 배당되지 않은 빈 공간임에도 현재 상태에서 사용될 수 없는 작은 분할이다.
[내부 단편화(internal fragmentation)]
- 프로그램의 크기보다 분할의 크기가 큰 경우, 해당 분할에 프로그램을 적재하고 남는 메모리 공간을 말한다.
- 즉, 하나의 분할 내부에서 발생하는 사용되지 않는 메모리 조각이다.
- ex) 메모리 자유 분할 공간이 10,000B가 있고 프로세스 A가 9,999B를 사용하게 되면 2B가 남게 된다. 이러한 현상을 내부 단편화라 한다.
[압축(Compaction)]
- 외부 단편화를 해소하기 위해 프로세스가 사용하는 공간들을 한쪽으로 몰아, 자유 공간을 확보하는 방법론이다.
- 단점 : 작업 효율이 좋지 않다.
[Swapping]
- 메모리에 올라온 프로세스의 주소 공간 전체를 디스크의 스왑 영역으로 일시적으로 내려놓는 것이다. 메모리 공간을 확보하면 이후에 다른 프로세스의 메모리를 불러 들일 수 있다.
- 주의할 점은 프로세스가 종료되어 주소 공간을 디스크로 내쫓는 것이 아니라 특정한 이유로 수행중인 프로세스의 주소공간을 일시적으로 메모리에서 디스크로 내려놓은 것을 의미한다.
- 스왑인 : 디스크 -> 메모리
- 스왑 아웃 : 메모리 -> 디스크
[연속 할당 방식]
- 각각의 프로세스를 물리적 메모리의 연속적인 공간에 올리는 방식
- 고정 분할 방식
- 물리적 메모리를 주어진 개수만큼의 영구적인 분할로 미리 나누고 각 분할에 하나의 프로세스를 적재하여 실행시키는 방식
- 단편화 문제 발생
- 가변 분할 방식
- 메모리에 적재되는 프로그램의 크기에 따라 분할의 크기, 개수가 동적으로 변하는 방식
- 외부 단편화 발생
- 고정 분할 방식
[불연속 할당 방식]
- 하나의 프로세스를 물리적 메모리의 여러 영역에 분산하여 적재하는 방식
- 페이징
- 프로세스를 동일한 크기의 페이지로 나눈다.
- 내부 단편화 문제
- 세그멘테이션
- 프로세스를 서로 다른 크기의 논리적 블록 단위인 세그멘테이션으로 나눈다.
- 외부 단편화 문제
- 페이징
This post is licensed under
CC BY 4.0
by the author.