Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.1. Учебное пособие
.pdf
3.2. Архитектура ОС РВ
61
каждый модуль по отдельности. Тогда основную роль в этом процессе играет компилятор и редактор динамических объектных связей.
Рис. 7. Объектная архитектура
При этом если микроядро уже загружено из другого приложения и не
требует доработки, то оно повторно не загружается локально и не пересобирается. Повторно используется код и данные, уже размещенные в локальном
пространстве памяти. Это, как минимум, приводит к минимизации задержек,
связанных с трансляцией виртуальных адресов в физические при вызовах, и,
естественно, связанных с работой компилятора по формированию исполняемого кода из исходных файлов. При этом локальное и вспомогательное ядро
загружаются в оперативную память и с момента начала компиляции становятся независимыми от начального адреса по коду и по данным. После ком-
пиляции исполняемый код заносится в файлы и записывается в ПЗУ.
На основании этого можно выделить несколько недостатков объект-
ной модели ОС:
разные компоненты могут использовать разные подходы к разра-
ботке программного обеспечения;
разные компоненты могут быть реализованы на разных языках
программирования и использовать различные библиотеки, увеличивая тем
самым объем системы и усложняя ее поддержку и развитие;

3. Архитектура ОС РВ
62
не используются все возможности “чистого” объектно-ориенти-
рованного подхода;
вследствие применения разных типов интерфейсов и приложе-
ний могут возникнуть небольшие потери производительности;
может наблюдаться снижение производительности вследствие
применения “почтового сервера” и системы сообщений (возникают задержки, связанные с доставкой и формированием ответа).
Также существуют некоторые особенности (не недостатки) объектных архитектур:
многие объектные ОС поддерживают динамическую загрузку
элементов системы, которые называются модулями. Они отличаются по
своей сути и от классических модулей, и от объектов в объектно-ориентированных языках программирования;
многие объектные ОС поддерживают возможность расширения
при помощи специальных модулей и драйверов. Эти модули и драйверы
статически связываются с ядром системы, формируя загрузочный образ системы еще до самой загрузки. Модули работают в режиме суперпользователя (с высоким уровнем привилегий). Модули доступны только посредством системных вызовов;
многие объектные ОС поддерживают два способа связывания
кода: статическое и динамическое. При этом исполняемый код для динамического связывания скрывается в файлах специального формата DLL
(Dynamically Linked Libraries). DLL помогает не только отделить некоторую логику от исполняемого файла, но еще и разделить ее между всеми
работающими приложениями. Микроядра в таком случае могут управлять
доступом к библиотекам для каждого конкретного приложения. Традиционно DLL не поддерживает объектно-ориентированный подход, но может
участвовать в его реализации.
3.3. Механизмы реального времени
Как уже говорилось ранее, самой главной особенностью ОС является ее возможность работы в реальном времени, т.е. возможность управления процессами таким образом, чтобы соблюдались все установленные
временные ограничения. Теоретически здесь достаточно такой скорости

3.3. Механизмы реального времени
63
работы системы, чтобы просто выполнялись все временные рамки, обусловленные объектом размещения и сферой применения, и еще оставалось
немного времени между процессами на самодиагностику.
В любом случае построение ОС РВ или ее адаптация к объекту начинается с анализа временных требований и включения механизмов обеспечения реального времени. Если такие механизмы не включены в систему
заранее, они добавляются или эмулируются.
К механизмам обеспечения реального времени относятся.
1. Сторожевые таймеры (watchdog timers). Это аппаратное или про-
граммное средство системы, применяющееся либо для ожидания некоторого события (например, включения), либо для отслеживания “зависаний”.
В любом случае работающая система постоянно сбрасывает этот независимый таймер, а “зависшая” система этого сделать не сможет. После переполнения таймера следует перезапуск.
2. Часы реального времени (RTC). Отдельный модуль формирова-
ния сигналов реального времени. Работает обычно на частотах, отличных
от частот работы микропроцессоров. Их сигнал поступает на внутренние
таймеры микропроцессора как тактирующий сигнал и служит для отсчета
временных интервалов. Практически всегда RTC формируется как энергонезависимое устройство, способное работать и без внешнего источника питания. Часто используются в работе синхронизирующих механизмов в распределенных системах.
3. Модули контроля жизненно важных параметров системы. Набор
аппаратных устройств и программных модулей, позволяющих правильно
обрабатывать определенное множество параметров, критически важных
для ОС. Примерами таких параметров могут служить: напряжение питания, сбои синхронизации. Например, при снижении уровня питания может
происходить включение дополнительных источников энергии.
4. Модули обеспечения живучести системы. Элементы ОС или аппа-
ратного обеспечения, обычно нормализующие работу системы. К этому
классу инструментальных средств могут относиться стабилизаторы напряжения, фильтры сигналов, средства восстановления, дублирующие модули.
5. Механизмы отката. Набор механизмов для периодического со-
хранения состояния системы с возможностью последующего восстановления. В центре этого набора инструментов лежит множество контрольных

3. Архитектура ОС РВ
64
точек системы, средства создания и восстановления контрольных точек.
Откат может проводиться на различных уровнях: от самого низкого уровня
процессора до самого высокого уровня прикладной задачи. Часто механизмы отката работают вместе с модулями контроля жизненно важных параметров системы и модулей обеспечения живучести. Например, по сигналу сторожевого таймера, сформированному при зависании, может проводиться восстановление системы к тому состоянию, которое было до вызова вызвавшей сбой программы.
6. Механизмы соблюдения реального времени при сетевом обмене.
Набор инструментов для работы в распределенных сетях со случайным методом доступа (наиболее часто применяемые сети). Для данных инструментов характерно множество ограничений на максимальное время выполнения
процедур обмена данными, например, время отклика сервера, интервал ожидания, число скачков по сети для доставки пакетов и т.д. Такие инструменты
могут даже менять логический тип сети. Например, в классических сетях
Ethernet может быть введен маркерный доступ, который дает право на обмен
данными только при наличии маркера в сети со случайным доступом.
7. Средства перехвата и обработки исключительных ситуаций.
Средства для отслеживания внештатных ситуаций и перехвата исключений. При возникновении такой ситуации включаются алгоритмы, не допускающие выполнения потенциально опасного кода и “поднимающие” исключение с индивидуальным кодом и сообщением на верхний уровень для
дальнейшей обработки.
Все перечисленные выше механизмы являются одновременно и инструментами повышения надежности ОС, так как ни одна система не застрахована от ошибок, тем более под воздействием внешних факторов, поэтому это очень важная часть ОС.

4.1. Уровни планирования
65
4. УПРАВЛЕНИЕ ЗАДАЧАМИ
4.1. Уровни планирования
В историческом контексте принято выделять два основных вида пла-
нирования, применяющихся в вычислительных системах:
планирование заданий;
планирование использования ресурсов процессора.
Планирование заданий сформировалось в пакетных системах еще
до того, как стало возможным хранение информации на магнитных дисках.
Магнитные диски (другими словами, дискеты) представляют собой устройство прямого доступа, фактически не применяемое в современной технике.
Иногда встречаются магнитные накопители и магнитная лента, но чрезвычайно редко. Ранее это был единственный способ хранения данных и программ, теперь скорее это музейный экспонат.
В системах прошлого столетия задания загружались в компьютер в
произвольном порядке с магнитного носителя. Этот порядок отличался от
того, в котором задания записывались на диск. Таким образом, изменяя порядок загрузки, можно было оптимизировать эффективность использования, как дискового пространства, так и всей системы в целом.
Процесс изменения последовательности загрузки задач в вычисли-
тель и начал со временем называться процессом планирования.
Планирование использования ресурсов процессора сформирова-
лось в мультипрограммных вычислительных системах. В них состояние
“готовность” могут одновременно иметь сразу несколько процессов. Вот
именно для выбора одного из этих процессов, который получит процессор
в свое распоряжение (и ему будет утверждено состояние “исполнения”),
был изобретен метод планирования, основанный на ресурсах процессора.
В современных системах используются принципы из обоих подхо-
дов, но уже в переложении на современные средства и алгоритмы.
Планирование заданий имеет огромное значение для ОС РВ и рас-
сматривается в долгосрочном периоде. Планирование касается не только
запуска задач в следующий момент времени, но и процедуры порождения
новых процессов. Число возможных порождаемых процессов определяет

4. Управление задачами
66
степень мультипрограммирования системы, т.е. число возможных одновременно запускаемых процессов.
Стараются поддерживать этот показатель на постоянном уровне,
обеспечивать надежность, живучесть и эффективность работы системы.
В этом случае среднее количество процессов в вычислителе остается неизменным, поэтому основной проблемой является подготовка новых процессов, запускаемых после завершения предыдущих в уже устоявшемся темпе.
Долгосрочное планирование осуществляется достаточно редко по
меркам современных систем – раз в несколько секунд и выполняется на
достаточно долгое время. Оптимизировать этот процесс можно разными
способами, в том числе и ограничением числа подключенных клиентов
(пользователей). Также эффективным методом является ограничение режима работы с точки зрения временных параметров восприятия процессов
со стороны наблюдателя. Здесь имеется в виду то, что, если между нажатием на клавишу на устройстве ввода-вывода и появлением символа на
экране проходит несколько секунд (или тем более десятков секунд), то
пользователь считает, что система “зависла” и предпочитает подождать,
подойти попозже или вовсе перезагрузить систему. Такой же принцип формирования временных окон для пользователя применяется и для систем,
работающих по принципам клиент/серверной архитектуры – здесь вводится максимальное время ожидания (таймаут), в течение которого сервер
обязан выдать определенный ответ. В противном случае возникает обрабатываемая ошибка или исключение.
Планирование использования ресурсов процессора в основном вы-
ступает в роли краткосрочного планирования. Естественно, что такое планирование выполняется гораздо чаще предыдущего рассмотренного варианта. Стандартным интервалом считается 100 миллисекунд.
Примерно такой же интервал времени находится между моментом
выбора нового процесса для запуска и моментом начала его непосредственного выполнения. Этот интервал и есть “предел” планирования.
В некоторых системах интервал краткосрочного планирования может использоваться как ограничитель для времени выполнения процесса.
Если данный интервал превышен, то процесс (нередко частично уже выполненный) выгружается из оперативной памяти на жесткий диск в так
называемый своп (swap). Этот процесс так и называется своппинг

4.1. Уровни планирования
67
(swapping). На русский язык он переводится как “подкачка”. В вычислительной системе сейчас прямо выделяется соответствующий раздел или
часть диска “под своп файл”. В Unix-подобных системах под своп выделяется раздел со специальной разметкой файловой системы с объемом,
обычно в два раза превышающим размер оперативной памяти.
После того, как становится возможным повторное выполнение (продолжение) процесса, он загружается из свопа обратно в оперативную память вместе со своим окружением и запускается с момента останова. Запуск или продолжение процесса выполняется так, что для него время, проведенное в свопе, вообще не фиксируется, как будто не было паузы.
В среднем, длительность фаз своп/восстановление является “средним” по меркам ОС РВ, так что планирование таких операций называется
среднесрочным.
Критерии планирования и требования к алгоритмам
Логично, что за время развития операционных систем было изобретено множество алгоритмов планирования.
Более того, в некоторые современные операционные системы уже
встроены алгоритмы интеллектуального планирования так же, как и в современные процессоры встраивают так называемые “тензорные” ядра с искусственным интеллектом и нейронными сетями “на борту”.
Выбор конкретного алгоритма планирования процессов в основном
определяется классом решаемых задачи, возможностями вычислителя, архитектурой ОС, а также целями, которые предполагается достичь с использованием алгоритма планирования.
К числу учитываемых целей применения алгоритма планирования
можно отнести следующие:
Справедливость запуска задач. Выражается в обеспечении га-
рантий каждой задаче или процессу на запуск в данной системе с выделением определенного времени на выполнения и определенных ресурсов.
Здесь стараются не допустить такой ситуации, когда один процесс постоянно занимает процессор или ресурс, а другие не могут получить к ним доступ и их процесс, соответственно, не может отправиться на выполнение.

4. Управление задачами
68
Эффективность запуска и чередования задач. Стараются сде-
лать так, что, если процесс или задача занимает процессор, то они должны
это делать на 100 %. Другими словами, быть монополистами с точки зрения
ресурсов процессора. Чем быстрее выполнится процесс, занимающий
100 % процессора, тем быстрее поступит на выполнение следующий.
Сокращение полного времени выполнения. Это минимизация
интервала времени между постановкой процесса на выполнение (в очередь)
и его завершением.
Сокращение времени ожидания. Это минимизация времени,
проводимого задачей в состоянии готовности (то есть времени, которое
процесс “стоит” в очереди на выполнение).
Сокращение времени отклика системы. Это минимизация вре-
мени, требуемого процессу для ответа на запрос пользователя. В большей
степени этот параметр характерен для терминальных систем, систем с графическим интерфейсом или систем, специально ориентированных на человекомашинное взаимодействие.
Независимо ни от чего, планирование и его алгоритмы делаются так,
чтобы они обладали определенными свойствами.
1. Предсказуемость. Одно и то же задание, либо одинаковые (похо-
жие) задания должны выполняться вполне определенное предсказуемое
время.
2. Минимальные накладные расходы. В качестве накладных расхо-
дов здесь понимается скорее не материальная составляющая, а вычислительная: процесс, на загрузку или идентификацию которого тратится слишком много времени, считается неэффективным.
3. Равномерная загрузка ресурсов системы. В том случае, когда ре-
сурсы системы можно распределить “горизонтально”, т.е. на одном уровне,
предпочтение будет отдаваться тем задачам, которые могут потреблять малоиспользуемые ресурсы.
4. Возможность масштабирования. Так как существует три способа
масштабирования вычислительных систем (горизонтальное – как наращивание числа узлов, вертикальное – как наращивание мощности, смешанное
– как сочетающее в себе два предыдущих подхода), то должны быть применимы как минимум два из них (например, дублирование узлов при увеличении нагрузки, без изменения характеристик узла-клона).

4.1. Уровни планирования
69
Параметры планирования
Алгоритмы планирования, как и любые другие, должны быть ориентированы на какие-либо разумные характеристики процессов в операционной системе. Среди таких характеристик могут быть: параметры очереди
задач, состояние самой системы, аппаратные возможности и так далее. Все
параметры разбиваются на группы:
статические параметры;
динамические параметры.
К статическим параметрам относят предельные значения памяти и
доступных ресурсов, размер оперативной памяти, максимальный размер
свопа, количество и скорость работы подключенных устройств ввода-вывода и тому подобные характеристики. Статические параметры не изменяются в процессе работы системы.
К динамическим параметрам обычно относят те характеристики, которые изменяются в процессе работы системы.
Статические параметры планирования также дополняются следующими:
свойства пользователя, от имени которого запущен процесс или
сформировано определенное задание;
важность и приоритет решаемой задачи;
объем запрашиваемого процессорного времени для выполнения
задачи;
объемы других ресурсов вычислительной системы, необходимые
для выполнения задачи.
Динамические параметры системы учитываются на момент запуска
задачи вместе со статическими. И вся эта совокупность характеристик учитывается алгоритмами планирования.
Вытесняющее и невытесняющее планирование
Это две разновидности планирования, выполняемые специальным
программным обеспечением в составе операционной системы, называемым “планировщиком”. Планировщик обычно самостоятельно прини-

4. Управление задачами
70
мает решение о том, какой процесс готов для выполнения, а какой необходимо пока остановить или только разместить в очередь для следующего
цикла запуска.
В общем случае, планировщик может проводить процесс через сле-
дующие четыре фазы:
фаза перевода процесса из состояния “выполнения” в состояние
“завершение”;
фаза перевода процесса из состояния “выполнение” в состояние
“ожидание”;
фаза перевода процесса из состояния “выполнения” в состояние
“готовность”;
фаза перевода процесса из состояния “ожидание” в состояние
“готовность”.
В первых двух случаях процесс теряет возможность выполняться и
для исполнения выбирается новый процесс. Для этого варианта говорят о
применении так называемого невытесняющего планирования.
В последних двух случаях планирование может даже не прово-
диться, так как процесс, который выполнялся до момента прерывания, может быть продолжен. В этом случае говорят о вытесняющем планировании.
Вытесняющее планирование называется так потому, что выполняю-
щийся процесс помимо “своей воли” может быть “вытеснен” со стороны
планировщика другим процессом, нуждающимся в выполнении.
Невытесняющее планирование широко применялось в таких опера-
ционных системах, как OS Windows или Mac OS. В таком режиме работы
процесс занимает столько процессорного времени, сколько ему необходимо для завершения. Переключение процессов выполняется только в том
случае, когда сам выполняющийся процесс принимает решение о передаче
управления другому процессу. Примером могут являться операции вводавывода при коммуникациях с пользователем.
Данный метод планирования может быть достаточно просто реали-
зован и отлажен, он позволяет использовать большую часть процессорного
времени на работу именно процессов, а не операционной системы. В этом
случае наблюдается большая экономия и снижение накладных расходов
вследствие отсутствия переключения процессов.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
