
- •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Планування процесів
- •6.1Мета роботи
- •6.2 Підготовка до роботи і порядок її виконання
- •7.3Порядок виконання лабораторної роботи
- •7.5Контрольні запитання і завдання
- •8 Керування потоками
- •8.1Мета роботи
- •8.2Підготовка до роботи і порядок її виконання
- •8.4Контрольні питання й завдання
- •9 Керування розподілом пам'яті (wіnapі)
- •9.1Мета роботи
- •9.2Підготовка до роботи
- •9.3Завдання до лабораторної роботи
- •9.4Порядок виконання роботи
- •9.6Контрольні питання й завдання
- •10 Синхронізація процесів і потоків
- •10.1Мета роботи
- •10.2Підготовка до роботи і порядок її виконання
- •10.4 Контрольні питання й завдання
- •Список використаних джерел
- •Додаток а Стандартні функції для введення – виведення даних для стандартних пристроїв. Функції для роботи з файлами.
ВСТУП 5
1 РОЗРОБКА УНІВЕРСАЛЬНИХ ДОДАТКІВ ДЛЯ РІЗНИХ ТИПІВ КОДУВАНЬ СИМВОЛЬНОЇ ІНФОРМАЦІЇ 7
1.1 Мета роботи 7
1.2 Підготовка до роботи. Теоретичні положення 7
1.2.1 Типи даних char і wchar_t. Універсальне завдання типу 7
1.2.2 Функції для роботи з рядками для ANSI і UNICODE кодувань 8
1.2.3 Файл tchar.h. Пошук імен для універсальних функцій 9
1.2.4 Визначення типу тексту і перетворення типу кодування тексту 9
1.3 Завдання до лабораторної роботи. Порядок виконання 11
1.4 Зміст звіту 12
1.5 Контрольні запитання і завдання 13
2 СТВОРЕННЯ ТА ВИКОРИСТАННЯ БІБЛІОТЕК 13
2.1 Мета роботи 13
2.2 Підготовка до роботи 13
2.2.1 Загальна характеристика статичних бібліотек 13
2.2.2 Загальна характеристика динамічних бібліотек 14
2.2.3 Створення статичних бібліотек 15
2.2.4 Створення DLL 17
2.2.5 Використання DLL 18
2.2.6 Алгоритм шифрування RSA 20
2.3 Порядок виконання лабораторної роботи 20
2.4 Зміст звіту 21
2.5 Контрольні запитання та завдання 21
3 КЕРУВАННЯ ЗОВНІШНІМИ ПРИСТРОЯМИ. СТАНДАРТНІ ПРИСТРОЇ 22
3.1 Мета роботи 22
3.2 Підготовка до роботи 22
3.3 Порядок виконання лабораторної роботи. Завдання до лабораторної роботи 24
3.4 Зміст звіту 25
3.5 Контрольні запитання і завдання 25
4 КЕРУВАННЯ ЗОВНІШНІМИ ПРИСТРОЯМИ. НЕСТАНДАРТНІ ПРИСТРОЇ 26
4.1 Мета роботи 26
4.2 Підготовка до роботи 26
4.3 Завдання до лабораторної роботи 26
4.4 Контрольні питання и завдання 27
5 КЕРУВАННЯ ЗОВНІШНІМИ ПРИСТРОЯМИ. РОБОТА З ПРИСТРОЯМИ 27
5.1 Мета роботи 27
5.2 Підготовка до роботи 28
5.2.1 Функції для визначення наявних пристроїв 28
5.2.2 Інформація про файлову систему пристрою 29
5.2.3 Визначення вільного місця на пристрої 30
5.3 Порядок виконання лабораторної роботи 30
5.4 Контрольні запитання і завдання 31
6 ПЛАНУВАННЯ ПРОЦЕСІВ 32
6.1 Мета роботи 32
6.2 Підготовка до роботи і порядок її виконання 32
6.3 Зміст звіту 32
6.4 Контрольні запитання і завдання 32
7 КЕРУВАННЯ ПРОЦЕСАМИ 33
7.1 Мета роботи 33
7.2 Підготовка до роботи і порядок її виконання 33
7.3 Порядок виконання лабораторної роботи 34
7.4 Зміст звіту 36
7.5 Контрольні запитання і завдання 36
8 КЕРУВАННЯ ПОТОКАМИ 36
8.1 Мета роботи 36
8.2 Підготовка до роботи і порядок її виконання 37
8.3 Зміст звіту 38
8.4 Контрольні питання й завдання 38
9 КЕРУВАННЯ РОЗПОДІЛОМ ПАМ'ЯТІ (WІNAPІ) 38
9.1 Мета роботи 38
9.2 Підготовка до роботи 38
9.3 Завдання до лабораторної роботи 47
9.4 Порядок виконання роботи 47
9.5 Зміст звіту 48
9.6 Контрольні питання й завдання 48
10 СИНХРОНІЗАЦІЯ ПРОЦЕСІВ І ПОТОКІВ 49
10.1 Мета роботи 49
10.2 Підготовка до роботи і порядок її виконання 49
10.3 Зміст звіту 50
10.4 Контрольні питання й завдання 50
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 51
ДОДАТОК А Стандартні функції для введення – виведення даних для стандартних пристроїв. Функції для роботи з файлами. 52
ВСТУП
Мета методичних вказівок – оказати допомогу студентам при підготовці, виконанні та оформленні результатів виконання лабораторних робіт по дисципліні, основним призначенням якої є вивчення принципів побудови сучасних операційних систем та найбільш ефективного використання їх функцій при розробці програм та їх застосуванню.
Лабораторні роботи по дисципліні вчать практичному використанню теоретичних положень, які вивчені на лекціях, закріплюють та розширяють практичні навики, що були отримані на практичних заняттях по курсу.
Кожна лабораторна робота потребує попередньої підготовки, а саме:
вивчення теоретичного матеріалу;
розробки алгоритмів вирішення задач, які треба виконати під час лабораторної роботи;
розробка тестів для перевірки програм.
Усі лабораторні роботи виконуються з застосуванням ЕОМ. При цьому необхідно:
виконувати правила техніки безпеки при роботі з ЕОМ;
виконувати правила поведінки в лабораторії ЕОМ;
приходити на заняття строго за розкладом;
не допускається зміна прав доступу до системних ресурсів.
До роботи допускаються тільки підготовлені студенти, які склали та захистили програми. При допуску викладач перевіряє наявність цих програм та ступень самостійності їх складання.
Студент самостійно виправляють помилки в програмі.. Сама помилка та дії, необхідні для її виправлення, заносяться в звіт по лабораторній роботі. Найбільш характерні помилки обговорюються з групою в ході виконання лабораторних робіт.
Якщо ЕОМ не хватає для кожного студента, то лабораторну роботу виконує бригада. Звіт оформлюється один на бригаду, але кожний студент здає лабораторну роботу індивідуально.
Звіт повинен включати в себе:
назву лабораторної роботи;
мету лабораторної роботи;
завдання і тексти програм, тести, помилки, які знайдені при виконанні тестів, результати виконання програм, висновки.
В якості шаблону для підготовки звіту можна використовувати цю методичку в електронному вигляді. На титульному листі методички треба написати авторів звіту.
Без наявності електронної копії звіту для поточної лабораторної роботі і всіх попередніх робіт лабораторна робота не приймається. Здача поточної лабораторної роботи може бути виконана в день виконання лабораторної роботи або під час наступної лабораторної роботи. Лабораторна робота, яка здається невчасно, не може бути оцінена високою оцінкою. При отриманні заліку по лабораторним роботам в кінці семестру студент повинен представити викладачу повний звіт по усім лабораторним роботам семестру в електронному вигляді.
Всі лабораторні роботи здаються на ЕОМ.
1Розробка універсальних додатків для різних типів кодувань символьної інформації
1.1Мета роботи
ANSI кодування використовує один байт для завдання одного символу. Цього зовсім не достатньо для завдання текстів, в яких є речення на різних мовах. UNICODE кодування застосовує два байта при кодуванні одного символу. При такому кодуванні максимальна кількість кодів символів 65536 в порівнянні з 256 для ANSI кодування, що забезпечує можливість використання усіх наявних на сьогодні мов. Більшість текстових файлів на сьогодні мають ANSI кодування. Кодування імен файлів залежить від наявної файлової системи, в електронних листах можна використовувати обидві типа кодування. таким чином, обидва способи кодування використовуються. Метою даної лабораторної роботи є навчитися опрацьовувати тексти для обох типів кодування, при чому сама програма не повинна залежати від обраного способу.
1.2Підготовка до роботи. Теоретичні положення
1.2.1Типи даних char і wchar_t. Універсальне завдання типу
При використанні ANSI кодування використовується тип даних char. Даному типа char виділяється один байт. Приклади використання цього типу:
char symbol = ‘x’;
char array [] = “This is array”;
При використанні UNICODE кодування використовується тип даних wchar_t. Даному типа wchar_t виділяється два байти. Приклади використання цього типу:
wchar_t symbol = L‘x’;
wchar_t array [] = L“This is array”;
Для створення універсального тексту програми, який можна використовувати для обох типів кодування можна використовувати макроси.
Приклад макросу для універсальної об’яви типу даних і їх ініціалізації:
#ifdef UNICODE
typedef wchar_t TCHAR ;
#define TEXT(a) L##a
#else
typedef char TCHAR ;
#define TEXT(a) a
#endif
В цьому макросі визначено універсальний тип TCHAR, значення якого залежить від того, визначена змінна UNICODE чи ні. Визначено макрос TEXT, за допомогою якого до визначення літералу додається буква L або ні.
Розгляньте цей макрос! Він повинен бути зрозумілим!
Використаємо цей макрос для визначення символу та рядка в універсальному вигляді.
TCHAR symbol = TEXT(‘x’);
TCHAR array [] = TEXT(“This is array”);
Цей код відповідає ANSI кодуванню, якщо не визначено змінної UNICODE, і UNICODE, якщо визначена ця змінна.
1.2.2Функції для роботи з рядками для ansi і unicode кодувань
Функції для роботи з рядками для ANSI кодування визначено в файлі заголовків string.h. Більшість функцій починається з префіксу str, наприклад, strcpy, strcat, strlen,… .
Функції для роботи з рядками для UNICODE кодування визначено в тому ж файлі заголовків string.h. Більшість функцій починається з префіксу wcs, наприклад, wcscpy, wcscat, wcslen,… .
Визначимо універсальну функцію, наприклад, для визначення довжини рядка (в символах):
#ifdef UNICODE
#define _tcslen wcslen
#else
#define _tcslen strlen
#endif
Аналогічно можно визначити усі функції для роботи з рядками.
1.2.3Файл tchar.H. Пошук імен для універсальних функцій
Усі ці типи і функції вже визначені в файлі tchar.h. Підключить цей файл та розгляньте його.
Для того, щоб знайти ім’я універсальної функції необхідно відкрити файл tchar.h, та знайти в ньому визначення функції для ANSI кодування. Це визначення має такий же формат, який ми використовували для визначення функції strlen. Отримайте універсальне ім’я функції. Визначить ім’я головної функції консольного додатку (яке відповідає функції main).