
- •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.5Контрольні питання и завдання
- •5.2.2Інформація про файлову систему пристрою
- •5.2.3Визначення вільного місця на пристрої
- •5.3Порядок виконання лабораторної роботи
- •5.5Контрольні запитання і завдання
- •7.3Порядок виконання лабораторної роботи
- •7.5Контрольні запитання і завдання
- •8 Керування потоками
- •8.1Мета роботи
- •8.2Методичні вказівки з організації самостійної роботи студентів
- •8.3Порядок виконання лабораторної роботи
- •8.5Контрольні питання й завдання
- •9 Керування розподілом пам'яті (wіnapі)
- •9.1Мета роботи
- •9.2Методичні вказівки з організації самостійної роботи студентів
- •9.3Порядок виконання лабораторної роботи
- •9.5Контрольні питання й завдання
- •10 Синхронізація процесів і потоків
- •10.1Мета роботи
- •10.2Методичні вказівки з організації самостійної роботи студентів
- •10.3Порядок виконання лабораторної роботи
- •10.5 Контрольні питання й завдання
- •Список використаних джерел
- •Додаток а Стандартні функції для введення – виведення даних для стандартних пристроїв. Функції для роботи з файлами.
9.3Порядок виконання лабораторної роботи
У даній лабораторній роботі необхідно виконати наступне:
1. скласти програму для формування системної інформації про віртуальну пам'ять і пояснити отримані результати;
2. виділити пам'ять деякого розміру й визначити новий стан системної інформації, пояснити результати;
3. визначити статус віртуальної пам'яті (функція GlobalMemoryStatus) до і після виділення віртуальної й фізичної пам'яті, пояснити результати;
4. визначити стан адресного простору (функція VіrtualQuery) до і після виділення віртуальної й фізичної пам'яті, пояснити результати.
Реалізовувати ці завдання зручно у такій послідовності:
визначити системну інформацію, яка стосується пам'яті, на початку програми;
виділити віртуальну пам'ять і визначити зміни в системній інформації до й після виконання;
виділити фізичну пам'ять і визначити зміни в системній інформації до і після виконання;
зробити послідовне звільнення виділеної пам'яті;
визначити максимальний розмір пам'яті, що може бути призначений для виділення віртуальної й фізичної пам'яті;
визначити послідовні адреси блоків пам'яті, що виділяються, і зробити висновок про доцільність виділення пам'яті маленькими порціями;
перевірити заповнюваність пам'яті при виділенні віртуальної, фізичної пам'яті;
перевірити можливість доступу до пам'яті, за межами виділеної області.
9.4Зміст звіту
- повний опис функцій для роботи з пам'яттю, що були використані у лабораторній роботі;
- текст програми з виведенням повної інформації про пам'ять до і після виділення пам'яті різних типів;
- пояснення отриманих результатів;
- висновки.
9.5Контрольні питання й завдання
Дайте визначення різних типів пам'яті.
Поясните дії, необхідні для виділення пам'яті з погляду програміста і операційної системи.
Яка інформація про пам'ять може бути отримана і де використовується ця інформація?
Які атрибути можуть бути задані для сторінок?
Чим визначається максимальний розмір фізичної пам'яті, що може бути виділений однією операцією виділення?
Яким образом пам'ять звільняється?
Що буде, якщо:
програміст забув звільнити пам'ять?
у зв'язку з аварійним завершенням програми вона не дійшла до коду звільнення?
Що буде, якщо не передбачена перевірка благополучності виділення пам'яті і використовується фактично невиділена пам'ять?
Що буде, якщо використовується більший обсяг пам'яті, чим виділено?
10 Синхронізація процесів і потоків
10.1Мета роботи
Вивчити об'єкти операційної системи для синхронізації процесів і методику їхнього використання
10.2Методичні вказівки з організації самостійної роботи студентів
При підготовці до лабораторної роботи необхідно повторити матеріал відповідних лекцій та ознайомитися з [1, c. 160 – 186, 3, c. 187 – 245, c. 203 - 257].
Вивчить особливості створення й завершення процесів, їх призначення, процеси-нащадки і властивості, що отримуються у спадок від процеса-батька (конспект лекцій, файл WІN32.HLP);
Вивчить потоки, способи їх створення і завершення (конспект лекцій, файл WIN32.HLP);
Вивчить розподіл часу між потоками і можливості програміста по керуванню цим розподілом. Пріоритетне обслуговування потоків (конспект лекцій, файл WIN32.HLP);
Вивчити способи синхронізації потоків (конспект лекцій, файл WIN32.HLP):
без операційної системи (конспект лекцій, файл WIN32.HLP);
за допомогою критичних секцій (конспект лекцій, файл WIN32.HLP);
Вивчити засоби синхронізації процесів (конспект лекцій, файл WIN32.HLP):
м'ютекси;
семафори;
таймери, що очкуються.