실행 중인 프로그램을 의미하는 것입니다. 운영 체제가 메모리에 프로그램을 올리고 실행하며, 그 프로그램은 하나의 프로세스가 되며, 각 프로세스는 독립적인 메모리 공간(코드, 데이터, 스택, 힙)을 할당받으며, 다른 프로세스의 메모리 영역에 직접 접근할 수 없습니다.
그에 대한 예시로 빠르게 알아볼 수 있는 방법 중에 하나는

다음과 같이 [작업관리자] 에서 볼 수 있는 프로세스입니다. 다음 프로세스들은 각 프로세스들에게 영향을 끼치지 않으며, 컴퓨터 내에서 필요에 의해 수많은 프로세스들이 돌아갑니다.
프로세스 내에서 실행되는 흐름의 단위입니다. 하나의 프로세스는 하나 이상의 스레드를 가질 수 있습니다. 스레드는 같은 프로세스에 속한 다른 스레드들과 메모리 공간과 자원(파일 핸들, 네트워크 포트 등)을 공유합니다. 스레드는 프로세스 내에서 동시에 여러 작업을 할 수 있게 해줍니다.
단어와 같이 여러 개의 프로세스를 동시에 실행해서 여러 작업을 처리하는 방식입니다.
장점
- 한 프로세스에 오류가 발생해도 다른 프로세스에 영향을 주지 않아 시스템이 안정적임. 여러 CPU 코어를 활용해 진정한 병렬 처리가 가능합니다.
단점
- 프로세스 간 컨텍스트 스위칭(전환)이 무겁습니다.
멀티 스레딩은 하나의 프로세스 내에서 여러 스레드를 동시에 실행하여 작업을 처리하는 방식입니다. 스레드들은 같은 프로세스의 메모리 공간을 점유합니다.
궁금점
- 여러 프로세스를 동시에 실행시키는 것인지?
: 최신 컴퓨터가 가지고 있는 멀티 CPU를 통해 여러 프로세스를 동시에 실행시킬 수 있다. 이러한 이유 뿐만 아니라, 시분할(Time-sharing)으로 인해 빠른 속도로 전환되어 우리 눈에는 동시에 실행되는 것처럼 보이는 것이다.