오늘은 운영체제에서 자주 듣는 단어인 프로세스를 정리했다. 처음엔 "프로그램이랑 프로세스가 뭐가 다르지? 그냥 실행 중인 프로그램 아닌가?" 정도로만 알고 있었는데, 운영체제가 한정된 CPU(Central Processing Unit, 중앙처리장치)를 누구한테 줄지 결정하는 그 "누구"가 바로 프로세스다. 이 개념을 대충 알고 넘어가면 뒤에 나오는 스케줄링이나 동기화가 전부 흐릿해진다.이번 글에서는 내가 짠 코드 한 덩어리가 어떻게 실행 가능한 형태로 메모리에 올라가는지, 일단 올라간 뒤에는 어떤 상태들을 오가며 CPU를 받았다 뺏겼다 하는지를 따라가며 정리했다.1. 시스템 소프트웨어 (번역·연결·적재)내가 작성한 소스 코드는 그 자체로는 CPU한테 한 글자도 의미가 없다. 이 부분이 처음엔 잘 와닿지 ..