в оперативной памяти. Они запускаются
Различается несколько типов процессов.
- Системные процессы
являются частью ядра и резидентно размещены в оперативной памяти. Они запускаются при инициализации ядра системы. Системными процессами являются, например, kmadaemon (диспетчер памяти ядра), shed (диспетчер свопинга), bdfflush (диспетчер кэша), init (прародитель всех остальных процессов).
- Демоны
– не интерактивные процессы, запускаемые путем загрузки в память соответствующих программ и выполняемые в фоновом режиме. Демоны не ассоциируются ни с одним из пользователей (они служат, например, для организации терминального ввода, печатающего устройства, сетевого доступа).
- Прикладные процессы
– это остальные процессы принадлежащие, как правило, пользователям.
Процессы создаются процедурой
fork и характеризуются набором атрибутов:
PID
|
(Process ID) представляет собой уникальное имя процесса (идентификатор нового процесса характеризуется большим кодом, чем идентификатор предыдущего). После уничтожения процесса ликвидируется и его PID и этот идентификатор может быть присвоен новому процессу.
|
PPID
|
(Parent Process ID) – идентификатор процесса, породившего данный процесс.
|
Приоритет процесса
|
(Nice Number) учитывается планировщиком при определении очередности запуска процессов.
|
TTY
|
псевдотерминал, ассоциированный с процессом. Демоны не имеют псевдотерминала.
|
RID
(Real ID) |
пользователя, запустившего данный процесс. Эффективный идентификатор (EUID) служит для определения прав доступа процесса к системным ресурсам.
|
Для запуска задачи процесс должен выполнить системный вызов exec. При этом не порождается новый процесс, а код процесса замещается полностью кодом запускаемой программы.
Так, когда пользователь вводит команду
ls, текущий процесс
shell осуществляет вызов
fork, порождая новый процесс – копию
shell. Порожденный процесс осуществит вызов
exec, указав в качестве параметра имя исполняемого файла (
ls).
Ls замещает
shell, а по завершении работы процесс уничтожается.
Сигналы
Сигналы служат для того, чтобы передавать от одного процесса к другому или от ядра к какому-то процессу, уведомление о происхождении некоторого события. Примером такого события может быть нажатие клавиши мышки или нажатие клавиш <Ctrl><C> (SIGINIT)или <Ctrl><Alt><Del>.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий