비교 차트
비교의 근거 | 다중 처리 | 멀티 스레딩 |
---|---|---|
기본 | 멀티 프로세싱은 CPU를 추가하여 컴퓨팅 성능을 향상시킵니다. | 멀티 스레딩은 단일 프로세스의 여러 스레드를 만들어 컴퓨팅 성능을 향상시킵니다. |
실행 | 여러 프로세스가 동시에 실행됩니다. | 단일 프로세스의 여러 스레드가 동시에 실행됩니다. |
창조 | 프로세스 생성은 시간 소모적이며 리소스 집약적입니다. | 쓰레드 생성은 감지 시간과 자원 모두에서 경제적입니다. |
분류 | 다중 처리는 대칭 또는 비대칭 일 수 있습니다. | 멀티 스레딩은 분류되지 않습니다. |
다중 처리의 정의
다중 처리 시스템은 두 개 이상의 프로세서를 가진 시스템입니다. 시스템의 컴퓨팅 속도를 높이기 위해 CPU가 시스템에 추가됩니다. 각 CPU에는 고유 한 레지스터 세트와 주 메모리가 있습니다. CPU가 분리되어 있기 때문에 하나의 CPU가 처리 할 수있는 아무 것도 없어야하고 유휴 상태 일 수 있으며 다른 프로세서는 프로세스에 과부하가 걸릴 수 있습니다. 이러한 경우 프로세스와 리소스는 프로세서간에 동적으로 공유됩니다.
다중 처리는 대칭 다중 처리 및 비대칭 다중 처리 로 분류 할 수 있습니다. 대칭 다중 처리에서는 모든 프로세서가 시스템의 모든 프로세스를 자유롭게 실행할 수 있습니다. 비대칭 형 멀티 프로세싱에서는 프로세서간에 마스터 - 슬레이브 관계가 있습니다. 마스터 프로세서는 슬레이브 프로세서에 프로세스를 할당합니다.
프로세서에 메모리 컨트롤러 가 내장 된 경우 프로세서를 추가하면 시스템의 메모리 주소가 증가합니다. 다중 처리는 메모리 액세스 모델을 균일 한 메모리 액세스 에서 불균일 한 메모리 액세스 로 변경할 수 있습니다. 균일 한 메모리 액세스는 모든 프로세서에서 모든 RAM에 액세스하는 데 동일한 시간을 소비합니다. 반면에, 비 균일 메모리 액세스는 다른 부분보다 메모리의 일부분에 액세스하는 데 더 많은 시간을 필요로합니다.
멀티 스레딩의 정의
멀티 스레딩은 프로세스의 컨텍스트 내에서 단일 프로세스의 여러 스레드를 동시에 실행하는 것입니다. 이제 스레드가 무엇인지에 대해 먼저 논의 해 보겠습니다. 프로세스의 스레드는 자체 스레드 ID, 프로그램 카운터, 레지스터 및 스택을 가지며 독립적으로 실행할 수있는 프로세스의 코드 세그먼트를 의미합니다. 그러나 동일한 프로세스에 속하는 스레드는 코드, 데이터 및 시스템 자원과 같은 프로세스의 소유물을 공유해야합니다. 각 서비스 요청에 대해 별도의 프로세스를 작성하면 시간을 소비하고 시스템 자원을 소모합니다. 이 오버 헤드가 발생하는 대신 프로세스의 스레드를 만드는 것이 더 효율적입니다.
쓰레드를 생성하는 것은 자신이 속한 프로세스의 코드와 데이터를 공유하므로 경제적 입니다. 따라서 시스템은 각 스레드에 대해 개별적으로 자원을 할당 할 필요가 없습니다. 멀티 프로세싱 운영 체제에서 멀티 스레딩을 늘릴 수 있습니다. 다중 CPU에서의 멀티 스레딩은 병렬 처리를 증가시킵니다.
멀티 프로세싱과 멀티 스레딩의 주요 차이점
- 멀티 프로세싱과 멀티 스레딩의 주요 차이점은 멀티 프로세싱을 사용하면 시스템에 2 개 이상의 CPU가 추가되는 반면 멀티 스레딩을 사용하면 프로세스가 여러 스레드를 생성하여 시스템의 컴퓨팅 속도를 높일 수 있다는 것입니다.
- 다중 처리 시스템은 동시에 여러 프로세스를 실행하지만, 다중 스레드 시스템은 프로세스의 여러 스레드 를 동시에 실행합니다.
- 프로세스를 작성하면 시간 을 소비 하고 시스템 자원을 고갈시킬 수 있습니다 . 그러나 스레드를 생성하는 것은 동일한 프로세스에 속한 스레드가 해당 프로세스의 소품을 공유하므로 경제적 입니다.
- 멀티 프로세싱은 대칭 멀티 프로세싱 과 비대칭 멀티 프로세싱 으로 분류 할 수 있지만 멀티 스레딩은 더 이상 분류되지 않습니다.
결론:
멀티 프로세싱 시스템에서 멀티 스레딩이 병렬 처리를 증가 시키므로 멀티 프로세싱 환경에서 멀티 스레딩의 이점을 점차적으로 증가시킬 수 있습니다.