초기 컴퓨터 시스템은 한 번에 하나의 프로그램만을 실행하도록 허용하였다. 그 프로그램은 시스템에 완전한 제어를 갖고 시스템의 모든 자원에 접근할 수 있었다. 오늘날의 컴퓨터 시스템들은 메모리에 다수의 프로그램들이 적재되어 병행 실행된다. 다양한 프로그램을 더 견고하게 제어하고 구획화 하기 위해서 실행 중인 프로그램을 말하는 프로세스의 개념이 생겼다. 프로세스는 현대의 시분할 시스템의 작업의 단위다. 운영체제는 커널에 포함시키지 않는편이 더 좋다고 판단된 다양한 시스템 작업들도 처리해야 한다. 그러므로 하나의 시스템은 프로세스들의 집합체이다. 즉, 운영체제 프로세스들은 시스템 코드를 실행하고, 사용자 프로세스들은 사용자 코드를 실행한다. 이런 모든 프로세스들은 잠재적으로 병행 실행이 가능하고, CPU는 이..