본문 바로가기
기타

쓰레드

by oncerun 2021. 3. 16.
반응형

 

다중 프로세싱 시스템에서 기본적인 처리 단위는 프로세스라고 할 수 있다.

즉 프로세스를 처리의 기본 단위로 하는 시스템의 경우 하나의 프로그램을 수행하기 위해여 하나의 주소 공간과 그 주소 공간 내에서 하나의 제어 흐름으로 구성되는 프로세스를 사용하게 되는데, 프로세스 내에서 프로그램이 수행되기 위해서는 많은 양의 상태 정보를 초기화하고 관리해야 한다. 또한 프로세스가 실행 단위가 된다는 것은 실행 시간 안에 하나의 실행점만이 존재함을 의미하며, 단일 프로세스 내에서 동시처리, 즉 병렬 처리가 불가능하다는 것을 나타낸다.

 

 

스레드(thread)는 프로세스 내에서 다중처리를 위하여 제안된 개념으로 실행 단위를 프로세스에서 한 단계 낮추어 규정한 것이다.

 

특히 프로세스는 운영 체제로부터 자원을 소유하는 단위로 구별되며, 스레드는 디스패칭의 단위로 구분되어 사용된다. 

스레드는 제어의 흐름을 의미하며 프로세스에서 실행의 개념만을 분리한 것으로 실행에 필요한 최소한의 정보만을 가지고 프로그램 수행 시 자신이 속해 있는 프로세스의 실행환경을 공유한다.

 

우리가 보통 사용하는 프로그램들은 하나의 프로세스가 하나의 스레드를 갖는 형태이나, 처리효율을 극대화하는 방법으로 프로세스 내에서 병렬적 수행을 위해서 다중 쓰레딩 (multithreading)을 사용한다.

 

따라서 스레드란 하나의 프로그램 내에서 제어의 단일 순차적 흐름으로 정의되며, 하나의 스레드 내에서는 하나의 실행점만이 존재하고, 각 스레드는 프로그램 카운터, 스택, 스레드 관리 정보 등과 같은 수행에 필요한 최소한의 정보만으로 구성된다. 

 

요즘처럼 컴퓨터에 여러 개의 CPU가 있거나 CPU에 여러 개의 코어가 있는 경우라면 다중 스레드를 병렬로 처리할 수 있다.

 

만약 다중 스레드 각각의 역할이 계산, 입력, 백업, 등 처리 속도가 다른 경우에 해당되는 작업을 처리하게 될 경우에는 속도가 느린 작업 때문에 다른 작업들이 기다릴 필요 없이 효율적으로 처리가 가능하다.

 

프로그램을 프로세스 단위로 처리하기 위해 동작시켰다면 운영체제에서 프로세스가 실행되기 위한 자원을 할당받는다. 프로세스 안에서 멀티 쓰레딩이 되어 있다면 각각의 스레드들은 프로세스가 할당받은 자원을 공유 혹은 할당받아서 각자의 실행을 실행함으로써 효율적인 자원 사용이 가능하다는 것이다.

반응형

'기타' 카테고리의 다른 글

Use Case Diagram...(UML)  (0) 2021.05.14
지능형 엣지 컴퓨팅  (0) 2021.04.13
Web의 발전과 상식  (0) 2021.02.10
컴퓨터의 병렬처리 시스템  (0) 2020.11.04
프로그래밍 언어의 기본 공통 개념  (0) 2020.10.26

댓글