Лекція 4 5 Створення процесу

Лекція_4_5

Створення процесу

використання системних функцій; використання POSIX-функцій для породження процесів; завершення процесу;

Відношення між батьківським та дочірніми процесами

Дочірній процес може бути створений з власними образами, що викону­ються, або у вигляді дублікату батьківського процесу. При створенні в якості… Деякі атрибути предка не успадковуються нащадком. Як говорилося вище, дочірній… Після створення образ дочірнього процесу може бути замінено іншим образом, що виконується. Розділи програмного коду,…

Синопсис

pstree [-a] [-c] [-h ½ - Hpid] [-l] [-n] [-p] [-u] [-G] ½ -U]

[pid ½ user]

pstree –V


На рис 2 подано результат виконання команди pstree –h в середовищі Linux.

Використання системних функцій

Системна функція (або системний виклик) fork () створює новий процес, який є дублікатом процесу який його викликав, тобто його батька. При…

Синопсис

pid_t fork (void); Невдале виконання функції fork () можливе у випадку, коли система не володіє… 2.2. Системні функції exec

Синопсис

int execl (const char *path, const char *arg0, . . ./*, (char *)0 */); int execle (const char *path, const char *arg0, . . ./*, (char *)0 *, char *… int execlp (const char *fale, const char *arg0, . . ./*, (char *)0 */);

Синопсис

long sysconf (int name); Ще одним обмеженням при використанні функцій сімейства exec та інших функцій,… 2.6. Читання та встановлення змінних середовища

Синопсис

char *getenv ( const char *name ); int setenv (const char *name, const char *value, int overwrite ); void unsetenv ( const char *name );

Синопсис

int system (const char *string); В якості параметру string можемо передати системну команду або ім'я файлу,… Функція system () повертає значення батьківському процесу. При невда­лому виконанні функція exec () повертає число…

Використання POSIX-функцій для породження процесів

· дескриптори файлів; · стратегія планування; · ідентифікатор групи процесів;

Синопсис

int posix_spawn (pid_t *restrict pid, const char *restrict path, const posix_spawn_file_actions_t * file_actions, const posix_spawnattr_t *restrict… int posix_spawnp (pid_t *restrict pid, const char *restrict file, const… Різниця між ціми двома функціями полягає в тому, що функція posix_ spawn () передає параметр path, а функція…

Синопсис

# include < unistd.h >

pid_t getpid (void);

pid_t getppid (void);

Завершення процесу

· Всі інструкції виконані. · Процес очевидним чином передає керування батьківському процесу або викликає… · Дочірні процеси можуть завершуватися автоматично при завершенні батьківського процесу.

Синопсис

void exit (int status); void abort (void); Функцію kill () можемо використати для примусового завершення іншо­го процесу. Дана функція відправляє повідомлення…

Синопсис

# include < signal.h >

int kill (pid_t pid, int sig);

Ресурси процесу

Щоб процес отримав доступ до ресурсів, він спочатку повинен зробити запит, звернувшись з ним до операційної системи. Якщо ресурс вільний,… Якщо задовольняється відразу декілька запитів на отримання доступу до ресурсу,… Одні ресурси можуть змінюватися або модифікуватися процесами, а інші – ні. Поведінка ресурсів які поділяються і можуть…

Синопсис

int setrlimit (int resource, const struct rlimit *rlp); int getrlimit (int resource, struct rlimit *rlp); int getrusage (int who, struct rusage *r_usage);

Синопсис

pid_t wait (int *status); pid_t waitpid (pid_t pid, int *status, int oрtions); Функція waitpid () аналогічна функції wait () за виключенням того, що вона приймає додаткові параметри pid і oрtions.…

Розбиття програми на задачі

В додатку або системі розрізняють два рівня паралельної обробки: рі­вень процесів і рівень потоків. Паралельна обробка на рівні потоків має назву… При декомпозиції програми на функції як правило використовують низ­хідний… Задачі, на які буде розділена програма, можуть виконуватися паралель­но, при чому можемо виділити наступні три способи…

Лінії видимого контуру

// Лістінг 6. Основна гілка програми, з якої викликається функція, // що породжує процес int main (int argc, char *argv [ ]) {

Висновки

Деякі дані та атрибути процесу зберігаються в блоці керування процеса­ми (process control block – PCB), або БУП, що використовує операційна система… Процеси, які створюють інші процеси, вступають з ними в ²родинні²… Програму можна розділити на декілька процесів. Ці процеси можуть по­родити батьківський процес, або вони можуть бути…