
- •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. Контрольні запитання
- •Для нотаток Для нотаток Для нотаток
7. Хід роботи
Ознайомитись з основними теоретичними відомостями даної лабораторної роботи.
Ознайомитись з приведеними в додатках прикладами програм.
Ознайомитись з додатковими джерелами, приведеними в п. 11 (Література) .
Затвердити номер індивідуального завдання у викладача.
Виконати завдання згідно з номером.
8. Зміст звіту
Звіт повинен містити:
- титульну сторінку;
- мету роботи;
- завдання, робочий варіант тексту програми, результат виконання програми;
- короткі висновки по проведеній роботі.
9. Завдання На 75 балів виконати 4 завдання:
Програма розробляється на мові асемблер для ОС Windows, використовуючи пакет MASM32. Результат виводиться на екран консолі.
Зробити програму, яка виводить назву ехе-файла, для першого процесу в списку процесів.
Вдосконалити програму таким чином, щоб вона виводила назви та ідентифікатори всіх процесів в системі.
Добавити вивід кількості потоків для кожного процесу.
Зробити так, щоб ця програма кожні 2 сек. записувала в файл назви ехе-файлів, ідентифікатори і кількість потоків для всіх процесів у системі. Коли файл вже існує новий список повинен заміняти старий.
На 95 балів потрібно розробити програму згідно варіанту.
Програми розробляються в MASM32. Результат виводиться на екран консолі. Розробити програму, яка
виводить імена процесів у вигляді: “ім’я батьківського процесу” -> “ім’я породженого процесу”
з допомогою функції GetCommandLine приймає назву процеса з командної стрічки, який необхідно завершити і завершує його.
кожну сек. перевіряє чи не з’явився процес з назвою “mirc”, при появі такого процесу програма повинна видавати звуковий сигнал.
повинна виводити імена модулів, які використовуються всіма процесами в системі.
виводить пріоритети для всіх потоків зареєстрованих в системі.
кожну сек. (використовуючи функцію Sleep) перевіряє чи не завершився процес з деяким іменем, а коли завершився видає повідомлення.
друкує на екран назву класу пріоритету для процеса, ідентифікатор якого задано в командному рядку (“Найнижчий” - IDLE_PRIORITY_CLASS, “Нормальний” - NORMAL_PRIORITY_CLASS, “Високий” - HIGH_PRIORITY_CLASS, “Найвищий” - REALTIME_PRIORITY_CLASS).
з командної стрічки приймає два параметри: ідентифікатор процесу і число, яке визначає клас пріоритету (0 - IDLE_PRIORITY_CLASS, 1 - NORMAL_PRIORITY_CLASS, 2 - HIGH_PRIORITY_CLASS, 3 - REALTIME_PRIORITY_CLASS). Програма повинна змінити пріоритет виконання заданого процесу на вказаний в другому параметрі.
інтерактивно записує в файл зміни в списку процесів у вигляді: дд.мм.рррр гг:хх:сс запустився/завершився “назва процесу”
інтерактивно записує в файл зміни кількості потоків у вигляді: дд.мм.рррр гг:хх:сс “назва процесу” кількість_потоків
10. Контрольні запитання
Назвати функцію і параметри для створення списку процесів та потоків.
Назвати функції перегляду процесів.
Які функції викликаються для перегляду модулів?
Де зберігається ідентифікатор процесу повернутий функцією Process32First?
Як визначити всі потоки створені заданим процесом?
Що необхідно зробити для керування процесом?