Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpora_OS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
296.45 Кб
Скачать

25. Основні етапи створення процесу.

Створення Windows- процесу здійснюється викликом однієї з таких функцій, як CreateProcess, CreateProcessAsUser, CreateprocessWitbTokenW, і відбувається декілька етапів з участю компонентів ос: Kernel32.dll(бібліотека клієнтської частини Windows) виконавчої системи і процеса підсистеми Windows (Crss). Тому архітектура Windows підтримує декілька підсистем, операції необхідні для створення об’єкта процес виконавчої системи відокремлені від операцій вимагаючи для створення Windows процеса.

Основні етапи створення процесу Windows - функцією CreateProcess.

1. Відкривається файл образу (EXE), який буде виконуватися в процесі.

2. Створюється об'єкт «процес» виконавчої системи.

3. Створюється первинний потік (стек, контекст і об'єкт «потік» виконавчої системи).

4. Підсистема Windows повідомляється про створення нового процесу й потоку.

5. Починається виконання первинного потоку (якщо не вказано прапор CREATE_ SUSPENDED).

6. У контексті нового процесу й потоку ініціалізується адресний простір (наприклад, завантажуються необхідні DLL) і починається виконання програми.

26. Поняття про кванти і пріоритети, їх застосування.

  1. Приорітети та їх використання.

в Windows пердбачено 32 рівня приорітету – від 0 до 31. Ці значення групуються так:

  • 16 рівнів реального часу (16-31);

  • 15 варійованих (динамічних) рівнів (1-15);

  • Один системний рівень (0), зарезервований для потоку обнулення сторінок (zero page thread).

Рівні пріоритету потоку призначаються з урахуванням двох різних точок зору - Windows API та ядра Windows. Windows API спочатку впорядковує процеси по класах пріоритету, призначеного при їх створенні, а потім - за відносним пріоритетом індивідуальних потоків в рамках цих процесів. Базовий пріоритет кожного потоку в Windows API встановлюється, виходячи з класу пріоритету його процесу і відносного пріоритету самого потоку. Якщо у процесу тільки одне значення пріоритету (базове), то у кожного потоку їх два: поточне і базове

Кванти та їх роль у виконання потоків.

Квант – це інтервал процесорного часу, відведений потоку для виконання. Після його закінчення Windows перевіряє, чи очікує виконання іншої потік з таким же рівнем пріоритету. Якщо на момент закінчення кванта інших потоків з тим же рівнем пріоритету немає, Windows виділяє поточному потоку е один квант.

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

В Windows Server – 36 (12 * 3).

Для зміни виличини кванта для потоків всіх проссів можна використати лише два значення: короткий (2 такта таймера використовується по замовчуванням для клієнтських компютерів), або довгий (12 тактів таймера використовується по замовчуванням для серверних систем)

Заверщення кванта

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]