
- •Інструкції до лабораторних робіт з дисципліни «Операційні системи» Лабораторна робота №1
- •Лабораторна робота №2
- •Лабораторна робота №3
- •Лабораторна робота №4
- •Лабораторна робота №5
- •Лабораторна робота №6
- •Лабораторна робота №7
- •Лабораторна робота №8
- •Лабораторна робота №9
- •Лабораторна робота №10
- •Лабораторна робота №11
- •Лабораторна робота №12
Лабораторна робота №4
Тема.Синхронізація потоків в ОС Windows
Мета. Ознайомитися зі способами синхронізації потоків. Навчитися організовувати бага-топоточність з використанням синхронізації за допомогою функцій WinAPI.
Завдання.
Реалізувати алгоритм із лабораторної роботи №3.
Здійснити розпаралелювання даного алгоритму на 2, 4, 8 потоків із використанням синхронізації.
Реалізувати прогрес (хід) виконання задачі.
Для синхронізації потоків використати такі методи: Interlocked-функції, м’ютекси, семафори, критична секція, спін-блокування, Wait-функції.
Результати виконання роботи відобразити у звіті.
Індивідуальні завдання.
Відповідно до вказаного варіанту реалізувати два механізми синхронізації:
Варіант № 1-12 – м’ютекс
Варіант № 13-25 – семафор
Варіант № 1-6 – Interlocked-функції
Варіант № 7-12 – критична секція
Варіант № 13-18 – спін-блокування
Варіант № 19-25 – Wait-функції
Лабораторна робота №5
Тема.Робота з динамічними бібліотеками в ОС Windows
Мета. Ознайомитися з динамічно-зв’язувальними бібліотеками (Dynamic-link library) в ОС Windows. Навчитися реалізовувати динамічно-зв’язувальні бібліотеки.
Завдання.
Реалізувати лабораторну роботу №4 у вигляді динамічно-зв’язувальної бібліотеки.
Запустити створену бібліотеку з командної стрічки (cmd.exe) за допомогою rundll32.exe.
Створити окрему програму і реалізувати статичний зв'язок між програмою та бібліотекою.
Створити окрему програму і реалізувати динамічний зв'язок між програмою та бібліотекою.
Експортувати головну функцію бібліотеки під іншим іменем.
Результати виконання роботи відобразити у звіті.
Лабораторна робота №6
Тема.Файли, що відображаються в пам'ять в ОС Windows
Мета. Ознайомитися з відображенням файлів в оперативну пам’ять в ОСWindows. Навчи-тися реалізовувати відображення файлів в оперативну пам’ять.
Завдання.
Реалізувати відображення файлу в оперативну пам'ять.
Необхідно модифікувати лабораторну роботу №4 таким чином, щоб всі результати роботи програми записувалися через відображення файлів в оперативній пам’яті.
Виконати завдання, з використанням цього відображення.
Результати виконання роботи відобразити у звіті.
Індивідуальні завдання.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «бульбашка». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «бульбашка». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «вставки». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «вставки». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «вибірки». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «вибірки». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «злиття». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «злиття». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «швидкого сортування». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на 2 потоки і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «швидкого сортування». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на 2 потоки і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку зростання за допомогою методу «сортування Шелла». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів і відсортувати його елементи у порядку спадання за допомогою методу «сортування Шелла». Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Результуючий масив вивести у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів. В окремому потоці виконати лінійний пошук заданого елемента. Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів. В окремому потоці виконати двійковий пошук заданого елемента. Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів. В окремому потоці виконати пошук найменшого елемента без сортування масиву. Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Створити масив N елементів. В окремому потоці виконати пошук найбільшого елемента без сортування масиву. Елементи масиву згенерувати випадковим чином за допомогою вбудованих функцій. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результуючий масив у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук файлів та каталогів у заданому місці за заданим шаблоном. Результати виводити таким чином, що першими повинні бути каталоги, а після них – файли. Каталоги і файли повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук файлів за заданим вмістом. Назви файлів повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук файлів за заданим розміром. Назви файлів повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук файлів та каталогів за заданою датою останньої зміни. Результати виводити таким чином, що першими повинні бути каталоги, а після них – файли. Каталоги і файли повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук файлів та каталогів за заданими атрибутами. Результати виводити таким чином, що першими повинні бути каталоги, а після них – файли. Каталоги і файли повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук ідентичного за вмістом файлу. Назви файлів повинні бути відсортовані в алфавітному порядку. Для файлу-екземпляру створити відображення в оперативній пам’яті.
Реалізувати пошук ідентичного за роміром файлу. Назви файлів повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук ідентичного за датою останньої зміни файлу. Назви файлів повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.
Реалізувати пошук ідентичного за атрибутами файлу. Назви файлів повинні бути відсортовані в алфавітному порядку. Розпаралелити цей алгоритм на декілька потоків (обрати самостійно) і вивести результати пошуку у зовнішній файл через відображення цього файлу в оперативній пам’яті.