Неделя 5
Пост по пятой неделе.
Введение
За прошедшую неделю были выполнены лабораторые работы 13 и 14 на следующие темы:
- Средства, применяемые при разработке программного обеспечения в ОС типа UNIX/Linux
- Именованные каналы
Лабораторная работа №13
В результате выполнения лабораторной работы приобрела простейшие навыки разработки, анализа, тестирования и отладки приложений в ОС типа UNIX/Linux на примере создания на языке программирования С калькулятора с простейшими функциями.
Были выполнены следующие задачи:
- В домашнем каталоге создайте подкаталог ~/work/os/lab_prog.
- Создайте в нём файлы: calculate.h, calculate.c, main.c. Это будет примитивнейший калькулятор, способный складывать, вычитать, умножать и делить, возводить число в степень, брать квадратный корень, вычислять sin, cos, tan. При запуске он будет запрашивать первое число, операцию, второе число. После этого программа выведет результат и остановится.
- Выполните компиляцию программы посредством gcc.
- При необходимости исправьте синтаксические ошибки.
- Создайте Makefile.
- С помощью gdb выполните отладку программы calcul.
- С помощью утилиты splint попробуйте проанализировать коды файлов calculate.c и main.c.
Лабораторная работа №14
В результате выполнения лабораторной работы приобрела практические навыки работы с именованными каналами.
Были решены следующие задачи:
Изучите приведённые в тексте программы server.c и client.c. Взяв данные примеры за образец, напишите аналогичные программы, внеся следующие изменения:
- Работает не 1 клиент, а несколько (например, два).
- Клиенты передают текущее время с некоторой периодичностью (например, раз в пять секунд). Используйте функцию sleep() для приостановки работы клиента.
- Сервер работает не бесконечно, а прекращает работу через некоторое время (напри- мер, 30 сек). Используйте функцию clock() для определения времени работы сервера. Что будет в случае, если сервер завершит работу, не закрыв канал?
Выводы
За прошедшую неделю я изучила именованные каналы и приобрела практические навыки работы с ними. Также я приобрести простейшие навыки разработки, анализа, тестирования и отладки приложений в ОС типа UNIX/Linux на примере создания на языке программирования калькулятора с простейшими функциями.. Поставленные задачи были интересными, но сложными, поэтому решала я их досаточно долго и не без чужой помощи. В целом я довольна результатами прошедшей недели, я выполнила все работы заранее и у меня не возникло никаких особенных трудностей.