Операционная система

Автор: Пользователь скрыл имя, 14 Января 2012 в 14:28, курсовая работа

Описание работы

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

Работа содержит 1 файл

Операционная система.doc

— 1.27 Мб (Скачать)

     Интерфейс системных вызовов. Этот слой является самым верхним слоем ядра и взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС. Функции АРI, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной и компактной форме, без указания деталей их физического расположения.

Рис. 2.6 Многослойная структура ядра ОС

     Приведенное разбиение ядра ОС на слои является достаточно условным. В реальной системе  количество слоев и распределение  функций между ними может быть и иным. В системах, предназначенных для аппаратных платформ одного типа, например ОС NetWare, слой машинно-зависимых модулей обычно не выделяется, сливаясь со слоем базовых механизмов и, частично, со слоем менеджеров ресурсов. Не всегда оформляются в отдельный слой базовые механизмы — в этом случае менеджеры ресурсов не только планируют использование ресурсов, но и самостоятельно реализуют свои планы. Возможна и противоположная картина, когда ядро состоит из большего количества слоев. Например, менеджеры ресурсов, составляя определенный слой ядра, в свою очередь, могут обладать многослойной структурой. Прежде всего это относится к менеджеру ввода-вывода, нижний слой которого составляют драйверы устройств, например драйвер жесткого диска или драйвер сетевого адаптера, а верхние слои — драйверы файловых систем или протоколов сетевых служб, имеющие дело с логической организацией информации.  
Выбор количества слоев ядра является ответственным и сложным делом:  
увеличение числа слоев ведет к некоторому замедлению работы ядра за счет дополнительных накладных расходов на межслойное взаимодействие, а уменьшение числа слоев ухудшает расширяемость и логичность системы. Обычно операционные системы, прошедшие долгий путь эволюционного развития, например многие версии 1.НIХ, имеют неупорядоченное ядро с небольшим числом четко выделенных слоев, а у сравнительно «молодых» ОС, таких как Windows NT, ядро разделено на большее число слоев и их взаимодействие формализовано в гораздо большей степени.
 

    1. Микроядерная  архитектура
 

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

рис. 2.7 Перенос основного объема функций ядра в пользовательское пространство

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

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

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

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

 
 
рис 2.8 Реализация системного вызова в микроядерной архитектуры 

    1. Преимущества  и недостатки микроядерной архитектуры
 

     Операционные  системы, основанные на концепции микроядра, удовлетворяют большинству требований, предъявляемых к ней: но обладая переносимостью, расширяемостью, надежностью и предпосылки для поддержки распределенных приложений приходится платить снижением производительности, и это недостаток микроядерной архитектуры.

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

     Расширяемость присуща микроядерной ОС в очень высокой степени. В традиционных системах даже при наличии многослойной структуры нелегко удалить один слой и поменять его на другой по причине множественности и размытости интерфейсов между слоями, добавление новых функций и изменение существующих требует хорошего знания ОС и больших затрат времени. В то же время ограниченный набор четко определенных интерфейсов микроядра открывает путь к упорядоченному росту и эволюции ОС. Добавление новой подсистемы требует разработки нового приложения, что никак не затрагивает целостность микроядра. Микроядерная структура позволяет не только добавлять, но и сокращать число компонентов ОС, что также бывает очень полезно. Например, не всем пользователям нужны средства безопасности или поддержки распределенных вычислений, а удаление их из традиционного ядра чаще всего невозможно. Обычно традиционные операционные системы позволяют динамически добавлять в ядро или удалять из ядра только драйверы внешних устройств — ввиду частых изменений в конфигурации подключенных к компьютеру внешних устройств подсистема ввода- вывода ядра допускает загрузку и выгрузку драйверов «на ходу», но для этого она разрабатывается особым образом. При микроядерном подходе конфигурируемость ОС не вызывает никаких проблем и не требует особых мер — достаточно изменить файл с настройками начальной конфигурации системы или же остановить не нужные больше серверы в ходе работы обычными для остановки приложений средствами.

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

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

        Производительность. При классической организации ОС (рис 2.9) выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации (рис. 2.8) — четырьмя. Таким образом, операционная система на основе микроядра при прочих равных условиях всегда будет менее производительной, чем ОС с классическим ядром. Именно по этой причине микроядерный подход не получил такого широкого распространения, которое ему предрекали.

Рис. 2.9 Смена режимов при выполнении системного вызова

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

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

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

  1. Модули, выполняющие вспомогательные функции ОС

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

    • управление процессами;
    • управление памятью;
    • управление вводом-выводом и файловая система и прочие.

        Функции ядра, которые могу вызываться  приложениями, образуют интерфейс  прикладного программирования API. Ядро  работает в привилегированном  режиме, и боль его модулей  постоянно находится в памяти (резидентные). Разделение ОС на ядро и вспомогательные модули облегчает ее расширяемость. К вспомогательным модулям ОС относятся:

    • Утилиты (сжатие, архивирование, проверка, дефрагментация и пр.)
    • Системные обрабатывающие программы (редакторы, отладчики, компиляторы и пр.)
    • Программы дополнительных услуг (игры, калькулятор и пр.)
    • Библиотеки процедур (математических функций и пр.)
    • Вспомогательные модули ОС загружаются в оперативную память только на время выполнения (транзитные модули)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение: 

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

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

     Ядро, являясь структурным элементом  ОС, в свою очередь, может быть логически разложено на следующие слои (начиная с самого нижнего):

  • машинно-зависимые компоненты ОС;  
  • базовые механизмы ядра;  
  • менеджеры ресурсов;  
  • интерфейс системных вызовов.

Информация о работе Операционная система