The Boxer
프로세스 vs 쓰레드 본문
728x90
반응형
[프로세스(Process)]
정의 : 컴퓨터에서 연속적으로 실행되고 있는 프로그램
메모리상에서 실행되는 코드
특징
- 프로세스는 실행시 Code, Data, Stack, Heap의 독립된 메모리 영역을 할당 받음
- 중앙처리장치(CPU)가 돌면서 여러 프로세스를 처리(멀티 프로그래밍)
- 프로세스를 회전하면서 프로세스의 상태(Context)를 저장하고 실행시 다시 불러옴(Context Switching)
- 프로세스는 독립된 메모리 영역을 차지하므로 Context Switching에 오버헤드가 발생함
[쓰레드(Thread)]
정의 : 프로세스에서 동작하는 여러 실행의 흐름
프로세스는 최소 1개 이상의 쓰레드를 소유
하나의 프로그램에서 여러개의 태스킹을 동시에 실행할때 스레드를 사용
가령 게임에서 여러 캐릭터들이 동시에 움직이는 것을 생각할 수 있음
특징
- 쓰레드는 각각 Stack만 할당받고 Code, Data, Heap은 한 프로세스 안에서 공유함
- 프로세스별 병렬처리가 가능하여 빠른 응답시간(멀티 프로세싱)
- Context Switching에 드는 소모가 적음
- 쓰레드 간에 사용하는 자원(데이터, 변수, 메소드...)에 대해 충돌이 발생할 수 있음
[참고 자료]
https://magi82.github.io/process-thread/
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
스레드와 멀티-프로세싱, 프로그래밍, 태스킹, 스레딩의 개념 (0) | 2018.11.01 |
---|---|
물리적 스레드 vs 논리적 스레드 (1) | 2018.11.01 |
동시성 vs 병렬성 (0) | 2018.10.25 |
Comments