переходити у режим ядра и Продовжує Виконувати як тієї ж самий Потік з Тімі ж самими властівостямі и лімітамі (Які ВІН МАВ в режімі користиувача). Коженая Потік має два стека, один - для Використання в режімі користувача, а Інший - для Використання в режімі ядра. Колі Потік входити в ядро, ВІН переключається на стек режиму ядра. Значення регістрів корістувацького режиму зберігаються в структурі Даних CONTEXT (в Нижній частіні стека режиму ядра). Оскількі Єдиним способом не Виконувати для потоку корістувацького режиму є вхід в ядро, то CONTEXT всегда містіть стан регістрів для невіконуючого потоку. CONTEXT потоку можна вивчити и модіфікуваті з будь-якого процеса, что має опісувач потоку.
Потоки зазвічай віконуються помощью маркера доступу Який містіть їх Процеси, альо в Деяк випадка (пов'язаних з клієнт-серверна обчисления) віконується в СЛУЖБОВЕ процесі Потік может уособлюваті свой клієнт помощью Тимчасового маркера доступу (Заснований на маркері клієнта), щоб Виконати операцію від имени клієнта.
Потоки зазвічай є центрами вводу-виводу. Потоки блокують при віконанні синхронного вводу-виводу, а невіконані пакети Запитів асинхронного ВСТУП-Виведення прив'язуються до потоку. Колі Потік Закінчив Виконання, ВІН может війта. Будь-які невіконані Предложения вводу-виводу будут скасовані. Колі Останній активний Потік процеса виходе, процес завершується.
ВАЖЛИВО зрозуміті, что потоки є концепцією планування, а не концепцією володіння ресурсами. Будь-який Потік может Звертатися до всіх про «єктів, Які належати его процеса. Все, что для цього нужно сделать - використовуват Значення опісувача и сделать відповідній виклик Win32. Немає такого обмеження, щоб Потік НЕ МІГ звернута до об »єкта через ті, что его створі (або відкрів) Інший Потік. Система даже НЕ відстежує, Який Потік створі Данії про «єкт. После того як опісувач об »єкта БУВ поміщеній в таблиці опісувачів процеса, будь-який Потік процеса может ним користуватись.
Процеси такоже могут використовуват Різні типи об'єктів сінхронізації. Windows Vista надає безліч механізмів сінхронізації (включаючі семафори, мьютекс, Критичні области та події). Всі ЦІ механізмі Працюють з потоками (а не процесами), так что коли Потік блокується на семафорі, то Інші потоки цього процеса (ЯКЩО смороду є) могут продовжуваті Виконання.
семафор - це про «єкти режиму ядра и того смороду мают ДЕСКРИПТОР безпека й опісувачі. Семафор створюється помощью Функції Create Semaphore інтерфейсу Win32 API, яка может ініціалізуваті его завдання значення, а такоже Задати максимальне значення. Опісувач для семафора может буті здубльованій помощью Duplicate Handle и надіс в Інший процес (щоб по одному и тому ж семафору могли сінхронізуватіся кілька процесів). Семафора можна дати ім »я в просторі імен Win32. Іноді СПІЛЬНЕ Використання семафора по имени більш зручне, чем дублювання опісувача.
М'ютекс - це теж об'єкти режиму ядра, вікорістовувані для сінхронізації, альо смороду простіші семафорів (оскількі НЕ мают лічільніків). За суті це Блокування, что мают Функції API для Блокування (WaitForSingleObject) i розблокування (ReleaseMutex). Подібно опісувачам семафорів, опісувачі м'ютекс могут дублюватіся и передаватіся между процесами, щоб потоки в різніх процесах могли отріматі доступ до одного и того ж м'ютексів.
Третій Механізм сі...