- •Системне програмування, характерні особливості.
- •Асемблер. Варіанти спільного використання асемблера і мов високого рівня.
- •Інструментальні засоби розробки програм на мові Асемблер.
- •Регістри.
- •Користувацькі регістри.
- •Сегментні регістри.
- •Організація роботи з пам’ятю.
- •Сегментна модель пам’яті.
- •Набір команд мікропроцесора.
- •Специфікація типів даних
- •11. Використання арі-функцій.
- •12. Структура програми, приклад простої програми для Windows.
- •13. Передача параметрів через стек
- •14. Використання ресурсів при роботі з діалоговими вікнами.
- •15.Використання ресурсів при роботі з меню.
- •16. Використання акселераторів у файлах ресурсу.
- •17. Ресурси. Переваги використання ресурсів у програмах.
- •18. Використання ресурсів при роботі з іконками, рядками, курсорами.
- •21. Потоки, взаємодія потоків.
- •22. Семафори блять! Події нахуй!
- •23. Критичні секції.
23. Критичні секції.
Критинні секції. Поняття критичної секції дозволяє вберегти певні області програми так, щоб у цій частині програми в даний момент часу виконувався б тільки один потік.
Розглянемо функції для роботи з критичною секцією.
InitializeCriticalSection - дана функція створює об'єкт під назвою критична секція
Параметри функції
1-й параметр. Покажчик на структуру. Поля даної структури викорисговуються
тільки внутрішніми процедурами сенс довільний.
CRITICAL_SECTION STRUCT
DebugInfo DWORD?
LockCount LONG?
RecursionCount LONG?
OwningThread HANDLE?
LockSemaphore HANDLE?
SpinCount DWORD?
CRITICAL_SECTION ENDS
EnterCriticalSection – увійти в критичну секцію. Після виконання цієї функції даний потік стає власником даної секції. Наступний потік, виклавши цю функцію, буде перебувати в стані очікування . Параметр функції такий же, що і в попередній функції.
LeaveCriticalSection – залишити критичну секцію. Після цього другий потік, який був зупинений функцією EnterCriticalSection, стане власником критичної секції. Параметр функції LeaveCriticalSection, такий же, як і попередніх функцій.
DeleteCriticalSection – видалити об’єкт «критична секція». Параметр аналогічний попереднім.
