프로세스와 스레드의 차이점 | 프로세스 대 스레드

Anonim

프로세스 대 스레드

컴퓨터가 한 번에 둘 이상의 활동을 수행 할 수 있도록하기 위해 프로세스와 스레드 모두 훌륭한 서비스를 제공하지만 작동하는 방식에는 차이가 있습니다. 컴퓨터에서 실행되는 모든 프로그램은 적어도 하나의 프로세스 또는 스레드를 사용합니다. 프로세스와 스레드는 컴퓨터 자원을 공유하면서 프로세서가 여러 작업 사이를 원활하게 전환 할 수있게합니다. 따라서 성능이 우수한 프로세서를 만드는 데 효율적인 방법으로 스레드와 프로세스를 사용하는 것은 프로그래머의 의무입니다. 스레드 및 프로세스의 구현은 사용 가능한 운영 체제에 따라 다릅니다.

프로세스 란 무엇입니까? 일반적으로 프로세스는 특정 결과를 얻기위한 연속적인 일련의 동작입니다. 그러나 컴퓨터 세계에서 프로세스는 실행중인 컴퓨터 프로그램의 인스턴스입니다.

즉, 실행중인 컴퓨터 프로그램이 한 번 발생한다는 개념입니다. 단순히 프로세스는 하나 이상의 스레드를 포함하는 바이너리를 실행합니다.

프로세스와 관련된 스레드의 수에 따라 두 가지 유형의 프로세스가 있습니다. 단일 스레드 프로세스 및 다중 스레드 프로세스입니다. 이름에서 알 수 있듯이 단일 스레드 프로세스 는 스레드가 하나 뿐인 프로세스입니다. 따라서이 스레드는 프로세스이며 하나의 작업 만 발생합니다.

다중 스레드 프로세스 에는 스레드가 두 개 이상 있으며 두 개 이상의 활동이 발생하고 있습니다.

두 개 이상의 프로세스가 프로세스 간 통신을 사용하여 서로 통신 할 수 있습니다. 그러나 그것은 매우 어려우며 더 많은 자원이 필요합니다. 새로운 프로세스를 만들 때 프로그래머는 두 가지 작업을 수행해야합니다. 그것들은 부모 프로세스의 중복과 새로운 프로세스를위한 메모리와 리소스의 할당입니다. 그래서 이것은 정말로 비싸다. 스레드 란 무엇입니까? IT 세상에서 스레드는 독립적으로 스케줄에 따라 관리 할 수있는 컴퓨터 프로그램의 명령어 실행을 가장 적게 수행합니다.

스레드는

프로세스 내에서 간단한 실행 경로입니다.

스레드는 프로세스가 할 수있는 모든 것을 할 수 있기 때문에 프로세스만큼 강력합니다. 스레드는 경량 프로세스이므로 필요한 리소스가 적습니다. 스레드는 동일한 변수와 데이터 구조 변수를 읽고 쓸 수 있습니다. 스레드는 스레드간에 쉽게 통신 할 수 있습니다.

오늘날 멀티 스레딩은 많은 문제에 대한 자연스러운 접근 방식이되었습니다. 큰 작업은 부분으로 나뉘며 각 부분은 스레드라는 실행 단위에 할당됩니다. 이것은 단순히 멀티 스레딩입니다.스레드는 한 번에 다른 스레드가 수정하는 데이터 구조를 공유하기 때문에 스레드가 동일한 주소 공간을 공유하기 때문에 신중한 프로그래밍이 필요합니다. 스레드의 또 다른 장점은 스레드가 병렬 처리를 효율적이고 효과적으로 수행 할 수 있다는 점입니다. 스레드가 독립적으로 스케줄 가능한 엔티티이므로 다중 스레드가 다중 프로세서에서 실행되도록함으로써 시스템의 처리량을 증가시킬 수 있습니다. 스레드 스레딩 프로세스와 스레드의 차이점은 무엇입니까? • 프로세스는 부모 프로세스와 메모리 할당의 복제가 필요하기 때문에 작성하기가 어렵지만 별도의 주소 공간이 필요하지 않으므로 스레드를 쉽게 생성 할 수 있습니다. • 스레드는 응용 프로그램 실행과 같이 가중치가 큰 작업에 프로세스가 사용되는 동안 간단한 작업에 사용됩니다.

• 프로세스는 동일한 주소 공간을 공유하지 않지만 동일한 프로세스 내의 스레드는 동일한 주소 공간을 공유합니다. 프로세스는 서로 독립적이지만 스레드는 동일한 주소 공간을 공유하므로 상호 종속적입니다.

• 프로세스는 여러 스레드로 구성 될 수 있습니다.

• 스레드는 동일한 주소 공간을 공유하기 때문에 가상 메모리는 프로세스에만 연결되지만 스레드와는 연결되지 않습니다. 그러나 별개의 가상화 된 프로세서는 모든 스레드와 관련되어 있습니다.

• 각 프로세스는 자체 코드와 데이터를 가지고 있지만 프로세스의 스레드는 동일한 코드와 데이터를 공유합니다.

• 모든 프로세스는 기본 스레드로 시작하지만 필요한 경우 추가 스레드를 작성할 수 있습니다. 프로세스 간의 컨텍스트 전환은 동일한 프로세스의 스레드 간 컨텍스트 전환보다 훨씬 느립니다. 스레드는 데이터 세그먼트에 직접 액세스 할 수 있지만 프로세스에는 자체 데이터 세그먼트 사본이 있습니다.

• 프로세스에는 오버 헤드가 있지만 스레드는 포함되지 않습니다.

요약:

프로세스와 스레드

프로세스와 스레드는 프로세서와 컴퓨터에서 명령의 실행을 효율적이고 효과적으로 제어하기 위해 프로그래머가 사용하는 두 가지 기술입니다. 프로세스는 여러 스레드를 포함 할 수 있습니다. 스레드는 프로세스보다 여러 번 실행되지만 메모리를 공유하는 효율적인 방법을 제공합니다. 따라서 스레드는 여러 프로세스의 대안입니다. 멀티 코어 프로세서에 대한 추세가 커짐에 따라 스레드는 프로그래머 세계에서 가장 중요한 도구가 될 것입니다.

이미지 예식:

Mattias의 mutithreading의 예. 캠프 (CC BY 2. 0)