Kievuz

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

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

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

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

Понятие операционной системы

Операционные системы являются основой программного обеспечения вычислительных машин (ВМ)и их систем – вычислительных систем (ВС).

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

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

Каковы причины смены ОС в компании?

Решение сменить операционную систему приходит в виду разных обстоятельств.

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

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

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

Согласно федеральному закону о персональных данных (ФЗ-152) оператор должен обеспечить техническую защиту вверенных ему данных.

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

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

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

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

Основная статья: Архитектура операционной системы

Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой ОС. В составе ОС различают три группы компонентов:

Большинство программ, как системных (входящих в ОС), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ядерным ресурсам, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что ОС (точнее, её ядро) управляет оборудованием.

В определении состава ОС значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты.

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

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

Функции

Основная статья: Функции операционной системы

Основные функции (простейшие ОС):

  • Загрузка приложений в оперативную память и их выполнение;
  • Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода);
  • Управление оперативной памятью (распределение между процессами, виртуальная память);
  • Управление доступом к данным на энергонезависимых носителях (таких как Жёсткий диск, Компакт-диск и т. д.), как правило с помощью файловой системы;
  • Пользовательский интерфейс;
  • Сетевые операции, поддержка стека протоколов

Эволюция операционных систем и основные идеи

Основная статья: Эволюция операционных систем

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

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

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

40-е годы. Первые цифровые вычислительные машины без ОС. Организация вычислительного процесса решается программистом с пульта управления.

50-е годы. Появление прообраза ОС – мониторных систем, реализующих систему пакетной обработки заданий.

1965-1980 г.г. Переход к интегральным схемам. IBM/360.

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

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

Конец 70-х. Создан рабочий вариант стека протоколов TCP/IP. В 1983 году он был стандартизирован. Независимость от производителей, гибкость и эффективность, доказанные успешной работой Интернет, сделала этот стек протоколов основным стеком для большинства ОС.

80-е годы. Появление персональных компьютеров. Бурный рост локальных сетей. Поддержка сетевых функций стала необходимым условием.Приняты основные стандарты на коммуникационные технологии локальных сетей: Ethernet, Token Ring, FDDI. Это позволило обеспечить совместимость сетевых ОС на нижних уровнях.

Начало 90-х. Практически все ОС стали сетевыми. Появились специализированные сетевые ОС (например IOS, работающая в маршрутизаторах)

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

ОС на мировом рынке

Основная статья: Операционные системы (мировой рынок)

С 1990-х наиболее распространёнными операционными системами для персональных компьютеров и серверов являются:

ОС для корпоративного сектора

Основная статья: ОС для корпоративного сектора

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

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

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

Операционные системы семейства Windows

Cерверные версии операционной системы Windows сегодня применяются довольно широко — благодаря удобству администрирования и невысокой совокупной стоимости владения.

  • Windows 2000
  • Windows Server 2003
  • Windows Server 2008

Операционные системы семейства UNIX

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

Большинство российских серверов работают под управлением тех или иных клонов от Unix.По данным выборочного исследования, проведенного порталом RuMetrika (данные за 2006 г. на российских серверах безусловно лидирует Free BSD (53%), на втором месте Linux (32%) , количество серверов, на которых установлена ОС Windows составило 9%, реже встречается Solaris – всего 5%.

«Unix», стандартизация ОС и POSIX

Основная статья: «Unix», стандартизация ОС и POSIX

Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ричи и Брайана Кернигана), ОС «Unix» («Unix»; первоначально «UNICS», что обыгрывало название «MULTICS») вобрала в себя многие черты более ранних ОС, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

  • простая метафорика (два ключевых понятия: вычислительный процесс и файл);
  • компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
  • минимизация ядра (кода, выполняющегося в «реальном» («привилегированном») режиме процессора) и количества системных вызовов;
  • независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования «Си» стал «побочным продуктом» разработки «Unix»);

Благодаря конкурентности реализаций архитектура ОС «Unix» стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945.

ОС, следующие стандарту или опирающиеся на него, называют «POSIX-совместимыми»

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

Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 90-х годах.

«Post Unix» архитектуры ОС

Коллектив, создавший ОС «Юникс», попытался позднее повторить свой успех, обобщив и дополнив исходную концепцию. Таким образом появились ОС «Plan9» и «Inferno», не получившие, впрочем, широкого распространения..

Позднее на основе «Plan9» в Испании были разработаны ОС «Off++» и «Plan B», носящие экспериментальный характер.

К попыткам создать постюниксовскую архитектуру можно также отнести разработку системы программирования и операционной среды «Оберон» в Швейцарском федеральном технологическом институте (ETH Zurich) под руководством проф. Никлауса Вирта.

Источник: http://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B

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

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

Перейдем к рассмотрению архитектуры операционной системы. Вспомним состав операционной системы, рассмотренный ранее в лекции «Понятие операционной системы«. Операционная система состоит из четырех основных частей:

  1. Первая часть — ядро, низкоуровневая основа любой ОС, выполняемая аппаратурой в особом привилегированном режиме. Ядро загружается в память один раз и находится в памяти резидентно – постоянно, по одним и тем же адресам. Ядро — командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов.
  2. Вторая часть Подсистема управления ресурсами (resource allocator) — управляет вычислительными ресурсами компьютера — оперативной и внешней памятью, процессором
  3. Третья часть — Управляющая программа (control program, supervisor) – управляет исполнением других программ и функционированием устройств ввода-вывода.(используются специализированные программы для управления различными устройствами, входящими в состав компьютера. Драйвера «системные библиотеки»)
  4. Четвертая часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро.

Перейдем к рассмотрению архитектуры операционной системы,  в частности архитектуры ее ядра.

Архитектура Операционной системы  — ЯДРО

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

  • Монолитное ядро
  • Поуровневый подход
  • Микроядро
  • Модули ядра

Монолитное ядро (все вместе)

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

  • Планирование процессов
  • Управление файловой системой
  • Сетевое взаимодействие
  • Драйверы устройств
  • Управление памятью

Преимущества:

Производительность — в виду того, что количество переключений из контекста режима пользователя в режим ядра сведено к минимуму;

Недостатки: 

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

Монолитный подход — простейший Первые ОС были монолитными, в них:

  • Нет определенной структуры
  • Нет уровней
  • Нет разделения на модули

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

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

Состав MS-DOS

Итак, мы выяснили, что простая неорганизованная структура это — плохо.

Возможно улучшение – операционная система разбивается на ряд уровней (слоев) – каждый следующий уровень базируется на предыдущем(вводится понятие иерархии уровней)

  • Самый нижний – аппаратное обеспечение
  • Самый верхний – интерфейс пользователя

Каждый уровень использует только функции (сервисы), предоставляемые нижестоящим уровнем.

 Все (или почти все уровни) работают в режиме ядра Примеры таких ОС – MULTICS, VAX\VMCИ

Простой поуровневый подход

Разбиение на уровни помогает разбить программирование операционной системы, становится легче программировать.

Поуровневый подход используется оригинальным ядром Unix:

  • Небольшое число монолитных слоев
  • Нет инкапсуляции, функции и сервисы, предоставляемые на разных уровнях доступны всей системе
  • По сути ядро – набор процедур, которые могут вызывать любые другие процедуры
  • Огромное количество функциональности в ядре (все что можно и нужно)

Современные ОС более четко разделены на уровни.

Ядро ОС Unix

Поуровневый подход позволяет независимо работать, менять и отлаживать ОС.

Если уровни строго разделены:

  • + можно над ними независимо работать
  • + можно независимо заменять

Например, сетевой стек TCP/IP является примером строгого разделения на уровни (уровни все четко выверены и подробно описаны)

Сложности:

  • как определить эти слои (непростая задача)
  • разделение на уровни возможно только при наличии иерархии вызовов и отсутствии циклических зависимостей.

Циклические зависимости

Пример

Возьмем драйвер диска:

  • Драйверу устройства можно ожидать завершения выполнения операции вв/выв, это означает обращение к уровню планировщика времени ЦП.  Это вызов с верхнего слоя, а драйвер диска находится в самом низу на аппаратном уровне, это циклическая зависимость.
  • ЦП может вызвать драйвер устройства для выгрузки и подгрузки процессов.

Поэтому в этом случае данная архитектурная модель не работает

Чем больше таких уровней, тем больше возникает проблемных ситуаций.

Выход – отход от строгой поуровневой модели и возврат к небольшому числу слоев с большой функциональностью.

Дальнейшим этапом развития придумали МИКРОЯДРО.

МИКРОЯДРО

Микроядро – ядро, содержащее только самые необходимые функции.

Идея: минимизировать само ядро, вынести как можно функциональности в режим пользователя (т.е. исполнять эту функциональность в виде обычных процессов).

Многие сервисы становятся пользовательскими процессами:

  • Драйверы устройств,
  • Файловые системы,
  • Менеджер виртуальной памяти,
  • Оконные системы графического интерфейса пользователя,
  • Службы безопасности

Данный подход популяризован ядром MACH («МАК»)

На основе MACH сделаны, среди прочих, Mac OSX (комп.Apple), GNUHurd.

Структура микроядра

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

Микроядро основывается на механизме обмена сообщениями:

  • проверяет корректность сообщений
  • передает их между компонентами
  • проверяет, разрешен ли обмен сообщениями

Предоставляет доступ к оборудованию

Фактически реализует клиент-серверную архитектуру на одном компьютере.

Преимущества микроядра

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

Недостатки микроядра

  • Больше расходов на взаимодействие между системными сервисами.
  • Каждое взаимодействие требует переключения режимов. Переходы из режима пользователя в режим ядра и обратно. Механизм передачи сообщений требует очень частого переключения контекста. Режим ядра – режим пользователя, они “съедают” значительную часть мощности ЦП.
  • Системные сервисы, работающие в режиме пользователя – это процессы, ОС нужно их планировать( Диспетчеризация).

Решение 1: реинтеграция таких сервисов обратно в ядро (интегрировать некоторые сервисы в ядро и “убрать” переключения

  • Улучшается производительность(меньше переключений, одно адресное пространство)
  • Такое ядро было сделано в ядре Mach

Решение 2: сделать ядро еще меньше – экспериментальные архитектуры (нано-ядра, пико-ядра).

Минимальная функциональность в микроядре

1) Низкоуровневое управление памятью
-Отображение страниц на физическую память

— Все остальные механизмы предоставляются сервисами, работающими в режиме пользователя

  • Защита адресного пространства
  • Механизмы замещения страниц
  • Управление виртуальной памятью

2) Межпроцессорное взаимодействие

3)Ввод/вывод и обработка прерываний.

Модули ядра

Технология «модули ядра» развивались параллельно вместе с микроядром.

Модуль – нечто среднее между поуровневой архитектурой и микроядром.

Удобно для разработки (каждый может разрабатывать свой модуль без необходимости трогать основную систему).

  • Модули находятся в режиме ядра (уменьшаются затраты на взаимодействие модулей между собой)
  • Компромисс ради производительности.
  • Под разные задачи необходимо выбирать ОС

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

Многие ОС реализуют поддержку модульности

Пример – ОС Linux. Классифицируют как монолитное ядро.

  • Каждый ключевой компонент – отдельный модуль
  • Взаимодействие происходит через определенные интерфейсы
  • Загружаются модули по требованию

Можно самому компилировать ядро Linux, выбирать нужные модули, решать какие модули войдут в ядро, а какие нет — т.е. компоновать ядро согласно своих требований, что позволяет получать преимущество – гибкость операционной системы.

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

Линус Бенедикт Торвальдс

Торговая марка Linux зарегистрирована на Линуса Торвальдса.
Linux, произносится «линукс» .

Создатель Linux — Линус Бенедикт Торвальдс родился 28 декабря 1969 в Хельсинки — финский программист. Воодушевлённый прочтением книги Эндрю Таненбаума, посвящённой операционной системе Minix, Линус создал Linux — ядро операционной системы GNU/Linux, являющейся на данный момент самой распространённой из свободных операционных систем.

Уникальность данной ОС – открытый исходный код, он разрабатывается сообществом, поэтому данная ОС работает на очень многих существующих платформах (архитектуры процессора таких как Intel x86, x86-64, PowerPC, ARM, Alpha AXP, Sun SPARC, Motorola 68000, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8/300, NEC V850, Tensilica Xtensa и многих других).

визитка Linux

В отличие от большинства других операционных систем, Linux не имеет единой «официальной» комплектации. Вместо этого Linux поставляется в большом количестве так называемых дистрибутивов, в которых ядро Linux соединяется с утилитами GNU и другими прикладными программами (например, X.org), делающими её полноценной многофункциональной операционной средой.

Сам разработчик сегодня заявляет, что ядро ОС стало настолько большим, что его уже трудно поддерживать, оно недостаточно структурировано.

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

Уникальная операционная система с точки зрения архитектуры. В ней есть все: послойность, модульность и микроядро (используется гибридное ядро).

Уникальная система и с точки зрения теории – гениально структурированное ядро ОС. В структуре спокойно разберется один человек.

В ядре сосредоточены ключевые компоненты, а то, что можно было вынести без потери производительности – вынесено в режим пользователя.

На основе этого ядра сделаны Windows 2000/XP/7/8/

Windows NT первоначально работала на 5 платформах.

В дальнейшем мы будем рассматривать данную операционную систему более подробно.

Состав ОС Windows NT

Критерии выбора операционной системы

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

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

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

Скачать презентацию » Архитектура операционной системы «

Скачать тест по теме » Архитектура операционной системы «

Источник: http://komputercnulja.ru/operacionnye-sistemy/arxitektura-operacionnoj-sistemy

ovdmitjb

Add comment