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

2019. 10. 13. 18:24임베디드/운영체제

1. 프로세스는 자원을 할당받는 작업의 단위, 스레드는 자원을 이용하는 실행의 단위다. 즉 프로세스가 운영체제로부터 할당받은 자원을 내부 스레드가 공유하면서 사용하는 구조다

2. 스레드 통신은 프로세스 통신 IPC보다 시스템 콜과 통신 비용이 줄어든다는 장점이 있다(사용자 응답성 향상). 프로세스 통신에서는 context switching이 반복되는데 캐쉬 메모리 초기화 등 무거운 작업 등이 진행되고 이는 오버헤드(추가적으로 발생하는 시간) 발생을 유발한다

3. 같은 처리를 반복한다면 fork를 하기 보다는 스레드를 이용하는 것이 보다 효율적이다

4. 다만 전역변수를 스레드끼리는 공유할 때는 동기화 문제에 신경써야 한다

5. 스레드 생성시 힙, data, code 영역은 공유하지만 각 스레드만의 stack과 레지스터가 생성된다

'임베디드 > 운영체제' 카테고리의 다른 글

스레드의 장단점  (0) 2019.10.13
멀티프로세싱과 스레드  (0) 2019.10.13
사용자 모드와 커널 모드  (0) 2019.10.09
paging system에서 CPU가 물리주소에 접근하는 과정  (0) 2019.06.08
선점형 커널  (0) 2019.06.05