2014년 1월 8일 수요일

[프로그래밍 기초] 프로그램, 프로세스, 쓰레드란 어떻게 구별될까요?

쓰레드(Thread)란 무엇일까요?

이것을 이해하기 위해서는 선 개념이 필요합니다.

프로그램이란? 프로세스란? 쓰레드란? 입니다.

우리가 일반적으로 말하는 프로그램은 컴퓨터에서 실행되는

하나의 소프트웨어를 말하는 것입니다.  (메모장, 파워포인트,한글,워드 등)

그럼 프로세스란 무엇일까요? 소프트웨어에서 독립적인 기능을 수행하는

작은 프로그램단위입니다. 즉 엄밀히 말하자면

하나의 프로세스로도 독립적인 프로그램으로 구성할 수 있습니다.

마지막으로 쓰레드란 무엇일까요?

앞에서 말한 프로세스내에서 수행되는 가장 작은 실행 단위를 말합니다.


연관지어 설명하면 일반적으로 하나의 프로그램은

한개 이상의 프로세스로 구성되어 있으며,

하나의 프로세스는 한 개 이상의 프로세스로 구성될 수 있으며,

하나의 프로세스는 한 개 이상의 쓰레드로 구성됩니다.


캡쳐프로그램의 대명사인 스내그잇 프로그램을 예를 들어보면

스내그잇은 크게 3개의 프로세스를 가지고 있습니다.

작업관리자를 살펴보면 실행되고 있는 프로세스를 볼 수 있습니다.


이 각각은 또 작은 프로세스를 가지고 있습니다.

라이브러리 형태의 프로세스가 대표적인 예가 되겠습니다.

라이브러리 형태의 프로세스는 다른 프로세스에 의해 실행되며

작업관리자에는 나타나지 않습니다.

따라서 각각의 메뉴는 또 작은 프로세스로 구성되어 있다고 할 수 있습니다.



빨간색의 버튼을 클릭하는 순간 캡쳐 프로세스가 작동을 하고,

이는  또 다시 여러개의 작은 작업단위(쓰레드)로 쪼개어져 각각의 일을 수행합니다.



하나의 쓰레드는 좌표값을 열심히 조사합니다.

하나의 쓰레드는 열심히 화면을 업데이트합니다.

하나의 쓰레드는 좌표가 있는 곳의 이미지를 확대하여 보여줍니다.

이처럼 쓰레드들이 각각의 기능을 수행하여 하나의 프로세스를 완성하는 것입니다.

실제로 보면 프로세스는 동네를 구분짓는 울타리라고 볼 수 있죠.

실제로 일은 쓰레드가 하는 것이죠!!!!

쓰레드는 그 태생부터가 멀티태스킹을 위해 존재하는

가장 작은 실제 작업 단위라고 보시면 됩니다.

댓글 없음:

댓글 쓰기