Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка С_Р 2 частина.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

Урок № 89

(згідно навчальної робочої програми)

Тема: «Керування процесами у Windows ХР»

Питання:

  1. Складові елементи процесу.

  2. Структури даних процесу.

  3. Створення процесів.

  4. Завершення процесів.

  5. Процеси і ресурси. Таблиця об’єктів процесу.

Поняття процесу й потоку у Windows ХР чітко розмежовані. Процеси в даній системі визначають «поле діяльності» для потоків, які виконуються в їхньому ад­ресному просторі. Серед ресурсів, з якими процес може працювати прямо, відсут­ній процесор — він доступний тільки потокам цього процесу. Процес, проте, може задати початкові характеристики для своїх потоків і тим самим вплинути на їхнє виконання.

Складові елементи процесу

Розглянемо базові складові елементи процесу.

  • Адресний простір процесу складається з набору адрес віртуальної пам’яті, які він може використати. Ці адреси можуть бути пов’язані з оперативною па­м’яттю, а можуть — з відображеними у пам’ять ресурсами. Адресний простір процесу недоступний іншим процесам.

  • Процес володіє системними ресурсами, такими як файли, мережні з’єднання, пристрої введення-виведення, об’єкти синхронізації тощо.

  • Процес містить деяку стартову інформацію для потоків, які в ньому створю­ватимуться. Наприклад, це інформація про базовий пріоритет і прив’язання до процесора.

Процес має містити хоча б один потік, який система скеровує на виконання. Без потоків у WindowsХР наявність процесів неможлива.

Структури даних процесу

  1. Розглянемо структури даних, пов’язані із процесом у WindowsХР. Для ви­конавчої системи WindowsХР кожний процес зображається об’єктом-процесом виконавчої системи (executiveprocessobject); його також називають керуючим блоком процесу(executiveprocessblock, EPROCESS). Для ядра системи процес зображається об’єктом-процесом ядра (kernelprocessobject), його також назива­ють блоком процесу ядра(processkernelblock, KPROCESS).

  2. У режимі користувача доступним є блок оточення процесу(processenviron­mentblock, РЕВ), що перебуває в адресному просторі цього процесу.

  3. Розглянемо структури даних процесу докладніше. Зазначимо, що EPROCESS і KPROCESS, на відміну від РЕВ, доступні тільки із привілейованого режиму.

Керуючий блок процесу містить такі основні елементи:

  • блок процесу ядра (KPROCESS);

  • ідентифікаційну інформацію;

  • інформацію про адресний простір процесу;

  • інформацію про ресурси, доступні процесу, та обмеження на використання цих ресурсів;

  • блок оточення процесу (РЕВ);

  • інформацію для підсистеми безпеки.

До ідентифікаційної інформації належать:

  • ідентифікатор процесу (pid);

  • ідентифікатор процесу, що створив цей процес (незважаючи на те, що Win­dows ХР не підтримує відносини «предок-нащадок» автоматично, вони мо­жуть бути задані програмним шляхом, тобто нащадок може сам призначити собі предка, задавши цей ідентифікатор);

  • ім’я завантаженого програмного файла.

Блок процесу ядра містить усю інформацію, що належить до потоків цього процесу:

  • покажчик на ланцюжок блоків потоків ядра, де кожний блок відповідає потоку;

  • базову інформацію, необхідну ядру системи для планування потоків.

Блок оточення процесу містить інформацію про процес, яка призначена для доступу з режиму користувача:

  • початкову адресу ділянки пам’яті, куди завантажився програмний файл;

  • покажчик на динамічну ділянку пам’яті, доступну процесу.

Цю інформацію може використати завантажувач програм або процес підсисте­ми Win32.

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

У Win32 АРІ прийнято модель запуску застосування за допомогою одного ви­клику, який створює адресний простір процесу і завантажує в нього виконуваний файл. Окремо функціональність fork() і ехес() у цьому АРІ не реалізована.

Такий виклик реалізує функція CreateProcess(). Вона не є системним викли­ком ОС — це бібліотечна функція Win32 АРІ, реалізована в усіх Win32-cумісних системах.

Функція CreateProcess() потребує задання 10 параметрів. Зазначимо, що системні виклики UNIX/POSIX потре­бують меншої кількості параметрів (як уже зазначалося, fork() не використовує жодного параметра, а ехес() — використовує три параметри).

Наведемо основні кроки створення нового процесу із використанням функції CreateProcess().

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

  2. Створюють об’єкт-процес у виконавчій системі WindowsХР. При цьому вико­нують такі дії:

а) створюють та ініціалізують структури даних процесу (блоки EPROCESS, KPROCESS, РЕВ);

б) створюють початковий адресний простір процесу;

в) блок процесу поміщають у кінець списку активних процесів, які підтри­мує система.

  1. Створюють початковий потік процесу. Послідовність дій під час створення по­току розглядатимемо під час вивчення підтримки потоків у WindowsХР.

Після створення початкового потоку підсистемі Win32 повідомляють про но­вий процес і його початковий потік. Це повідомлення містить їхні дескриптори (handles).

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

У разі завершення процесу відповідний об’єкт-процес стає кандидатом на вилу­чення із системи. При цьому диспетчер об’єктів викликає метод delete для об’єктів- процесів, який закриває всі дескриптори в таблиці об’єктів цього процесу.

Процеси і ресурси. Таблиця об’єктів процесу

Кожен процес, може користуватися ресурсами через дескриптори відповідних об’єктів. Відкриті дескриптори об’єктів є індексами в таблиці об’єктів(objecttable), що зберігається в керуючому блоці процесу. Ця таблиця містить покажчики на всі об’єкти, дескриптори яких відкриті процесом. Процес може отримати дескриптор об’єкта кількома способами:

  • створивши новий об’єкт;

  • відкривши дескриптор наявного об’єкта;

  • успадкувавши дескриптор від іншого процесу;

  • отримавши дублікат дескриптора з іншого процесу.

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

Об’єкт може одночасно бути використаний декількома процесами, при цьому кожен з них отримує унікальний дескриптор, що відповідає цьому об’єкту.

Контрольні питання:

  1. Які складові елементи процесу?

  2. Яка структури даних процесу?

  3. Які елементи входять в структуру керуючого блоку процесу?

  4. Що належить до ідентифікаційної інформації?

  5. Як створюються процеси?

  6. Як завершуються процеси?

  7. Процеси і ресурси. Таблиця об’єктів процесу.

Література: Шеховцов В.А. Операційні системи. – К.: Видавнича група BHV, 2005. – 576 с.: іл., стор. 76-82.