실행중에 있는 프로그램
메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 객체)
스케줄링의 대상이 되는 작업(task)와 같은 의미로 쓰인다
프로세스 내부에는 최소 하나의 스레드를 가지고 있는데, 실제로는 스레드 단위로 스케줄링을 한다.
프로세스 하나만을 사용해서 프로그램을 실행하기에는 메모리의 낭비가 발생한다. 스레드는 프로세스와 다르게 스레드 간 메모미를 공유하며 작동한다.
즉, 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위!이다. 스레드는 운영체제의 스케줄러에 의해 독립적으로 관리될 수 있는 프로그래밍된 명령어의 가장 작은 시퀸스이다. 하나의 프로세스는 하나 이상의 스레드를 갖고 있다!
멀티 프로세스는 운영체제에서 하나의 응용 프로그램에 대해 동시에 여러 개의 프로세스를 실행할 수 있게 하는 기술
스레드는 하나의 프로세스 내에 실행 흐름. 그리고 멀티 스레드는 하나의 프로세스 안에 여러개의 스레드가 있는 것.