Курынин Р.В., Машечкин И.В., Терехин А.Н. - Конспект лекций по ОС (1114685), страница 24
Текст из файла (страница 24)
65.Структура ОС с монолитным ядром.Что касается достоинств данного подхода, то можно утверждать, что для конкретногосостава функциональности и логики ядра это будет наиболее эффективное решение. При такомподходе отсутствует универсальность, и внутренняя организация ядра рассчитана на конкретнуюреализацию. Недостаток в этом случае заключается в необходимости перепрограммировать ядропри внесении изменений, и это является прерогативой разработчика. Соответственно, длявнесения новой функциональности пользователю системы приходится обращаться к разработчику,что зачастую ведет к материальным затратам.Альтернативу данному подходу предлагают многослойные операционные системы. Вэтом случае все уровни разделяются на некоторые функциональные слои.
Здесь можно провестианалогию с моделью сетевых протоколов. Между слоями имеются фиксированные интерфейсы.Управление происходит посредством взаимодействия соседних слоев. Поскольку любаяструктуризация снижает эффективность (программа, написанная в виде одной большой функции,работает быстрее, чем аналогичная программа, разбитая на подпрограммы, т.к. любое обращение кподпрограмме ведет к накладным расходам), то подобные системы обладают более низкойэффективностью.Итак, каждый слой предоставляет определенный сервис вышестоящему слою. Деление наслои является индивидуальным для каждой конкретной операционной системы.
Это может бытьслой файловой системы, слой управления внешними устройствами и т.д. Тогда модернизацияподобных систем сводится к модернизации соответствующих слоев. Вследствие чего проблеманесколько упрощается, но при этом остаются ограничения на структурную организацию(например, имея слой файловой системы, можно заменить его другим вариантом этого слоя, ноиспользовать одновременно две различные файловые системы не представляется возможным).Третий подход предлагает использовать микроядерную архитектуру (1.3.1).Функционирование операционных систем подобного типа основывается на использовании т.н.микроядра. В этом случае выделяется минимальный набор функций, которые включаются в ядро.Все оставшиеся функции представляются в виде драйверов, которые подключаются к ядрупосредством некоторого стандартного интерфейса.82Файловая системаУправлениепроцессамиДрайвер устройстваДрайвер устройства………МикроядроАппаратураРис.
66.Структура ОС с микроядерной архитектурой.Такая архитектура получается хорошо расширяемой, она почти не имеет никакихограничений по количеству подключаемых драйверов и их функциональное наполнение,требуется только соблюдение драйвером интерфейса для обращения к микроядру. Таким образом,данная архитектура представляется высоко технологичной, хорошо подходит для применения всовременных многопроцессорных вычислительных системах (например, в SMP-системах, тогдаможно распределять драйверы по различным процессорами и получать соответствующуюэффективность).Микроядерная система может служить основой для надстройки над микроядром разныхоперационных систем. В частности, такой подход используется в ряде систем, в основе которыхиспользуется микроядро системы Mach.Итак, только что были продемонстрированы достоинства данного подхода.
Что касаетсянедостатков, то они следуют из достоинств и проявляются в значительном возрастании накладныхрасходов. Положим, процесс обращается к файловой системе, чтобы произвести обмен сконкретным файлом посредством соответствующего системного вызова. Драйвер файловойсистемы, получив запрос от процесса, перерабатывает его в последовательность запросов на обменс диском (пускай, сначала это будут виртуальный диск). После чего файловая система обращаетсяк микроядру, которое, в свою очередь, находит драйвер виртуального диска, передаетсоответствующий запрос. Драйвер виртуального диска определяет, с каким физическим дискомбудет происходить обмен, и трансформирует поступивший ему запрос в запросы к этомуфизическому диску, которые ему и передаются по той же схеме.
Таким образом, один запросраспадается на множество запросов, следующих от драйвера через микроядро к другому драйверу,благодаря чему эффективность системы снижается.Напоследок отметим, что в реальности используются системы, получаемые комбинациейуказанных подходов.1.3.2Логические функции ОСРассматривая ОС, ее функциональность можно представить в виде объединения некоторогофиксированного количества блоков функций.
Состав этого набора варьирует от системы ксистеме, но в большинстве случаев можно выделить следующие функции: управление процессами,управление оперативной памятью, планирование и, наконец, управление данными, файловой83системой и устройствами, а также в последнее время стали добавлять блок функциональностисетевого взаимодействия.На уровне управления процессами решаются проблемы формирования процессов,поддержание жизненного цикла процесса, организация взаимодействия процессов, т.е.организация взаимодействия процесса с системой в целом и с другими процессами в частности.Блок управления оперативной памятью реализует программную поддержку той или инойстратегии организации памяти.
При необходимости на этом уровне реализуется поддержкааппарата виртуальной памяти, решается задача выделения и изъятия памяти у процесса.Функции планирования можно понимать с разных точек зрения. Можно пониматьпланирование в узком смысле слова, т.е. планирование центрального процессора (т.е.планирование доступа процессов к центральному процессору). На самом деле, функцийпланирования большое множество, поскольку применять планирование приходится приорганизации многих механизмов операционной системы.
Так, упоминавшаяся только что задачаизъятия памяти у процессов является задачей планирования, поскольку ставится вопрос, покакому принципу будет происходить это изъятие. Взаимодействие с внешними устройствами тожене может обойтись без решения задач планирования: так или иначе, поток заказов на обмен,поступающих в системе, может превосходить пропускную способность устройства, образуетсяконкуренция по доступу к устройству — выстраивается очередь заказов на обмен.Соответственно, ставится вопрос, как организовать обработку этой очереди. Возможны различныестратегии: FIFO, LIFO и пр.
— и для каждой из них будет свой результат. Итак, сфера применениярешения задач планирования достаточно широка, просто в одних случаях планированиерассматривают в рамках какой-либо функциональности, а в других случаях — отдельно.Блок управления данными и файловой системой также является достаточно важным,поскольку ни один процесс не сможет без него функционировать. На этом уровне применяютсямножество различных стратегий, организаций и пр., о чем речь пойдет позже. Блок управлениявнешними устройствами, подобно блоку управления оперативной памятью, зачастуюоказывается скрытым для пользователей системы, в некоторых случаях он интегрирован вфайловую систему, как это сделано в ОС Unix.
На этом уровне также решаются множествоспецифических задач: задача кэширования обменов, задача повышения надежности обменов и пр.1.3.3Типы операционных системОперационные системы можно классифицировать с точки зрения критериев эффективностии стратегий использования центрального процессора. Можно выделить три основных классаоперационных систем: пакетные операционные системы, системы разделения времени и системыреального времени. Остановимся на каждой из них поподробнее.Пакетная операционная система — это система, критерием эффективностифункционирования которой минимизация потерь работы центрального процессора. Инымисловами, отношение всего времени работы процессора ко времени исполнения пользовательскихпрограмм должно быть близко к единице.
Традиционно пакетные системы предназначались длярешения расчетных задач, т.е. задач, требующие определенного объема времени работыпроцессора. Как следует из названия, эти системы оперируют термином пакет программ.Пакет программ — это некоторая совокупность программ, которые необходимообработать системе. Особенность пакетных систем прослеживается в стратегии переключениявыполнения процессов на процессоре. Переключение выполнения процессов происходит толькопо одной из трех причин.Первая причина — завершение выполнения процесса (в силу успешного перехода на точкузавершения программы или же в силу возникновения ошибки).Вторая причина — обращение к внешнему устройству с целью осуществить обмен, т.е.возникновение прерывания по вводу-выводу, поскольку операция обмена так или иначе требуеткакого-то минимального интервала времени.84И, наконец, третья причина — фиксация факта зацикливания. В принципе точноопределить факт зацикливания программы сложно, но все-таки возможно.