더북(TheBook)

컴퓨터를 사용할 때 한 프로그램만 실행할까요? 운영체제가 작동할 때 내부에서 실행되는 프로세스만 하더라도 CPU 개수보다 훨씬 많습니다. 그러면 CPU가 실행하는 프로세스만 제대로 작동하고, 나머지는 작동하지 않을까요? 아닙니다. 운영체제에는 희소 자원인 CPU를 사용해 모든 프로세스가 적절히 작동할 수 있게 하는 기능이 있습니다.

CPU는 여러 프로세스를 동시에 처리할 수 없는 대신 짧은 간격으로 번갈아 가며 프로세스를 실행합니다. 어미 새 한 마리가 여러 아기 새에게 먹이를 나눠주듯이 CPU가 여러 프로세스를 돌아가면서 실행합니다. 한 프로세스 입장에서 보면 실행되다 말다 합니다. 하지만 프로세스는 실행이 중단된다는 사실을 알지 못하고 자신이 CPU를 독점하고 있다고 생각합니다.

이렇게 프로세스 중 하나를 골라 CPU가 실행하는 것을 프로세스 스케줄링(process scheduling)이라고 합니다. 그리고 어떤 프로세스를 선택할지 결정하는 방법을 스케줄링 알고리즘(scheduling algorithm), 이를 사용해 스케줄링하는 주체를 프로세스 스케줄러(process scheduler)라고 합니다. 운영체제는 고유의 방식으로 구현된 프로세스 스케줄러가 내장돼 있습니다. 운영체제가 프로세스 스케줄러를 사용해 여러 프로세스를 동시에 처리하는 방식을 멀티 태스킹(multi-tasking)이라고 합니다. 이처럼 운영체제는 멀티 태스킹을 통해 여러 프로그램을 실행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.