Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Характеристики ОСРВ LINUX



RT-Linux – это операционная система, в которой небольшое ядро реального времени сосуществует с Posix-like ядром Linux.

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

Linux не может выполнять следующие операции:

· блокировать аппаратные прерывания;

· предохранять себя от вытеснения другой задачей.

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

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

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

Для обмена данными между ОСРВ и Linux предусмотрены следующие средства:

· разделяемые области памяти;

· псевдоустройства, которые предоставляют возможность обмена данными с приложениями реального времени.

Ключевой принцип построения RTLinux — как можно больше использовать Linux и как можно меньше RTLinux. Действительно, Linux заботится об инициализации системы и устройств, а также о динамическом выделении ресурсов. На RTLinux ложится только планирование задач реального времени и обработка прерываний. Процессы реального времени реализованы в виде загружаемых модулей Linux для простоты запуска в контексте ядра, сохранения модульности и расширяемости системы.

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

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

Характерными особенностями Linux как операционной системы являются:

· многозадачность: одновременно выполняется множество программ;

· многопользовательский режим: большое число пользователей одновременно работают на одной и той же машине;

· защищенный режим процессора (386 protected mode);

· защита памяти процесса; сбой программы не может вызвать зависания системы;

· экономная загрузка: Linux считывает с диска только те части программы, которые действительно используются для выполнения;

· разделение страниц по записи между экземплярами выполняемой программы. Это значит, что процессы-экземпляры программы могут использовать при выполнении одну и ту же память. Когда такой процесс пытается произвести запись в память, то 4-x килобайтная страница, в которую идет запись, копируется на свободное место;

· виртуальная память со страничной организацией; виртуальная память в самостоятельных разделах диска и/или файлах файловой системы; объем виртуальной памяти до 2 Гбайт; изменение размера виртуальной памяти во время выполнения программ;

· общая память программ и дискового кэша: вся свободная память используется для буферизации обмена с диском;

· динамические загружаемые разделяемые библиотеки;

· дамп программы для пост-мортем анализа: позволяет анализировать отладчиком не только выполняющуюся, но и завершившуюся аварийно программу;

· совместимость со стандартами System V и BSD на уровне исходных текстов;

· наличие исходного текста всех программ, включая тексты ядра, драйверов, средств разработки и приложений. Эти тексты свободно распространяются;

· управление заданиями в стандарте POSIX;

· эмуляция сопроцессора в ядре, поэтому приложение может не заботиться об эмуляции сопроцессора. Конечно, если сопроцессор в наличии, то он и используется;

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

· множественные виртуальные консоли: на одном дисплее несколько одновременных независимых сеансов работы, переключаемых с клавиатуры;

· поддержка ряда распространенных файловых систем (MINIX, Xenix, файловые системы System V); наличие собственной передовой файловой системы объемом до 4 Терабайт и с именами файлов до 255 знаков;

· прозрачный доступ к разделам DOS (или OS/2 FAT): раздел DOSвыглядит как часть файловой системы Linux; поддержка VFAT;

· специальная файловая система UMSDOS, которая позволяет устанавливать Linux в файловую систему DOS;

· поддержка всех стандартных форматов CD ROM;

· поддержка сети TCP/IP, включая ftp, telnet, NFS и т.д.





©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.