15.Типы процессов: системные процессы, демоны, прикладные процессы. Атрибуты процессов: PID, РРГО, Nice Number, TTY, RID, EUID, RGID, EGID.
Процесс – совокупность данных ядра системы, необходимых для описания образа программы в памяти и управления её выполнением.
Системные процессы являются частью ядра и всегда расположены в оперативной памяти. Системные процессы не имеют соответствующих им программ в виде исполняемых файлов и запускаются особым образом при инициализации ядра системы. Выполняемые инструкции и данные этих процессов находятся в ядре системы, таким образом они могут вызывать функции и обращаться к данным, недоступным для остальных процессов. Системными процессами являются: shed(диспетчер свопинга), vhand(диспетчер страничного замещения), bdfflush (диспетчер буферного кэша) и kmadaemon (диспетчер памяти ядра). К системным процессам следует отнести init? Являющийся прародителем всех остальных процессов в Unix. Хотя init не является частью ядра, и его запуск происходит из исполняемого файла (/etc/init), его работа жизненно важна для функционирования всей системы в целом.
Демоны – это не интерактивные процессы, которые запускаются обычным образом – путём загрузки в память соответствующих им программ (исполняемых файлов), и выполняется в фоновом режиме. Обычно демоны запускаются при инициализации системы(но после инициализации ядра) и обеспечивают работу различных подсистем Unix: системы терминального доступа, системы печати, системы сетевого доступа и сетевых услуг и т.п. Демоны не связаны ни с одним пользовательским сеансом работы и не могут непосредственно управлять пользователем. Большую часть времени демоны ожидают пока тот или иной процесс запросит определённую услугу, например, доступ к файловому архиву или печать документа.
К прикладным процессам относятся все остальные процессы, выполняющиеся в системе. Как правило, это процессы, порождённые в рамках пользовательского сеанса работы. Важнейшим пользовательским процессом является основной командный интерпретатор, который обеспечивает вашу работу в Unix. Он запускается сразу же после регистрации в системе, а завершение работы приводит к отключению от системы. Пользовательские процессы могут выполняться как в интерактивном, так и в фоновом режиме, но в любом случае время их жизни ограничено сеансом работы пользователя. При выходе из системы все пользовательские процессы будут уничтожены. Интерактивные процессы монопольно владеют терминалом, и пока такой процесс не завершит своё выполнение, пользователь не сможет работать с другими прилодениями.
Процесс в Unix имеет несколько атрибутов, позволяющих операционной системе эффективно управлять его работой.
Каждый процесс имеет уникальный идентификатор PID, позволяющий ядру системы различать процессы. Когда создаётся новый процесс, ядро присваивает ему следующий свободный (т.е. не ассоциированный ни с каким процессом) идентификатор. Присвоение идентификаторов происходит по возрастающей, т.е. идентификатор нового процесса больше, чем идентификатор процесса, созданного перед ним. Если идентификатор достиг максимального значения, следующий процесс получит минимальный свободный PID и цикл повториться. Когда процесс завершает работу ядро освобождает занятый им идентфикатор.
Идентификатор родительского процесса (PPID) – идентификатор процесса породившего данный процесс.
Приоритет процесса (Nice Number).Относительный приоритет процесса, учитываемый планировщиком при определении очередности запуска. Фактическое же распределение процессорных ресурсов определяется приоритетом выполнения, зависящим от нескольких факторов, в частности и от заданного относительного приоритета. Относительный приоритет не изменяется системой на всем протяжении жизни процесса (хотя может быть изменён пользователем или администратором) в отличии от приоритета выполнения, динамически обновляемого ядром.
Терминал или псевдотерминал(TTY), ассоциированный с процессом, если такой существует. Процессы-демоны не имеют ассоциативного терминала.
Реальным идентификатором пользователя (RID) данного процесса является идентификатор пользователя, запустившего процесс. Эффективный идентификатор (EUID) служит для определения прав доступа процесса к системным ресурсам (в первую очередь к ресурсам файловой системы). Обычно реальный и эффективный идентификаторы эквивалентны, т.е. процесс имеет в системе те же права, что и пользователь, запустивший его. Однако существует возможность задать процессу более широкие права, чем права пользователя путём установи флага SUID, когда эффективному идентификатору присваивается значение идентификатора владельца исполняемого файла (например администратора).
Реальный идентификатор группы (RGID) равен идентификатору первичной или текущей группы пользователя, запустившего процесс. Эффективный идентификатор (EGID) служит для определения прав доступа к системным ресурсам по классу доступа группы. Так же как и для эффективного идентификатора пользователя, возможна его установка равным идентификатору группы владельца исполняемого файла (флаг SGID).
Команда ps() (process status) позволяет вывести список процессов, выполняющихся в системе и их атрибуты.
|