프로세스가 하나이므로, 메모리 할당받을 프로세스도 하나이다.
커널 공간 외의 모든 공간을 프로세스에게 할당하면 된다.
나머지 부분은 그냥 버리면 된다. (Wasted Space)
💭 만약 프로세스가 메모리 공간(유저 스페이스)보다 더 크면 어떻게 할까?
✅ Overlay Structure을 활용한다
프로세스를 나누어서 section-1, section-2로 나누고, section-1을 먼저 실행한 후 section-2를 실행한다.
Relocation, binding의 문제가 있으므로 compiler, linker, loader의 support가 필요하다.
💭 사용자 프로그램이 갑자기 커널에 접근하려고 하면?!
✅ 커널에 접근하려면 반드시 시스템 콜을 해야한다.
커널과 유저스페이스 경계인 Boundary Address를 Boundary Register에 저장하고, 유저 프로그램이 접근하려는 주소가 커널 주소가 아닌 주소에만 접근하도록 해준다.
✅ 프로세스가 하나여서 컴퓨터 시스템의 자원활용도가 낮고, 시스템 성능도 낮다.
따라서 멀티프로그래밍을 해야 한다! -> FPM, VPM 기법을 활용하자 !