프로그램 vs 프로세스 vs 스레드

프로그램은 파일이 저장장치에 저장되어있지만, 메모리에는 올라가지 않은 정적인 상태

→ 운영체제로부터 독립적인 메모리 공간을 할당 받지 않은 상태

이러한 정적인 상태의 프로그램을 실행하면, 운영체제는 작업을 위한 메모리를 할당하고 동적인 상태가 된다. 이러한 상태의 프로그램을 프로세스라고 한다.

실행 중인 프로그램을 프로세스라고 생각

프로그램이 복잡해지고, 많은 일을 하게되면서 하나의 프로세스만으로 작업을 수행하기에는 많은 어려움이 발생

여러개의 프로세스를 사용하기에는 프로세스간에 할당된 메모리에 접근을 해야하기에 안정성이나 비용에 대한 코스트가 큼.

→ 하나의 프로세스 자원을 공유하는 더 작은 작업단위인 스레드를 통해 해결

CPU 입장에서의 최소 작업 단위는 스레드가 되고, 운영체제의 입장에서 최소 작업 단위는 프로세스가 된다.

Process

프로세스는 실행 중인 프로그램, 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 의미한다.

Process Control Block(PCB)

프로세스에 대한 중요한 정보를 저장하고 있는 운영체제 커널의 자료구조 (운영체제가 프로세스를 표현한 것)

운영체제는 프로세스 생성과 동시에 고유한 PCB를 생성한다.

PCB는 프로세스의 중요한 정보를 담고 있기 때문에, 일반 사용자가 접근할 수 없는 보호된 메모리 안에 남는다.

Process Management

프로세스 상태