Модификация файловой системы ОС Linux c целью исследования возможности разработки файловой системы реального времени.

Кутепова А.Ф.
г.Москва, МГТУ "СТАНКИН"

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

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

Еще одним важным требованием к СРВ является одновременная обработка событий: если несколько событий происходят одновременно, все они должны быть обработаны своевременно. Это означает, что имманентным свойством системы реального времени должен быть параллелизм. Чтобы этого добиться, необходимо установить более одного процессора или придерживаться многозадачного подхода [1].

Для построения ОС с выше изложенными требованиями была используема ОС Linux. Эта ОСРВ уже существует[2].

У Linux много достоинств: открытость кода; большое количество сопутствующего программного обеспечения, пока в основном ориентированного на серверные применения; наличие неплохой документации на API-интерфейс и ядро операционной системы; работа на процессорах различных классов. Открытость ее исходных текстов и архитектуры наряду с растущей популярностью заставляет программистов переносить свои наработки на многие аппаратные платформы: SGI, IBM, Intel, Motorola и т.д. Linux является наиболее распространенной системой, составляющей альтернативу Windows, имея в своем распоряжении большое количество инструментальных програмных средств.

Ядро ОС Linux имеет монолитную архитектуру [2]. В этом и заключаются сложности. И чтобы получить ядро ОС реального времени необходимо:

  • Изменить порядок работы планировщика;
  • Модифицировать файловую систему;
  • Изменить менеджер памяти.
  • Уже существующая ОСРВ(созданная Марковым Константином) использует пункты 1 и 3, но хотелось бы рассмотреть и модификацию ФС в ФСРВ.

    Рис.1 Ядро ОСРВ Linux

    Практически все, с чем имеем дело в Linux(как и в других ОС), является файлами. Команды — это не что иное, как файлы, содержащие программы. Устройства, присоединенные к компьютеру, представлены файлами.

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

    Файловая система - это структура, с помощью которой ядро операционной системы предоставляет пользователям (и процессам) ресурсы долговременной памяти системы, то есть памяти на различного вида долговременных носителях информации - жестких дисках, магнитных лентах, CD-ROM и т.п.

    Вот почему основная функция операционной системы — управление файлами.

    Для проектирования ФСРВ будет использована стандартная ФС Linux, но в ней ресурсы для процессов предоставляются в соответствии с приоритетом, приходящей задачи.

    Рассмотрим отличие ФСРВ и ФС.

    При запросе на предоставление ресурсов, процессы (т.е. их ID) выстраиваются в очередь. При использовании обычной ФС – это очередь организована по принципу (первый пришел, первый ушел), в ФСРВ производится выбор процесса по его приоритету.

    Это осуществляется с помощью специального модуля, который прописывается в уже существующую ФС. Он и будет отвечать за выбор процесса для предоставления ему ресурса. При этом первым пойдет процесс у которого № преоритета наименьший.

    Рис 2. Очередь ID процессов с приоритетом и порядок предоставление ресурса.

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

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

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

     

    Список литературы:

    1. Статья на http://www.webbusiness.ru/os/1997/05/48_print.htm
    2. Статья Маркова К. в журнале http://magazine.stankin.ru