2026/04/15 2

프로세스는 어떻게 실행되는가(3/3): CPU 스케줄링과 컨텍스트 스위칭

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

LINUX 2026.04.15

프로세스는 어떻게 실행되는가(2/3): 메모리, PCB, 스레드 이해하기

프로그램을 실행하는 것은 단순히 작성된 코드를 한 번 읽고 끝나는 과정이 아닙니다.실행되는 순간, 운영체제는 해당 프로그램은 하나의 프로세스를 만들고 이를 메모리 위에 올려 체계적으로 관리합니다. 이 과정에서 프로세스는 구조화된 메모리, 실행 흐름을 포함한 하나의 독립적인 실행 환경으로 동작합니다. 또한 효율적인 처리를 위해 하나의 프로세스 내에서도 여러 작업이 동시에 이루어지며, 이때 각 실행 흐름은 자원을 공유합니다. 따라서 이번 포스팅에서는 프로세스의 단순한 메모리 구조를 넘어 운영체제가 이를 어떻게 관리하는지 그리고 실행 흐름이 어떻게 구성되는지 살펴보겠습니다. 프로세스 메모리 구조프로그램이 동작하는 동안에는 코드 실행, 함수 호출, 객체 생성 등 여러 작업들이 동시에 이루어집니다.이들을 하..

LINUX 2026.04.15