본문 바로가기
컴퓨터 & IT (Computer & IT)/컴퓨터 구조

[컴퓨터 구조] Process vs Thread

by Physics 2023. 6. 14.
728x90

실행단위: CPU 코어에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 
프로세스: 하나의 스레드만 가지고 있는 단일 스레드 프로세스
동시성- 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 

프로세스가 실행될 때 발생하는 일 
(1) 프로그램 (소스코드)들이 필요로 하는 정보들*이 메모리에 올라감
*code: 실행 명령을 포함하는 코드, Data: static/global 변수, Heap: 동적 메모리, Stack: 지역변수, 매개변수 등의 일시적 데이터 
(2) 해당 프로세스에 대한 정보를 담고 있는 PCB(Process Control Block) 블럭이 프로세스의 생성과 동시에 만들어짐 

쓰레드: 경량화된 프로세스
- 하나의 프로세스에 다수의 쓰레드가 있는 경우, 쓰레드들 간에는 부모 프로세스를 통해 공유되는 자원들이 있다. 즉, 코드, 데이터, 힙 영역을 공통된 자원으로 사용을 하며, 스택만 별로로 가지게 된. 

멀티 프로세스와 멀티 스레드의 차이점
 (1) 멀티 프로세스: 여러 프로그램들이 동시에 실행이 되는 것 
   - 각 프로세스들은 독립적
   - IPC를 사용한 통신 
   - 자원 소모적, 개별 메모리 차지 
   - Context Switching 비용이 큼 
   - 동기화 작업이 필요하지 않음 
(2) 멀티 쓰레드: 한 프로세스 내에서 여러 개의 쓰레드가 나뉘어져 실행을 하는 것 
   - 쓰레드 간 공유된 자원으로 통신 비용 절감 및 효과적으로 메모리 활용 
   - Context Switching 비용이 적음 
   - 공유 자원을 관리해야 함 

 

 

[1] [10분 테코톡] 🌷 코다의 Process vs Thread - YouTube

728x90

댓글