Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Без ядра ОС является полностью неработоспособной и не может выполнить ни одну из своих функций. Крах ядра равносилен краху всей системы.






Архитектура операционной системы

Категория: Лекции

 

1 Основные сведения об архитектуре операционной системы

2 Многослойная структура операционной системы

3 Аппаратная зависимость операционных систем

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

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

6 Требования к операционным системам реального времени

7 Интерфейсы операционных систем

 

Основные сведения об архитектуре операционной системы

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

Архитектура ОС – это структурная организация и принципы построения ОС на основе различных программных модулей.

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

Обычно в состав ОС входят:

– исполняемые и объектные модули стандартных для данной ОС форматов;

– библиотеки разных типов;

– модули исходного текста программ;

– программные модули специального формата (например, загрузчик ОС, драйверы ввода-вывода);

– файлы конфигурации;

– файлы документации;

– модули справочной системы

и т. д.

Большинство современных ОС – это хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы.

Не существует единой архитектуры ОС, но существуют универсальные подходы к структурированию ОС.

 

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

– ядро – модули, выполняющие основные функции ОС (управление памятью, устройствами ввода-вывода и т. д.);

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

 

Без ядра ОС является полностью неработоспособной и не может выполнить ни одну из своих функций. Крах ядра равносилен краху всей системы.

В состав ядра входят:

функции, решающие внутрисистемные задачи организации вычислительного процесса (такие функции недоступны для приложений);

функции для поддержки приложений. Эти функции создают для приложений так называемую прикладную программную среду;

функции, которые могут вызываться приложениями, так как приложения могут обращаться к ядру с запросами (системными вызовами) для выполнения каких-либо действий, например для открытия и чтения файла, вывода графической информации на дисплей и т. д. Такие функции образуют интерфейс прикладного программирования[1] –ApplicationProgramInterface (API).

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

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

 

Вспомогательные модули ОС обычно подразделяются на следующие группы:

утилиты –программы, решающие отдельные задачи управления и сопровождения компьютерной системы, например, программы сжатия дисков, архивирования данных на магнитную ленту;

системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики;

программы предоставления пользователю дополнительных услуг – специальный вариант пользовательского интерфейса, калькулятор, игры;

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

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

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

 

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

 

Рис. 1 Взаимодействие между ядром и вспомогательными модулями ОС

 

 

Так как некоторые компоненты ОС оформлены как обычные приложения (в виде исполняемых модулей стандартного для данной ОС формата), то часто очень сложно разграничить модули ОС и приложения (рис.2).

 

 

– вспомогательные модули ОС – пользовательские приложения

 

 

Рис. 2 Нечеткость границы между ОС и приложениями

 

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

Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Среди факторов, способных повлиять на это решение, немаловажными являются перспективы того, будет ли программа иметь массовый спрос у потенциальных пользователей данной ОС. Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС, или наоборот. Например, MicrosoftInternetExplorer, который сначала поставлялся как отдельное приложение, затем стал частью операционных систем WindowsNT 4.0 иWindows 95/98, а в настоящее время существует вероятность того, что по решению суда этот браузер снова превратится в самостоятельное приложение.

 

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

Аппаратура компьютера должна поддерживать как минимум два режима работы – пользовательский режим ( usermode) и привилегированный режим, который также называют режимом ядра ( kernelmode), или режимом супервизора[2] ( supervisormode).

ОС или некоторые ее части работают в привилегированном режиме, а приложения – в пользовательском режиме. Так как ядро выполняет все основные функции ОС, то чаще всего именно ядро работает в привилегированном режиме (рис. 3). Иногда работа в привилегированном режиме служит основным определением понятия " ядро".

 

Рис. 3 Архитектура операционной системы с ядром в привилегированном режиме

 

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

Между количеством уровней аппаратно реализуемых привилегий и количеством уровней привилегий, поддерживаемых ОС, нет прямого соответствия. На базе четырех уровней, обеспечиваемых процессорами компанииIntel, операционные системы WindowsNT, Unix и некоторые другие ограничиваются двухуровневой системой, аоперационная система OS/2 строит трехуровневую систему привилегий.Появление внутри операционной системы более привилегированных и менее привилегированных частей позволяет повысить устойчивость ОС к внутренним ошибкам программных кодов, так как такие ошибки будут распространяться только внутри модулей с определенным уровнем привилегий. Если аппаратура поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты.На основе двух режимов привилегий процессора ОС может построить сложную систему индивидуальной защиты ресурсов, например, типичная система защиты файлов и каталогов. Такая система позволяет задать для любого пользователя определенные права доступа к каждому из файлов и каталогов. Повышение устойчивости операционной системы, обеспечиваемое переходом ядра в привилегированный режим, достигается за счет некоторого замедления выполнения системных вызовов. Системный вызов привилегированного ядра инициирует переключение процессора из пользовательского режима в привилегированный, а при возврате к приложению – переключение из привилегированного режима в пользовательский (рис. 4). Во всех типах процессоров из-за дополнительной двукратной задержки переключения переход на процедуру со сменой режима выполняется медленнее, чем вызов процедуры без смены режима.

 

 

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

к привилегированному ядру

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.