BC/NW 2015  1 (26) 2:4

ИММИТАЦИОННАЯ ПРОГРАММНАЯ МОДЕЛЬ ОПЕРАЦИОННОЙ СИСТЕМЫ

 

Филатов А.В., Данилов М.А.

 

(Москва, НИУ МЭИ, Россия)

Операционные системы предоставляют набор функциональности, необходимой для работы большинства приложений на компьютере, а также связывающиеся механизмы для контроля и синхронизации. На первых компьютерах не было операционных систем, поэтому каждая исполняемая программа должна была знать полную аппаратную спецификацию машины и выполнять стандартные задачи, а также иметь собственные драйверы для периферийных устройств. Возрастающая сложность оборудования и пользовательских программ привела к появлению операционных систем []. С тех пор операционные системы прошли долгий путь эволюции, и теперь программисту следует учитывать спецификацию конкретной операционной системы для которой разрабатывается программное обеспечение, если он преследует цель по достижению наибольшей производительности.

Существует два основных направления, по которым достигается наибольшая производительность: разработка программного обеспечения для конкретного набора аппаратного обеспечения и оптимизация программного обеспечения для выполнения на конкретной операционной системы. Первое направление активно используется разработчиками программного обеспечения компании Apple, которые достигли невероятных успехов по увеличению производительности пользовательских задач, однако их продукция имеет высокую стоимость. Такая производительность достигается в основном тем, что каждое программное обеспечение дорабатывается программистами специальных отделов по каждому продукту (планшеты, ноутбуки, моноблоки и полноценные системные блоки). Второе направление задал профессор Амстердамского свободного университета Э. Таненбаум, который провёл многочисленные исследования в области операционных систем, в частности в своей книге «Современные операционные системы» он призвал всех программистов изучать внутренние механизмы функционирования операционных систем прежде чем разрабатывать программное обеспечение. Первое направление является эффективным, но требует огромных временных затрат, так же минусом такого программного обеспечения является его узкоспециализированность. Второе направление не так эффективно как первое, однако позволяет в короткий срок добиться результата, так же такое программное обеспечение будет иметь широкий профиль.

         Функционирование операционной системы – сложный процесс. Основной подход предлагаемый в большинстве ВУЗах заключается в том, что функционирование операционной системы разбивается на функционирование нескольких моделей (например, модель подсистемы управления памятью, модель планировщика и т.д.) . В основном изучаются UNIX-подобные операционные системы в связи с тем, что их базовые принципы функционирования не являются коммерческой тайной и легко доступны всем. Однако минусом данного подхода является отсутствие рассмотрения функционирования операционной системы в целом, в режиме реального времени. Для студентов, обучающихся по специальностям направленным на программирование, операционная система остаётся «чёрным ящиком».

         Исследование имеющихся знаний в области нахождения общих базовых принципов функционирования UNIX-подобных операционных систем позволило сделать определённые выводы.

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

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

         Обзор современных UNIX-подобных операционных систем позволил разработать более точную модель ОС. Большая роль в ней отводятся нахождению условий перехода из того или иного состояния, так же количество этих состояний максимально.

Ниже (Рис.1) представлена схема жизненного цикла процесса в ОС UNIX:

Macintosh HD:Users:maksimdanilov:Desktop:Без названия1.tiff

Рис.1. Схема жизненного цикла процесса.

         Результатом всего исследования стала разработка программной модели операционной системы способной визуализировать функционирование основных системных программ на уровне ядра операционных систем UNIX при выполнении пользовательского процесса, которая в данный момент проходит тестирование. В ее основе лежат две разработанные модели – модель подробного жизненного цикла процессов и модель демонстрирующая активные структурные компоненты операционной системы. Подробно, исследования и сведения о разработке изложены в магистерской диссертации Данилова М.А.

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

ЛИТЕРАТУРА

1. Таненбаум Э., Вудхам Д., «Операционные системы. Разработка и реализация» - СПб.:Питер, 2012 – 704 с.

2. Гордеев А.В., «Операционные системы» - СПб.:Питер, 2004 – 416 с.

3. Таненбаум Э., «Современные операционные системы» - СПб.:Питер,              2002 – 1040 с.

4. Бовет Д., Чезати М., «Ядро Linux» - СПб.:БХВ-Петербург, 2007 – 1104 с.