컴퓨터공학/운영체제

프로세스와 쓰레드의 차이점

Daniel.kwak 2018. 10. 24. 20:27

목표

1.프로세스와 쓰레드의 차이점에 대해 알아본다.



프로세스와 쓰레드의 차이점


<프로세스와 쓰레드의 메모리 구조>


위 메모리 구조는 프로세스와 쓰레드의 차이점을 보여준다. 

1.프로세스는 새로 생성될 때 마다 새로운 PCB를 생성하여 자칫 overhead가 발생할 위험이 있지만, 쓰레드는 프로세스 내에서 생성되고, <쓰레드> 편에서 살펴봤듯이 프로세스 자원을 공유하면서 통신도 가능하므로 경제적이다.

2.프로세스와 쓰레드의 차이점에 대한 질문은 결국 OS가 멀티 프로세스 방식과 멀티 쓰레드로 진행할 경우 자원할당을 어떻게 하고, 어떤 상황일 때 얼마나 더 효과적이겠는가에 대한 질문이기도 하다.

3.멀티 프로세스 방식에 비해 멀티 쓰레드 방식은 프로세스를 생성하여 자원을 할당하는 낭비를 줄일 수 있고, IPC같은 별도의 통신장치를 쓰지 않아도 되며, 스케쥴링 관점에서도 쓰레드가 훨씬 Context Switching이 빠르다. ->보다 효율적인 시스템을 위해서 멀티 쓰레드를 선호한다.  

4.다만, 멀티 쓰레드 방식은 프로세스의 메모리와 코드 영역등을 공유하므로, 자원에 대한 동기화 문제를 신경써야 한다. 



참고
https://brunch.co.kr/@kd4/3