Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.1. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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. В таком режиме работы процесс занимает столько процессорного времени, сколько ему необхо­димо для завершения. Переключение процессов выполняется только в том случае, когда сам выполняющийся процесс принимает решение о передаче управления другому процессу. Примером могут являться операции ввода­вывода при коммуникациях с пользователем.
Данный метод планирования может быть достаточно просто реали-
зован и отлажен, он позволяет использовать большую часть процессорного времени на работу именно процессов, а не операционной системы. В этом случае наблюдается большая экономия и снижение накладных расходов вследствие отсутствия переключения процессов.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]