Continuous memory allocation
- 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책
1. Uni-programming
- 하나의 프로세스만 메모리 상에 할당하는 방법
- 문제점과 해결
* 문제점 1 : 프로그램의 크기 > 메모리 크기
* 해결 1: 프로그램을 잘라서 필요한 부분만 적재, 하지만 사용자가 프로그램의 흐름과 자료구조를 모두 알아야 함
* 문제점 2 : kernel 보호
* 해결 2 : 경계 레지스터(boundary register) 사용
* 문제점 3 : 낮은 자원 활용도, 하나의 프로세스만 사용하므로 낮은 수행능력
2. Multi-programming
Fixed partition multiprogramming
- 메모리 공간을 고정된 크기로 분할
- 하나의 partition에 하나의 프로세스만 적재
- 경계 레지스터 사용
- 단편화(fragmentation) 문제 발생
* 메모리 낭비
* 내부 단편화 : partition 크기 > process 크기 일 때 발생
* 외부 단편화 : 남은 메모리 크기 > process 크기 일 때 발생
+ 남은 메모리들이 연속된 공간이 아니기 때문에 process가 적재가 안됨
Variable partition multiprogramming
- 프로세스를 처리하는 과정에서 메모리 공간이 동적으로 분할
- 내부 단편화 문제 해결
- 과정
- 배치 전략
* 프로세르는 어디에 적재할 것인가?
* 상황에 따라 적절한 방법 사용
* First-fit (최초 적합)
+ 충분한 크기를 갖는 첫 번째 partition을 선택
+ 장점 : 간단하고 overhead가 적음
+ 단점 : 공간 활용률이 적음 왜냐하면, 14kb만 필요하지만 첫 번째 공간이 100kb일 경우 86kb 낭비
* Best-fit (최적 적합)
+ process가 들어갈 수 있는 partition 중 가장 작은 곳 선택
+ 장점 : 크기가 큰 partition을 유지
+ 단점 : 탐색 시간이 오래 걸림, 활용하기에 너무 작은 partition이 발생
* Worst-fit (최악 적합)
+ process가 들어갈 수 있는 partition 중 가장 큰 곳 선택
+ 장점 : 작은 크기의 partition 발생을 줄임
+ 단점 : 탐색 시간이 오래 걸림, 큰 크기의 partition 확보가 어려움
* Next-fit (순차 최초 적합)
+ 최초 적합과 유사
+ 메모리 탐색을 매번 처음부터 하지 않고, 이전 탐색이 마무리된 위치부터 탐색 시작하여 전체 메모리를 균등하게 사용
- 외부 단편화 문제 해결
* 공간 통합
+ 인접한 빈 영역을 하나의 partition으로 통합
+ low overhead
* 메모리 압축
+ 모든 빈 공간을 하나로 통합
+ 모든 process를 재배치 해야함으로 process는 중지되고 high overhead가 발생 따라서 자주 하지 않음
본 내용은 한국기술교육대학교 김덕수 교수님의 유튜브 강의를 듣고 정리한 내용입니다.
'Software Courses > Operating System' 카테고리의 다른 글
[Memory] Paging system (0) | 2020.12.09 |
---|---|
[Memory] Memory allocation : Non-continuous memory allocation (0) | 2020.12.09 |
[Memory] Memory Basic (0) | 2020.12.07 |
[Deadlock] Deadlock Solutions (0) | 2020.12.06 |
[Deadlock] Deadlock and Resources types (0) | 2020.12.04 |