Program이란?
Program과 Process의 차이는 매우 간단한데 이름이 비슷하기도 하고 워낙 많이 쓰니까 헷갈려하시는 분들이 있더라고요.
Program은 실행파일입니다. 파일 시스템에 존재하는 실행파일이 프로그램입니다.
즉 '.exe'로 끝나는 파일들 많이 보셨죠?! 그런 것들이 프로그램이에요. MapleStory.exe(메이플), Hwp.exe(한글)등!
Process?
자 사용자가 이런 것들을 더블클릭해서 실행하게 되면 운영체제가 그 프로그램을 실행시켜줘야 하죠.
그 프로그램을 실행 시키는 실행 주체 그것을 인스턴스라고도 표현을 합니다.
프로그램의 하나의 인스턴스 그것이 프로세스예요!
즉 프로그램을 실행하게 되면 CPU를 차지하면서 수행하는 수행 주체가 프로세스입니다.
프로그램은 하나지만 이 프로그램을 실행하는 인스턴스는 여러 개가 생길 수 있습니다.
말이 쉬운듯 하지만 조오금 와닿지 않죠?
하나의 쉬운 예를 들어볼게요. 한글 문서 편집할 때 한글 실행파일을 누르면 한글 창이 뜨죠?!
근데 실행파일은 한개인데 생각해보면 한글 창은 여러 개 만들 수 있어요.
새로 만들기 하면 한글 창이 하나 더 생겨서 작업 표시줄에 한글이 두 개가 되어 동시 작업이 가능하죠
여기서 한글 실행파일이 프로그램, 한글 창은 프로세스, 즉 프로그램을 실행시켜서 프로세스를 2개 만든거죠
크롬도이나 엑셀파일도 하나의 실행파일이지만 아래와 같이 두 개의 창을 만들 수 있어요
즉 이렇게 실행파일을 누르면 CPU에 올라가서 실행되는 이 하나의 인스턴스를 프로세스라고 합니다
프로세스는 다양한 프로세스가 존재할 수 있어요
한글에서 하나의 창도 프로세스이지만, 내가 만약에 한글에서 출력하려고 프린트를 눌렀다!
그럼 프린트 작업이 CPU에 올라가서 수행되겠죠?! 이것도 하나의 인스턴스이므로 프로세스입니다.
운영체제에서는 이 프로세스들을 process ID(PID)라는 것으로 이름을 붙여서 관리합니다.
윈도우에서도 'ctrl +alt +delete'를 누르면 작업관리자에서 지금 현재 수행중인 프로세스들을 확인할 수 있답니다!
운영체제에서 프로세스는 수행과 스케줄링의 가장 기본적인 단위이기 때문에 프로세스가 무엇인지는 확실히 알고 있어야 합니다.
끝~
도움이 됐다면 공감 꾹
공감과 댓글은 지식 공유의 힘이 됩니다 ;)
'별걸다하는 IT > 운영체제 OS' 카테고리의 다른 글
[운영체제]스케줄링과(Scheduling algorithm & criteria) 디스패쳐 dispatcher란? (4) | 2019.01.22 |
---|---|
[운영체제]프로세스 상태(Process State-ready, waiting etc) (11) | 2019.01.22 |
[운영체제]교착상태 처리방법(Handling deadlocks) 예방법, 해결방안 (3) | 2019.01.22 |
[운영체제OS]교착상태(deadlock데드락)의 발생조건(necessary condition-필요조건) (7) | 2019.01.22 |
[운영체제 OS]교착상태(데드락Deadlocks) 정의 및 예시 (13) | 2019.01.22 |
최신 댓글