MMU는 각 프로세스에게 자신만의 메모리 주소 공간을 제공해서 모든 프로그램에게 자신이 컴퓨터 안에서 실행되는 유일한 프로그램이라는 환상을 심어준다.(멀티태스킹 시스템)

하지만 사용자가 수행하는 I/O가 발생하면 이런 환상은 유지하기 힘들어진다.

CPU는 컴퓨터가 시스템 모드(kernel)에 있는지 사용자 모드(user)에 있는지 결정하는 비트(mode bit, 0:kernel, 1:user)가 어떤 레지스터 안에 들어있다.

I/O를 처리하는 명령어 등 일부 명령어는 특권 명령어이기 때문에 오직 시스템 모드 즉, 커널에서만 실행할 수 있다.

트랩이나 시스템 콜이라고 부르는 특별한 명령어를 통해 사용자 모드 즉, 유저 프로세스에서 실행 중인 프로그램이 커널(OS)에게 요청을 보낼 수 있다.