2021. 2. 23. 19:56ㆍComputer(인강)/운영체제
안녕하세요 bannavi에요^ㅅ^
오늘은 스레드의 장단점을 살펴보겠습니다!
Thread 장점1
1. 사용자에 대한 응답성 향상
2. 자원 효율
- IPC 기법과 같이, 프로세스간 (자원 공유를 위한) 번거로운 작업이 필요 없음
- 프로세스 안에 있으므로, 프로세스의 데이터에 모두 접근 가능
3. 작업이 분리되어 코드가 간결하다
- 사실 작성하기 나름
Thread의 단점
1. 스레드 중 한 스레드만 문제가 있어도, 전체 프로세스가 영향을 받음
2. 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능 저하
- 예: 리눅스 OS에서는 Thread를 Process와 같이 다룸
스레드를 많이 생성하면 모든 스레드를 스케쥴링 해야 하므로, Context Switching이 빈번할 수밖에 없음.
스레드와 프로세스의 비교
- 프로세스는 독립적, 스레드는 프로세스의 서브셋
- 프로세스는 각각 독립적인 자원을 가짐, 스레드는 프로세스 자원 공유
- 프로세스는 자신만의 주소영역을 가짐, 스레드는 주소영역 공유
- 프로세스간에는 IPC 기법으로 통신해야 함, 스레드는 필요 없음
PThread
스레드는 뭘로 코드에서 만드느냐..
-POSIX 스레드(POSIX Threads, 약어:PThread)
- Thread 관련 표준 API
정리
Thread 개념 정리
- 프로세스와 달리 스레드간 자원 공유
스레드 장점
- CPU 활용도를 높이고
- 성능 개선 가능
- 응답성 향상
- 자원 공유 효율(IPC를 안써도 됨)
스레드 단점
- 하나의 스레드에서 발생한 문제가, 프로세스 전반에 영향을 미침
- 여러 스레드 생성시 성능 저하 가능
'Computer(인강) > 운영체제' 카테고리의 다른 글
세마포어 (0) | 2021.02.25 |
---|---|
스레드 동기화 문제 (0) | 2021.02.25 |
스레드 개념 (0) | 2021.02.23 |
프로세스 총정리와 프로그램 성능 개선 방법의 이해 (0) | 2021.02.23 |
참고_IPC 기법2 (0) | 2021.02.23 |