Реферат Курсовая Конспект
Відношення між батьківським та дочірніми процесами - раздел Образование, Лекція 4 5 Створення процесу Процес, Який Створює, Або Породжує, Інший Процес, Є Батьківським (Pare...
|
Процес, який створює, або породжує, інший процес, є батьківським (parent) процесом по відношенню до породженого, або дочірнього (child) процесу. Процес init – батьківський (або предок) всіх процесів користувача – перший процес, видимий системою UNIX після її завантаження. Процес init організує систему, при необхідності виконує інші програми і запускає демон-програми (demon), тобто мережеві програми, які працюють у фоновому режимі. Ідентифікатор процесу init (PID) рівний 1. Дочірній процес має свій унікальний ідентифікатор (PID), БУП-блок і окрему структуру в таблиці процесів. Дочірній процес також може новий процес. Додаток, що виконується, може створювати дерево процесів. Наприклад, батьківський процес виконує пошук накопичувача на жорстких дисках для заданого HTML-документу. Ім'я цього HTML-документу записано у глобальній структурі даних, подібно списку, який містить всі запити на документи. Після успішного знаходження документ видаляється із списку запитів, і його маршрут (шлях в мережі) записується в іншу глобальну структуру даних, яка містить шляхи знайдених документів. Щоб забезпечити прийнятну реакцію на запити користувача, для процесу передбачено обмеження у вигляді п’яти неопрацьованих запитів у списку. По досягненню цієї межі породжуються два нових процеси. Якщо породжений процес в свою чергу досягає межі, він створить ще два нових процеси. Створене таким чином дерево процесів подано на рис. 1. Довільний процес може мати тільки один батьківський, але
множину дочірніх процесів.
Дочірній процес може бути створений з власними образами, що виконуються, або у вигляді дублікату батьківського процесу. При створенні в якості дубліката предка дочірній процес успадковує множину його атрибутів, включаючи середовище, пріоритети, стратегію планування, обмеження за ресурсами, відкриті файли і розділи загальної пам’яті. Якщо дочірній процес переміщує вказівник біжучої позиції у файлі або закриває файл, то результати цих дій будуть видимі батьківському процесу. Якщо предку виділяються довільні додаткові ресурси вже після створення процесу-нащадка, то вони не будуть досяжні нащадку. В свою чергу, якщо дочірній процес використовує будь-які ресурси, вони також будуть недосяжні для процесу-предка.
Деякі атрибути предка не успадковуються нащадком. Як говорилося вище, дочірній процес не успадковує PID предка і його БУП-блок. Нащадок не успадковує ніяких файлових блокувань, створених предком або неопрацьованих сигналами. Для дочірнього процесу використовуються власні значення таких часових характеристик, як коефіцієнт завантаження процесора і час створення. Незважаючи на те що дочірні процеси пов’язані певними відносинами з предками, вони все ж функціонують як окремі процеси. Їх програмні та стекові лічильники діють окремо. Оскільки розділи даних копіюються, а не використовуються спільно, процес-нащадок може змінювати значення своїх змінних, не впливаючи на батьківську копію даних. Батьківський та дочірній процеси спільно використовують розділ програмного коду і виконують інструкції, розміщені безпосередньо після виклику системної функції, яка створила системний процес. Вони не виконують ці інструкції на етапі блокування із-за конкуренції за процесор зі всіма іншими процесами, завантаженими в пам'ять.
Після створення образ дочірнього процесу може бути замінено іншим образом, що виконується. Розділи програмного коду, даних та стеків, а також його масив пам’яті перезаписуються новим образом процесу. Новий процес зберігає свої ідентифікаційні номери (PID і PPID). Атрибути, що зберігаються новим процесом після заміни образу який виконується, подано в табл. 1. В ній також вказані системні функції, які повертають дані атрибути. Змінні середовища також зберігаються, якщо під час заміни образу процесу, що виконується, не були задані нові змінні середовища. Файли, які були відкриті до моменту заміни образу що виконувався, залишаються відкритими. Новий процес буде створювати файли з тими ж файловими розширеннями. Час ПЦ при цьому не оновлюється.
Таблиця 1. | Атрибути,що зберігаються новим процесом після заміни його образу який виконується, образом новогопроцесу | |
Атрибути, що зберігаються | Функції | |
Ідентифікатор (ID) процесу | getpid () | |
ID батьківського процесу | getppid () | |
ID групи процесів | getppid () | |
Сеансові членство | getsid () | |
Ідентифікатор ефективного користувача | getuid () | |
Ідентифікатор ефективної групи | getgid () | |
Додаткові ID груп | getroups () | |
Час, який залишився до сигналу тривоги | alarm () | |
Фактор поступливості | nice () | |
Час, який використовувався до даного моменту | times () | |
Маска сигналів процесу | sigprocmask () | |
Сигнали, які очікують | sigpendding () | |
Граничний розмір файлу | ulimit () | |
Граничний об’єм ресурсів | getrlimit () | |
Маска створення файлового режиму | umask () | |
Біжучий робочий каталог | getcwd () | |
Кореневий каталог | ||
1.1. Утиліта pstree
Утиліта pstree в середовищі Linux відображає дерево процесів (точніше, вона відображає процеси, що виконуються, у формі деревоподібної структури). Коренем даного дерева є процес init.
При виклику даної утиліти можемо використати наступні опції.
-а Відображає аргументи командної стрічки.
-h Виділяє біжучий процес і його нащадків.
- H Аналогічно опції –h, але виділенню підлягає заданий процес.
-n Відсортувати процеси з однаковим предком по значенню PID а не за іменем.
-р Відобразити значення PID.
– Конец работы –
Эта тема принадлежит разделу:
Синопсис... pstree a c h frac Hpid l n p u G frac U... pid frac user...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Відношення між батьківським та дочірніми процесами
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов