Современные операционные системы (ОС) предоставляют разработчикам программного обеспечения большое количество разнообразных средств создания сложных программных систем, состоящих из нескольких процессов, которые могут выполняться на разных ЭВМ [1, 2]. Была поставлена цель – разработать программный комплекс (ПК), предназначенный для анализа времени выполнения программных функций однопроцессорных и многопроцессорных ОС.
Измерение производительности различных функций ОС необходимо не только разработчикам ОС, для оценки эффективности реализации определенной функции и сравнения производительности реализации в других ОС, но и прикладным программистам, которым измерение производительности функций ОС необходимо для выбора наиболее подходящих средств реализации своих проектов [3, 4].
ПК выполняет тестирование функций ОС, таких как: средства синхронизации процессов: взаимные исключения (мьютексы), семафоры, блокировки чтения-записи; средства межпроцессного обмена: именованные каналы FIFO, неименованные каналы PIPE, сокеты TCP и UDP; переключение контекста; системные вызовы (чтение, запись, открытие, закрытие).
Сегодня получил распространение ПК LMbench, позволяющий проводить тестирование nix-совместимых систем, имея в своём составе широкий спектр тестов для разных подсистем ОС. Данный пакет позволяет получить довольно целостное представление о проверяемой ОС. Однако пакет LMbench имеет ряд недостатков, которые делают работу с ним не удобной, требующей многократного повторения однотипных действий и выполнения дополнительных вычислений для получения результатов [5, 6].
Итак, разработанный ПК для тестирования функций операционных систем делает работу тестирования более удобной, более продуктивной и доступной, чем ПК LMbench [7].
На рис. 1 представлена последовательность действий, которые производит разработанный ПК.
Рис. 1. Последовательность действий, выполняемых представляемым ПК
Работа с ПК выполняется на ЭВМ под управлением ОС семейства Linux. Сегодня наиболее распространенными ОС являются – Ubuntu, Fedora, SUSE и Mandriva. Для обеспечения работоспособности программы требуется nix-совместимая ОС с установленными библиотеками Qt и Qwt.
Рис. 2. Структура данных разработанного ПК
Рис. 3. Алгоритм работы основной программы
Структура данных разработанного ПК представлена на рис. 2. Алгоритм работы основной программы представлен на рис. 3.
Как основа пользовательского интерфейса принята структура с многооконным интерфейсом. Для различных задач создаются отдельные окна, которые обеспечивают не перегруженный интерфейс, необходимый для их решения. В описываемой ПК применена процедура фильтрации (сглаживания) графиков – технология, которая используется для устранения эффекта «зубчатости», который возникает на краях одновременно выводимого на экран множества плоских или объёмных изображений. Процедуру сглаживания производят по нескольким наборам расположенных подряд данных, причем их число обычно выбирают экспериментальным подбором [7, 8]. Почти все графики предлагаются в двух видах – необработанном и фильтрованном (сглаженном). Процедура сглаживания действует на стиль отображения графика, который может быть построен прямолинейно от сообщения к сообщению, отчего он будет иметь угловатые очертания. Но при выборе сглаживания график будет иметь более плавные очертания. Уровень и алгоритм сглаживания для всех графиков одинаковый.
На рис. 4 и 5 представлены примеры тестов по измерению производительности переключения контекста и семафора.
Разработан программный комплекс для тестирования функций ОС: мьютексов, семафоров, переключения контекста системных вызовов (чтение, запись, открытие, закрытие) и других. Программа после выбора конкретного теста позволяет в автоматическом режиме собирать всю статистику, обрабатывать её и показывать конечные результаты в удобной и понятной для пользователя форме.
Рис. 4. Тест времени переключения контекста: задание параметров (а), без сглаживания (б), с наиболее вероятным сглаживанием (в)
Рис. 5. Тест семафора: задание параметров (а), без сглаживания (б), с наиболее вероятным сглаживанием (в)
В отличие от существующих программ-аналогов, описанный комплекс представлен дружественным интерфейсом пользователя, за визуализацию которого отвечают подключаемые библиотеки Qt и Qwt. Указанные библиотеки кроссплатформенные, что в свою очередь делает процедуру переноса программы на разные ОС более простой. Применяемый язык программирования C++ упрощает перенос программного комплекса на различные платформы и обеспечивает высокое быстродействие программы, что весьма сильно сказывается на получаемой точности результатов тестирования функций ОС.