[운영체제] 프로세스와 스레드
1. What is Process?
프로세스란 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 프로세스는 메모리에 올라와 실행되고 있는 프로그램의 인스턴스로서, 운영체제로부터 시스템 자원을 할당받아 실행된다.

- 프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap)을 할당받는다.
- 스케줄링의 대상이 되는 **작업(Task)**과 같은 의미로 쓰인다.
- 프로세스 내부에는 최소 하나의 **스레드(Thread)**를 가지고 있는데, 실제로는 스레드 단위로 스케줄링된다.
- 하드디스크에 있는 프로그램을 실행하면, 실행을 위해 메모리가 할당되고, 할당된 메모리 공간으로 바이너리 코드가 올라가게 되는데, 이 순간부터 프로세스라고 불린다.
2. State of Process
프로세스는 **상태(State)**가 변경되며 수행되는데, 상태의 종류는 다음과 같다.
- Running : CPU 를 잡고 intruction 수행중인 상태