ЦЕЛЕСООБРАЗНОСТЬ ПРИМЕНЕНИЯ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ В СИСТЕМАХ ТЕСТИРОВАНИЯ ЗНАНИЙ

 

А.И. Шаповалов, Ю.Е. Зинченко

Донецкий национальный технический университет

Доклад на II Международной научной конференции студентов, аспирантов и молодых ученых "Компьютерный мониторинг и информационные технологии"

 

            Все системы тестирования знаний можно разделить на две категории: сделанные на базе клиентских технологий или же на базе технологии клиент-сервер. В случае построения системы на базе клиентских технологий не возникает никаких проблем – компьютер пользователя сам обрабатывает результаты теста и выдает ответ. Если же система построена на базе клиент - серверных технологий, то клиентская часть только принимает ответы пользователя, сама обработка результатов происходит на стороне сервера.

            В случае если количество пользователей системы не велико (несколько сотен или тысяч) не возникнет никаких проблем, но если же количество пользователей будет составлять несколько десятков или сотен тысяч, то придется столкнуться с некоторыми проблемами. Характерной чертой систем тестирования знаний являются высокие пиковые нагрузки, что продемонстрировано на рисунке.

           

 

Пиковые области – это например конец урока в школах – результаты поступают с компьютеров пользователей на сервер. В этот момент на сервере может возникнуть отказ в обслуживании.

Предлагается следующее решение данной проблемы.

Процесс обработки заявки разделяется на два этапа – прием и сохранение заявки и собственно ее обработка. Процессу приема заявки присваивается наивысший возможный приоритет, а обработки – наименьший. Сразу возникает вопрос – почему именно так, ведь второй этап будет выполняться в сотни раз дольше, чем первый? Дело в том, что задача системы тестирования знаний не мгновенно выдать результат, а принять все заявки и со временем все их обработать.

Второй проблемой является то, что такие распространенные операционные системы, как Windows или Linux вряд ли смогут выдержать таких пиковых нагрузок. У первой есть следующий недостаток: при большом количестве требуемой оперативной памяти операционная система начинает расширять файл подкачки. В это время компьютер практически не отвечает на запросы вне зависимости от приоритета процесса.

В Linux же при большом количестве процессов приоритет какого либо конкретного процесса становится уже неважным, и операционная система перестает адекватно реагировать на запросы.

Проблема вышеназванных операционных систем состоит в том, что они разрабатывались как пользовательские операционные системы, и время отклика на конкретное событие в них не оговаривалось. Отклик может произойти как через 1 мкс, так и через 1 с, что недопустимо в вышеназванной ситуации.

            Операционные системы реального времени – это операционные системы, в которых оговаривается время реакции на событие. Процессы, имеющие приоритет реального времени, всегда будут иметь преимущество при  выполнении на процессоре.

Наиболее ярким представителем класса операционных систем реального времени является операционная система QNX Neutrino.

Основным назначением операционной системы QNX Neutrino является реализация программного интерфейса POSIX в масштабируемой, отказоустойчивой форме, подходящей для широкого круга открытых систем, начиная от небольших встроенных систем с ограниченными ресурсами и заканчивая крупными распределенными вычислительными средами. Отказоустойчивая архитектура крайне необходима для работы критически важных приложений.

Важным моментом является наличие микроядра и администратора высокой готовности, который позволяет замену практически всех компонентов операционной системы без перезагрузки. Знаменитое выражение «пять девяток» относится к такому уровню готовности системы, при котором она остается работоспособной в течение 99,999% рабочего времени, что означает приблизительно пять минут простоя в год. И операционная система QNX обеспечивает такую готовность.

В одном из самых жестоких тестов в систему поступило миллион заявок, и ни одна из них не была пропущена. Длительность теста составляла один час.

Совместимость со стандартом POSIX гарантирует переносимость исходных кодов с платформы Linux/Unix (напомним, ОС Linux также удовлетворяет стандарту POSIX) на платформу QNX, потребуется лишь перекомпиляция и, возможно, изменения платформо-зависимых участков исходного текста программы. Таким образом, можно написать программное обеспечение, которое будет свободно компилироваться под обеими операционными системами и свободно переноситься с одной на другую. А при некотором изменении исходного кода (в случае если код программы более чем на 99% удовлетворяет стандарту языка С++), то программное обеспечение может быть перенесено и на платформу Windows.

Таким образом, применение операционных систем реального времени будет оправдано в случае, если количество клиентов в системе очень велико. В другом случае можно применять такие популярные операционные системы класса Windows или Unix без значительного изменения исходного кода.

 

Список использованной литературы:

1.  Операционная система реального времени QNX Neutrino 6.3. Системная архитектура: Пер. с англ. – СПб.: БХВ-Петербург, 2005. – 336 с.: ил.

2.        Брошюра QNX Neutrino. SWD Software, 2003 год.