- •Лабораторна робота № 15 взаємодія процесів в ос unix за допомогою іменованих каналів
- •1 Мета роботи
- •2 Основні положення
- •2.1 Способи забезпечення взаємодії процесів в ос unix
- •2.2 Взаємодія поміж процесами за допомогою іменованих каналів
- •2.3 Функції та системні виклики ос unix,
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Взаємодія процесів в ос unix за допомогою інтерфейсу сокетів
- •1 Мета роботи
- •2 Основні положення
- •2.1 Загальні вимоги до міжпроцесної взаємодії
- •2.2 Програмний інтерфейс сокетів
- •2.3 Приклад використання сокета
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Лабораторна робота № 18
- •2.1 Утиліта ping
- •2.2 Програма traceroute
- •2.3 Програма ttcp
- •2.4 Програма tcpdump
- •2.5 Програма netstat
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Створення системи обліку трафіка
- •1 Мета роботи
- •2 Ключові положення
- •2.1 Принципи обліку трафіка
- •2.2 Мова програмування Shell
- •2.2.1 Структура команд
- •2.2.2. Структура команд
- •2.2.3 Групування команд
- •2.2.4 Переспрямовування команд
- •2.3 Брандмауер firewall
- •2.3.1 Можливості ipfw
- •2.3.2 Формат правил ipfw
- •2.4 Мова програмування awk
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Тексти програм serverfifo та clientfifo
- •Тексти програм socketserver та socketclient
- •Тексти програм servertcp та clienttcp
- •Тексти програм simpletcpserv та simpletcpclient
- •Лістинг програми обліку трафіку
2.2.3 Групування команд
Засоби групування — ; та <переведення рядка> визначають послідовне виконання команди:
s – асинхронне (фонове) виконання попередньої команди;
fs – виконання наступної команди за умови ненормального завершення попередньої, інакше — ігнорувати.
При виконанні команди в асинхронному режимі на екран виводиться номер процесу, відповідний виконуваній команді, після чого система запускає фоновий процес — і знову розпочинає діалог з користувачем.
Для групування команд можуть використовуватись дужки “{}” та “()”, наприклад:
k1fs{k2; k3},
тут команди k2 та k3 виконуватимуться лише за успішного завершення k1.
За групування команд k1 та k2 як
{k1; k2}s
у фоновому режимі виконуватиметься їхня послідовність.
Фонові процеси надто складно знищувати, оскільки традиційна команда знищення CTRL/C перериває лише процеси переднього плану. Для знищення фонового процесу треба знати його ідентифікатор (PID). Під час запускання фонового процесу на екран подається його PID, але якщо потім останній забули чи загубили, то треба перевірити, закінчився процес чи ні, за допомогою команди
ps – aux
можна отримати перелік усіх ідентифікаторів, імена користувачів, поточний час, який витратили процеси, тощо.
У видаванні команди ps можна віднайти номери процесів, які треба знищити, наприклад 849, 866; треба вжити команду
kill -9 849 866
– і процеси знищуються. Неодмінним є збіг імені користувача та імені власника знищуваних процесів або наявність імені привілейованого користувача.
2.2.4 Переспрямовування команд
Стандартне введення (вхід) – stdin у ОС UNIX – здійснюється з клавіатури термінала, а стандартне виведення – stdout – спрямовується на екран термінала. Існує також стандартний файл діагностичних повідомлень stderr.
Команда, яка може працювати зі стандартними введенням та виведенням, називається фільтром. Користувач має зручні засоби переспрямовування введення та виведення на інші файли чи пристрої. Символи > та >> зазначають наявність переспрямовування виведення, наприклад команда
es > fl
формує перелік файлів поточного каталога й розміщує його у файл fl замість виведення на екран. Якщо файл fl вже існує, його буде заміненено на новий. У разі використання команди
pwd >> fl
буде сформовано повне ім’я поточного каталога й розміщене наприкінці файла fl, якщо він не є порожній. Символи < та << означають переспрямовування. Команда
wc – l <fl
підраховує та видає на екран кількість рядків у файлі fl.
Команда
ed f2 <<!
створює файл f2 безпосередньо з термінала за допомогою редактору. Завершення введення визначається за наявності символу, який стоїть праворуч від <<, тобто ! ; введення буде завершено, коли першим у наступному рядку буде !.
Можна комбінувати переспрямовування команд
wc – l < f3 > f4 та wc – l > f4 < f3
Вони виконуються однаково: підраховується кількість рядків файла f3, а результат розміщується в файлі f4.
Засіб, який об’єднує стандартний вихід однієї команди зі стандартним входом другої, називається конвеєром й позначається у такий спосіб: , наприклад, команда
ls wc – 1
спрямовує список файлів поточного каталога на вхід команди wc, яка виводить на екран кількість рядків каталога; конвеєром можна об’єднувати понад дві команди, якщо всі вони, окрім першої та останньої, є фільтри:
cat f1 grep –h result | sort | cat –b > f2
Даний конвеєр з файла f1 (cat) обирає всі рядки, які вміщують слово “result” (“grep”), відсортовує (“cat –b”) та виводить результат у файл f2.