멀티 스레드 장점

이찬영·2021년 8월 3일
0

OS

목록 보기
2/35

Responsivencess(응답성)

예를 들어 단일 스레드 환경에서 요청을 하게 되면 해당 요청이 끝날때까지 나는 다른 요청을 할 수 없다.멀티 스레드 환경에서 요청을 하면 해당 요청을 처리하는 스레드사용자 요청을 받는 스레드로 나누어 요청이 끝나지 않더라고 사용자는 계속해서 요청을 처리할 수 있도록 구현할 수 있다.

Resource Sharing(자원 공유)

프로세스는 공유 메모리와 메시지 전달 기법을 통해 자원을 공유하므로 오버헤드가 많이 발생한다. (파일 입출력 통신, 프로그래머에 의해 정해진 규칙대로만 처리 (공유 메모리와 메시지 전달 방법을 찾아보자))
스레드는 자동으로 프로세스의 자원들과 메모리를 공유한다. 코드와 데이터 영역을 공유하는 이점은 같은 주소 공간 내에(같은 프로그램 내) 여러 개의 다른 작업을 하는 스레드를 가질 수 있다.

Economy(경제성)

프로세스를 생성할때 메모리와 자원을 할당하는 동작은 큰 비용이 든다. 스레드는 데이터 및 코드 등 공유하는 영역이 존재하기 때문에 더 적은 메모리와 자원으로 생성할 수 있다. 또한 작은 사이즈의 스레드를 Context Switching하는것은 큰 프로세스를 Context Swithcing하는것보다 오버헤드가 적다.

Scalability(확장성)

멀티 스레드는 멀티 프로세서 환경에서 더 좋은 효율을 낼 수 있다. 스레드는 CPU의 작업 처리 단위라고 했다. 작업을 처리하는 프로세서가 하나라면 여러 개의 스레드가 스케쥴링 되어 하나의 스레드만 CPU에 할당 될것이다.
작업을 처리하는 프로세서가 여러개라면 동시에 여러 스레드를 동작 시킬 수 있으므로 병렬적으로 스레드를 수행할 수 있다.

0개의 댓글