뭉크테크
메모리 분할 방식 본문
물리적 메모리 분할 방식에는 두가지 방식이 있다.

가변 분할 방식과 고정 분할 방식
가변 분할 방식이란 프로세스마다 필요한 메모리 공간 만큼 할당해주고, 각 프로세스마다의 메모리 공간을 연속으로 할당하는 방식을 말한다. 이때, 필요한 메모리 공간 단위가 세그먼트라고 하며, 그 크기만큼 메모리 공간을 분할하는 작업을 세그먼테이션이라 한다.
고정 분할 방식이란 메모리 공간을 일정한 크기만큼 나누고 프로세스마다 필요한 공간만큼 분배해주는 방식을 말한다.
이때, 일정한 크기가 페이지이며, 그 크기만큼 필요한 공간을 나눈다는 개념을 페이징 이라 부른다.
메모리 공간을 분할해서 저렇게 할당해주는 이유는 프로세스마다 필요한 메모리가 다르므로 필요한 크기만큼 메모리 공간을 할당해줘야하기에 그렇다.

그리고 가변 분할 방식과 고정 분할 방식 모두 빈 공간이 발생한다. 이를 단편(fragment) 이라 부른다. 이때 그냥 빈 공간이 아니라 프로세스 공간으로 쓰기 애매한 곳을 보통 단편이라 부른다. 예를 들어, 고정 분할 방식은 할당받은 페이지 공간 내부에 다른 새 프로세스가 할당받기 애매한 공간이 생기는데 이를 내부 단편이라 하며, 가변 분할은 처음 연속적으로 생성된 프레그먼트들이 나열되어있을텐데, 특정 프로세스가 종료하면서 중간에 빈 공간이 생기는데 이를 외부 단편이라 부른다.
이때, 외부 단편을 왜 애매하냐고 물어보면, 만약 저 외부 단편보다 더 큰 메모리 공간 크기를 할당받기를 원하는 프로세스가 생길 경우, 다른 프로세스의 공간을 침범하기때문이다.
따라서 이러한 외부 단편들을 모아서 할당 가능한 하나의 빈 메모리 공간을 만드는데 이를 조각 모음이라 부른다. 이때, 프로세스 C 와 E를 보면, 메모리 공간이 이동하였음을 볼 수 있다. move() 든, copy() and flush() 든 할텐데, 결국 이 연산 작업을 CPU를 소모 하는 일이기에 무조건 자주 한다고 좋은 것은 아니다.

위 사진이 실제 디스크 드라이브 조각 모음을 실행시킬 수 있는 프로그램이다.
'운영체제' 카테고리의 다른 글
| 메모리 오버레이와 스왑 (2) | 2025.02.03 |
|---|---|
| 절대주소와 상대주소 (1) | 2025.01.26 |
| 메모리 관리 개요 (3) | 2025.01.24 |
| 프로세스간 통신 (1) | 2025.01.13 |
| CPU 스케줄링 (2) | 2025.01.13 |
