- •Моделі процесів і потоків
- •Складові елементи процесів і потоків
- •2. Багатопотоковість та її реалізація
- •Поняття паралелізму
- •Види паралелізму.
- •Переваги і недоліки багато потоковості
- •Способи реалізації моделі потоків
- •2.2.1 Стани процесів і потоків
- •Опис процесів і потоків
- •Керуючі блоки процесів і потоків
- •Образи процесу і потоку
- •2.5. Перемикання контексту й обробка переривань
- •2.5.1. Організація перемикання контексту
- •2.5.2. Обробка переривань.
- •2.6. Створення і завершення процесів і потоків
- •2.6.1. Створення процесів Базові принципи створення процесів
- •Ієрархія процесів
- •2.6.3. Керування адресним простором під час створення процесів
- •Особливості завершення процесів
- •Синхронне й асинхронне виконання процесів
- •2.6.6. Створення і завершення потоків Особливості створення потоків.
- •2.9. Керування процесами у Windows хр
- •2.9.1Складові елементи процесу
- •Структури даних процесу
- •3.9.3. Створення процесів
- •3.9.4. Завершення процесів
- •Процеси і ресурси. Таблиця об'єктів процесу
- •3.9.6. Програмний інтерфейс керування процесами Win32 арі
- •Керування потоками у Windows хр
- •3.10.1. Складові елементи потоку
- •Структури даних потоку
- •Створення потоків
- •3.10.4. Особливості програмного інтерфейсу потоків
2.9. Керування процесами у Windows хр
Поняття процесу й потоку у Windows ХР чітко розмежовані. Процеси в даній системі визначають «поле діяльності» для потоків, які виконуються в їхньому адресному просторі. Серед ресурсів, з якими процес може працювати прямо, відсутній процесор — він доступний тільки потокам цього процесу. Процес, проте, може задати початкові характеристики для своїх потоків і тим самим вплинути на їхнє виконання.
2.9.1Складові елементи процесу
Розглянемо базові складові елементи процесу.
Адресний простір процесу складається з набору адрес віртуальної пам'яті, які він може використати. Ці адреси можуть бути пов'язані з оперативною пам'яттю, а можуть - з відображеними у пам'ять ресурсами. Адресний простір процесу недоступний іншим процесам.
Процес володіє системними ресурсами, такими як файли, мережні з'єднання, пристрої введення виведення, об'єкти синхронізації тощо.
Процес містить деяку стартову інформацію для потоків, які в ньому створюватимуться. Наприклад, це інформація про базовий пріоритет і прив'язання до процесора.
Процес має містити хоча б один потік, який система скеровує на виконання. Без потоків у Windows ХР наявність процесів неможлива.
Структури даних процесу
Розглянемо структури даних, пов'язані із процесом у Windows ХР. Зазначимо, що у роботі з цими структурами система використовує об'єктну модель. Для виконавчої системи Windows ХР кожний процес зображується об'єктом-процесом виконавчої системи (executive process object); його також називають керуючим блоком процесу (executive process block, EPROCESS). Для ядра системи процес зображується об'єктом-процесом ядра (kernel process object), його також називають блоком процесу ядра (process kernel block, KPROCESS).
У режимі користувача доступним є блок оточення процесу (process environment block, РЕВ), що перебуває в адресному просторі цього процесу.
Розглянемо структури даних процесу докладніше. Зазначимо, що EPROCESS і KPROCESS, на відміну від РЕВ, доступні тільки із привілейованого режиму.
Керуючий блок процесу містить такі основні елементи:
блок процесу ядра (KPROCESS);
ідентифікаційну інформацію;
інформацію про адресний простір процесу (її структуру розглянемо в розділі 9);
інформацію про ресурси, доступні процесу, та обмеження на використання цих ресурсів;
блок оточення процесу (РЕВ);
інформацію для підсистеми безпеки.
До ідентифікаційної інформації належать:
ідентифікатор процесу (pid);
ідентифікатор процесу, що створив цей процес (незважаючи на те, що Windows ХР не підтримує відносини «предок-нащадок» автоматично, вони можуть бути задані програмним шляхом, тобто нащадок може сам призначити собі предка, задавши цей ідентифікатор);
ім'я завантаженого програмного файлу.
Блок процесу ядра містить усю інформацію, що належить до потоків цього процесу:
покажчик на ланцюжок блоків потоків ядра, де кожний блок відповідає потоку;
базову інформацію, необхідну ядру системи для планування потоків.
Блок оточення процесу містить інформацію про процес, яка призначена для доступу з режиму користувача:
початкову адресу ділянки пам'яті, куди завантажився програмний файл;
покажчик на динамічну ділянку пам'яті, доступну процесу.
Цю інформацію може використати завантажувач програм або процес підсистеми Win32.