메인 메모리, 가상 메모리
우선, 메인 메모리란?
- CPU가 직접 접근할 수 있는 기억 장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리에 적재해 두어야 한다.
- 하지만, 만약 프로그램의 용량이 메인 메모리보다 크다면?
가상 메모리란?
- 실제 물리 메모리의 개념과 사용자의 논리 메모리 개념을 분리한 것!
- 메모리의 공간은 한정적이므로, 사용자에게 더 많은 메모리를 제공하기 위해 가상 주소를 사용한다.
메모리 관리 기법
스와핑(Swapping)
- CPU 할당 시간이 끝난 프로세스의 메모리를 보조 기억 장치로 Swap-out하고, 다른 프로세스의 메모리를 불러온다(Swap in).
연속 메모리 관리
- 여러 프로세스를 수용하기 위해 주 기억 장치를 동적 분할하는 메모리 관리 작업이 필요하다.
- 즉, 하드 디스크에 있는 프로그램을 어떻게 메인 메모리에 적재할 것인지 판단해야 한다!
→ 이 때, 쓰이는 방법 중 하나가 연속 메모리 관리 기법으로, 프로그램 전체가 하나의 커다란 공간에 연속적으로 할당되어야 하는 기법.
단편화
- 기억 장치의 빈 공간, 또는 자료가 여러 조각으로 나뉘는 현상
- 프로세스들이 메모리에 적재되고 제거되는 일이 반복되면, 프로세스들이 차지하는 메모리 틈 사이에 사용 불가한 자유 공간이 늘어난다!