본문 바로가기
컴퓨터공학/운영체제

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

by Daniel.kwak 2018. 10. 24.

목표

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



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


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


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

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

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

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

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



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


'컴퓨터공학 > 운영체제' 카테고리의 다른 글

메모리 관리 전략(1)  (0) 2018.10.27
프로세스 동기화(뮤텍스,세마포어,임계구역)  (0) 2018.10.26
DeadLock(교착상태)  (0) 2018.10.25
CPU 스케쥴링 알고리즘  (0) 2018.10.24
쓰레드  (0) 2018.10.24
프로세스(Process)  (0) 2018.10.24