목표
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 |