рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Синопсис

Синопсис - раздел Образование, Лекція 4 5 Створення процесу # Include < Sys/wait/h > Pid_T Wait (Int *status); Pi...

# include < sys/wait/h >

pid_t wait (int *status);

pid_t waitpid (pid_t pid, int *status, int oрtions);

Функція waitpid () аналогічна функції wait () за виключенням того, що вона приймає додаткові параметри pid і oрtions. Параметр pid задає множину дочірніх процесів, для яких зчитується параметр завершення. Іншими словами, значення параметра pid визначає, які процеси попадуть в дану множину.

pid > 0 Один дочірній процес
pid = 0 Довільний дочірній процес, груповий ідентифікатор якого співпадає з ідентифікатором процесу, який викликає
pid < -1 Довільні дочірні процеси, груповий ідентифікатор яких рівний абсолютному значенню pid
pid = -1 Довільні дочірніпроцеси

Параметр oрtions визначає, як повинно відбуватися очікування процесу, і може приймати одне із значень наступних констант, визначених в оголошення < sys/wait/h >:

WCONTINUED Повертає статус завершення довільного дочірнього процесу (заданого параметром pid), про статус не було повідомлено з моменту його зупинки
WUNTRACED Повертає статус завершення довільного зупиненого дочірнього процесу (заданого параметром pid), про статус не було повідомлено з моменту його зупинки
WNOHANG Процес, який викликає, не призупиняється, якщо статус завершення дочірнього процесу недосяжний.

Ці константи можуть бути об’єднані за допомогою логічної операції АБО і передані в якості параметра oрtions (наприклад WCONTINUED ½½ WUNTRACED).

Обидві дані функції повертають ідентифікатор (PID) дочірнього проце­су, для якого отримано статус завершення. Якщо значення, які містяться в пара­метрі status, рівне числу 1, це значить, що дочірній процес завершився при нас­тупних умовах:

· процес повернув значення 0 з функції main ();

· процес викликав деяку версію функції exit () з аргументом 0;

· процес був завершений, оскільки завершився останній потік процесу.

В табл. 6 подано макроси, які дозволяють обчислити значення статусу завершення.

 

Таблиця 6. Макроси, які дозволяють обчислити значення статусу завершення
Макрос Опис
WIFEXITED Приводиться до нульового значення, якщо статус було повернено нормально завершеним дочірнім процесом
WEXITSTATUS Якщо значення WIFEXITED виявляється ненульовим, то оцінюються молодші 8 біт аргументу status, переданого завершеним дочірнім процесом функції _exit () або exit (), або значення, повернуте функцією main ()
WIFSIGNALED Приводиться до ненульового значення, якщо статус було повернено від дочірнього процесу, який завершився, оскі­льки йому було відправлено сигнал, але цей сигнал не було перехоплено
WTERMSIG Якщо значення WIFSIGNALED виявляється не нульовим, то оцінюється номер сигналу, який став причиною завер­ше­ння дочірнього процесу
WIFSTOPPED Приводиться до ненульового значення, якщо статус було повернено від дочірнього процесу, який в даний момент зупинено
WSTOPSIG Якщо значення WIFSTOPPED виявляється ненульовим, то оцінюється номер сигналу, який став причиною зупинки дочірнього процесу
WIFCONTINUED Приводиться до ненульового значення, якщо статус було повернуто від дочірнього процесу, який продовжив виконання після сигналу зупинки, прийнятого від блоку управління завданнями
     

– Конец работы –

Эта тема принадлежит разделу:

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

Синопсис... pstree a c h frac Hpid l n p u G frac U... pid frac user...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Синопсис

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Відношення між батьківським та дочірніми процесами
Процес, який створює, або породжує, інший процес, є батьківським (parent) процесом по відношенню до породженого, або дочірнього (child) проце­су. Процес init – батьківський (або предок) всіх

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

Синопсис
# include <unistd> pid_t fork (void); Невдале виконання функції fork () можливе у випадку, коли система не володіє ресурсами для створення ще одного процесу. Це відбувається

Синопсис
# include <unistd.h int execl (const char *path, const char *arg0, . . ./*, (char *)0 */); int execle (const char *path, const char *arg0, . . ./*, (char *)0 *, char * const en

Синопсис
# include < unistd.h > long sysconf (int name); Ще одним обмеженням при використанні функцій сімейства exec та інших функцій, які застосовуються для створення процесів, є ма

Синопсис
# include < stdlib.h > char *getenv ( const char *name ); int setenv (const char *name, const char *value, int overwrite ); void unsetenv ( const char *name );

Синопсис
# include < stdlib.h > int system (const char *string); В якості параметру string можемо передати системну команду або ім'я файлу, який виконується. При вдалому виконанні фу

Використання POSIX-функцій для породження процесів
Подібно створенню процесів за допомогою функцій system () і fork- exec, функцій posix_spawn () створюють нові дочірні процеси із заданих образів про­цесів. Однак функції posix_spawn () дозволяють п

Синопсис
# include < stdlib.h > int posix_spawn (pid_t *restrict pid, const char *restrict path, const posix_spawn_file_actions_t * file_actions, const posix_spawnattr_t *restrict attrp, char

Завершення процесу
Коли процес завершується, його блок БУП руйнується, а адресний прос­тір, який він займав і ресурси звільняються. Код завершення розміщується в головну таблицю процесів. Як тільки батьківський проце

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

Ресурси процесу
При виконанні призначених на процес задач часто приходиться запису­вати дані у файл, відправляти їх на принтер або відображати отримані результа­ти на екран. Процесу можуть знадобитися дані, що вво

Синопсис
# include < sys/resource.h > int setrlimit (int resource, const struct rlimit *rlp); int getrlimit (int resource, struct rlimit *rlp); int getrusage (int who, struc

Розбиття програми на задачі
Аналізуючи розбиття програми на декілька задач, ми робимо перший крок до реалізації паралелізму в свою програму. В одно процесорному середо­вищі паралелізм реалізується засобами багатозадачності. Ц

Лінії видимого контуру
Породження процесі, як подано в лістінгу 6, можливе за допомогою фу­нкцій, які викликаються із функції mane (). // Лістінг 6. Основна гілка програми, з якої викликається функція,

Висновки
Паралелізм в С++ програмі досягається за рахунок поділу на декілька процесів або декілька потоків. Процес – це ²одиниця роботи², що реалізується операційною системою. Якщо програма – це а

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги