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

3.9.6. Програмний інтерфейс керування процесами Win32 арі

Треба звернути увагу на систему типів Win32 АРІ. Розробники цього АРІ для визначення типів широко застосовували синоніми імен типів, тому потрібно вміти знаходити в типах Win32 АРІ традиційні типи мови С. Виділимо деякі базові типи:

  • B00L — його використовують для зберігання логічного значення, насправді він є цілочисловим;

  • DWORD – двобайтовий цілочисловий тип без знака, аналог unsigned int;

  • HANDLE — цілочисловий дескриптор об'єкта;

  • LPTSTR — покажчик на рядок, що складається із двобайтових або однобайтових символів (залежно від режиму компіляції програми — із підтримкою Unicode або без неї), аналої - char * або wchart *;

  • LPCTSTR — покажчик на константний рядок, аналог const char * або const wchar_t *.

Взагалі для створення імені типу покажчика потрібно додати до імені базового типу префікс LP. Таке утворення імен траплятиметься й далі (наприклад, LPV0ID оз­начає void *, LPSECURITY_ATTRIBUTES - покажчик на структуру SECURITYATTRIBUTES).

Для використання засобів Win32 АРІ у більшості випадків достатньо підклю­чити заголовний файл windows. h. Надалі підключення цього файлу матиметься на увазі за замовчуванням.

Для закриття дескрипторів об'єктів буде використана API-функція CloseHandle ( ).

    1. Керування потоками у Windows хр

Для того щоб виконувати код, у рамках процесу обов'язково необхідно створити потік. У системі Windows ХР реалізована модель потоків «у чистому вигляді». Процеси і потоки є різними сутностями в системі, що перебувають у чітко визна­ченому взаємозв'язку один з одним; для роботи з ними використовують різні системні виклики. У Windows ХР ніколи не використовували модель процесів, подібну до традиційної моделі UNIX.

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

3.10.1. Складові елементи потоку

Потік у Windows ХР складається з таких елементів:

  • вмісту набору регістрів, який визначає стан процесора;

  • двох стеків — один використовують для роботи в режимі користувача, ін­ший — у режимі ядра; ці стеки розміщені в адресному просторі процесу, що створив цей потік;

  • локальної пам'яті потоку (TLS);

  • унікального ідентифікатора потоку (thread id, tid), який вибирають із того са­мого простору імен, що й ідентифікатори процесів.

Сукупність стану процесора, стеків і локальної пам'яті потоку становить кон­текст потоку. Кожний потік має власний контекст. Усі інші ресурси процесу (його адресний простір, відкриті файли тощо) спільно використовуються потоками.

Розрізняють два види потоків: потоки користувача і потоки ядра, які у Win­dows ХР називають системними робочими потоками — system worker threads. Перші з них створюють у режимі користувача й тільки за необхідності перемикають у режим ядра. Інші створюють в ядрі під час його ініціалізації і виконують у режимі ядра протягом усього часу їхнього існування.

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