
- •2. Структура файлу boot.Ini, його призначення та використання.
- •3. Параметри запуску ос Windows.
- •4. Фази завантаження ос Windows та їх характеристика.
- •6. Завершення роботи ос Windows.
- •7. Особливості завантаження ос w7. Редактор bcd.
- •8. Роль bcd та диспетчера завантажень ос w7.
- •9. Вибір ос для завантаження та його особливості.
- •10. Реєстр ос Windows. Його призначення та використання.
- •11. Основні ключі реєстру, їх структура та використання.
- •12. Способи доступу до вмістимого реєстру та їх характеристика.
- •13. Підсистема безпеки. Сукупність вимог до ос.
- •14. Користувачі та групи. Створення та управління.
- •15. Профілі користувачі – складові частини та взаємодія.
- •16. Ідентифікатор безпеки та його використання. Ідентифікатори захисту
- •Маркери
- •Уособлення
- •Обмежені маркери
- •Дескриптори захисту і керування доступом
- •Визначення прав доступу
- •17. Мережеві моделі. Доменна модель.
- •18. Мережеві моделі. Модель робочих груп.
- •19. Система Active Directory та її загальна характеристика.
- •20. Роль dns та ldap в роботі Active Directory.
- •21. Домени у Windows та їх особливості. Створення доменів.
- •22. Процеси та потоки в Windows. Загальна характеристика.
- •23. Етапи створення потоків, структури даних, змінні ядра і об’єкти.
- •25. Основні етапи створення процесу.
- •26. Поняття про кванти і пріоритети, їх застосування.
- •27. Управління пам’яттю. Компоненти диспетчера памяті.
- •28. Захист памяті, основні атрибути.
- •29. Структура адресного простору.
- •30. Формальні мови та способи їх визначення.
- •31. Форми Бекуса-Наура: бнф та рбнф
- •32. Граматики Хомського. Загальна характеристика та використання.
- •33. Розпізнавачі та їх складові частини.
- •34. Скінченні автомати, складові частини та їх характеристика.
- •35. Огляд процесу компіляції. Типи компіляторів.
- •37. Загальна схема мовного процесора та її аналіз.
- •38. Генерація машинного коду та його оптимізація.
- •39. Поняття про резидентні програми і драйвери
- •42. Масиви powershell.
- •43. Арифметичні оператори ПауерШелл.
- •44. Оператори порівняння та логічні оператори.
- •45. Управляючі оператори і оператори циклу.
- •46. Функції.
- •47. Рекурсивні функції.
- •48. Використання фільтрів.
- •49. Сценарії.
- •50. Регулярні вирази.
23. Етапи створення потоків, структури даних, змінні ядра і об’єкти.
Етапи створення потоків
Життєвий цикл потоку починається при його створенні програмою. Запит на його створення в кінцевому рахунку надходить виконавчій системі Windows, де диспетчер процесів виділяє пам'ять для об'єкта «потік» і викликають ядро для ініціалізації блоку потоку ядра. Нижче перераховані основні етапи створення потоку Windows функцією CreateThread (яка знаходиться в Kernel32.dll).
1. CreateThread створює стек користувацького режиму в адресному просторі процесу.
2. CreateThread ініціалізує апаратний контекст потоку, специфичний для конкретної архітектури процесора.
3. Для створення об'єкта «потік» виконавчої системи викликається NtCreateThread. Він створюється в загальмованому стані. Опис операцій, які виконуються NtCreateThread.
4. CreateThread повідомляє підсистему Windows про створення нового потоку, і та виконує деякі підготовчі операції.
5. Викликав коду повертаються описувач та ідентифікатор потоку.
6. Виконання потоку відновлюється, і йому може бути виділено процес бур'янисте час, якщо тільки він не був створений з прапором CREATE_SUSPENDED.
Структури даних
На рівні ос поток представляється блоком потока, який належить виконавчій системі (ETHREAD).
Блок ETHREAD і всі структури даних, на яких він вказує, існують в системному адресному просторі, крім блоку змінних потоку він розміщується в адресному просторі процеса. Крім цього, процес підсистеми Windows (Csrss) підтримує паралельну структуру для кожного потому, створеного в Windows процесі. Частина підсистеми Windows працююча в режимі ядра ядра (Win32k.sys), також підтримує для кожного потока, викликаючого USER або GDI функцію, структуру W32THREAD, на яку вказує блок ETHREAD.
Змінні ядра
PspCreateThread_ NotifyRoutine - масив вказівник на процедури (максимум 8) викликаний при створенні і видаленні потоку.
PspCreateThread_ NotifyRoutineCount – лічильник зареєстрований процедур повідомлення потока.
PspCreateProcess_ NotifyRoutine - масив вказівник на процедури (максимум 8) викликаний при створенні і видаленні процесу.
24. Управління потоками, основні функції.
Перераховані функції , що дозволяють створювати потоки і маніпулювати ними.
CreateThread Створює новий потік
CreateRemoteThread Створює потік в іншому процесі
ExitThread Нормально завершує потік
TerminateThread Аварійно завершує потік
GetExitCodeThread Отримує код завершення іншого потоку
GetThreadTimes Повертає тимчасові характеристики іншого потоку
GetCurrentThread Повертає псевдоописувач поточного потоку
GetCurrentThreadId Повертає ідентифікатор поточного потоку
GetThreadId Повертає ідентифікатор зазначеного потоку
GetThreadContext Повертає або змінює регістри процесора
SetThreadContext для даного потоку
GetThreadSelectorEntry Повертає елемент таблиці дескрипторів іншого потоку (тільки для систем типу x86)