- •Лабораторна робота №1
- •Основні положення. Поняття операційної системи.
- •Завдання
- •Лабораторна робота № 2.
- •Основні положення
- •1. Поняття файлу
- •2. Поняття файлової системи
- •3. Типи файлів
- •4. Імена файлів
- •5. Організація інформації у файловій системі
- •6. Загальні відомості про файлові операції
- •Приклад виконання завдання.
- •Завдання
- •Контрольні питання
- •Лабораторна робота № 3
- •Основні положення.
- •1. Каталоги
- •2. Операції над каталогами
- •3. Робота з каталогами в posix
- •Приклад виконання завдання
- •Завдання
- •Контрольні питання
- •Лабораторна робота № 4
- •Основні положення.
- •Створення процесу.
- •Ієрархія процесів.
- •Реалізація процесів.
- •4. Системні виклики для роботи з процесами
- •Приклад виконання завдання
- •Завдання
- •Контрольні питання
- •Лабораторна робота № 5
- •Основні положення
- •1. Застосування каналів.
- •Приклади виконання завдань
- •Завдання
- •Контрольні питання
- •Лабораторна робота № 6
- •Основні положення.
- •1. Черга повідомлень.
- •2. Створення черг повідомлень.
- •Прикдад виконання завдання
- •Завдання
- •Контрольні питання
Завдання
Написати дві програми, які створюють між собою канал. Одна програма грає роль клієнта, друга служить сервером. Функції клієнта і сервера визначаються варіантами завдань на виконання лабораторної роботи. У парних варіантах завдання використати іменовані канали.
Варіанти завдань
1. Клієнт передає серверу через канал запит у вигляді повного шляху до файлу.
Сервер читає цей файл і передає клієнтові його вміст або повідомлення про помилку, якщо файл з вказаним ім'ям не існує або не доступний для читання. Клієнт виводить прийняті дані на термінал.
2. Клієнт і сервер обмінюються повідомленнями, що вводяться з клавіатури. Програми запускаються на різних терміналах. Прийняті повідомлення виводяться на екран.
3. Сервер виконує команду ps, і результати її виконання передаються клієнтові, який виводить їх на термінал.
4. Клієнт і сервер обмінюються між собою повідомленнями. Програми запускаються на різних терміналах. Кожна програма записує прийняті повідомлення у файл, розширення якого є значенням ідентифікатора процесу, що відповідає цій програмі.
5. Клієнт передає серверу запит у вигляді повного шляху до файлу. Сервер читає цей файл і передає клієнтові його вміст або повідомлення про помилку, якщо файл не існує або не доступний для читання. Клієнт записує отриману інформацію у файл в поточному каталозі з тим же ім'ям і доповнює його розширенням result.
6. Клієнт приймає з клавіатури команди і передає їх серверу. Сервер виконує прийняті команди і повертає результати їх виконання клієнтові. Дані, що приймаються, клієнт виводить на термінал. Програми запускати на різних терміналах.
7. Клієнт приймає з клавіатури команди і передає їх серверу. Сервер виконує ці команди, результати повертаються клієнтові, який записує їх у файл.
8. Клієнт запитує у сервера кількість файлів, що знаходяться у вказаному каталозі. Отриманий результат виводиться клієнтом на термінал.
9. Клієнт формує запит, що містить ім'я файлу. Сервер визначає, чи являється вказаний файл каталогом і формує відповідну відповідь. Відповідь виводиться клієнтом на екран.
10. Клієнт формує запит, що містить ім'я каталогу. Сервер переглядає каталог і передає клієнтові кількість підкаталогів, що є в цьому каталозі. Клієнт виводить отриману інформацію на екран.
11. Клієнт формує запит, що містить ім'я каталогу. Сервер перевіряє, чи є дозвіл запису в цей каталог, при необхідності встановлює це право і інформує клієнта про результати виконання операції. Клієнт виводить на екран отримане від сервера повідомлення.
12. Клієнт запитує у сервера кількість працюючих в даний момент часу користувачів. Якщо кількість користувачів більша заданого числа, на термінал виводиться повідомлення.
Контрольні питання
1. Які Вам відомі засоби міжпроцесної взаємодії в ОС UNIX?
2. Який системний виклик використовується для створення програмних каналів в ОС LINUX і які файлові дескриптори він повертає?
3. В чому полягає недолік каналів як засобів міжпроцесної взаємодії?
4. Чим відрізняються іменовані канали FIFO від програмних каналів?
5. Чи є іменований канал окремим типом файлу у файловій системі UNIX?
6. Яким символом команда інтерпретатора ls –l позначає в перщій позиції іменований канал?
7. В якому режимі буде відкритий канал після свого створення на стороні сервера?
