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

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

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

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

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

Щоб процес отримав доступ до ресурсів, він спочатку повинен зробити запит, звернувшись з ним до операційної системи. Якщо ресурс вільний, опера­ці­йна система дозволяє процесу його використати. Після використання ресурсу процес звільняє його, щоб він був доступним для інших процесів. Якщо ресурс недоступний, запит відхиляється, і процес повинен почекати його звільнення. Як тільки ресурс стане доступним, процес активується. Такий основний підхід до розподілення ресурсів між процесами. На рис. 3 подано граф розподілу ресу­рсів, за яким можемо зрозуміти, які процеси утримують ресурси, а які їх очіку­ють. Так, процес В робить запит на ресурс 2, який утримується процесом С.
Процес С робить запит на ресурс 3,який утримується процесом D.

Якщо задовольняється відразу декілька запитів на отримання доступу до ресурсу, даний ресурс є використовується спільно, або поділяється (дана ситу­ація також відображена на рис. 3). Процес А поділяє ресурс R1 з процесом D. Ресурси, які поділяються, можуть позволяти паралельний доступ відразу декі­лькох процесів або дозволяти доступ тільки одному процесу на протязі обмеже­ного проміжку часу, після чого аналогічним доступом зможе скористатися ін­ший процес. Прикладом такого типу ресурсів які поділяються може бути проце­сор. Спочатку процесор призначається одному процесу на протязі короткого інтервалу часу, а потім процесор ²отримує² інший процес. Якщо задовольняє­ть­ся тільки один запит на отримання доступу до ресурсу, і це відбувається після того, як ресурс звільнить інший процес, такий ресурс є не використовується спільно, а про процес говорять, що він має монопольний доступ (exclusive ac­c­ess) до ресурсу. В багатопроцесорному середовищі важливо знати, який дос­туп можемо організувати до ресурсу, який поділяється: паралельний або послідов­ний (передаючи естафету почергово від ресурсу до ресурсу). Це дозволить уни­к­нути ²капканів², які властиві паралелізму.

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

Граф розподілу ресурсів

Графи розподілу ресурсів – це напрямлені графи, які показують, як роз­поділяються ресурси в системі. Такий граф складається з множини вершин V та множини ребер Е. Множина вершин ділиться на дві категорії:

P = { P1, P2, . . ., Pn }

R = { R1, R2, . . ., Rn }

Множина Р – це множина всіх процесів, R – це множина всіх ресурсів в системі. Ребро, напрямлене від процесу до ресурсу, називаємо ребром запиту, а ребро, напрямлене від ресурсу до процесу, називаємо ребром призначення. Нап­рямлені ребра позначаються наступним чином:

Pi ® Rj Ребро запиту: процес Pi запитує екземпляр типу ресурс Rj

Rj ® Pi Ребро призначення: екземпляр типу ресурсу Rj виділено процесу Pi

Кожен процес у графі розподілу ресурсів відображене колом, а кожен ресурс – прямокутник. Оскільки може бути багато екземплярів одного типу ре­сурсу, то кожен з них є крапкою в середині прямокутника. Ребро запиту вказує на периметр прямокутника ресурсу, а ребро призначення бере початок з крапки і доходить до кола процесу.

Граф розподілу ресурсів, подано на рис. 3, показує наступне.

Множина P, R і E

P = { Pа, Pb, Pc, Pd }

R = { R1, R2, R3 }

E = { R1 ® Pа, R1 ® Pd, Pb ® R2, R2 ® Pc, Pc ® R3, R3 ® R3 }

5.1. Типи ресурсів

Існує три основних типи ресурсів: апаратні, інформаційні та програмні. Апаратні ресурси є фізичними пристроями, підключеними до комп’ютера (на­приклад: процесори, основна пам'ять і всі пристрої вводу-виводу, включаючи принтер, жорсткий диск, накопичувачі на магнітній стрічці, дисковод з zip-ар­хівом, монітори, клавіатура, звукові, мережеві і графічні карти, а також моде­ми). Всі ці пристрої можуть спільно використовувати декілька процесів.

Деякі апаратні ресурси призупиняються (перериваються), щоб дозволи­ти доступ до них різних процесів. Наприклад, призупинення процесора дозво­ляє різним процесам виконуватися почергово. Оперативний запам’ятовуючий пристрій, або ОЗП (RAM), - це ще один приклад ресурсу, який поділяється за­со­бами призупинення. Коли процес не виконується, деякі сторінкові блоки, які він не займає, можуть бути вивантажені на допоміжні запам’ятовуючі пристрої, а на їх місце завантажені дані, які належать іншому процесу. В довільний мо­мент часу весь діапазон пам’яті може бути зайнятим сторінковими блоками ті­льки одного процесу. Прикладом ресурсу який поділяється, але ресурсу, який не призупиняється, це наприклад принтер. При сумісному використанні прин­тера завдання, які посилають на друк процеси, зберігаються в черзі. Кожне зав­дання друкується до закінчення, і тільки потім починається виконання наступ­ного завдання. Принтер не призупиняється ні одним завданням, що чекає, якщо не відміняється біжуче завдання.

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

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

5.2. POSIX-функції для встановлення обмежень доступу до ресурсів

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

· розмір стеку процесу;

· розмір створюваного файлу і файлу ядра;

· об’єм часу ЦП, виділеного процесу (розмір кванту часу);

· об’єм пам’яті, що використовується процесом;

· кількість дескрипторів відкритих файлів.

Операційна система встановлює жорсткі обмеження на використання ресурсів процесом. Процес може встановити або змінити м’які обмеження ресу­рсів, але це значення не може перейти жорстку межу, встановлену операційною системою. Процес може понизити свою жорстку межу, але його значення не повинне перейти м’якої межі. Операція по зниженню процесом своєї жорсткої межі є незворотною . ЇЇ можуть підвищити тільки процеси, які мають спеціальні привілеї.

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

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

Лекція 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
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги