12 - Архитектура ОС.ppt
- Количество слайдов: 46
Безопасность операционных систем Архитектура ОС Февраль 2014 1
Основные вопросы l l l Логические компоненты ОС Системные вызовы Функциональные компоненты ОС Классификация ОС Требования, предъявляемые к ОС Февраль 2014 2
Логические компоненты ОС l Наиболее важные подсистемы управления ресурсами: l l l подсистема управления процессами, подсистема управления памятью, подсистема управления файлами, подсистема управления внешними устройствами Общие для всех ресурсов подсистемы: , l l l подсистема защиты данных и администрирования; интерфейс прикладного программирования. подсистема пользовательского интерфейса; Февраль 2014 3
Управление процессами l l l Процесс (process) – это программа (набор пассивных команд, размещенных в памяти), находящаяся в стадии исполнения. Для каждой выполняемой программы подсистема управления процессами организует один или более процессов. Каждый такой процесс представляется в ОС информационной структурой (таблицей, дескриптором, контекстом процессора), содержащей данные о потребностях процесса в ресурсах, а также о фактически выделенных ему ресурсах (область оперативной памяти, количество процессорного времени, файлы, устройства ввода вывода и др. ). Кроме того, в этой информационной структуре хранятся данные, характеризующие историю пребывания процесса в системе: текущее состояние (активное или заблокированное), приоритет, состояние регистров, программного счетчика и др. В современных мультипрограммных ОС может существовать одновременно несколько пользовательских процессов, т. е. порожденных по инициативе пользователей и их приложений, а также инициированных ОС для выполнения своих функций – системные процессы. Поскольку процессы могут одновременно претендовать на одни и те же ресурсы, подсистема управления процессами планирует очередность выполнения процессов, обеспечивает их необходимыми ресурсами, обеспечивает взаимодействие и синхронизацию процессов. Февраль 2014 4
Управление памятью l l l Подсистема управления памятью производит распределение физической памяти между всеми существующими в системе процессами, загрузку и удаление программных кодов и данных процессов в отведенные им области памяти, настройку адресно зависимых частей кодов процесса на физические адреса выделенной области, а также защиту областей памяти каждого процесса. Стратегия управления памятью складывается из стратегий выборки, размещения и замещения блока программы или данных в основной памяти. Соответственно используются различные алгоритмы, определяющие, когда загрузить очередной блок в память (по запросу или с упреждением), в какое место памяти его поместить и какой блок программы или данных удалить из основной памяти, чтобы освободить место для размещения новых блоков. Февраль 2014 5
Виртуальная память l l Одним из наиболее популярных способов управления памятью в современных ОС является виртуальная память. Реализация механизма виртуальной памяти позволяет программисту считать, что в его распоряжении имеется однородная оперативная память, объем которой ограничивается только возможностями адресации, предоставляемой системой программирования и аппаратными возможностями компьютера. Важная функция управления памятью – ее защита от ошибочного (вследствие ошибок программирования или настройки программы) или преднамеренного обращения процессов к участкам памяти, выделенной другим процессам. Средства защиты памяти должны пресекать такие попытки доступа, что может выразиться в принудительном завершении процесса нарушителя. Февраль 2014 6
Управление файлами l l l Функции управления файлами сосредоточены в файловой системе ОС. Операционная система выделяет отдельный набор данных, хранящихся на внешнем носителе, в виде файла (file) – поименованной совокупности семантически связанных данных. Для удобства работы с данными файлы группируются в каталоги (директории), которые, в свою очередь, образуют группы – каталоги более высокого уровня. Таким образом, образуется иерархическая древоподобная структура файловой системы на внешнем носителе. Файловая система преобразует символьные имена файлов, с которыми работает пользователь или программист, в физические адреса данных на внешнем носителе, организует совместный доступ к файлам, защищает их от несанкционированного доступа. Февраль 2014 7
Управление внешними устройствами осуществляется подсистемой, называемой подсистемой ввода-вывода. l Она является интерфейсом между ядром ОС и всеми программно управляемыми устройствами компьютера. l Спектр этих устройств очень обширен (сетевые адаптеры, жесткие диски, мониторы, модемы, принтеры, сканеры, манипуляторы и др. ), модели этих устройств отличаются способами управления и обмена данными с ними. l Программа, управляющая конкретной моделью внешнего устройства и учитывающая все его особенности, называется драйвером (driver). l Наличие большого количества подходящих драйверов во многом определяет успех ОС на рынке. l Созданием драйверов занимаются как разработчики ОС, так и компании, выпускающие внешние устройства. l Благодаря тому, что между драйверами и остальными частями в ОС может поддерживаться четко определенный открытый интерфейс, разработчики компаний производителей устройств ввода вывода могут поставлять вместе со своими устройствами драйверы для конкретной Февраль 2014 8 операционной системы. l
Защита данных и администрирование l l l Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев и отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. Для каждого пользователя системы обязательна процедура логического входа, в процессе которой ОС аутентифицирует входящего в систему пользователя, вход которого разрешен политикой безопасности, реализуемой ОС. Администратор вычислительной системы определяет и ограничивает возможности пользователей в выполнении тех или иных действий через выдачу или отзыв прав на обращение и использование ресурсов системы. Важную роль в системе защиты играют функции аудита ОС, посредством которых фиксируются события, от которых зависит безопасность системы. Поддержка отказоустойчивости вычислительной системы реализуется на основе избыточности (резервирования) оборудования (дисковые RAID массивы, резервные принтеры и другие устройства, иногда резервирование центральных процессоров, дуплексные системы и др. ). Настройка работы ОС на необходимый уровень обеспечения отказоустойчивости системы реализуется системным администратором через средства СПО, поставляемых для ОС. Февраль 2014 9
Интерфейс прикладного программирования l l Возможности операционной системы доступны прикладной программе через интерфейс прикладного программирования (API). Приложения обращаются к функциям API с помощью системных вызовов, реализация которых похожа на вызов подпрограмм в прикладном ПО и определяется структурной организацией ОС, особенностями аппаратной платформы и применяемого языка программирования. Февраль 2014 10
Пользовательский интерфейс (1) l l l ОС обеспечивает удобный интерфейс не только для прикладных программ, но и для пользователя (программиста, администратора). В ранних ОС интерфейс сводился к языку управления заданиями и не требовал интерактивного взаимодействия человека с машиной. Команды языка управления заданиями набивались на перфокарты, а результаты выполнения задания выводились на печатающее устройство. Современные ОС поддерживают развитые функции пользовательского интерфейса для интерактивной работы за терминалами двух типов: l l алфавитно цифровым; графическим. Февраль 2014 11
Пользовательский интерфейс (2) l l l При работе за алфавитно цифровым терминалом пользователь имеет в своем распоряжении систему команд, развитость которой отражает функциональные возможности данной ОС. Обычно командный язык ОС позволяет запускать и останавливать приложения, выполнять различные операции с директориями и файлами, получать информацию о состоянии ОС, администрировать систему. Команды могут вводиться не только в интерактивном режиме с терминала, но и считываться из так называемого командного файла, содержащего некоторую последовательность команд. Программный модуль ОС, ответственный за чтение, разбор и выполнение команд называют командным интерпретатором. Ввод команд может быть упрощен и сведен к операциям с графическими примитивами, если операционная система поддерживает графический пользовательский интерфейс. При работе с ним пользователь влияет на работу ОС посредством манипулятора, задействуя соответствующие элементы управления или вводя данные с клавиатуры. Февраль 2014 12
Системные вызовы l l l Интерфейс между операционной системой и программами пользователя определяется набором системных вызовов, предоставляемых операционной системой. Системные вызовы, доступные в интерфейсе различны в разных ОС. Так как фактический механизм обращения к системным функциям является в высокой степени машинно зависимым и часто должен реализовываться на ассемблере, существуют библиотеки процедур, делающие возможным обращение к системным процедурам из программ, написанных на языке С или на других языках. Если программа выполняется в пользовательском режиме и нуждается в системном сервисе, например чтении данных из файла, она должна выполнить прерывание или команду системного вызова для передачи управления операционной системе. Затем операционная система по параметрам вызова определяет, что требуется вызывающему процессу. После этого она обрабатывает системный вызов и возвращает управление команде, следующей за системным вызовом. Февраль 2014 13
Пример системного вызова void main() { char Buffer[] = “abcd”; HANDLE h. File = Create. File( “имя файла”, . . . ); Write. File( h. File, Buffer, sizeof(Buffer), . . . ); . . . } Nt. Write. File: mov eax, 0 x 0 E mov ebx, esp int 0 x 2 E ret. . . Февраль 2014 ; ; ; ; формируется номер системного сервиса ; для Nt. Write. File в ядре ; сохраняется указатель на параметры ; вызова в пользовательском стеке выполнение ловушки системного вызова выталкивание параметров из стека и возврат управления 14
Пример системного вызова Февраль 2014 15
Функциональные компоненты ОС (1) l l Структурная декомпозиция ОС позволяет рассматривать ее как совокупность взаимодействующих модулей. Модульность является средством упрощения задачи проектирования системы и ведет к повышению ее эксплуатационных качеств, таких как легкость поддержки и сопровождения. При разбиении ОС на модули для каждого модуля указывается реализуемая им функциональность, а также связи с другими модулями. Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Февраль 2014 16
Функциональные компоненты ОС (2) l l l Классической считается архитектура ОС, основанная на концепции иерархической многоуровневой машины, привилегированном ядре и пользовательском режиме работы транзитных модулей. (? ? ) Модули ядра выполняют базовые функции ОС: управление процессами, памятью, устройствами ввода вывода и т. п. Ядро составляет сердцевину ОС, без которой она является полностью неработоспособной и не может выполнить ни одну из своих функций. В ядре решаются внутрисистемные задачи организации вычислительного процесса, недоступные для приложения. Каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе этих функций следующий верхний по иерархии слой строит свои функции – более сложные и более мощные и т. д. Февраль 2014 17
Многослойная структура ОС Февраль 2014 18
Средства аппаратной поддержки ядра l l l l Система прерываний (сигналов, сообщающий процессору о наступлении какого либо события), Средства поддержки привилегированного режима (обычно основаны на системном регистре процессора), (В обязанности средств поддержки привилегированного режима входит выполнение проверки допустимости вы полнения активной программой инструкций процессора при текущем уровне привилегированности. ) Средства поддержки виртуальной памяти Системный таймер Средства переключения контекстов процессов (данные о состоянии процесса в момент его приостановки), Средства защиты памяти … Февраль 2014 19
Машинно зависимые модули ядра l l Слой образуется модулями, в которых отражается специфика аппаратной платформы компьютера. Назначение этого слоя – абстрагирование вышележащих слоев ОС от особенностей аппаратуры (например, в Windows – это слой Hardware Abstraction Layer (HAL)). Февраль 2014 20
Базовые механизмы ядра l Слой образован модулями, выполняющими наиболее примитивные операции ядра: l l программное переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц между основной памятью и внешней памятью и т. п. Модули слоя не распределяют ресурсы, а только поддерживают работу модулей вышележащих уровней – являются исполнительными механизмами для модулей верхних слоев ОС. Февраль 2014 21
Диспетчеры/мониторы ресурсов l l l Слой образован модулями, выполняющими стратегические задачи по управлению ресурсами вычислительной системы. Это диспетчеры процессов, системы ввода вывода, оперативной памяти и файловой системы. Каждый диспетчер ведет учет свободных и используемых ресурсов и планирует их распределение в соответствии запросами приложений. Февраль 2014 22
Системный интерфейс (интерфейс системных вызовов) l Верхний слой ядра ОС, l l l взаимодействует с приложениями и системными утилитами, образует прикладной программный интерфейс ОС. Функции API, обслуживающие системные вызовы, предоставляют доступ к ресурсам системы в удобной компактной форме, без указания деталей их физического расположения. Февраль 2014 23
Недостатки многоуровневой архитектуры l Многослойной многоуровневой архитектуре ОС свойственны недостатки: l l возможные значительные изменения одного из уровней могут иметь трудно предвидимое влияние на смежные уровни; многочисленные взаимодействия между соседними уровнями увеличивают вероятность сбоя; объемность кода ядра предполагает большее число невыявленных ошибок проектирования и программирования. Поэтому, как альтернатива данному варианту архитектуры ОС, часто используется микроядерная архитектура ОС. Февраль 2014 24
Микроядерная архитектура ОС l l l В привилегированном режиме остается работать только очень небольшая часть ОС, называемая микроядром (microkernel). Микроядро защищено от остальных частей ОС и приложений. В его состав входят машинно зависимые модули, а также модули, выполняющие базовые механизмы обычного ядра. Все остальные более высокоуровневые функции ядра оформляются как модули, работающие в пользовательском режиме. Диспетчеры ресурсов, являющиеся неотъемлемой частью обычного ядра, становятся модулями прикладного/пользовательского уровня. Таким образом, в архитектуре с микроядром традиционное расположение уровней по вертикали заменяется горизонтальным. Февраль 2014 25
Микроядерная архитектура ОС Февраль 2014 26
Микроядерная архитектура ОС l l Внешние по отношению к микроядру компоненты ОС реализуются как обслуживающие процессы, взаимодействующие между собой с помощью обмена сообщениями, передаваемыми через микроядро. Поскольку назначением этих компонентов ОС является обслуживание запросов приложений пользователей, утилит и системных обрабатывающих программ, диспетчеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС, т. е. модулями, основным назначением которых является обслуживание запросов локальных приложений и других модулей ОС. Выполнение системного вызова сопровождается четырьмя переключениями режимов. Следовательно, производительность ОС с микроядерной архитектурой потенциально ниже, чем у ОС со слоистомодульным ядром. Февраль 2014 27
Микроядерная архитектура ОС Февраль 2014 28
Преимущества микроядерной архитектуры l l l единообразные интерфейсы системных вызовов; простота масштабируемости (необходимые серверы просто добавляются); высокая гибкость в конфигурировании (необходимые серверы легко заменяются); возможность переносимости (заменяется микроядро без замены серверов); высокая надежность (ошибка в сервере не влияет на работу системы в целом, малое по объему кода микроядро легко тщательно отладить); поддержка распределенных систем (серверы могут функционировать не только локально, но и удаленно). Февраль 2014 29
Виды ядер l l l l Ядро — центральная часть операционной системы (ОС), обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнееаппаратное обеспечение, внешнее устройство ввода и вывода информации. Существуют: Наноядро Микроядро Экзоядро Монолитное ядро Модульное ядро Гибридное ядро Февраль 2014 30
Наноядро l l l Крайне упрощённое и минимальное ядро, выполняет лишь одну задачу – обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки посылает информацию о результатах обработки вышележащему программному обеспечению. НЯ используются для виртуализации аппаратного обеспечения реальных компьютеров. Февраль 2014 31
Микроядро l l Предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Классическим примером микроядерной системы является Symbian OS. Это пример распространенной и отработанной микроядерной (а начиная с версии Symbian OS v 8. 1, и наноядерной) операционной системы Февраль 2014 32
Экзоядро l l l Предоставляет набор сервисов для взаимодействия между приложениями, а также необходимый минимум функций, связанных с защитой: выделение и высвобождение ресурсов, контроль прав доступа и т. д. Не занимается предоставлением абстракций для физических ресурсов – эти функции выносятся в библиотеку пользовательского уровня. В отличие от микроядра ОС, базирующиеся на ЭЯ, обеспечивают большую эффективность за счет отсутствия необходимости в переключении между процессами при каждом обращении к оборудованию. Февраль 2014 33
Монолитное ядро l l l l Предоставляет широкий набор абстракций оборудования. Все части ядра работают в одном адресном пространстве. Мн. Я требуют перекомпиляции при изменении состава оборудования. Компоненты операционной системы являются не самостоятельными модулями, а составными частями одной программы. Мн. Я более производительно, чем микроядро, поскольку работает как один большой процесс. Мн. Я является большинство Unix систем и Linux. Монолитность ядер усложняет отладку, изучение и модификацию кода ядра. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти. Февраль 2014 34
Монолитное ядро l l l l Предоставляет широкий набор абстракций оборудования. Все части ядра работают в одном адресном пространстве. Мн. Я требуют перекомпиляции при изменении состава оборудования. Компоненты операционной системы являются не самостоятельными модулями, а составными частями одной программы. Мн. Я более производительно, чем микроядро, поскольку работает как один большой процесс. Мн. Я является большинство Unix систем и Linux. Монолитность ядер усложняет отладку, изучение и модификацию кода ядра. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти. Февраль 2014 35
Модульное ядро Современная, усовершенствованная модификация архитектуры МЯ. l В отличие от Мн. Я, модульные ядра не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. l Вместо этого они предоставляют тот или иной механизм подгрузки модулей, поддерживающих соответствующее аппаратное обеспечение (например, драйверов). l Подгрузка модулей может быть как динамической, так и статической (при перезагрузке ОС после переконфигурирования системы). l Мод. Я удобнее для разработки, чем традиционные монолитные ядра. l Они предоставляют программный интерфейс (API) для связывания модулей с ядром, для обеспечения динамической подгрузки и выгрузки модулей. Февраль 2014 36 l
Гибридное ядро l l l l Модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Имеют, исходя из архитектуры, достоинства и недостатки, присущие эталонным ядрам, на основе которых построены. Примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Так устроены 4. 4 BSD и Mk. Linux 28, основанные на микроядре Mach 29. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра Февраль 2014 37
Классификация ОС l l l По назначению По способу загрузки По особенностям алгоритмов управления ресурсами По области использования и форме эксплуатации По аппаратной платформе По типу централизации Февраль 2014 38
Классификация ОС по назначению l Универсальные и специализированные. l l Специализированные ОС, как правило, работают с фиксированным набором программ (функциональных задач). Применение таких систем обусловлено невозможностью использования универсальной ОС по соображениям эффективности, надежности, защищенности и т. п. , а также вследствие специфики решаемых задач. Универсальные ОС рассчитаны на решение любых задач пользователей, но, как правило, форма эксплуатации вычислительной системы может предъявлять особые требования к ОС, т. е. к элементам ее специализации. Февраль 2014 39
Классификация ОС по способу загрузки l l Загружаемые ОС (большинство) и системы, постоянно находящиеся в памяти вычислительной системы (в постоянном запоминающем устройстве, ПЗУ). Последние, как правило, специализированные и используются для управления работой устройств (например, применяются в контроллере жесткого диска). Февраль 2014 40
Классификация ОС по особенностям алгоритмов управления ресурсами l Поддержка многозадачности l l l Поддержка многопользовательского режима Поддержка многопоточности Виды многозадачности l l l однозадачные (например, MS DOS) многозадачные (например, UNIX, Windows NT/200 x). не вытесняющая (кооперативная) вытесняющая многозадачность Многопроцессорная обработка l асимметричные l симметричные Февраль 2014 41
Классификация ОС по области использования и форме эксплуатации l l системы пакетной обработки системы разделения времени (Unix, Linux, Windows) системы реального времени Системы пакетной обработки предназначены для решения задач, которые не требуют быстрого получения результатов. Главной целью ОС пакетной обработки является максимальная пропускная способность или решение максимального числа задач в единицу времени. Эти системы обеспечивают высокую производительность при обработке больших объемов информации, но снижают эффективность работы пользователя в интерактивном режиме. В системах с разделением времени для выполнения каждой задачи выделяется небольшой промежуток времени, и ни одна задача не занимает процессор надолго. Если этот промежуток времени выбран минимальным, то создается видимость одновременного выполнения нескольких задач. Эти системы обладают меньшей пропускной способностью, но обеспечивают высокую эффективность работы пользователя в интерактивном режиме. Системы реального времени применяются для управления технологическим процессом или техническим объектом, например, летательным объектом, станком и т. д. Февраль 2014 42
Классификация ОС по аппаратной платформе Операционные системы для смарт карт. Некоторые из них могут управлять только одной операцией, например, электронным платежом. Некоторые смарт карты являются JAVA ориентированным и содержат интерпретатор виртуальной машины JAVA. l Встроенные операционные системы. Управляют карманными компьютерами (Android, Windows CE 31), мобильными телефонами, телевизорами и т. п. l Операционные системы для персональных компьютеров, например, Windows NT/200 x, Linux, Mac OS X и др. l Операционные системы мини ЭВМ. l Операционные системы мэйнфреймов. l Серверные операционные системы, например, UNIX, Windows NT/200 x, Linux. l Кластерные операционные системы. Кластер (cluster) – слабо связанная совокупность нескольких вычислительных систем, работающих совместно для выполнения общих приложений и представляющихся пользователю единой системой, например, Февраль 2014 43 Windows 2003 Cluster Server 32, Sun Cluster (на основе ОС Solaris). l
Классификация ОС типу централизации l l Централизованные (локальные) ОС. Управляют ресурсами одного локального компьютера. Сетевые ОС. Такие системы предоставляют пользователю сети некоторую виртуальную машину, работать с которой проще, чем с реальной сетевой аппаратурой. Однако пользователь всегда выполняет специальные операции для доступа к сетевым ресурсам. Сетевые системы включают дополнительные сетевые средства, состоящие из трех основных компонентов: l l l серверная часть операционной системы – средства предоставления локальных ресурсов и услуг в общее пользование; клиентская часть операционной системы – средства запроса доступа к удаленным ресурсам и услугам; транспортные средства операционной системы – средства обеспечения передачи сообщений между компьютерами сети. Распределенные ОС. Они предоставляют пользователю сети единую централизованную виртуальную машину, которая дает максимальную степень прозрачности сетевых ресурсов. Распределенные системы объединяют все компьютеры сети для работы в тесной кооперации. При работе в таких системах пользователь, запускающий приложение, Февраль 2014 44 не знает, на каком компьютере оно реально выполняется. l
Требования, предъявляемые к ОС l l Выбор среди универсальных подходов к структурированию ОС, делается разработчиками и потребителями на основе требований к области эксплуатации ОС. Главным требованием является функциональная полнота, т. е. l l l Как правило, она включает l l l наличие основных функций эффективного управления ресурсами обеспечения удобного интерфейса для пользователя и прикладных программ. мультизадачность, виртуальную память, поддержку необходимого парка устройств, дружественный пользователю интерфейс, поддержку защиты разделяемых данных. Кроме этого, к ОС предъявляется ряд важных эксплуатационных требований. Февраль 2014 45
Эксплуатационные требования l l l l l Эффективность l производительность l время реакции на внешнее воздействие Надежность и отказоустойчивость Предсказуемость Удобство Безопасность (защищенность) Расширяемость Масштабируемость Переносимость Совместимость Февраль 2014 46
12 - Архитектура ОС.ppt