1. Process & Thread
1.1. 프로그램 / 프로세스 / 스레드 의미
프로그램(Program)
- 컴퓨터에 의해 실행되는 명령과 데이터의 집합
- 시스템의 저장 장치(Storage Device)에 파일 형태로 저장되어 있으며, 중앙처리장치(CPU)에 의해 메모리(MEMORY)로 로딩되고 실행된다.
프로세스(Process)
- 운영 체제 위에서 실행중인 프로그램
- 프로그램 명령어와 데이터들이 메모리에 올라오고나서, 실행중 또는 실행 대기중인 상태
정리하자면, **프로그램(Program)**은 명령과 데이터로 구성되어 저장 장치(Storage Device)에 저장된 형태의 실행 코드를 말하고,
**프로세스(Process)**는 운영체제에 의해 메모리(MEMORY)에 적재되어 실행 중인 프로그램을 의미한다.
- 프로세스는 추상화된 개념이고 실제로 실행되는것은 프로그램의 메인스레드다.
- 컨텍스트 스위칭, OS 가 스케쥴링 하는 주체는 메인스레드 이다.