
- •Лабораторна робота № 10 основи роботи з операційною системою unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Загальна характеристика ос сімейства unix
- •2.2 Архітектура unix
- •2.3 Функціонування системи unix
- •2.3.1 Ядро системи
- •2.3.2 Початок і завершення сеансу робіт
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •2.1 Основні характеристики FreeBsd
- •2.2 Історична довідка
- •2.3 Мета проекту FreeBsd
- •2.4 Вимоги до системи при інсталяції FreeBsd
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Поняття процесу
- •2.2 Компоненти процесу
- •2.2.1 Ідентифікатор процесу
- •2.2.2 Ідентифікатор батьківського процесу
- •2.2.3 Ідентифікатор користувача і групи
- •2.3 Стан процесу, "заблукалі" процеси
- •2.4 Управління процесами, команди kill та nice
- •2.4.1 Дворівнева схема керування процесами
- •2.4.2 Команда kill
- •2.4.3 Команда nice
- •2.5 Поточний контроль процесів, команди ps та top
- •2.6 Захист фонових процесів, команда nohup
- •3 Ключові запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Лабораторна робота № 13 права доступу в операційній системі unix
- •1 Мета роботи
- •2 Основні положення
- •2.1 Поняття прав доступу користувача
- •2.2 Основні біти доступу (читання/запис/виконання)
- •2.3 Додаткові біти доступу
- •2.4 Сполучення бітів доступу
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •2.1 Основні поняття клієнт-серверної архітектури
- •2.2 Основи мережного програмування
- •2.3 Компіляція
- •3 Контрольні запитання
- •4 Домашнє завдання
- •5 Лабораторне завдання
- •6 Зміст протоколу
- •7 Список рекомендованої літератури
- •Основні комбінації клавіш і команди
- •Закінчення таблиці а2
- •Закінчення таблиці а4
- •Приклади програм для реалізації клієнт-серверної архітектури
- •Перевірка буфера
- •Зчитування запису
- •Лістинг 2 Server-сервер, котрий демонструє застосування функції readvrev
2.3 Компіляція
Процедуру створення додатка наведено на рис 2.2.
Основні параметри компілятора gcc подано в таблиці 2.1.
Рисунок 2.2 — Процедура створення додатка
Таблиця 2.1 — Головні параметри компілятора gcc
-с |
Компілює, транслює вихідні файли |
-o name |
Змінює ім’я виконуваного файла на name. За замовчуванням a.out |
-L dir |
Зазначає місце перебування dir бібліотек |
-g |
Виконує налагодження під конкретну ОС |
-O |
Виконує оптимізацію трансляції, щоби зменшити обсяг програми |
-Wall |
Виводить на екран усі попередження |
3 Контрольні запитання
3.1 Які основні відмінності існують поміж клієнтом і сервером?
3.2 Різновиди клієнт-серверної архітектури й розходження поміж ними.
3.3 Коли доцільно використовувати перший різновид клієнт-серверної архітектури?
3.4 Які недоліки має повідомлення фіксованої довжини?
3.5 Коли доцільно використовувати повідомлення змінної довжини?
4 Домашнє завдання
4.1 Письмово відповісти на контрольні запитання.
4.2 Самостійно написати програми, оптимізовані під конкретний порт (номери портів задаються відповідно до п. 5.5). Для довідок використовувати додаток Б (Лістинг 1).
5 Лабораторне завдання
5.1 За допомогою програми telnet “підімкніться” до машини під керуванням ОС сімейства UNIX (Пуск/Виконати/telnet 192.168.11.15).
5.2 Введіть ім’я та пароль (призначаються викладачем).
5.3 Створіть текстові файли server.c і client.c, вихідні тексти програм цих файлів розміщено в додатку Б (Лістинг 2 та Лістинг 3). Для цього треба набрати:
ee server.c
ee client.c
(для збереження натиснути Esc+Enter).
5.4 Відкомпілюйте програми:
cc -c -g -O -Wall client.c (створити проміжні об'єктні файли)
cc -c -g -O -Wall server.c
cc -o server -L lib server.o –letcp (створити програми)
cc -o client -L lib client.o –letcp
5.5 Запустити програму. Для цього необхідно ще один раз виконати пп. 5.1 та 5.2, потім в одному вікні набрати:
./server 9000 (де 9000 — номер порту, на якому працює програма. Студент, працюючий за першою машиною, ставить номер порту 9001, за другою — 9002 і т. д.).
В другому вікні набрати:
./client localhost 9000 (номер порту клієнта має збігатися з номером порту сервера).
5.6 Здійсніть обмін повідомленнями; для цього напишіть у вікні клієнта текстове повідомлення і натисніть <Enter>.
5.7 Підімкніться клієнтом до порту сервера сусіднього студента й обміняйтеся з ним повідомленнями.
5.8 Наведіть результати оптимізації.
6 Зміст протоколу
Протокол лабораторної роботи “Програмування клієнт-серверної архітектури” оформлюється в робочому зошиті в послідовності, котра визначається стандартом підприємства з основ лабораторного практикуму. Протокол має містити назву лабораторної роботи та її мету; результати виконання домашньго завдання згідно з вимогами розділу 4; тексти програм client.c і server.c з коментарями; висновки.