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

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

Висновки

Висновки - раздел Образование, Лекція 4 5 Створення процесу Паралелізм В С++ Програмі Досягається За Рахунок Поділу На Декілька Процесів ...

Паралелізм в С++ програмі досягається за рахунок поділу на декілька процесів або декілька потоків. Процес – це ²одиниця роботи², що реалізується операційною системою. Якщо програма – це артефакт (продукт діяльності) роз­робника, то процес – це артефакт операційної системи. Додаток може складати­ся з декількох процесів, які можуть бути не пов’язані з будь-якою кон­кретною програмою. Операційні системи можуть керувати сотнями і навіть ти­сячами процесів, які завантажуються паралельно.

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

Процеси, які створюють інші процеси, вступають з ними в ²родинні² від­ношення. Творець процесу називається батьківським, а створений процес – до­чірнім. Дочірні процеси успадковують від батьків множину атрибутів. ²Свята задача² батьківського процесу – почекати, коли дочірній не залишить систему. Для створення процесів передбачені різні системні функції: fork (), fork-exec (), system () та posit_spavn (). Функції fork (), fork-exec (), та posit_spavn () створю­ють процеси, які є асинхронними, в тоц час як system () створює дочірній про­цес, який є синхронним по відношенню до батьківського. Асинхронні батьків­ські процеси можуть викликати функцію wait (), після чого ²синхронно² очіку­вати, доки дочірні процеси де завершаться або поки не буде прочитано коди завершення для дочірніх процесів, що вже завершилися.

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

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

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

Лекція 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

Синопсис
# include < sys/wait/h > pid_t wait (int *status); pid_t waitpid (pid_t pid, int *status, int oрtions); Функція waitpid () аналогічна функції wait () за виключенням

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

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

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