프로그램과 프로세스의 차이점

"프로그램 종료"와 "프로세스 종료" 어떤 게 맞는 말일까요? 혹시 똑같은 의미이라고 생각되시나요? 어떤 말이든 의미는 통하지만 엄밀히 말하면 프로세스 종료가 정확한 표현입니다. 자주 헷갈리는 컴퓨터 용어인 프로그램과 프로세스의 차이에 대해 알아보겠습니다.

프로그램이란?

프로그램(Program)은 흔히 소프트웨어라고 칭하는 애플리케이션들을 말합니다. 너무 당연한 예시긴 하지만 당장 컴퓨터에 있는 오피스 프로그램들, 카카오톡, 계산기 등이 모두 프로그램입니다. 프로그램을 좀 더 엄밀히 표현하면 컴퓨터가 실행할 수 있는 명령 집합이자, 컴퓨터 디스크에 저장되는 정적인 엔터티라고도 할 수 있습니다. 변함없이 디스크에 저장되어 있기 때문에 정적이라고 표현합니다.

프로세스란?

반면 프로세스(Process)는 프로그램의 실행을 의미하는 동적인 엔터티입니다. 프로세스는 프로그램이 실행될 때 운영 체제에 의해 생성됩니다. 예를 들어 MS 워드라는 프로그램을 실행하면 컴퓨터는 워드를 사용하는데 필요한 코드를 포함해 모든 리소스를 메모리에 올려놓습니다. 그리고 이 작업에 PID(프로세스 ID)라는 고유한 값을 부여합니다.

 

disk vs memory

메모리와 디스크의 차이점

프로그램 프로세스 차이

정리하면, 프로그램은 컴퓨터 디스크에 저장된 정적인 파일입니다. 프로세스는 컴퓨터에서 해당 프로그램을 실제로 실행한 동적인 엔터티입니다. 위치로 말하면 프로그램은 디스크에 있고, 프로세스는 메모리에 있다고 이해할 수 있습니다.

 

하나의 프로그램에서 여러 개의 프로세스가 실행될 수 있습니다. 예를 들어 워드를 하나 띄울 수도 있지만 두 개 이상 띄워놓고 작업할 수도 있습니다. 이때 같은 프로그램이라도 각 프로세스는 독립적으로 존재하며 고유한 PID를 가집니다. 크롬을 실행하면 여러 개의 프로세스가 실행되는 것도 예시입니다.

 

그러니 엄밀히 말하면 프로그램은 종료되는 게 아니라 삭제되는 것이 맞고, 프로세스는 삭제되는 게 아니라 종료되는 게 맞습니다.

반응형

댓글

Designed by JB FACTORY