
- •6.050101 «Комп’ютерні науки»
- •Загальні вимоги до виконання лабораторних робіт
- •Лабораторна робота №1
- •1. Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Створення процесу
- •1.3 Створення потоку
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Функція CreateProcess створює новий процес.
- •Додаток 4
- •Додаток 5
- •Addr ThreadId – Створює новий потік.
- •Додаток 6
- •Додаток 7
- •Лабораторна робота №2
- •1. Основні теоретичні відомості
- •1.1 Механізми міжпроцесової взаємодії
- •1.2 Механізми синхронізації процесів та потоків
- •1.3 Об’єкти синхронізації
- •1.4 Очікуючі функції
- •1.5 Створення атома
- •1.6 Створення каналу
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6.Список використаної літератури
- •Додаток 1
- •Додаток 2
- •Додаток 3
- •Додаток 4
- •Додаток 5 Детальний опис функції створення анонімного каналу
- •Додаток 6 Детальний опис функції створення іменованого каналу
- •Додаток 7
- •Додаток 8
- •Додаток 9 Текст програми створення анонімного каналу
- •Додаток 10
- •Лабораторна робота №3
- •1. Основні теоретичні відомості
- •2. Приклад програми створення dll
- •Опис програми My_dll.Asm та файлу лістінга My_dll.Def
- •4. Трансляція та компонування dll Для того, щоб відтранслювати(ml.Exe) та зкомпонувати (link.Exe) даний .Asm код, потрібно використовувати наступні параметри:
- •5. Приклад використання функції з бібліотеки
- •Приклад програми завантаження dll
- •7. Створення файлу лістінгу існуючої бібліотеки
- •8. Приклад передачі даних у функцію бібліотеки Створення динамічно завантажуваної бібліотеки
- •Передача параметру у функцію бібліотеки
- •9. Хід роботи
- •11. Завдання
- •12. Контрольні запитання
- •13. Список використаної літератури
- •Лабораторна робота №4
- •1. Основні теоретичні відомості
- •Параметри функції CreateToolhelp32Snapshot:
- •2. Перегляд процесів
- •3. Перегляд потоків
- •Значення результуючого параметру (регістр еах) таке саме як в Process32First і Process32Next.
- •4. Перегляд хіпів асоційованих з процесом
- •5. Перегляд модулів, які використовує процес
- •6. Керування процесами
- •7. Хід роботи
- •9. Завдання На 75 балів виконати 4 завдання:
- •10. Контрольні запитання
- •11. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №5
- •Основні теоретичні відомості
- •1.1 Основні поняття
- •1.2 Категорії даних
- •1.3 Відкриття і закриття ключів реєстру
- •1.4 Створення підключа у відкритому ключі реєстру
- •1.5 Отримання інформації з ключа реєстру
- •1.6 Перелічення списку значень для заданого ключа реєстру
- •1.7 Виявлення змін в гілці реєстру
- •1.8 Робота з налаштуваннями операційної системи через реєстр
- •2. Хід роботи
- •4. Завдання
- •5. Контрольні запитання
- •6. Список використаної літератури
- •Додаток 1
- •Лабораторна робота №6
- •1. Основні теоретичні відомості
- •Породження процесів
- •1.2 Породження потоків
- •2. Хід роботи
- •4. Індивідуальні завдання
- •5. Контрольні запитання
- •Для нотаток Для нотаток Для нотаток
1. Основні теоретичні відомості
Функції WinAPI забезпечують спрощену взаємодію та розподіл ресурсів між процесами. Механізм взаємодії між процесами називається міжпроцесовою взаємодією (Interprocess Communication - IPC), механізми, котрі забезпечують синхронізацію процесів та потоків називають механізмами синхронізації процесів (Interprocess Syncronization).
Зазвичай, програми, котрі взаємодіють між собою, поділяють на програми - клієнти та програми - сервери. Клієнт – програма вимагає обслуговування сервер - програмою. Сервер – програма відповідає на відповідні запити програми – клієнта.
1.1 Механізми міжпроцесової взаємодії
Функції WinAPI підтримують наступні механізми міжпроцесової взаємоїді IPC:
Clipboard
Component Object Model (COM)
Dynamic Data Exchange (DDE)
File Mapping
Mailslot
Pipe
Remote Procedure Call (RPC)
Windows Sockets
WM_COPYDATA
Atom
Clipboard – буфер. Цей механізм міжпросесової взаємодії використовується для копіювання та вставки текстової чи графічної інформації.
COM – це протокол, котрий з’єднує один програмний модуль з іншим. COM є потужною інтеграційною технологією, котра дозволяє складати різні частини програмного забезпечення в одну програму.
DDE - це протокол, котрий дає змогу програмам обмінюватись даними різних форматів.
File Mapping – даний механізм дає можливість процесові користуватись файлом на диску та як би він був занесений у пам’ять, в адресний простір даного процесу.
Mailslot – цей механізм забезпечує однонаправлену міжпроцесову взаємодію. Будь – який процес, котрий створить mailslot стає mailslot – сервером. Інший процес, mailslot – клієнт, передає інформацію серверу, вписуючи її у mailslot сервера.
Pipe – канал. Існує однонаправлений механізм передачі даних через канал, використовуючи анонімні канали та двонаправлений – використовуючи іменовані канали.
RPC – віддалений виклик процедур. Даний механізм дозволяє керувати процесами на віддалених комп’ютерах.
Windows Sockets – незалежний від протоколу інтерфейс передачі даних.
WM_COPYDATA – повідомлення, котре шле Windows у випадку передачі даних між процесами. Дані передаються за допомогою структури COPYDATASTRUCT. Один процес записує дані у структуру COPYDATASTRUCT, а інший зчитує їх.
Atom – це число або стрічка, котрі повертаються програмі після того, як вона зробила запис у загальній таблиці атомів. Люба програма маючи atom може мати доступ до відповідного запису у таблиці атомів. Запис у таблиці атомів називається ім’ям атома. Бувають глобальні та локальні таблиці атомів.
1.2 Механізми синхронізації процесів та потоків
Функції WinAPI також забезпечують синхронізацію процесів та потоків (Interprocess Syncronization).
Для синхронізації доступу декількох програм до одного ресурсу використовують об’єкти синхронізації (synchronization objects) та очікуючі функції (wait functions).
Також існують інші механізми синхронізації:
Взаємо – виключний ввід і вивід (overlapped input and output)
Асинхронний виклик процедур (asynchronous procedure calls)
Об’єкти критичної секції (critical section objects)
Блокований змінний доступ (interlocked variable access)