Типы процессов
В ОС UNIX выделяется три типа процессов: системные, процессы-демоны и прикладные процессы.
Системные процессы являются частью ядра и всегда расположены в оперативной памяти. Системные процессы не имеют соответствующих им программ в виде исполняемых файлов и запускаются особым образом при инициализации ядра системы. Выполняемые инструкции и данные этих процессов находятся в ядре системы, таким образом, они могут вызывать функции и обращаться к данным, недоступным для остальных процессов.
К системным процессам можно отнести и процесс начальной инициализации, init, являющийся прародителем всех остальных процессов. Хотя init не является частью ядра, и его запуск происходит из выполняемого файла, его работа жизненно важна для функционирования всей системы в целом.
Демоны - это не интерактивные процессы, которые запускаются обычным образом - путем загрузки в память соответствующих им программ, и выполняются в фоновом режиме. Обычно демоны запускаются при инициализации системы, но после инициализации ядра и обеспечивают работу различных подсистем UNIX: системы терминального доступа, системы печати, сетевых служб и т.д. Демоны не связаны ни с одним пользователем. Большую часть времени демоны ожидают, пока тот или иной процесс запросит определенную услугу.
К прикладным процессам относятся все остальные процессы, выполняющиеся в системе. Как правило, это процессы, порожденные в рамках пользовательского сеанса работы. Важнейшим пользовательским процессом является начальный командный интерпретатор, который обеспечивает выполнение команд пользователя в системе UNIX.
Пользовательские процессы могут выполняться как в интерактивном (приоритетном), так и в фоновом режимах. Интерактивные процессы монопольно владеют терминалом, и пока такой процесс не завершит свое выполнение, пользователь не имеет доступа к командной строке.
В следующем примере, показывающем часть списка процессов в ОС Solaris 8, полужирным выделены системные процессы. В этой ОС системными являются процесс- планировщик (sched), процесс откачки страниц виртуальной памяти (pageout) и процесс, синхронизирующий файловые системы (fsflush). Пользовательские процессы представлены на более темном фоне. Все остальные процессы - это демоны, реализующие те или иные службы. Имена команд, начинающиеся с дефиса, представляют начальные командные интерпретаторы пользователей.
[kravchuk@arturo 13:48:53 /]$ ps -ecf | more UID PID PPID CLS PRI STIME TTY TIME CMD root 0 0 SYS 96 тЕБ 23 ? 0:19 sched
root 1 0 TS 58 тЕБ 23 ? 0:04 /etc/init - root 2 0 SYS 98 тЕБ 23 ? 0:08 pageout
root 3 0 SYS 60 тЕБ 23 ? 87:49 fsflush
root 411 1 TS 58 тЕБ 23 ? 0:00 /usr/lib/saf/sac -t 300 root 259 1 TS 50 тЕБ 23 ? 2:20 /usr/sbin/nscd root 184 1 TS 46 тЕБ 23 ? 0:00 /usr/lib/netsvc/yp/ypxfrd root 68 1 TS 58 тЕБ 23 ? 0:02 /usr/lib/sysevent/syseventd root 144 1 TS 59 тЕБ 23 ? 0:00 /usr/sbin/in.rdisc -s root 161 1 TS 58 тЕБ 23 ? 0:41 /usr/sbin/rpcbind ... markov 5724 5723 TS 48 12:07:16 pts/1 0:00 -bash root 3705 215 TS 54 09:46:57 ? 0:00 in.telnetd root 6804 6803 IA 48 лЮП 25 ?? 0:00 /usr/dt/bin/dtterm root 87 310 TS 59 лЮП 19 ? 0:02 /usr/local/samba/bin/smbd -D -s/usr/local/samba/lib/smb.conf root 27210 215 TS 54 лЮП 27 ? 0:00 in.telnetd root 3918 215 TS 54 10:11:00 ? 0:00 in.telnetd kravchuk 3697 3679 TS 38 09:46:39 pts/14 0:00 -bash ...