Process
youngwiki
개요
Process(프로세스)란 실행하고 있는 프로그램의 객체를 의미한다. 프로세스를 실행하는 프로세서(CPU)나 프로세스가 실행하는 대상인 프로그램과는 구별되는 개념이다. 프로그램을 실행할 경우 프로세스에는 메모리와 CPU를 할당하며 이를 통해 프로세스가 탄생한다. 우리의 관점에서는 프로세스를 실행하면 두가지 마법같은 일이 일어난다.
- 해당 프로세스가 모든 메모리를 독점적으로 사용하는 것처럼 보임
- 해당 프로세스가 중단되는 일 없이 하나씩 연속적으로 명령어를 실행하는 것 처럼 보임
Multiprocessing
시스템의 각 프로그램은 어떤 프로세스 내의 Context(맥락) 내에서 실행된다. 사용자가 프로그램을 실행할 때마다 새로운 프로세스를 생성하고 해당 프로세스의 Context에서 실행 파일 객체를 생성한다.
- An independent logical control flow: 각 프로그램이 CPU를 독점적으로 사용하는 것처럼 보이게 함
- context switching이라는 커널의 메커니즘에 의해서 구현됨
- A private address space: 각 프로그램이 메모리를 독점적으로 사용하는 것처럼 보이게 함
- virtual memory라는 커널의 메커니즘에 의해서 구현됨