- 프로세스는 메모리 상에서 실행중인 프로그램, 스레드는 이 프로세스 안에서 실행되는 흐름 단위이다
- 프로세스는 최소 하나의 스레드를 갖고있고 별도의 주소공간을 독립적으로 할당받는다(code, data, heap. stack)
- 스레드는 stack만 따로 할당받고 나머지 영역은 스레드끼리 공유 → 컨텐스트 스위칭시 캐시 적중률 증가
프로세스의 문제점
- 프로세스 생성에 큰 오버해드가 있다. ( 프로세스를 생성할때 많은 시간이 소요된다.)
- 컨텍스트 스위칭시 캐시 적중률이 낮다(프로세스 전체를 전환해야돼서)
- 프로세스 사이에 통신이 어렵다(IPC(Inter Process Communication))
스레드의 출현 목적
- 프로세스보다 크기가 작은 실행 단위 필요
- 프로세스의 생성 및 소멸에 따른 오버헤드 감소
- 빠른 컨텍스트 스위칭
- 프로세스들의 통신 시간, 통신 방법 어려움 해소
프로그램 → 프로세스 과정
- 프로그램이 메모리에 올라간다(인스턴스화)