전 단원에서는 메모리의 기초적인 개념,용어를 배웠다면 이번 단원에는 '메모리를 어떻게 하면 효율적으로 관리 할 수 있을까'에 대해 다룬다.
이건 우리의 일상생활에서도 흔히 마주칠 수 있는 문제인데 식당에 갔을 때 손님의 수에 맞게 테이블을 제공하는 식당이 있을 수 있고, 4명이 앉을 수 있는 테이블로만 구성하는 방법도 있을 것이다.
이러한 방법은 여러 장단점이 있는데 이번 내용에서 소개하겠다.
4. 다중 프로그래밍 환경에서의 메모리 할당
4-1 메모리 분할 방식
- 가변 분할 방식 : 프로세스의 크기에 따라 메모리를 나누는 방식. 한 프로세스가 연속적인 메모리에 배치되기 때문에 연속 메모리 할당이라고도 한다.
장점 : 프로세스 측면에서 봤을 때 매우 편리함
단점 : 관리가 불편함/ 프로세스가 작업을 마친 후 다른 프로세스가 사용할 수 없는 여러 데이터 조각들이 생길 수 있음
- 고정 분할 방식 : 프로세스의 크기에 상관없이 메모리를 같은 크기로 나누는 방식. 한 프로세스가 분산되어 배치되기 때문에 비 연속 메모리 할당이라고도 한다.
장점 : 관리가 용이함
단점 : 프로세스 측면에서 불편함/ 관리자가 지정한 크기보다 작은 프로세스가 들어올 경우 메모리의 낭비
※ 예를 들어 평소에는 20KB만큼 크기를 할당하여 고정분할로 사용하고 20KB보다 작은 프로세스들은 한 곳에 뭉쳐 가변분할로 사용하면 안될까?
4-2 가변 분할 방식의 메모리 관리
1) 외부 단편화 : 가변 분할 방식에서 일어남. 메모리를 사용하고 나간 프로세스의 자리를 새로운 프로세스가 사용할 수 없을 때 단편화가 일어남
2) 메모리 배치 방식
- 최초 배치 : 단편화를 고려하지 않은 방식
장점 : 빈 공간을 찾아다닐 필요가 없다.
단점 : 외부 단편화가 일어나기 쉬움
- 최적 배치 : 메모리의 빈 공간을 확인한 후 가장 작은 공간에 프로세스를 배치
장점 : 프로세스의 크기와 딱 맞는 공간을 찾을 경우 단편화가 일어나지 않음
단점 : 딱 맞는 공간이 업슨 경우 아주 작은 조각을 만들어냄
- 최악 배치 : 메모리의 빈 공간을 확인한 후 가장 큰 공간에 프로세스를 배치
장점 : 프로세스를 배치하고 남은 공간이 크기 때문에 쓸모가 있음
단점 : 빈 공간의 크기가 점점 줄어들면 아주 작은 조각을 만들어냄
3) 조각 모음 : 빈 공간들을 모아 하나의 큰 덩어리로 만드는 과정
조각모음의 순서
- 이동할 프로세스의 동작을 멈춘다
- 프로세스의 위치를 옮기기 위해 프로세스의 상대주소값을 바꾼다
- 프로세스를 다시 시작한다
4-3 고정 분할 방식의 메모리 관리
1) 내부 단편화 : 고정 분할 방식에서 일어남. 고정된 메모리값보다 작은 프로세스가 들어왔을 때 내부 단편화가 일어남
2) 메모리 배치 방식
조각 모음을 할 필요가 없고 곤리가 수월하므로 현대의 메모리 관리 시스템에서 자주 사용
4. 버디 시스템
4-1 버디 시스템의 작동 방식
- 프로세스의 크기에 맞게 메모리를 1/2로 자르고 프로세스를 메모리에 배치
- 나뉜 메모리의 각 구역에는 프로세스가 1개만 들어감
- 프로세스가 종료되면 빈 조각과 합쳐서 하나의 큰 덩어리를 만든다
'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글
가상 메모리의 기초(2) (0) | 2022.03.21 |
---|---|
가상 메모리의 기초 (1) (0) | 2022.03.17 |
메모리 관리 (1) (0) | 2022.03.10 |
교착 상태 (2) | 2022.03.08 |
프로세스 동기화 (2) (0) | 2022.03.06 |
댓글