ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.02.2024
Просмотров: 186
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
33 взаимодействие происходит быстрее. Это свойство существенно, например, для эффективной реализации файловых систем.
Клиент – серверная архитектура. Эта архитектурная модель предполагает наличие программного компонента потребителя сер- виса, который называется клиентом, и программного компонента поставщика сервиса (сервера). Взаимодействие клиента и сервера стандартизировано. Инициатором обмена является клиент, который посылает запрос серверу, находящемуся в состоянии ожидания за- проса.
Применительно к структурированию операционной системы подход состоит в разделении ее на несколько процессов-серверов, каждый из которых выполняет отдельный набор сервисных функ- ций, например, управление памятью, планирование процессов. Сер- верные процессы работают в пользовательском режиме. Микроядро работает в привилегированном режиме и выполняет функции до- ставки сообщений нужному серверу и передачи результатов клиенту
(рис. 4.3).
Рис. 4.3. Клиент-серверная архитектура
В представленной теоретической модели существует про- блема: для реализации своих функций серверы должны иметь до- ступ к аппаратуре. В зависимости от того как разрешается эта ар- хитектурная проблема различают микроядерную и гибридную реа-
Сервер памяти
Сервер процессов
Микроядро
Аппаратура
Приложение
Режим пользователя
Режим ядра
34 лизацию клиент-серверного подхода к построению ядра операци- онной системы.
Архитектурный подход при проектировании микроядра за- ключается в помещении в ядро только тех функций, которые можно исполнить в режиме супервизора (привилегированном режиме). Все остальные функции распределяются между серверами пользователь- ского режима. При этом используется парадигма разделения меха- низма и политики. Ядро отвечает за механизм реализации некоторо- го решения по управлению ресурсами, а сервер пользовательского режима отвечает за политику, то есть за принятие решений.
Пример 1. Очевидно, что запуск процесса требует привилеги- рованного режима, так как связан с манипулированием аппаратно зависимыми структурами данных и передачей управления между процессами. Сам запуск процесса требует доступа к аппаратуре и выполняется ядром. Решение о приоритетах процессов, дисциплине постановки их в очередь может принимать работающий вне ядра планировщик. Пользователь может использовать тот планировщик, который подходит для его прикладной задачи.
Пример 2. Для управления памятью в системе имеется плани- ровщик, который определяет стратегию замещения страниц и рабо- тает вне ядра как сервер пользовательского режима (pager). Все остальные аппаратно зависимые функции по управлению памятью реализуются в ядре.
Пример 3. У драйверов устройств можно выделить общий ин- терфейс, работающий в режимах ядра. В его функции входит работа с аппаратными прерываниями и доступ к управляющим регистрам устройств ввода-вывода. Драйвер, работающий в режиме пользова- теля, например драйвер СУБД, может включать оптимизацию под конкретный способ доступа к диску, работая на уровне сегментов диска, а не с файлами.
Преимуществом микроядерной архитектуры является высокая надежность и гибкость. Надежность обеспечивается тем, что воз- можные сбои локализуются в сервере режима пользователя и не за- трагивают другие сервисы и ядро. Восстановление осуществляется перезапуском отказавшего сервиса без необходимости остановки всех процессов и перезапуска операционной системы. Само ядро, в силу малого объема кода, легко проанализировать на наличие оши-
35 бок. Например, размер кода ядра L4 составляет 14 килобайт и со- держит 7 системных вызовов.
Микроядерная архитектура операционной системы вносит до- полнительные накладные расходы, связанные с обменом сообщени- ями, что отрицательно влияет на производительность. Для того, чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется обес- печить правильное разбиение системы на компоненты, стараясь ми- нимизировать взаимодействие между ними. Таким образом, основ- ная сложность при создании микроядерных операционных систем – необходимость очень аккуратного проектирования.
Примерами микроядер являются Mach, L4, Minix, QNX.
Наиболее известная операционная система, основанная на микрояд- ре – Symbian OS.
Гибридное ядро. Этот архитектурный подход заключается в размещении аппаратно зависимых сервисов в режиме ядра (управ- ление процессами, памятью, вводом-выводом; безопасность). При этом сохраняется ориентированный на сообщения механизм взаимо- действия клиент-серверной архитектуры.
Основным преимуществом подхода является значительное по- вышение быстродействия системы. Это происходит потому, что не требуется частого переключения из режима ядра в режим пользова- теля при передаче сообщений между серверами, реализующими сложный системный вызов.
Недостатком является некоторая потеря гибкости и надежно- сти. Такие известные семейства операционных систем, как Windows
NT и Mac OS X построены на основе гибридных ядер, соответствен- но NT kernel и XNU.
Оригинальное решение проблемы производительности с со- хранением высокой надежности и гибкости микроядерного подхода предложено Microsoft и развивается в рамках проекта операционной системы Singularity. В данной операционной системе серверные процессы и ядро исполняются на одном уровне привилегий. Защита процессов производится не путем организации аппаратно- защищенных адресных пространств, а путем использования проме- жуточного языка и его верификации перед компиляцией в код про- цессора.
36
Объектно-ориентированные архитектуры операционных
систем. Преимущества объектной модели (инкапсуляция, наследо- вание, полиморфизм) используются также при написании операци- онных систем.
Можно выделить три способа применения объектов. Код ядра пишется на процедурном языке, а объекты моделируются средства- ми языка, например, Си. Такой подход используется в ядре Windows
NT. Так пользователю доступны описатели (типа HANDLE) для ра- боты с объектами ядра. Имеются полиморфные функции (например,
CloseHandle, выполняющая очистку произвольного объекта ядра).
Сокрытие реализации объектов ядра выполняется аппаратными ме- ханизмами защиты.
Код операционной системы может быть реализован непосред- ственно на объектно-ориентированном языке программирования.
Например, язык Objective C используется в операционных системах
Mac OS X и iOS.
Шире всего объектно-ориентированные технологии применя- ются в программном обеспечении промежуточного уровня – про- граммной прослойке между операционными системами и приклад- ным программным обеспечением. Примером данного вида про- граммного обеспечения Microsoft является архитектура COM
(component object model). На основе COM были реализованы техно- логии: Microsoft OLE Automation, ActiveX, DCOM, COM+, DirectX.
В COM используется IDL для описания интерфейсов компонента и язык реализации C++. Кроссплатформенным аналогом технологии
COM является архитектура CORBA, позволяющая организовать взаимодействие систем, написанных на разных языках программи- рования и работающих на разных операционных системах.
Виртуальная машина. Концепция виртуальной машины была разработана в конце 60-х годов в исследовательском центре IBM
(Кембридж, Массачусетс) в процессе работы над операционной си- стемой CP/CMS. Последующая коммерческая реализация VM/CMS используется в компьютерах IBM до настоящего времени.
Проект изначально разрабатывался как альтернатива OS/360.
Эта система разделения времени обеспечивает с одной стороны многозадачность, а с другой – расширенную машину. Эти функции можно полностью разделить. Монитор VM работает с оборудовани- ем и обеспечивает многозадачность. Но представленная монитором
37 машина не является расширенной: она полностью идентична обору- дованию. На ней может работать любая операционная система, ко- торая работает на аппаратуре, в том числе сама VM. Эта операцион- ная система, в свою очередь, реализует расширенную машину. Такая архитектура оказывается проще и надежнее обычной многозадачной операционной системы OS/360.
На использовании виртуализации основаны интенсивно раз- вивающиеся в настоящее время «облачные» вычисления. Напри- мер, одним из основных решений для сглаживания неравномерно- сти нагрузки «облачного» поставщика услуг является размещение слоя серверной виртуализации между слоем программных услуг и аппаратным обеспечением. Виртуализация позволяет реализовать балансировку нагрузки посредством программного распределения виртуальных серверов по реальным компьютерам без остановки вычислений.
Экзоядро развивает идею виртуальной машины. Основная идея операционной системы на основе экзоядра состоит в том, что ядро должно выполнять лишь функции координатора для неболь- ших процессов, связанных только одним ограничением: экзоядро должно иметь возможность гарантировать безопасное выделение и освобождение ресурсов оборудования. В отличие от операционных систем на основе микроядра, экзоядра обеспечивают большую эф- фективность за счет отсутствия необходимости в переключении между процессами при каждом обращении к оборудованию.
Наноядро – архитектура ядра операционной системы компью- теров, в рамках которой крайне упрощённое ядро выполняет лишь одну задачу – обработку аппаратных прерываний, генерируемых устройствами компьютера. Наиболее часто в современных компью- терах наноядра используются для виртуализации аппаратного обес- печения реальных компьютеров или для обеспечения возможности запуска «старой» операционной системы на новом, несовместимом аппаратном обеспечении без её полного переписывания.
38
Экзаменационные вопросы по разделу II
1. Функциональные требования, предъявляемые к операционным системам, и способы их реализации. Расширяемость. Переноси- мость. Надежность. Совместимость. Безопасность. Производи- тельность.
2. Основные архитектуры операционных систем: монолитные, многоуровневые, микроядро, объектно-ориентированные, вирту- альные машины.
39
1 2 3 4 5 6 7 8
Раздел III. Управление процессами
Лекция 5. Понятие процесса, методы планирования
Определение процесса. Диаграмма состояний процесса. Информа- ционные структуры процесса: контекст и дескриптор. Виды алго- ритмов планирования. Виды многозадачности. Потоки исполнения.
Определение процесса. Процесс – это выполнение последо- вательной программы на процессоре компьютера. Компьютерная программа является пассивной совокупностью инструкций, в то время как процесс представляет собой непосредственное выполне- ние этих инструкций.
С точки зрения операционной системы процесс является, с од- ной стороны, единицей исполнения (для процесса требуется выде- лять время процессора). С другой стороны, процесс рассматривается как заявка на потребление системных ресурсов (с ним связана об- ласть памяти, открытые файлы и другие ресурсы).
Подсистема управления процессами многозадачной операци- онной системы планирует выполнение процессов, то есть распреде- ляет процессорное время между несколькими процессами, а также занимается созданием и уничтожением процессов, обеспечивает процессы необходимыми системными ресурсами, поддерживает взаимодействие между процессами.
Диаграмма состояний процесса. В многозадачных операци- онных системах процесс может находиться в одном из трех основ- ных состояний. Это «выполнение», «ожидание», «готовность».
«Выполнение» – активное состояние процесса. В данном со- стоянии процесс обладает всеми необходимыми ресурсами и непо- средственно выполняется процессором.
40
«Ожидание» – пассивное состояние процесса. Процесс забло- кирован и не может выполняться по своим внутренним причинам.
Такими причинами могут являться: ожидание завершения операции ввода-вывода; получение сообщения от другого процесса; освобож- дение необходимого для продолжения вычислений ресурса.
«Готовность» – также пассивное состояние процесса. В этом состоянии процесс заблокирован в связи с внешними причинами по инициативе операционной системы. Процесс имеет все требуемые для выполнения ресурсы, однако процессор занят выполнением дру- гого процесса.
В ходе своего выполнения каждый процесс переходит из од- ного состояния в другое в соответствии с алгоритмом планирования процессов, реализуемым в данной операционной системе (рис.5.1).
Рис. 5.1. Диаграмма состояния процесса
В состоянии «выполнение» в однопроцессорной системе мо- жет находиться только один процесс. В каждом из состояний «ожи- дание» и «готовность» – несколько процессов. Эти процессы обра- зуют очереди. Исполнение процесса начинается с состояния «готов- ность». В данном состоянии он находится в очереди планировщика процессов операционной системы. При активизации процесс пере- ходит в состояние «выполнение» и находится в нем до тех пор, пока: ему не потребуется ждать некоторого события; он сам не освободит процессор; он будет принудительно вытеснен планировщиком.
Переходя в состояние «ожидания», процесс помещается в оче- редь, связанную с конкретным событием, которое он ожидает.
Например, процесс может попасть в очередь процессов, ожидающих завершения ввода-вывода.
Выполнение
Готовность
Ожидание