Процесс можно представить как совокупность данных ядра системы, необходимых для описания программы в памяти и управления её выполнением, или как программу, на стадии выполнения, т.к. все выполняющиеся программы предоставлены в ОС UNIX в виде процессов.
Процесс состоит из инструкций, выполняемых процессором, данных и информации о выполняемой задаче. Процесс не отождествляется с программой, т.к. программа может породить более одного процесса.
Выполнение процесса заключается в точном следовании набору инструкций, который никогда не передаёт управление другому процессу. Процессу также недоступны данные и стеки других процессов. Но процессы могут обмениваться друг с другом данными с помощью системы межпроцессорного взаимодействия, предоставляемой ОС UNIX. К этой системе относятся сигналы, каналы, разделяемая память, семафоры, сообщения, файлы. В остальном процессы изолированы.
Виды процессов:
— системные: являются частью ядра ОС и всегда находятся в оперативной памяти. Они не имеют соответствующих программ в виде исполняемых файлов и запускаются особым образом при инициализации ядра системы. Инструкции и данные этих процессов находятся в ядре системы, и они могут обращаться к функциям и данным, недоступным для остальных процессов.
— демоны: не интерактивные процессы, которые запускаются обычным образом (загрузка соответствующей программы) и выполняются в фоновом режиме. Обычно демоны запускаются при инициализации системы и обеспечивают работу различных подсистем (терминального доступа, печати, сетевого доступа и т.д.)
Демоны не связаны ни с одним пользовательским сеансом и не могут непосредственно управляться пользователем. Большую часть времени демоны находятся в состоянии ожидания, пока какой-нибудь процесс не запросит определённую услугу.
— прикладные: К ним относятся все остальные процессы, выполняющиеся в системе. В большинстве случаев — это процессы, порожденные в рамках пользовательского сеанса работы. Пользовательские процессы могут выполняться как в интерактивном, так и в фоновом режиме, но время их жизни ограничено временем работы пользователя. При выходе из системы все пользовательские процессы уничтожаются. Интерактивные процессы монопольно владеют терминалом. И пока такой процесс не завершит работу, пользователь не может работать с другими процессами, если в функции интерактивного процесса не входит запуск на выполнение других программ.
