CS
Process 와 Thread
midcon
2023. 10. 5. 13:35
프로세스와 쓰레드
프로그램은 어떤 작업을 위해 실행할 수 있는 파일이다.
실행한 프로그램 하나하나가 프로세스라고 할 수 있다. 아래 그림을 참고하자.
전용 공간
프로세스가 OS로 부터 할당 받은 메모리
프로세스
프로세스는 메모리 상에서 실행중인 프로그램이며, OS로 부터 자신만의 메모리와 자원을 할당받아 사용한다.
쓰레드
쓰레드는 한 프로세스 안에서 실행되는 각각의 흐름 단위를 말한다.
프로세스가 할당받은 메모리와 자원으로 다른 쓰레드들과 이를 공유하면서 사용한다.
프로세스와 쓰레드의 비교
위 그림을 보면 프로세스는 가족이고 할당받은 메모리 및 자원은 집이고 쓰레드는 가족 구성원이다.
- 가족(프로세스) 내부에는 구성원(쓰레드)들이 들어있고 이 구성원(쓰레드)들은 개별적으로 활동한다.
- 가족(프로세스)은 구성원(쓰레드)끼리 집 내부 공간(메모리 및 자원)을 공유한다.
- 하지만 서로 다른 가족(프로세스)끼리는 집 내부 공간(메모리 및 자원)을 공유하지 않는다.
프로세스와 스레드의 가장 큰 차이점은 프로세스끼리는 자원을 공유하지 않지만 스레드끼리는 자원을 공유한다는 점이다.
참고자료)