Одной из наиболее фундаментальных концепций в современных операционных системах является разграничение между самой программой и деятельностью, связанной с ее выполнением. Первое представляет собой статический набор инструкций, в то время как второе — это динамическая деятельность, свойства которой меняются во времени. Эта деятельность и получила название процесса (process). Процесс охватывает текущее состояние работы, называемое состоянием процесса (process state). Это состояние включает текущую позицию выполняемой программы (значение счетчика адреса), а также значения прочих регистров центрального процессора и тех ячеек памяти, к которым производится обращение. Говоря упрощенно, состояние процесса — это моментальный снимок состояния машины в определенный момент времени. В различные моменты выполнения программы (процесса) будут получаться различные моментальные снимки (состояния процесса).
Чтобы подчеркнуть различие между программой и процессом, заметим, что одна программа может быть связана одновременно с несколькими процессами. Например, в многопользовательской системе с разделением времени двум пользователям может одновременно потребоваться редактировать различные документы. Оба могут использовать одну и ту же программу редактирования, но в каждом случае это будет самостоятельный процесс, со своим набором данных и относительной скоростью выполнения. В такой ситуации операционная система может хранить в основной памяти только одну копию программы редактирования и разрешить каждому из процессов пользоваться ею на время выделенного ему кванта времени.
В типичной компьютерной установке с разделением времени в состязании за кванты времени обычно принимает участие множество процессов. Эти процессы включают выполнение прикладных программ, утилит и программных элементов операционной системы. Задача операционной системы состоит в координации выполнения всех этих процессов. Координация подразумевает получение гарантий в том, что каждый процесс получит все необходимые ему ресурсы (доступ к периферийным устройствам, место в основной памяти, доступ к данным и центральному процессору); что независимые процессы не влияют друг на друга; а процессы, которым необходимо обмениваться информацией, имеют возможность делать это. Взаимодействие между процессами называется межпроцессорным взаимодействием.