반응형
프로그램과 프로세스, 쓰레드의 차이점
What is the difference between a Program, a Process and a Thread?
프로그램(Program) : 프로그램은 특정 작업을 수행하기 위한 일련의 명령어 집합이다. 보통 .exe 로 대표되는 실행 파일 등을 말한다. 프로그램은 주 기억장치에 저장되지 않고, 보조 기억장치나 디스크에 저장된다. 프로그램은 주 기억장치(Primary Memory)로 읽혀지고, 커널에 의해 실행된다.
프로세스(Process) : 프로세스는 현재 실행되고 있는 프로그램이다. (프로그램의 인스턴스이다.) 프로세스는 프로그램 코드를 포함한다. 운영 체제에 따라 동시에 실행되는 쓰레드(Threads)들로 이루어져 있다.
쓰레드(Thread) : 쓰레드는 실행되는 프로세스의 가장 작은 단위이다. 운영 체제의 한 부분이 스케쥴러(Scheduler)가 관리하는 프로그램된 명령어의 가장 작은 부분이다.
위의 그림에서 처럼 워드를 예로 들어보자.
워드 실행 파일은 프로그램이 해당한다.
워드 실행 파일을 더블 클릭하여 나타나는 워드는 프로세스에 해당한다. 하나의 프로그램으로 여러 개의 프로세스를 실행할 수 있다.
실행 중인 워드는 여러 개의 쓰레드로 구성된다. 입력을 받는 쓰레드, 인쇄를 진행하는 쓰레드 등으로 구성된다.
참고 자료
1. https://www.quora.com/What-is-difference-between-thread-process-and-program
반응형
댓글