프로세스
운영체제로부터 자원을 할당받는 작업의 단위
메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)
프로세스는 독립된 메모리 영역을 할당받음
스레드
프로세스가 할당받은 자원을 이용하는 실행의 단위
프로세스 내에서 실행되는 여러 흐름의 단위
스레드끼리는 코드, 데이터, 힙을 공유하고 스택만 따로 할당받는다.
스레드 사이의 작업량이 작아 Context Switching이 빠르다
Context Switching
- 하나의 프로세스가 CPU를 사용 중인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해, 이전의 프로세스의 상태를 보관하고 새로운 프로세스의 상태를 적재하는 작업을 말한다
- 대기하고 있던 프로세스 or 스레드가 메모리에 올라오면서 프로세스 상태를 적재하는 것
- 실행할 프로세스 or 스레드의 상태를 갈아 끼우는 것
더 알아볼 것