- •Міністерство освіти і науки України
- •Жуковецька с.Л., Шестопалов с.В.
- •Анотація
- •Введення
- •Лабораторна робота №1 Технологія розробки програм у середовищі Linux
- •1. Команди роботи з командним інтерпретатором ос unix
- •2. Створення програми
- •3. Функції введення-виведення.
- •4. Приклад програми
- •5. Основні керуючі конструкції мови с
- •6. Індівідуальні завдання
- •Лабораторна робота № 2. Автоматизація пакетних завдань
- •1. Компіляція багатомодульною програми
- •2. Автоматизація пакетних завдань
- •4. Завдання
- •Лабораторна робота № 3. Взаємодія програми з середовищем виконання
- •1. Аргументи командного рядка
- •2. Змінні оточення
- •3. Індівідуальні завдання
- •Лабораторна робота №4. Контроль виконання програми
- •1. Коди завершення програми
- •2. Функції обробки значення errno
- •3. Функція atexit()
- •4. Макрос asssert()
- •5. Індівідуальні завдання
- •Лабораторна робота №5 Файлові api.
- •1 Основні поняття
- •2. Права доступу до файлів
- •3. Інтерфейси для файлового введення / виводу
- •4. Системні виклики роботи з файлами
- •5. Індівідуальні завдання
- •Варіанти завдань
- •Лабораторна робота №6 Робота з каталогами та посиланнями
- •Методичні вказівки
- •1. Створення та видалення каталогу
- •2. Читання каталогу
- •3. Зміна каталогу
- •4. Управління жорсткими посиланнями
- •5. Управління символічними посиланнями
- •6. Перейменування файлів і каталогів
- •7. Індівідуальні завдання
- •Лабораторна робота №7. Одержання і відображення метаданих файлу.
- •Методичні вказівки
- •1. Механізми управління файлами ос unix
- •2. Отримання даних індексного дескриптору
- •3. Додаткові функції маніпулювання даними індексних дескрипторів
- •4. Отримання даних про відкриті файли
- •5. Індівідуальні завдання
- •Лабораторна робота №8. Керування процесами
- •Методичні вказівки
- •1. Загальні поняття
- •2. Створення поцесу
- •4. Перезавантаження програми процесу
- •5. Завершення виконання процесу
- •6. Системні виклики wait, waitpid
- •7. Індівідуальні завдання
- •Лабораторна робота №9. Використання каналів
- •Методичні вказівки
- •1. Заганьні відомості
- •2. Використання каналів
- •3. Індівідуальні завдання
- •Варіанти завдань
- •Лабораторна робота №10 Використання повідомлень
- •Методичні вказівки
- •1. Загальні відомості
- •2. Використання повідомлень
- •3. Індівідуальні завдання
- •Література
- •Системне програмування Посібник до виконання лабораторних та самостійних робіт
- •65082, Одеса, вул. Дворянська, 1/3
3. Індівідуальні завдання
Написати дві програми, які створюють між собою канал. Одна програма відіграє роль клієнта, друга служить сервером. Функції клієнта й сервера визначаються варіантами завдань на виконання лабораторної роботи. У парних варіантах завдання використовувати іменовані канали.
Варіанти завдань
Клієнт передає серверу через канал запит у вигляді повного шляху до файлу. Сервер читає цей файл і передає клієнтові його вміст або повідомлення про помилку, якщо файл із зазначеним ім'ям не існує або не доступний для читання. Клієнт виводить прийняті дані на термінал.
Клієнт і сервер обмінюються повідомленнями, що вводяться із клавіатури. Програми запускаються на різних терміналах. Прийняті повідомлення виводяться на екран.
Сервер виконує команду ps, і результати її виконання передаються клієнтові, що виводить їх на термінал.
Клієнт і сервер обмінюються між собою повідомленнями. Програми запускаються на різних терміналах. Кожна програма записує прийняті повідомлення у файл, розширення якого є значенням ідентифікатора процесу, що відповідає даній програмі.
Клієнт передає серверу запит у вигляді повного шляху до файлу. Сервер читає цей файл і передає клієнтові його вміст або повідомлення про помилку, якщо файл не існує або не доступний для читання. Клієнт записує отриману інформацію у файл у поточному каталозі з тим же ім'ям і доповнює його розширенням result.
Клієнт приймає із клавіатури команди й передає їхньому серверу. Сервер виконує прийняті команди й повертає результати їхнього виконання клієнтові. Прийняті дані клієнт виводить на термінал. Програми запускати на різних терміналах.
Клієнт приймає із клавіатури команди й передає їхньому серверу. Сервер виконує ці команди, результати вертаються клієнтові, що записує їх у файл.
Клієнт запитує в сервера кількість файлів, що перебувають у зазначеному каталозі. Отриманий результат виводиться клієнтом на термінал.
Клієнт формує запит, що містить ім'я файлу. Сервер визначає, чи є зазначений файл каталогом і формує відповідну відповідь. Відповідь виводиться клієнтом на екран.
Клієнт формує запит, що містить ім'я каталогу. Сервер переглядає каталог і передає клієнтові кількість підкаталогів, що мають у даному каталозі. Клієнт виводить отриману інформацію на екран.
Клієнт формує запит, що містить ім'я каталогу. Сервер перевіряє, чи є дозвіл запису в цей каталог, при необхідності встановлює це право й інформує клієнта про результати виконання операції. Клієнт виводить на екран отримане від сервера повідомлення.
Клієнт запитує в сервера кількість працюючих у цей момент часу користувачів. Якщо кількість користувачів більше заданого числа на термінал виводиться повідомлення.
Лабораторна робота №10 Використання повідомлень
Мета: Оволодіння технологією організації обміну даними між процесами з використанням повідомлень ОС UNIX. Застосування отриманих знань для написання програм керування файлами.
Завдання для самостійної підготовки:
Вивчити:
поняття черги повідомлень ОС UNIX;
організацію взаємодії процесів з використанням черги повідомлень;
системні виклики керування чергою повідомлень;