예외상황 - 프로세스 개념을 운영체제 커널이 제공할 수 있게 하는 기본 구성 블록.
프로세스 : 실행 프로그램의 인스턴스
시스템 내의 각 프로그램은 어떤 프로세스의 문맥에서 돌아간다. 문맥은 프로그램이 정확하게 돌아가기 위해서 필요한 상태로 구성된다. 이 상태는 메모리에 저장된 프로그램의 코드와 데이터, 범용 레지스터의 내용, 프로그램 카운터, 환경변수, 열려 있는 파일의 식별자를 포함한다.
사용자가 실행 .o 파일의 이름을 쉘에 입력해서 프로그램을 돌릴 때마다 쉘은 새로운 프로세스를 생성하고, 실행 목적파일을 이 새로운 프로세스의 문맥에서 실행한다. 응용 프로그램은 또한 새로운 프로세스를 만들 수 있으며, 새 프로세스의 문맥 내에서 자신의 코드나 다른 응용 코드를 돌릴 수 있다.
자신의 실행시간이 다른 흐름과 겹치는 논리흐름을 동시성 흐름 이라고 부르고, 이 두 흐름은 동시에 실행한다고 말한다.
공동으로 실행되는 흐름의 일반적인 현상을 동시성이라고 알려져 있다. 또한 프로세스가 다른 프로세스들과 교대로 실행된다는 개념은 멀티태스킹이라고 알려져 있다. 한 프로세스가 자신의 흐름 일부를 실행하는 매 시간 주기를 타임슬라이스라고 부른다. 그래서 멀티태스킹은 타임 슬라이싱이라고 부른다.
-> 스타크래프트에서 멀티태스킹은 사실 여러가지 해야될일(질럿컨트롤, 프로브 미네랄에 붙이기, 미니맵보기 등등)을 교대로 실행하는 것이지 진짜 동시에는 불가능하다.
동시성 흐름과 병렬 흐름은 다르다.
만일 두개의 흐름이 서로 다른 프로세서 코어나 컴퓨터에서 동시에 돌아가고 있다면, 이것은 병렬 흐름이다. 즉 병렬로 돌아간다고 말한다.
(동일한 프로세서 코어에서 두 흐름이 시간상으로 중첩될 때 동시적인 것임)