[Programming] 멀티 쓰레딩과 멀티 프로세싱의 차이

2018.04.18 00:12News/ㄴ Programming Issue

멀티 쓰레딩과 싱글 쓰레딩의 차이

▲ 쓰레드가 무엇인지 한 눈에 파악가능하다


멀티 프로세싱 대 멀티 스레딩다중 처리 및 다중 스레드는 시스템에 성능을 추가합니다. 멀티 프로세싱 은 더 많은 CPU 또는 프로세서를 시스템에 추가함으로써 시스템의 컴퓨팅 속도를 향상시킵니다. 멀티 스레딩은 프로세스가 시스템의 응답 성을 높이는 스레드를 더 많이 생성 할 수있게합니다. 아래에 표시된 비교 차트의 도움으로 논의한 멀티 프로세싱과 멀티 스레딩 사이에 다른 점이 몇 가지 있습니다.


비교 차트

/

다중 처리멀티 스레딩
기본멀티 프로세싱은 CPU를 추가하여 컴퓨팅 성능을 향상시킵니다.멀티 스레딩은 단일 프로세스의 다중 스레드를 만들어 컴퓨팅 성능을 향상시킵니다.
실행여러 프로세스가 동시에 실행됩니다.단일 프로세스의 여러 스레드가 동시에 실행됩니다.
창조프로세스 생성은 시간 소모적이며 리소스 집약적입니다.쓰레드 생성은 감지 시간과 자원 모두에서 경제적입니다.
분류다중 처리는 대칭 또는 비대칭 일 수 있습니다.멀티 스레딩은 분류되지 않습니다.


다중 처리의 정의

다중 처리 시스템은 두 개 이상의 프로세서를 가진 시스템입니다. 시스템의 컴퓨팅 속도를 높이기 위해 CPU가 시스템에 추가됩니다. 각 CPU에는 고유 한 레지스터 및 주 메모리 세트가 있습니다. CPU가 분리되어 있기 때문에 하나의 CPU가 처리 할 항목이 없어야하고 유휴 상태 일 수 있고 다른 프로세스가 프로세스에 과부하가 걸릴 수 있습니다. 이러한 경우 프로세스와 리소스는 프로세서간에 동적으로 공유됩니다.다중 처리

다중 처리는 대칭 다중 처리 및 비대칭 다중 처리 로 분류 할 수 있습니다 대칭 다중 처리에서 모든 프로세서는 시스템의 모든 프로세스를 자유롭게 실행할 수 있습니다. 비대칭 멀티 프로세싱에서는 프로세서간에 마스터 - 슬레이브 관계가 있습니다. 마스터 프로세서는 슬레이브 프로세서에 프로세스를 할당합니다.

프로세서에 메모리 컨트롤러 가 내장 된 경우 프로세서 를 추가하면 시스템의 주소 지정 가능한 메모리가 증가합니다. 다중 처리는 메모리 액세스 모델을 균일 한 메모리 액세스 에서 불균일 한 메모리 액세스 로 변경할 수 있습니다 일정한 메모리 액세스는 프로세서에서 RAM에 액세스하는 데 소요되는 시간이 같습니다. 반면, 비 균일 메모리 액세스는 다른 부분보다 메모리의 일부분에 액세스하는 데 더 많은 시간을 필요로합니다.

멀티 스레딩의 정의

멀티 스레딩은 프로세스의 컨텍스트 내에서 단일 프로세스의 여러 스레드를 동시에 실행하는 것입니다. 이제 스레드가 무엇인지에 대해 먼저 논의 해 보겠습니다. 스레드 프로세스의 자체 스레드 ID, 프로그램 카운터, 레지스터 스택을 가지고 독립적으로 실행할 수있는 프로세스의 코드 세그먼트를 의미한다. 그러나 동일한 프로세스에 속하는 스레드는 코드, 데이터 및 시스템 자원과 같은 프로세스의 소유물을 공유해야합니다. 각 서비스 요청에 대해 별도의 프로세스를 작성하면 시간을 소비하고 시스템 자원을 소모합니다. 이 오버 헤드가 발생하는 대신 프로세스의 스레드를 만드는 것이 더 효율적입니다.

멀티 스레딩멀티 스레딩 개념을 이해하려면 워드 프로세서를 예로 들어 보겠습니다 워드 프로세서는 그래픽을 표시하고 키 입력에 응답하며 철자 및 문법 검사를 계속합니다. 이 작업을 동시에 수행하기 위해 다른 워드 프로세서를 열 필요는 없습니다. 하나의 워드 프로세서에서 여러 스레드를 통해 발생합니다.

멀티 스레딩이제 멀티 스레딩의 이점을 고려해 보겠습니다. 멀티 스레딩 은 프로세스의 한 스레드가 차단되거나 긴 작업을 수행하는 것처럼 응답 을 증가 시키지만 프로세스는 계속됩니다. 다중 스레드의 두 번째 이점은 프로세스의 여러 스레드가 동일한 주소 공간에서 동일한 코드 및 데이터를 공유 하므로 자원 공유 입니다.

쓰레드를 생성하는 것은 그들이 속한 프로세스의 코드와 데이터를 공유하기 때문에 경제적입니다. 따라서 시스템은 각 스레드에 대해 개별적으로 자원을 할당 할 필요가 없습니다. 다중 처리 운영 체제에서 다중 스레드를 늘릴 수 있습니다 다중 CPU에서의 멀티 스레딩은 병렬 처리를 증가시킵니다.


멀티 프로세싱과 멀티 스레딩의 주요 차이점

  1. 멀티 프로세싱과 멀티 스레딩의 주요 차이점은 멀티 프로세싱을 사용하면 시스템에 2 개 이상의 CPU가 추가되는 반면 멀티 스레딩을 사용하면 프로세스가 여러 스레드를 생성하여 시스템의 컴퓨팅 속도를 높일 수 있다는 것입니다.
  2. 다중 처리 시스템은 동시에 여러 프로세스를 실행 하지만, 다중 스레드 시스템 은 프로세스의 여러 스레드 를 동시에 실행합니다.
  3. 프로세스를 생성 할 수 있습니다 시간을 소비 하고 심지어 배출 시스템 자원을. 그러나 스레드를 생성 하는 것은 동일한 프로세스에 속한 스레드가 해당 프로세스의 소품을 공유하므로 경제적 입니다.
  4. 멀티 프로세싱은 대칭 멀티 프로세싱 과 비대칭 멀티 프로세싱 으로 분류 할 수 있지만 멀티 스레딩은 더 이상 분류되지 않습니다.

결론:

멀티 프로세싱 시스템에서 멀티 스레딩이 병렬 처리를 증가 시키므로 멀티 프로세싱 환경에서 멀티 스레딩의 이점을 점차적으로 높일 수 있습니다.