Напишите программы клиента и сервера, которые решая задачу вашего варианта лабораторной работы, работает в двух режимах:
1. Клиент запрашивает у пользователя режим работы и если этот режим — упаковка, запрашивает у пользователя слова состояния устройства и передает их по именованному каналу в сервер, который упаковывает их и передает по другому именованному каналу упакованное слово клиенту который выводит его на экран.
2. Клиент запрашивает у пользователя режим работы и если этот режим — распаковка, запрашивает у пользователя упакованное слово состояния устройства, то передает его по именованному каналу в сервер, который распаковывает его и передает по другому именованному каналу слова состояния клиенту который выводит их на экран.
Программа распаковки (сервер) должна быть откомпилирована в отдельном файле.
В программах должен быть предусмотрен вывод на экран промежуточных результатов (результатов распаковки и т.п.).
Должны быть реализованы проверки правильности выполнения всех операций с каналами.
В таблице 2 представлены форматы слова состоянии устройства в соответствии с вариантами индивидуальных заданий.
Таблица 2 — Форматы слова состояния устройства для вариантов индивидуальных заданий
вариант | задание | ||||||||||||||||
№ разряда | |||||||||||||||||
значение | H | H | T | T | T | T | T | T | T | T | T | S | S | S | S | S | |
№ разряда | |||||||||||||||||
значение | C | C | C | C | E | I | P | K | K | K | |||||||
№ разряда | |||||||||||||||||
значение | N | N | N | N | E | C | C | C | C | C | C | C | C | C | P | ||
№ разряда | |||||||||||||||||
значение | D | R | R | R | R | A | A | A | A | ||||||||
№ разряда | |||||||||||||||||
значение | P | P | P | F | F | H | H | H | H | V | V | V | |||||
№ разряда | |||||||||||||||||
значение | T | T | D | N | N | N | N | N | N | N | N | N | |||||
№ разряда | |||||||||||||||||
значение | S | S | S | D | F | B | B | B | B | B | B | B | B | ||||
№ разряда | |||||||||||||||||
значение | U | U | U | U | U | U | U | U | R | W | E | X | |||||
№ разряда | |||||||||||||||||
значение | O | O | O | O | O | C | D | N | N | N | N | N | N | N | N | N | |
№ разряда | |||||||||||||||||
значение | G | G | G | G | G | G | G | G | S | S | S | S | P | ||||
№ разряда | |||||||||||||||||
значение | C | C | C | U | U | U | U | U | E | E | E | E | E | E | B | ||
№ разряда | |||||||||||||||||
значение | D | A | A | A | B | B | B | ||||||||||
№ разряда | |||||||||||||||||
значение | D | D | D | D | D | M | M | M | M | M | Y | Y | Y | Y | Y | Y | |
№ разряда | |||||||||||||||||
значение | S | S | S | S | S | M | M | M | M | M | M | H | H | H | H | H | |
№ разряда | |||||||||||||||||
значение | F | F | F | F | F | F | F | F | R | W | L | L | L | L | L | L | |
№ разряда | |||||||||||||||||
значение | F | F | F | F | F | F | F | F | R | W | L | L | L | L | L | L |
Продолжение таблицы 2.
вариант | задание | ||||||||||||||||
№ разряда | |||||||||||||||||
значение | G | G | G | G | G | G | G | G | S | S | S | S | P | ||||
№ разряда | |||||||||||||||||
значение | O | O | O | O | O | O | O | O | P | L | L | L | L | L | L | ||
№ разряда | |||||||||||||||||
значение | X | X | X | X | X | X | Y | Y | Y | Y | Y | Y | C | C | C | C | |
№ разряда | |||||||||||||||||
значение | C | C | F | F | D | D | D | D | D | D | D | D | D | D | D | D | |
№ разряда | |||||||||||||||||
значение | O | A | A | R | R | R | D | D | D | D | D | D | D | D | |||
№ разряда | |||||||||||||||||
значение | N | N | N | N | P | P | P | U | U | U | U | U | U | U | U | ||
№ разряда | |||||||||||||||||
значение | N | N | N | M | M | M | L | W | W | W | W | W | W | W | W | ||
№ разряда | |||||||||||||||||
значение | S | S | S | S | S | S | D | D | D | D | D | D | C | C | C | ||
№ разряда | |||||||||||||||||
значение | T | T | T | S | S | S | S | L | L | L | L | L | L | L | L | ||
№ разряда | |||||||||||||||||
значение | C | C | P | N | N | N | N | N | N | N |
ТехническиЕ средствА ДЛЯ выполнения работы.
1. Компьютерный класс с установленными ОС WINDOWS и виртуальными машинами позволяющими запускать ОС Linux.
Порядок выполнения лабораторной работы
1. Произвести запуск виртуальной машины и загрузку в ней операционной системы LINUX.
2. Произвести регистрацию с именем пользователя и паролем, указанным преподавателем.
3. В меню «Устройства» виртуальной машины выбрать пункт «Общий буфер обмена» и настроить режим «Из основной в гостевую ОС»
4. Создать в пользовательском каталоге два пустых текстовых файла с расширением .с.
5. Перенести текстовые файлы с программами из приложений А и Б в созданные файлы.
6. Откомпилировать программы с помощью gcc (gcc имя.c -o имя).
7. Произвести запуск программы (./имя )
8. Ввести исходные данные и получить упакованное слово состояния устройства.
9. Создать и отладить программу, соответствующую варианту задания.
Содержание отчета о выполнении лабораторной работы
Отчёт должен содержать:
— цель лабораторной работы;
— задание соответствующее варианту;
— результаты работы программы;
— выводы.
Отчёт по лабораторной работе должен быть выполнен в соответствии требованиями ГОСТ.
Порядок защиты работы
Защита производится при наличии отчета за компьютером и состоит в демонстрации работы программы в соответствии с вариантом задания.
8. Контрольные вопросы
1. Что такое канал?
2. Что такое FIFO?
3. Как создать именованный канал??
4. Для чего служит файл метка FIFO?
5. С помощью какого системного вызова можно удалить файл?
6. С помощью какого системного вызова можно изменить права доступа текущего процесса?
7. Как организовать передачу данных от одного процесса другому через именованный канал?
8. С помощью каких системных вызовов можно организовать запись в файл, чтение из файла?
9. Каково назначение системного вызова open()?
10.Что представляет собой модель взаимодействия «клиент-сервер».