한 번에 여러 프로세스가 실행되는 구조의 메모리 문제를 알아보자.
1 메모리 분할 방식
메모리에 여러 개의 프로세스를 배치하는 방법은 크게 가변 분할 방식과 고정 분할 방식으로 나뉜다.
가변 분할 방식 : 프로세스의 크기에 따라 메모리를 나눈다. 한 프로세스가 연속된 공간에 배치되기 때문에 연속 메모리 할당이라고 부른다.
가변 분할 방식의 장점 : 프로세스를 한 덩어리로 처리하여 하나의 프로세스를 연속된 공간에 배치한다.
가변 분할 방식의 단점 : 메모리 관리가 복잡하다.
고정 분할 방식 : 프로세스의 크기에 상관없이 메모리를 같은 크기로 나누는 것이다. 큰 프로세스가 메모리에 올라오면 여러 조각으로 나뉜다. 따라서 비연속 메모리 할당이라고 한다.
고정 분할 방식의 장점 : 메모리를 일정한 크기로 나눠 관리하기 떄문에 메모리 관리가 수월하다.
고정 분할 방식의 단점 : 쓸모없는 공간으로 인해 메모리 낭비가 발생한다.(내부 단편화)
2 가변 분할 방식의 메모리 관리
가상 메모리 시스템에서는 세그멘테이션 기법이라고도 한다.
물리 메모리에 프로세스 A,B,C,D,E를 배치한 후 B와 D가 종료한다고 생각해보자. 18KB와 17KB의 빈 공간이 생긴다. 그 후에 18KB보다 큰 프로세스가 들어오면 적당한 공간이 없어 메모리를 배정하지 못하는데, 이런 작은 빈 공간을 외부 단편화라고 한다. 프로세스의 바깥쪽에 조각이 발생하기 때문에 외부 단편화라고 한다.
이런 문제 해결을 위해 메모리 배치 방식이나 조각 모음을 사용한다.
메모리 배치 방식 : 작은 조각이 발생하지 않도록 프로세스를 배치하는 것.
최초 배치(first fit) : 첫 번째로 발견한 공간에 프로세스를 배치하는 방법.
최적 배치(best fit) : 배치가 가능한 공간 중에서 가장 크기가 작은 공간에 배치하는 방법
최악 배치(worst fit) : 가장 크기가 큰 공간에 배치하는 방법.
조각 모음 : 단편화가 발생하면 이미 배치된 프로세스를 옮겨서 빈 공간들을 하나의 큰 덩어리로 만드는 작업
3 고장 분할 방식의 메모리 관리
가상 메모리 시스템에서는 페이징이라고도 한다.
프로세스 A가 38KB이고, 분할된 크기를 20KB, 18KB라고 하자. 18KB를 메모리에 할당하면 2KB의 남은 공간이 생긴다. 이처럼 메모리 조각에 프로세스를 배치하고 남는 공간이 생기는데 이를 내부 단편화라고 한다. 같은 크기로 나뉜 공간 내부에서 발생하기 때문에 내부 단편화라고 한다.
'프로그래밍 이론 & 책 > 운영체제' 카테고리의 다른 글
[운영체제] 9.1 요구 페이징 (0) | 2020.06.01 |
---|---|
[운영체제] 8 가상 메모리 (0) | 2020.05.29 |
[운영체제] 7.3 단일 프로그래밍 환경에서의 메모리 할당 (0) | 2020.05.28 |
[운영체제] 7.2 메모리 주소 (0) | 2020.05.28 |
[운영체제] 7.1 메모리 관리의 개요 (0) | 2020.05.28 |