
- •1Розробка універсальних додатків для різних типів кодувань символьної інформації
- •1.1Мета роботи
- •1.2Підготовка до роботи. Теоретичні положення
- •1.2.1Типи даних char і wchar_t. Універсальне завдання типу
- •1.2.2Функції для роботи з рядками для ansi і unicode кодувань
- •1.2.3Файл tchar.H. Пошук імен для універсальних функцій
- •1.2.4Визначення типу тексту і перетворення типу кодування тексту
- •1.3Завдання до лабораторної роботи. Порядок виконання
- •2.2.2Загальна характеристика динамічних бібліотек
- •2.2.3Створення статичних бібліотек
- •2.2.4Створення dll
- •2.2.5Використання dll
- •2.2.6Алгоритм шифрування rsa
- •2.3Порядок виконання лабораторної роботи
- •3.3Порядок виконання лабораторної роботи. Завдання до лабораторної роботи
- •3.5Контрольні запитання і завдання
- •4Керування зовнішніми пристроями. Нестандартні пристрої
- •4.1Мета роботи
- •4.2Підготовка до роботи
- •4.3 Завдання до лабораторної роботи
- •4.4Контрольні питання и завдання
- •5.2.2Інформація про файлову систему пристрою
- •5.2.3Визначення вільного місця на пристрої
- •5.3Порядок виконання лабораторної роботи
- •5.4Контрольні запитання і завдання
- •6.2.1.2Функція GlobalMemoryStatusEx
- •6.2.1.3Функція VirtualQueryEx
- •6.2.2Функції для керування віртуальною та фізичною пам’яттю
- •6.2.2.1Функція VirtualAllocEx
- •6.2.2.2Функція VirtualFree
- •6.2.2.3Функція VirtualProtectEx
- •6.2.3.3Функція MapViewOfFile
- •6.2.3.4Функція UnmapViewOfFile
- •6.2.3.5Функція CloseHandle
- •6.3Завдання до лабораторної роботи
- •6.5Контрольні питання й завдання
- •7Планування процесів
- •7.1Мета роботи
- •7.2 Підготовка до роботи і порядок її виконання
- •8.3Порядок виконання лабораторної роботи
- •8.5Контрольні запитання і завдання
- •9 Керування потоками
- •9.1Мета роботи
- •9.2Підготовка до роботи і порядок її виконання
- •9.4Контрольні питання й завдання
- •10 Синхронізація процесів і потоків
- •10.1Мета роботи
- •10.2Підготовка до роботи і порядок її виконання
- •10.4 Контрольні питання й завдання
- •Список використаних джерел
- •Додаток а Стандартні функції для введення – виведення даних для стандартних пристроїв. Функції для роботи з файлами.
9.4Контрольні питання й завдання
У якому випадку рекомендується використовувати для організації потоків функцію _begіnthreadex?
У якому випадку необхідна синхронізація потоків?
Які засоби синхронізації Ви знаєте для потоків одного процесу?
Які засоби синхронізації не можна використовувати для потоків різних процесів і чому?
У чому полягає різниця між критичною секцією і мьютексом?
10 Синхронізація процесів і потоків
10.1Мета роботи
Вивчити об'єкти операційної системи для синхронізації процесів і методику їхнього використання
10.2Підготовка до роботи і порядок її виконання
Вивчити особливості створення й завершення процесів, їх призначення, процеси-нащадки і властивості, що отримуються у спадок від процеса-батька (конспект лекцій, файл WІN32.HLP);
Вивчити потоки, способи їх створення і завершення (конспект лекцій, файл WIN32.HLP);
Вивчити розподіл часу між потоками і можливості програміста по керуванню цим розподілом. Пріоритетне обслуговування потоків (конспект лекцій, файл WIN32.HLP);
Вивчити способи синхронізації потоків (конспект лекцій, файл WIN32.HLP):
без операційної системи (конспект лекцій, файл WIN32.HLP);
за допомогою критичних секцій (конспект лекцій, файл WIN32.HLP);
Вивчити засоби синхронізації процесів (конспект лекцій, файл WIN32.HLP):
м'ютекси;
семафори;
таймери, що очкуються.
Скласти програму, в якої необхідно:
запустити довільний текстовий редактор;
створити в цьому редакторі 2 файли;
Завершити роботу редактора після створення файлів;
створити 2 потоки;
у кожному потоці впорядкувати файли, створені в редакторі;
на початку сортування кожного файлу видати повідомлення про початок сортування;
наприкінці сортування кожного файлу видати повідомлення про кінець сортування;
після упорядкування обох файлів знищити потоки;
перевірити створені файли.
10.3Зміст звіту
1. Тексти програм з усіма способами синхронізації потоків і процесів;
2. По кожному способі синхронізації достоїнства й недоліки в порівнянні з іншими способами;
3. Висновки й рекомендації з використання способів синхронізації при рішенні конкретних завдань.
10.4 Контрольні питання й завдання
У чому різниця між процесами й потоками?
Навіщо необхідно синхронізувати потоки?
Які способи синхронізації потоків ви знаєте?
Покажіть на прикладі своєї програми, що буде, якщо не використати синхронізацію.
Навіщо необхідно синхронізувати процеси?
Які способи синхронізації процесів ви знаєте?
Покажіть на прикладі своєї програми, що буде, якщо не використати синхронізацію.
У чому особливість синхронізації за допомогою подій? приведіть приклади.
Список використаних джерел
Бондаренко М.Ф., Качко О.Г. Операційні системи: навч. посібник. – Х.: Компанія СМІТ, 2008. – 432 с.
Качко Е.Г. Программирование на ассемблере. Учебное пособие по курсу «Системное программирование и операционные системы» - Харьков: ХНУРЭ, 2002 – 172 с.
Конспект лекцій «Програмування мовою С++» по курсу / Упоряд. Ог.Г. Качко – Харків: ХТУРЕ, 1999 – 148 с.
Рихтер Дж. Windows для профессионалов: создание эффективных Win 32 приложений с учетом специфики 64-разрядной версии Windows – СПб: Питер; М.: Издательско- торговый дом «Русская редакция», 2001. – 752 с.
Операционные системы: Деревянко А.С., Солощук М.Н. Учебное пособие. – Харьков: НТУ «ХПИ», 2003. – 574 с.