운영체제 7분 읽기

계산 작업은 어떻게 조정되는가

운영체제가 여러 작업을 스케줄링하고 자원을 분배하는 원리를, 일상적인 비유와 함께 이해하기 쉽게 풀어냅니다.

여러 모니터에 표시된 작업 스케줄 화면

한 번에 여러 프로그램을 띄워놓고 쓰는 일은 이제 당연합니다. 하지만 그 뒤에서는 운영체제가 아주 빠르게 작업을 번갈아 실행하며, 사용자에게는 모든 작업이 동시에 움직이는 것처럼 보이게 만드는 정교한 조정이 일어납니다.

스케줄링이란

스케줄링은 CPU 시간을 여러 작업에 나누어 주는 일입니다. 운영체제는 각 작업에 짧은 시간 조각을 할당하고, 그 시간이 끝나면 다음 작업으로 전환합니다. 이 전환이 충분히 빠르면 사람은 동시 실행으로 느낍니다.

우선순위와 공정성

모든 작업이 같은 중요도를 갖지는 않습니다. 사용자 입력에 반응하는 작업은 지연이 체감되기 쉽기 때문에 더 높은 우선순위를 받습니다. 반면 백그라운드 작업은 조금 늦춰져도 무방한 경우가 많습니다. 운영체제는 공정성과 반응성 사이에서 균형을 잡습니다.

참고

"동시에 실행된다"는 표현은 물리적으로 동시라기보다, 매우 빠르게 번갈아 실행되는 것을 뜻합니다. 코어가 여러 개일 때만 일부 작업이 실제로 동시에 실행됩니다.

자원 경합

여러 작업이 같은 자원을 원하면 경합이 발생합니다. 운영체제는 잠금과 큐를 이용해 순서를 정하고, 한 작업이 다른 작업을 무기한 기다리지 않도록 관리합니다. 잘못 설계된 경우 교착 상태가 발생할 수 있습니다.

실용 팁

작업 관리자나 활동 모니터를 열면 이 조정 과정을 직접 관찰할 수 있습니다. CPU 점유율이 여러 프로세스 사이에서 계속 옮겨가는 것을 볼 수 있습니다.

이 조정 원리는 단일 기기를 넘어 여러 기기로 확장됩니다. 분산 시스템의 조정에서 그 연장선을 살펴보세요.