가상 메모리
연속 메모리 할당
프로세스에 연속적인 메모리 공간을 할당하는 방식을 연속 메모리 할당 방식이라 한다.
스와핑
현재 실행되지 않는 프로세스를 임시로 보조기억장치 일부 영역으로 쫓아내고, 그렇게 해서 생긴 메모리 상의 빈 공간에 실행해야할 프로세스를 적재하여 실행하는 방식을 말한다.
- 스왑 영역(swap space): 프로세스들이 쫓겨나는 보조기억장치의 일부 영역
- 스왑 아웃(swap out): 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것
- 스왑 인(swap in): 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것
스왑 아웃 되었던 프로세스가 다시 스왑 인 될 때에는 이전의 물리 주소와는 다른 주소에 적재될 수 있다.
⇒ 스와핑을 이용하면 프로세스들이 요구하는 메모리 주소 공간의 크기가 실제 메모리 크기보다 큰 경우에도 프로세스들의 동시 실행이 가능하다.
메모리 할당
프로세스를 메모리에 적재할 때, 어디에 배치하는 것이 효율적일까?
- 최초 적합(first fit): 메모리 내의 빈 공간을 선형적으로 검색하다 최초로 발견한 빈 공간에 프로세스를 배치하는 방식.
- 최적 적합(best fit): 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 빈 공간 중 가장 작은 공간에 프로세스를 배치하는 방식
- 최악 적합(worst fit): 빈 공간을 모두 검색해본 후, 프로세스가 적재될 수 있는 빈 공간 중 가장 큰 공간에 프로세스를 배치하는 방식
외부 단편화