CHAPTER 14 가상메모리
keyword : 스와핑, 최초적합, 최적적합, 최악적합, 외부단편화
연속메모리 할당
- 메모리에 프로세스들이 적재될 때, 각 프로세스는 연속적으로 적재된다. 프로세스 A는 A의 크기만큼 메모리 주소를 할당받아 연속적으로 배치되고, B는 B의 크기만큼 할당받아 배치. 이런 방식을 연속 메모리 할당이라고 하는데, 이때 무엇을 고려해야 하는지, 그리고 어떤 잠재적 문제가 있는지 알아보자.
스와핑(Swapping)
-
메모리에 적재된 프로세스 중, 대기상태가 되었다던지 오랫동안 실행되지 않은 프로세스라던지 등 현재 실행중이지 않은 프로세스들이 있다. 이들을 임시로 보조기억장치 일부 영역으로 보내고, 빈 공간에 다른 사용할 프로세스를 적재하는 걸 **스와핑(Swapping)**이라고 한다.
💡이 밖에도 오버레이(Overlay)기법이 사용되기도 한다. 주기억장치보다 큰 프로세스를 실행할때 프로그램을 미리 여러 조각으로 분할한 후 필요한 조각을 차례로 주기억장치에 적재해 프로그램을 실행하는 기법이다. 주기억장치의 공간이 부족해지면 적재된 프로그램의 조각중 불필요한 조각이 위치한 장소에 필요한 조각을 덮어씌운다.
스왑영역
- 스와핑을 위한 보조기억장치 일부 영역을 스왑영역이라고 한다. 프로세스가 메모리에서 스왑영역으로 옮겨지는 걸 스왑 아웃(Swap out), 반대는 스왑 인(Swap in)이라고 부른다. 스왑 인 될 때는 스왑 아웃 되기전 물리주소와 다른 주소에 적재될 수 있다.
메모리 할당
- 메모리 내 빈 공간에 프로세스를 어떻게 연속적으로 배치할 것인지? 다음의 세가지가 있다.
- 최초 적합 방식
- 최적 적합 방식
- 최악 적합 방식
1️⃣ 최초 적합 방식(First fit)
- 운영체제가 메모리내 빈 공간을 순서대로 검색하다가 먼저 발견한 빈 공간에 프로세스를 배치한다. 이 방식은 검색시간을 최소화 할 수 있고, 빠르게 프로세스를 메모리에 적재할 수 있다는 장점이 있음.
2️⃣ 최적 적합 방식(Best fit)
- 운영체제가 메모리 내 빈공간을 전부 검색한 후, 가장 작은 빈 공간에 프로세스를 적재한다.
3️⃣ 최악 적합(Worst fit)
- 운영체제가 메모리 내 빈 공간을 전부 검색한 후, 가장 큰 빈 공간에 프로세스를 적재한다.
외부 단편화(External fragmentation)