본문 바로가기

별걸다하는 IT/운영체제 OS

[운영체제]프로세스와 프로그램 차이는? (Process vs Program)


운영체제 목차


A process is a program in execution


Program이란?

Program과 Process의 차이는 매우 간단한데 이름이 비슷하기도 하고 워낙 많이 쓰니까 헷갈려하시는 분들이 있더라고요.

Program은 실행파일입니다. 파일 시스템에 존재하는 실행파일이 프로그램입니다.

즉 '.exe'로 끝나는 파일들 많이 보셨죠?! 그런 것들이 프로그램이에요. MapleStory.exe(메이플), Hwp.exe(한글)등!



Process?

자 사용자가 이런 것들을 더블클릭해서 실행하게 되면 운영체제가 그 프로그램을 실행시켜줘야 하죠.

그 프로그램을 실행 시키는 실행 주체 그것을 인스턴스라고도 표현을 합니다.

프로그램의 하나의 인스턴스 그것이 프로세스예요!


즉 프로그램을 실행하게 되면 CPU를 차지하면서 수행하는 수행 주체가 프로세스입니다.

프로그램은 하나지만 이 프로그램을 실행하는 인스턴스는 여러 개가 생길 수 있습니다.


말이 쉬운듯 하지만 조오금 와닿지 않죠?

하나의 쉬운 예를 들어볼게요. 한글 문서 편집할 때 한글 실행파일을 누르면 한글 창이 뜨죠?!

근데 실행파일은 한개인데 생각해보면 한글 창은 여러 개 만들 수 있어요.

새로 만들기 하면 한글 창이 하나 더 생겨서 작업 표시줄에 한글이 두 개가 되어 동시 작업이 가능하죠

여기서 한글 실행파일이 프로그램, 한글 창은 프로세스, 즉 프로그램을 실행시켜서 프로세스를 2개 만든거죠

크롬도이나 엑셀파일도 하나의 실행파일이지만 아래와 같이 두 개의 창을 만들 수 있어요

즉 이렇게 실행파일을 누르면 CPU에 올라가서 실행되는 이 하나의 인스턴스를 프로세스라고 합니다




프로세스는 다양한 프로세스가 존재할 수 있어요

한글에서 하나의 창도 프로세스이지만, 내가 만약에 한글에서 출력하려고 프린트를 눌렀다!

그럼 프린트 작업이 CPU에 올라가서 수행되겠죠?! 이것도 하나의 인스턴스이므로 프로세스입니다.


운영체제에서는 이 프로세스들을 process ID(PID)라는 것으로 이름을 붙여서 관리합니다.

윈도우에서도 'ctrl +alt +delete'를 누르면 작업관리자에서 지금 현재 수행중인 프로세스들을 확인할 수 있답니다!

운영체제에서 프로세스는 수행과 스케줄링의 가장 기본적인 단위이기 때문에 프로세스가 무엇인지는 확실히 알고 있어야 합니다.


끝~


도움이 됐다면 공감 꾹 

공감과 댓글은 지식 공유의 힘이 됩니다 ;)


  • 학생 2020.12.19 09:42

    잘 읽고 갑니다 근데 PID는 프로세서를 실행시킬 때마다 바뀌는 겁니까? 아님 고정된 값을 지니고 있습니까? 궁금하네요

    • IT 양햄찌(jhnyang) 2020.12.19 11:21 신고

      프로세스를 구분하기 위한 유니크 값입니다. 하나의 프로세스가 돌고 있는데 다른 프로세스가 떠지면 두 프로세스는 다른 pid를 갖습니다. 즉 고정된 값이 아닙니다.