Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
System programming / Методические указания / Методичка к лабораторным работам (укр).doc
Скачиваний:
50
Добавлен:
08.05.2015
Размер:
230.4 Кб
Скачать

6.4 Завдання на лабораторну роботу

Варіант 1

Написати програму, що породжує чотири потоки, кожному з яких виділяється четверта частина вікна додатка. Перший потік виводить у свою область зростаючу числову послідовність 0,1,2,…, другий - послідовність чисел Фібоначчі. Третій потік заповнює свою ділянку вікна прямокутниками випадкового розміру і кольору, четвертий потік фіксує в трьох пзмінних і виводить їх у своїй області вікна число запусків кожного з попередніх трьох потоків.

Варіант 2

Написати програму, що породжує потік з натиснення однієї з клавіш клавіатури. Кожному створеному в такий спосіб потокові відповідає коло у вікні додатки, що з'являється у випадковому місці вікна додатка і рухається або у вертикалі, або по горизонталі. При досягненні межі вікна, коло змінює напрямок свого прямування на протилежне.

Варіант 3

У програмі створити два потоки. Призначення одного з них - періодичне читання системного часу і заповнення глобальної структури (години, хвилини, секунди), другого - вивід даної структури на екран. За допомогою критичного розділу організувати роздільний доступ потоків до структури даних.

Варіант 4

Написати програму, що містить два потоки, кожний із яких управляє прямуванням одного з двох потоків. Перша куля рухається горизонтально, друга - вертикально. Швидкість куль різноманітна. При досягненні межі клієнтської області вікна, куля змінює напрямок прямування на протилежне. За допомогою об'єктів синхронізації (семафорів або подій) реалізувати алгоритм прямування куль без сутичок.

Варіант 5

Написати програму, що запускає новий потік при натисненні лівої клавіші миші. Потік починає виводити зростаючу числову послідовність у поточну позицію курсору миші. При натисненні лівої клавіші миші програма видаляє потік, координати котрого ближче усього до положення миші.

Варіант 6

Створити багатопотокову програму, що формує потоки трьох типів. Кожний із потоків породжується відповідним пунктом меню і захоплює відповідно 1,2,3 ресурсу (максимальні числа ресурсів за замовчанням - 8 і може змінюватися користувачем у вікні діалогу, що викликається через меню). Кількість, вид потоків, а також їхній стан виводиться на екран. Якщо число ресурсів не дозволяє працювати потокові, він знаходиться у стані очікування. Видалення потоків здійснюється через меню в порядку запуску (першим віддалиться потік, запущений першим).

Варіант 7

Написати програму, що дозволяє запускати процеси, використовуючи для цього вибрані на диску файли. Користувач може задавати ім'я файла, що запускається, і командного рядка. Програма стежить за усіма запущеними нею процесами і виводить за вимогою користувача таку інформацію: ім'я процесу, значення покажчика й ідентифікатора процесу, час виконання процесу.

Варіант 8

Написати програму, що читає з диска *. bmp файл і виводить його у вікно додатка. За допомогою потоку організувати поворот зображення на 90 градусів. Операцію можна перервати за допомогою діалогового вікна, що виникає на час виконання операції.

Варіант 9

Написати програму, що за натисненням миші створює потоки: за натисненням правої клавіші - потік, що робить вивід зростаючого ряду в позицію курсору, лівої - потік з убутним поруч. Потік вивантажується з пам'яті по закінченні рахунку. Число потоків обмежується користувачем через контекстне меню і знаходиться в діапазоні [4,8].