지난 포스팅에서 프로그램이 프로세스로 탄생하고 관리되는 전반적인 생명주기를 다뤘다면, 이번 글에서는 그 프로세스들이 한정된 자원을 어떻게 나누어 쓰는지 알아보겠습니다. 우리가 컴퓨터로 음악을 들으면서 웹서핑을 하고, 동시에 수십 개의 브라우저 탭을 띄워둘 수 있는 이유는 사실 운영체제가 보이지 않는 곳에서 미친 듯이 바쁘게 움직이고 있기 때문입니다. 이번 포스팅에서는 한정된 CPU 자원, 실행하려는 프로세스는 넘쳐나는 상황에서 순서를 정하는 CPU 스케줄링과 작업을 교체하는 순간에 발생하는 컨텍스트 스위칭의 동작 원리를 자세히 살펴보겠습니다. CPU 스케줄링CPU는 단일 코어 기준으로 하나의 프로세스만 처리할 수 있습니다. 우리가 수백 개의 프로그램을 동시에 실행하는 것처럼 느끼는 것은 스케줄러가 ..