728x90
반응형

CS 를 다시 공부하면서 프로그램과 프로세스에 대해서 정확히 설명하지 못했고 (반성하자)
프로그램과 프로세스의 차이에 대해서 제대로 알고 있지 않다는 생각이 들어 제대로 이해하고자 공부한 내용을 정리해보려고 한다.

 

프로그램 (Program)

프로그램이란 흔히 소프트웨어라고 하는 애플리케이션들을 말한다
예를 들어, 카카오톡이나 계산기 등을 프로그램이라고 할 수 있다.

 

조금 더 자세하게 설명하자면 컴퓨터가 실행할 수 있는 명령의 집합이자 Disk 에 저장되는 정적인 엔티티라고 할 수 있다.
변함없이 디스크에 저장되어있기 때문에 정적이라고 표현한다.

 

 

프로세스 (Process)

프로세스란 프로그램의 실행을 의미한다. 따라서, 동적인 엔티티라고 할 수 있다.
프로세스는 프로그램이 실행될 때 운영 체제에 의해 생성된다.

 

예를 들어 카카오톡이 실행된다고 할 때 대화 내용을 불러오는 것과 같이 카카오톡을 실행하기 위한 모든 리소스를 메모리에 올려놓게 된다.
또한 이러한 작업에 PID(Process ID) 라는 고유한 값을 부여한다.

 

 

이렇게 프로그램과 프로세스에 대해서 알아보았는데 그럼 두 개념의 차이는 무엇인지 정리해보자.

프로그램(Program) 과 프로세스(Process) 의 차이

프로그램은 디스크에 저장된 정적인 엔티티이다.
프로세스는 메모리에 올려진 프로그램을 실행하는 동적인 엔티티다.

 

따라서 프로그램은 디스크에 있고, 프로세스는 메모리에 있다고 이해하면 된다.

 

프로그램 -> 디스크
프로세스 -> 메모리

 

그리고 프로그램과 프로세스는 일 대 다 관계를 이루고 있는 것을 알 수 있다.
예를 들어, 크롬이라는 프로그램이 있다고 할 때 크롬을 여러개 실행하면 하나의 프로그램이 여러 개의 프로세스로 실행되는 것으로 이해할 수 있다.

 

프로그램 : 프로세스 = 1 : N

 

또한 프로그램은 디스크에 있기 때문에 종료되는 것이 아니라 삭제된다고 볼 수 있고
프로세스는 메모리에 있기 때문에 삭제 되는 것이 아니라 종료된다고 볼 수 있다.

 

 

프로그램과 프로세스를 카카오톡과 크롬으로 예를 들어서 정리해보았는데 예를 들어보니 확실하게 이해가 되는 것 같다.
예전에 분명히 공부했던 내용이지만 정확히 이해하지 못했었고 그렇기에 물어보면 제대로 답할 수 없었다.
앞으로 제대로 이해하지 못하고 넘어갔던 개념들에 대해서 다시 찾아보고 공부하면서 이해한 내용을 정리해야겠다.

 

참고 사이트

https://growth-coder.tistory.com/139

 

[OS] 프로그램과 프로세스의 차이 및 프로세스 구조

프로그램과 프로세스의 차이 프로그램과 프로세스는 혼동하기 쉬운데 둘은 엄연히 다르다. 프로그램은 특정 목적을 수행하기 위한 명령문들의 집합이다. 또한 컴파일된 결과물이 디스크에 저

growth-coder.tistory.com

https://change-words.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EA%B3%BC-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

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

"프로그램 종료"와 "프로세스 종료" 어떤 게 맞는 말일까요? 혹시 똑같은 의미이라고 생각되시나요? 어떤 말이든 의미는 통하지만 엄밀히 말하면 프로세스 종료가 정확한 표현입니다. 자주 헷갈

change-words.tistory.com

 

728x90
반응형

'컴퓨터 과학 > 개념정리' 카테고리의 다른 글

메모리 단편화 (Memory Fragmentation)  (0) 2024.02.18
메모리 구조 (Memory Structure)  (0) 2024.02.18
오프셋, offset  (0) 2023.02.28
복사했습니다!