Из представленного на Рисунке 2 прототипа базы знаний уже можно выстроить ряд ЭСО, которые будут содержать в себе оцениваемые критерии. Например, формируя ЭСО «Физика», мы отметим, что это техническая дисциплина естественнонаучного цикла. Затем, отберем из Базы Знаний: Лабораторные работы, как с оборудованием, так и письменные; Проверочное тестирование; Выполнение реферата; Работа с методичкой; Добавим полностью класс мотивации и защиты работ. Таким образом, мы сформировали примерное содержание ЭСО «Физика», по которому можно оценивать каждого студента и получить итоговую оценку, рассчитанную системой.
Таким образом, применение ООП в задаче разработки интеллектуальной системы оценки успеваемости обучающегося позволит минимизировать временные и интеллектуальные ресурсы при проектировании баз знаний и алгоритмов вывода. Представленный прототип ЭСО наглядно демонстрирует свойства модульности и адаптивности к изменениям структуры баз знаний.
Использование данного подхода в задачах оценивания степени освоения учебного плана студентами позволит обеспечить высокий уровень объективности и беспристрастности итогового решения.
Литература
1. М. Горькавый. Повышение эффективности мониторинга и управления процессом формирования профессиональной компетентности студентов технических вузов // Информатика и системы управления, 2012, №2, с. 127-138, Ьйр://еНЬгагу.гиЛ1ет.а8р?1а=17705902 - 08.12.15
2. М. Горькавый. Синтез нечеткой модели компетенции технического персона промышленного предприятия // Информатика и системы управления, 2010, №1, с.128-140, Ьйр://еНЬгагу.гиЛ1ет.а8р?1а=13598489 - 08.12.15
3. М. Горькавый. Нечеткий подход к оценке компетентности технического персонала промышленного предприятия // Вестник Тихоокеанского государственного университета, 2010, №3, с. 63-72, Ьйр://еНЬгагу.гиЛ1ет.а8р?1а=15245030 - 08.12.15
4. Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ / Г. Буч; пер. с англ. И. Романовского; под ред. Ф. Андреева - М.: Невский Диалект, 2000. - 359 с., ЬйрУ/утк.вдаШ.ас.ги/Ьоок/ЬисЬ/^ех.Йт - 08.12.15
5. Моделирование на ИМЬ [Электронный источник] / Диаграмма классов ЬйрУ/Ьоок.итР.ги^ес 1 5-08.12.15
УДК 004.451.8
ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ И
ПРОИЗВОДИТЕЛЬНОСТЬ
Штанюк Антон Александрович, кандидат технических наук, доцент Нижегородского государственного университета им. Н.И. Лобачевского, 8Ы;ап@1ап^щ
Введение
Данная работа является продолжением исследований особенностей объектно-ориентированных операционных систем (ОООС) [1] и посвящена анализу их производительности в свете объектного подхода.
1. Производительность и быстродействие
Одним из ключевых показателей любой операционной системы является производительность. Производительность - это совокупность различных признаков, влияющих на реальное быстродействие вычислительной машины, управляемой операционной системой. Когда пытаются оценить производительность, то нагружают систему определенным набором тестовых задач, замеряют время работы и сравнивают результаты измерений. Данный подход является широко распространенным, но не единственным в плане оценки быстродействия. Также используются отзывы пользователей, субъективные наблюдения и оценки качества работы в операционной среде. Правда, в таких подходах часто оценивается отзывчивость пользовательского интерфейса, то есть на основании быстродействия отдельной части системы делается вывод о суммарной производительности.
Совершенно очевидно, что между производительностью ОС и быстродействием вычислительной машины нужно провести разграничение. Вычислительная машина может быть очень быстродействующей и скрывать низкую производительность ОС. Когда производитель ОС (например, Microsoft) рекомендует для новой версии системы выполнить апгрейд аппаратных средств, то это может свидетельствовать о желании «выглядеть производительнее» по сравнению с предыдущей версией. Поэтому, при рассмотрении производительности нужно ориентироваться на некоторую обобщенную вычислительную систему, некоторый «средний компьютер».
Высокопроизводительная система имеет больше шансов на успех в разнообразных областях применения. Любые факторы, снижающие производительность, воспринимаются пользователями весьма болезненно. Поэтому объяснимо стремление разработчиков ОС всеми способами повысить данный показатель.
2. Факторы, влияющие на производительность
Перечислим основные факторы, влияющие на производительность ОС:
• неудачная внутренняя архитектура со множеством слоев и уровней;
• частые переключения из режима ядра в пользовательский режим;
• задержки, связанные с переключениями между процессами для обеспечения многозадачного режима;
• обслуживание большого количества периферийных устройств;
• низкая пропускная способность каналов связи с устройствами (проблема «медленных» устройств);
• игнорирование возможностей аппаратной оптимизации кода (неудачная организация кода системы).
Объектная организация ОС предполагает наличие развитых абстракций на всех уровнях: от ядра до пользовательских процессов. В этом смысле большое число абстракций и сложные связи между ними способны потреблять больше ресурсов и, следовательно, отрицательно влиять на производительность. С большой долей уверенности можно говорить о том, что сложная внутренняя архитектура ООС является основной причиной снижения производительности, поскольку сигналы управления и результаты операций «путешествуют» по большему количеству уровней абстракции многочисленных внутренних объектов. Так, использование виртуальных методов, влечет за собой работу с таблицами виртуальных функций (VFT), а следовательно, удлиняет цепочку обращений по адресам в памяти. Развитые средства разграничения доступа на уровне классов приводят к замене обращений к переменным на вызовы интерфейсных методов, что также увеличивает время выполнения операций.
Одним из важных признаков ООС является сведение к минимуму (или полный отказ от) побочных эффектов. Все объекты имеют интерфейс, и взаимодействие происходит через отправку/получение сообщений, то есть через использование копий данных. Это улучшает
55
надежность разработки, повышает реентерабельность кода, облегчает сопровождение и тестирование системы, но неизбежно ведет к потерям времени на копирование.
Частые переключения из режима ядра в пользовательский режим происходят из-за микроядерной организации системы. Объектные операционные системы тяготеют именно к микроядерной архитектуре. Дело в том, что если система представлена множеством взаимодействующих объектов, то функции ядра либо сужаются, либо распределяются между несколькими связанными объектами. С точки зрения безопасности, разумно уменьшать количество опасного кода ядра в пользу менее опасного кода сервисов. К тому же при объектном подходе стремятся избегать разработки сверхсложных и сверхмассивных объектов, предпочитая им небольшие и хорошо структурированные, с четким и компактным интерфейсом. Таким образом и приходят к идее микроядра, наделенного лишь базовыми функциями по управлению другими объектами системы. А она предполагает выполнение ограниченного кода в пространстве ядра и частые переключения в пользовательский режим.
Задержки при переключениях процессов неизбежны в любой операционной системе с многозадачностью, и здесь у ОООС нет особенных отличий, кроме, быть может, описанных выше и связанных с удлинением обращений при системных вызовах. Процесс в объектной среде должен также носить объектный характер и описываться в терминах ООП, поэтому ему свойственны дополнительные интерфейсные методы, внутреннее функциональное пространство и более сложное поведение для внешнего пользователя.
Проблемы, связанные с низкой пропускной способностью периферийных устройств, характерны для любых ОС, независимо от их архитектуры. Асинхронный режим обмена данными с устройством и переключение на другие задачи являются эффективными средствами борьбы с простоями процессора. Объектная модель ОС позволяет разработать более совершенный механизм передачи управления за счет внутреннего аудита объектов и прогнозирования их поведения, что, надеемся, будет являться предметом для исследований в ближайшем будущем.
Также вызывает интерес реструктуризация исходного кода системы в плане поддержки аппаратной оптимизации и возможностей новых процессоров. К сожалению, объектный характер ОС не всегда соответствует представлениям об оптимизации со стороны разработчиков микросхем и такими средствами, как конвейеризация, аппаратная векторизация, а также предвыборки и кеширование, не всегда удается воспользоваться в полной мере.
3. Объектные системы и языки программирования
Обычно операционные системы пишутся с использованием языка программирования С. Выбор данного языка обусловлен наличием развитых средств низкоуровнего программирования, переносимости на аппаратные платформы, а также высокими показателями результирующего кода по быстродействию и размеру. Однако, использование C лежит вне концепции ООП, а также сопряжено с рисками побочных эффектов и неопределенного поведения (undefined behavior), возникающими в результате программных ошибок. Разработчики Microsoft, продолжая интенсивно использовать С для кода ядра, стали использовать язык С++ для системных служб других модулей ОС Windows. Тем не менее, существуют возражения против использования С++ в разработке ядра систем:
• Худшие, по сравнению с C, поддержка аппаратных платформ, и портируемость.
• Более высокая стоимость механизмов RTTI (динамическая идентификация типов данных) и исключений.
• Наличие специфических для ООП ситуаций, например, проблемы "хрупкости" базовых классов (fragile base class).
Часто можно услышать, что язык C++ слишком сложен для понимания и в крупных системах может приводить к потере контроля за выполнением кода, снижая уверенность в
правильной работе системы. С другой стороны, этот язык гармонично сочетается с Си дает разработчикам возможность комбинировать в ядре процедурные и ООП механизмы.
В настоящее время есть опыт разработки операционных систем на языках Java, например, JavaOS или JX [2]. Операционные системы на Java включают в себя реализацию JVM. Использование технологии Java явилось причиной создания систем с изоляцией приложений друг от друга, без привлечения механизмов аппаратной защиты. Это привело, с одной стороны, к повышению защищенности системы и приложений в процессе работы, а с другой - к увеличению производительности в результате отсутствия переключений между виртуальными адресными пространствами, как в традиционных ОС. Как утверждают разработчики системы JX, их система по результатам тестов может соревноваться с Linux
[3].
В настоящее время использование языка Java для разработки ОС может быть привлекательно при наличии быстродействующих вычислительных систем.
Проект Oberon (ныне AOS, а также A2) является ярким примером использования специфического языка программирования (Oberon) для построения операционной системы. В настоящее время в Цюрихе ведется разработка системы A2, воплощающей лучшие идеи многолетнего развития Оберона. В основе системы лежит язык Активный Оберон [4], позволяющий разрабатывать системы, основанные на активных объектах, функционирующие непосредственно на железе.
Также нельзя не упомянуть про интересный проект разработки фрактальной модели объектно-ориентированной операционной системы, осуществляемый В. Джавадовым [5]. Разработка ведется в рамках создания нового языка программирования Кантор и его экосистемы.
4. Пути повышения производительности ОООС
Исходя из анализа факторов, влияющих на производительность системы, а также опыта использования различных языков программирования и концептуальных решений, можно наметить несколько направлений по уменьшению потерь времени на выполнение основных системных функций.
1. Совершенствование объектной архитектуры за счет распределения полномочий между объектами и снижения количества ненужных/дублирующих вызовов методов.
2. Уменьшение количества сообщений между объектами, не влияющих на работу системы.
3. Разработка программных средств и методов трансляции с существующих объектно-ориентированных языков с совершенствованием этапа оптимизации кода, особенно с поддержкой современных процессоров и их возможностей.
4. Улучшение механизма переключения между процессами за счет более совершенных средств прогнозирования доступа к ресурсам вычислительной системы.
5. Разработка новых языков и средств программирования, позволяющих эффективно решать задачи, связанные с операционными системами.
6. Использование проверенных временем технологий, например Java, для создания защищенных систем с высоким быстродействием.
Выводы
В заключение хотелось бы отметить важную роль, которые могли бы сыграть объектно-ориентированные операционные системы для развития современных программных технологий, разработки новых концепций в области информационных систем, языков и трансляторов.
Литература
1. Штанюк А.А. Перспективы развития объектно-ориентированных операционных систем // Объектные системы. 2013 №7(7), с.29-30.
2. The JX Operating System [Электронный ресурс.] - Режим доступа: http://www4.cs.fau.de/Proiects/JX/publications/jx-usenix.pdf (дата обращения 29.11.2015).
3. JX: The fast and flexible JavaOS [Электронный ресурс.] - Режим доступа: http://www4.cs.fau.de/Projects/JX/ (дата обращения 29.11.2015).
4. P.J. Muller. Active Object System. Design and Multiprocessor Implementation. — ETH Zurich, 2002., Diss. ETH № 14755
5. Канторовы системы [Электронный ресурс.] - Режим доступа: http://www.cantorsys.com/2015/05/Theory.html (дата обращения 30.11.2015).
УДК 004.4'236
ГИБРИДНЫЕ ОБЛАЧНЫЕ ТЕХНОЛОГИИ НА ОСНОВЕ РЕЛЯЦИОННОЙ И
ОБЪЕКТНОЙ БАЗ ДАННЫХ3
Микляев Иван Александрович, к.ф.-м. н., доцент, Институт судостроения и морской арктической техники (Севмашвтуз) Северного (Арктического) федерального университета имени М. В.
Ломоносова, Россия, Северодвинск, [email protected] Жирнова Марина Анатольевна, студентка, Институт судостроения и морской арктической техники
(Севмашвтуз) Северного (Арктического) федерального университета имени М. В. Ломоносова, Россия, Северодвинск, [email protected]
Информационное общество вышло на новый виток развития, которое характеризуется началом активного использования облачных технологий, позволяющих эффективно работать с информационными ресурсами, используя различные аппаратно-программные средства независимо от территориального присутствия пользователя.
На предприятии по производству сварочного оборудования используется гибридная информационная система, основанная на обмене данными между информационными системами частного и публичного облаков.
Так как на публичном и частном облаках используются разные структуры данных: реляционные базы данных и матричная универсальная объектно-реляционная база данных (МУОРБД) [2], то требуется нестандартный подход синхронизации баз данных. Поэтому используются собственное программное решение для связи двух частей информационной системы предприятия.
Из определения частного облака [1] следует, что это инфраструктура, предназначенная для использования одной организацией, включающей несколько потребителей, в данном случае потребителями являются подразделения Бухгалтерии, Управления, Производства и Конструкторский отдел. Частное облако находиться в собственности предприятия по производству сварочного оборудования «Агни» и физически существует внутри юрисдикции владельца. На платформе частного облака были разработаны собственными силами предприятия следующие информационные системы, находящиеся в тесной взаимосвязи:
• ERP-система, которая организована для управления данными о заказах, продукции, назначения цены, управления складскими запасами, выполнения технологических операций, ведения табеля и т.д.;
• система электронного документооборота, используется для конструкторской документации;
3 Статья рекомендована к опубликованию в журнале "Прикладная информатика"
58