Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- LongestPalindromicSubstring
- 기술적 채무
- 프로그래머스
- 블린이
- 김태강
- 알고리즘
- 리트코드
- 와썹맨
- mysql #numa #swap #memory
- 아마조니언
- Dynamic Programmin
- 리스트의 리스트
- minimum path sum
- leetcode
- 규칙없음
- No Rules Rules
- list of list
- 파이썬
- 삼성인 아마조니언 되다
- 나는 아마존에서 미래를 다녔다
- Unique Paths
- BFS
- Envoy
- 트리
- 동적 프로그래밍
- 그거봤어?
- Python
- 독후감
- 삼성역량테스트
- technical debt
Archives
- Today
- Total
개발자가 되고 싶은 준개발자
멀티 프로세스와 멀티 스레드 장단점 정리 본문
개념
- 프로세스: 실행 중인 프로그램 (메모리에 올라와 실행되고 있는 프로그램의 인스턴스)
- dual-core는 2개의 프로세스까지 동시에 돌릴 수 있음!
- 스레드: 프로세스의 작업 실행 단위
- "Threads let us define a set of tasks that run concurrently while the code for each task is sequential. Each thread behaves as if it has its own dedicated processor"
- "A thread is a single execution sequence that represents a separately schedulable task"
실행 방식 비교
- 프로세스
- 컨텍스트 스위치: CPU 스케줄러가 인터럽트 발생 시 현재 프로세스의 상태를 PCB(Process Control Block)에 저장하고, 새로운 프로세스의 상태를 레지스터에 저장
- 인터럽트의 종류: I/O Request, Time Slice Expired, Fork Child
- 컨텍스트 스위칭 할때 CPU는 아무런 작업을 못 하므로 잦은 컨텍스트 스위치는 성능 저하를 야기함
- 자원을 공유하지 않기에 서로 간 통신이 멀티 스레드보다 불편
- 컨텍스트 스위치: CPU 스케줄러가 인터럽트 발생 시 현재 프로세스의 상태를 PCB(Process Control Block)에 저장하고, 새로운 프로세스의 상태를 레지스터에 저장
- 스레드
- 스레드는 프로세스 내에서 스택만 따로 할당 받고, code, data, heap 영역은 공유 (스택은 함수 호출 정보를 저장하므로 실행 흐름 관리 차원에서 분리)
장단점
- 멀티 프로세스
- +
- 안정적임
- 메모리 침범에 의한 문제를 OS 차원에서 해결해 줌
- 하나의 프로세스가 비정상적으로 종료되어도 다른 프로세스가 영향을 받지 않음
- 안정적임
- -
- 컨텍스트 스위칭 비용이 비쌈
- 프로세스 간 자원이 공유되지 않으므로 통신이 불편
- 자원 공유를 위해 별도의 IPC(Inter-Process Communication)을 구현해야 함
- +
- 멀티 스레드
- +
- 스택 영역만 컨텍스트 스위칭이 일어나므로 멀티 프로세스보다 컨텍스트 스위칭 비용이 적음
- 자원을 공유하므로 메모리 낭비가 적음
- -
- 데이터 동기화를 해야 함 (semaphore, lock...)
- 하나의 스레드가 비정상적으로 종료 시, 다른 스레드도 종료될 수 있음
- +
관련 개념
- 스레드 풀
- 스레드를 미리 만들어 둠
- 작업이 들어올 때마다 작업 큐에 넣고, 작업을 스레드에 매핑 시킴
- +
- 스레드 생성 / 제거 비용을 줄일 수 있음
- -
- 작업량에 알맞은 개수의 스레드를 만들어야 함 (노는 스레드 생길 수 있음)
- 스레드 또한 메모리 차지함
참고
blog.daum.net/creazier/15309341
[펌] 멀티 프로세스 / 멀티 쓰레드 / 멀티 플렉싱 기법의 장점과 단점
-------------------------------------------------------------------------------------------------- 출처: http://www.gpgstudy.com/forum/viewtopic.php?t=21259 (myevan님 답변) 빗자루네 http://www.myev..
blog.daum.net