-
프로그램(Program)과 프로세스(Process),프로세서(Processor) 구분하기!!!운영체제 2020. 3. 19. 18:33728x90반응형
본인은 소프트웨어 개발자가 되기 위해 공부 중인데요. 프로그램이라는 것은 어릴 때부터 아니면 꼭 IT분야가 아니더라도 자주 들었던 말입니다. 그런데 프로세스는 전공을 공부하면서 알게 되었지만 명확한 구분이 되지 않았기에 이번 글로 깔끔하게 정리해보려고 합니다.
우선 가장쉬운 프로그램의 정의를 내리겠습니다.
프로그램(Program)이란?
소프트웨어의 한 가지로써 어떤 문제를 해결하기 위하여 그 처리 방법과 순서를 기술하여 컴퓨터에 주어지는 일련의 명령문 집합체를 뜻한다. 쉽게 말해, 사용자의 명령에 반응하는 소프트웨어를 프로그램이라 한다. (나무 위키 - 프로그램의 정의)
조금 더 와 닿도록 설명하자면 컴퓨터를 다루어 본 누구나. exe파일을 보신 적이 있을 것입니다. 이런 형식의 파일을 실행파일이라고 하는데요. 컴퓨터 위에서 동작하며 수행 가능한 여러 가지 명령어를 담아 놓은 상자라고 생각하면 편합니다.
이런 프로그램은 저장소(하드디스크 같은 것이 있겠죠? HDD입니다.)에 이진파일(바이너리 파일)로 저장이 되어 있다가 사용자가 실행을 시키면, 즉 더블클릭하게 된다면 메모리(RAM)로 쌓여서 실행되는 것입니다.
그렇다면 우리가 아는 프로그램은 뭐가 있을까요? 너무나도 많죠!
오버워치나 롤같은 게임. exe파일들도 있고 음악을 들을 수 있는 멜론도 하나의 프로그램이고 카카오톡도 프로그램입니다.
프로세스(Process)는 무엇일까?
그렇다면 프로그램은 잘 알기 때문에 비교적 이해하기 편하지만 프로세스는 무엇일까요?
프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말합니다. 또한 여러 프로세스를 하는 작업을 멀티프로세싱이라고도 합니다. 또한 인터넷을 띄어 놓고 한글 작업을 하면서 음악 프로그램도 띄어 놓은 이런 시분할 방식을 멀티태스킹이라고 합니다.
조금 더 쉽게 설명해 보도록 하겠습니다. Chrome이라는 프로그램을 더블클릭하게 되면 창이 하나 뜨게 되죠? 띄어 놓은 창을 하나의 프로세스라고 볼 수 있습니다. 또한 + 표시를 누르게 된다면 또 다른 창을 열 수 있는 데요. 이는 또 다른 프로세스를 하는 것으로 볼 수 있습니다.
즉, 이렇게 메모리에 적재되어 있는 프로그램을 프로세스라고 생각하면 이해하기 편합니다.
아래는 프로세스의 상태입니다. 여러 가지 프로세스의 상태가 있는데요. 프로세스의 상태라는 것은 명령어가 메모리에 적재되었다는 것입니다.
-
생성(create) : 프로세스가 생성되는 중
-
실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있음
-
준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리며 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당 받음
-
대기(waiting) : 보류(block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말함
-
종료(terminated) : 프로세스의 실행이 종료되었음
이와 같은 상태로 프로세스를 확인합니다. tasklist 같은 명령으로 확인할 수 있으니 찾아보세요~
프로세서(Processor)는 무엇인가?
그렇다면 프로세서와 프로세스의 차이는 무엇인가? 단어가 비슷하기 때문에 혼동되실 수 있겠지만 구분하면 어렵지 않습니다.
정의 먼저 말씀드리겠습니다.
프로세서는 위에 프로그램들이 실행할 수 있도록 해주는 하드웨어입니다. 컴퓨터에 CPU가 프로세서라고 보통 많이 하죠. (intel Core i-7, AMD CPU 등)
마이크로프로세서, 네트워크 프로세서 등 분류를 한다면 여러 가지의 프로세서가 있습니다.
간략하게 프로그램, 프로세스, 프로세서에 대하여 구분을 해보고 정리해 보았는데요. 앞으로 운영체제를 더 깊게 공부하면서 추가하고 수정할 부분은 수정하겠습니다. 감사합니다.
반응형'운영체제' 카테고리의 다른 글
폴링(Polling) vs 인터럽트(Interrupt) (0) 2020.05.18 컴퓨터 시스템 정리 (분산 시스템, 병렬 시스템, 클러스터 시스템, Real-Time 시스템, Handled 시스템) (0) 2020.04.20 프로세스의 상태 총 정리 (Process Status) (1) 2020.04.19 PCB(Process Control Block)는 무엇일까? 어디서 쓰나? (0) 2020.04.10 -