Відмінності між версіями «Потоки»
Tanya (обговорення • внесок) |
Tanya (обговорення • внесок) |
||
Рядок 44: | Рядок 44: | ||
* '''Завершуючий.''' Завершення потоку ініціюється самим потоком, іншим потоком або може віббутися в зв'язку з завершенням батьківського процесу. | * '''Завершуючий.''' Завершення потоку ініціюється самим потоком, іншим потоком або може віббутися в зв'язку з завершенням батьківського процесу. | ||
[[Файл:Йфя.JPG||500px]] | [[Файл:Йфя.JPG||500px]] | ||
+ | |||
+ | ='''Додаткова інформація'''= | ||
+ | * [http://pro.dtn.ru/sys/sys1.html Системное программирование в Windows]; | ||
+ | * [http://www.uinc.ru/articles/38/ Процессы в Windows]; | ||
+ | * [[Створення та завершення потоків у Windows, їх стани та планування. ]] |
Версія за 21:50, 13 травня 2013
Потоки в Win2k
Потоком в Windows називається об'єкт ядра, якому операційна система виділяє процесорний час для виконання програми.
Кожному потоку належать наступні ресурси:
- код виконуваної функції;
- набір регістрів процесора;
- стек для роботи програми;
- стек для роботи операційної системи;
- маркер доступу, який містить інформацію для системи безпеки.
Всі ці ресурси утворюють контекст потоку в Windows. Крім дескриптора кожен потік в Windows також має свій ідентифікатор, який унікальний для потоків, що виконуються в системі. Ідентифікатори потоків використовуються службовими програмами, які дозволяють користувачам системи відстежувати роботу потоків.
В операційних системах Windows розрізняються потоки двох типів:
- системні потоки - виконують різні сервіси операційної системи і запускаються ядром операційної системи;
- користувальницькі потоки - служать для вирішення задач користувача і запускаються додатком.
В сімействі операційних систем Microsoft Win2k (включаючи і сучасну Win7) процеси реалізуються у вигляді об'єктів.
В процесі, що виконується можуть міститись один, або декілька потоків.
Можливості синхронізації вбудовуються в об'єкти-процеси та об'єкти-потоки.
Атрибути процесу в Windows:
- Ідентифікатор процесу - унікальне значення.
- Дескриптор захисту - описує, хто створив об'єкт, хто має право доступу, хто є власником.
- Базовий пріоритет.
- Процесор по замовчуванню.
- Квоти - максимальна кількість сторінкової пам'яті, об'єм пам'яті, процесорний час.
- Час виконання - сумарний час, що витрачається на всі потоки.
- Лічильники вводу-виводу - змінні куди заносяться відомості про операції вводу=виводу.
- Лічильники операцій з віртуальною пам'яттю.
- Порти відладки - канали обміну між процесами.
- статус виходу - причина завершення.
Стани потоків в Windows
- Готовий до виконання. Потік може бути відправлений на виконання.
- Резервний. Потік, що буде запущено наступним на даному процесорі. Може витісняти процес з меншим пріоритетом.
- Виконуємий. Може знаходитися в цьому стані поки не буде повністю виконано, або витіснено.
- Очікуючий. Потік знаходиться в стані чекання, якщо він:
1)заблокований подією; 2)добровільно чекає синхронізації; 3)середовище підсистеми вказує потоку щоб він сам себе призупинив.
- Перехідний. Потік готовий до виконання, але ресурси недоступні.
- Завершуючий. Завершення потоку ініціюється самим потоком, іншим потоком або може віббутися в зв'язку з завершенням батьківського процесу.