Системне програмування

Питання до контрольної роботи № 1

Тема 1. Системне та прикладне програмування.

Поняття про системне та прикладне програмування. Концепції програмування. Структурне програмування. Програмування на основі подій. Процес створення і трансляції програм. Засоби створення Windows-програм.

Тема 2. Взаємодія програм з ОС. Функції BIOS, DOS та WinAPI.

Архітектура та принципи Windows. Поняття про віртуальні машини. Запуск DOS-програм у DOS та Windows. Win32-програми. Прикладний програмний інтерфейс Windows (WinAPI). Категорії функцій WinAPI. Довідкова система Windows API.

Тема 3. Принципи програмування у Windows.

Домовленості для програмування під Windows. Типи даних Windows. Принципи найменування змінних (Угорська нотація). ASCII та Unicode у Windows-програмах. Узагальнені типи даних. Узагальнена функція main().

Тема 4. Консольні програми у Windows.

Принцип дії консолі Windows. Вхідний та екранні буфери консолі. Створення та налаштування консолі. Низькорівневі та високорівневі функції WinAPI для роботи з консоллю.

Тема 5. Концепція повідомлень у Windows.

Керовані подіями програми. Концепція повідомлень. Типи повідомлень. Чергові повідомлення. Позачергові повідомлення. Аналіз та обробка повідомлень у WindowProc().

Тема 6. Віконні програми у Windows. Використання ресурсів.

Елементи вікна Windows. Структура Windows-програми. Функція WinMain() та її параметри. Реєстрація класу вікна. Створення примірника вікна. Цикл повідомлень. Процедура вікна та функція WindowProc().

Поняття ресурсу програми. Файли ресурсів. Редактори ресурсів. Компіляція ресурсів. Підключення ресурсів до програми. Приклади використання ресурсів: іконки, курсори, рядки, меню, діалоги.

Тема 7. Модульне програмування. Робота з динамічними бібліотеками.

Статичні бібліотеки. Бібліотеки динамічного компонування (DLL). Об’єктні бібліотеки та бібліотеки імпорту. Статичне та динамічне зв’язування. Неявне та явне завантаження динамічних бібліотек.

Тема 8. Обробка виключень у Windows.

Обробка помилок у Windows. Виключні ситуації та їх обробники. Виключення при виконанні операцій та програмні виключення. Структурна обробка виключень (SEH). Фреймові та фінальні обробники виключень. Векторна обробка виключень (VEH).

Питання до контрольної роботи № 2

Тема 10. Об'єкти ядра Windows.

Об'єкти ядра Windows. Дескриптори об’єктів. Наслідування та дублювання дескрипторів. Створення та знищення об’єктів.

Тема 11. Робота з файлами засобами WinAPI.

Створення, відкриття, закриття файлу. Читання з файлу і запис у файл. Вказівник позиції файлу. Копіювання, переміщення та видалення файлу. Додаткові функції роботи з файлами. Функції роботи з каталогами. Робота з системним реєстром.

Тема 12. Керування пам’яттю у Windows.

Концепція віртуальної пам’яті. Організація віртуальної пам’яті. Робота з віртуальною пам’яттю. Робота з купою. Відображення файлів у пам’ять.

Тема 13. Керування процесами у Windows.

Поняття про процеси і потоки. Пріоритети процесів у Windows. Створення процесу. Завершення процесу. Очікування завершення процесу.

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

Поняття потоку. Контекст потоку. Пріоритети потоків у Windows. Функція потоку та її параметри. Створення і завершення потоків. Керування потоками. Призупинення і відновлення потоків. Очікування завершення потоків.

Тема 15. Синхронізація потоків засобами WinAPI.

Атомарні функції WinAPI. Критичні секції. М’ютекси. Семафори. Події.

Тема 16. Засоби міжпроцесної взаємодії у Windows.

Способи обміну даними між процесами. Локальні засоби. Передача повідомлень. Повідомлення WM_COPYDATA. Анонімні канали. Обмін даними через анонімні канали.

Віддалені засоби. Іменовані канали. Обмін даними через іменовані канали. Поштові скриньки. Віддалений виклик процедур (RPC).

Тема 17. Основи мережевого програмування з використанням сокетів.

Поняття сокета. Механізм сокетів. Бібліотеки сокетів. Створення сокетів, зв’язування сокетів, з’єднання з сокетом, прослуховування сокета. Обмін даними через сокети.