2018. 4. 18. 00:12ㆍNews/ㄴ Programming Issue
멀티 쓰레딩과 싱글 쓰레딩의 차이
▲ 쓰레드가 무엇인지 한 눈에 파악가능하다
다중 처리 및 다중 스레드는 시스템에 성능을 추가합니다. 멀티 프로세싱 은 더 많은 CPU 또는 프로세서를 시스템에 추가함으로써 시스템의 컴퓨팅 속도를 향상시킵니다. 멀티 스레딩은 프로세스가 시스템의 응답 성을 높이는 스레드를 더 많이 생성 할 수있게합니다. 아래에 표시된 비교 차트의 도움으로 논의한 멀티 프로세싱과 멀티 스레딩 사이에 다른 점이 몇 가지 있습니다.
비교 차트
/ | 다중 처리 | 멀티 스레딩 |
---|---|---|
기본 | 멀티 프로세싱은 CPU를 추가하여 컴퓨팅 성능을 향상시킵니다. | 멀티 스레딩은 단일 프로세스의 다중 스레드를 만들어 컴퓨팅 성능을 향상시킵니다. |
실행 | 여러 프로세스가 동시에 실행됩니다. | 단일 프로세스의 여러 스레드가 동시에 실행됩니다. |
창조 | 프로세스 생성은 시간 소모적이며 리소스 집약적입니다. | 쓰레드 생성은 감지 시간과 자원 모두에서 경제적입니다. |
분류 | 다중 처리는 대칭 또는 비대칭 일 수 있습니다. | 멀티 스레딩은 분류되지 않습니다. |
다중 처리의 정의
다중 처리 시스템은 두 개 이상의 프로세서를 가진 시스템입니다. 시스템의 컴퓨팅 속도를 높이기 위해 CPU가 시스템에 추가됩니다. 각 CPU에는 고유 한 레지스터 및 주 메모리 세트가 있습니다. CPU가 분리되어 있기 때문에 하나의 CPU가 처리 할 항목이 없어야하고 유휴 상태 일 수 있고 다른 프로세스가 프로세스에 과부하가 걸릴 수 있습니다. 이러한 경우 프로세스와 리소스는 프로세서간에 동적으로 공유됩니다.
다중 처리는 대칭 다중 처리 및 비대칭 다중 처리 로 분류 할 수 있습니다 . 대칭 다중 처리에서 모든 프로세서는 시스템의 모든 프로세스를 자유롭게 실행할 수 있습니다. 비대칭 멀티 프로세싱에서는 프로세서간에 마스터 - 슬레이브 관계가 있습니다. 마스터 프로세서는 슬레이브 프로세서에 프로세스를 할당합니다.
프로세서에 메모리 컨트롤러 가 내장 된 경우 프로세서 를 추가하면 시스템의 주소 지정 가능한 메모리가 증가합니다. 다중 처리는 메모리 액세스 모델을 균일 한 메모리 액세스 에서 불균일 한 메모리 액세스 로 변경할 수 있습니다 . 일정한 메모리 액세스는 프로세서에서 RAM에 액세스하는 데 소요되는 시간이 같습니다. 반면, 비 균일 메모리 액세스는 다른 부분보다 메모리의 일부분에 액세스하는 데 더 많은 시간을 필요로합니다.
멀티 스레딩의 정의
멀티 스레딩은 프로세스의 컨텍스트 내에서 단일 프로세스의 여러 스레드를 동시에 실행하는 것입니다. 이제 스레드가 무엇인지에 대해 먼저 논의 해 보겠습니다. 스레드 프로세스의 자체 스레드 ID, 프로그램 카운터, 레지스터 스택을 가지고 독립적으로 실행할 수있는 프로세스의 코드 세그먼트를 의미한다. 그러나 동일한 프로세스에 속하는 스레드는 코드, 데이터 및 시스템 자원과 같은 프로세스의 소유물을 공유해야합니다. 각 서비스 요청에 대해 별도의 프로세스를 작성하면 시간을 소비하고 시스템 자원을 소모합니다. 이 오버 헤드가 발생하는 대신 프로세스의 스레드를 만드는 것이 더 효율적입니다.
멀티 스레딩 개념을 이해하려면 워드 프로세서를 예로 들어 보겠습니다 . 워드 프로세서는 그래픽을 표시하고 키 입력에 응답하며 철자 및 문법 검사를 계속합니다. 이 작업을 동시에 수행하기 위해 다른 워드 프로세서를 열 필요는 없습니다. 하나의 워드 프로세서에서 여러 스레드를 통해 발생합니다.
이제 멀티 스레딩의 이점을 고려해 보겠습니다. 멀티 스레딩 은 프로세스의 한 스레드가 차단되거나 긴 작업을 수행하는 것처럼 응답 을 증가 시키지만 프로세스는 계속됩니다. 다중 스레드의 두 번째 이점은 프로세스의 여러 스레드가 동일한 주소 공간에서 동일한 코드 및 데이터를 공유 하므로 자원 공유 입니다.
쓰레드를 생성하는 것은 그들이 속한 프로세스의 코드와 데이터를 공유하기 때문에 경제적입니다. 따라서 시스템은 각 스레드에 대해 개별적으로 자원을 할당 할 필요가 없습니다. 다중 처리 운영 체제에서 다중 스레드를 늘릴 수 있습니다 . 다중 CPU에서의 멀티 스레딩은 병렬 처리를 증가시킵니다.
멀티 프로세싱과 멀티 스레딩의 주요 차이점
- 멀티 프로세싱과 멀티 스레딩의 주요 차이점은 멀티 프로세싱을 사용하면 시스템에 2 개 이상의 CPU가 추가되는 반면 멀티 스레딩을 사용하면 프로세스가 여러 스레드를 생성하여 시스템의 컴퓨팅 속도를 높일 수 있다는 것입니다.
- 다중 처리 시스템은 동시에 여러 프로세스를 실행 하지만, 다중 스레드 시스템 은 프로세스의 여러 스레드 를 동시에 실행합니다.
- 프로세스를 생성 할 수 있습니다 시간을 소비 하고 심지어 배출 시스템 자원을. 그러나 스레드를 생성 하는 것은 동일한 프로세스에 속한 스레드가 해당 프로세스의 소품을 공유하므로 경제적 입니다.
- 멀티 프로세싱은 대칭 멀티 프로세싱 과 비대칭 멀티 프로세싱 으로 분류 할 수 있지만 멀티 스레딩은 더 이상 분류되지 않습니다.
결론:
멀티 프로세싱 시스템에서 멀티 스레딩이 병렬 처리를 증가 시키므로 멀티 프로세싱 환경에서 멀티 스레딩의 이점을 점차적으로 높일 수 있습니다.
'News > ㄴ Programming Issue' 카테고리의 다른 글
[Programming] 멀티 쓰레딩과 멀티 프로세싱의 차이 (0) | 2018.04.18 |
---|---|
[Programming] Visual Studio Code 소스코드 정렬 단축키 (0) | 2018.03.21 |