презентация. Лекция2-26092022-Тема1.2 Архитектура ОС. Тема Архитектура операционной системы. Основные принципы построения операционных систем
Скачать 1.34 Mb.
|
Тема 1.2. Архитектура операционной системы. Основные принципы построения операционных систем.Архитектура операционных систем Операционная система - это набор программ, контролирующих работу прикладных программ и системных приложений и исполняющих роль интерфейса между пользователями, программистами, прикладными программами, системными приложениями и аппаратным обеспечением компьютера. Аппаратура компьютера - «сырая» вычислительную мощность; задача операционной системы - сделать использование этой вычислительной мощности доступным и по возможности удобным для пользователя. Операционная среда - это программная среда, образуемая опе-рационной системой, определяющая интерфейс прикладного программирования (API) как множество системных функций и сервисов (системных вызовов), предоставляемых прикладным программам. оболочка операционной системы - часть операционной среды, определяющая интерфейс пользователя, его реализацию (текстовый, графический и т. п.), командные и сервисные возможности пользователя по управлению прикладными программами и компьютером. Иерархическая структура программного и аппаратного обеспечения компьютера Операционная система выступает в роли посредника, облегчая программисту, пользователям и программным приложениям доступ к различным службам и возможностям компьютера Архитектура на базе ядра в привилегированном режиме Модули ОС Вспомогательные модули Ядро По выполняемым функциям: утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы (сжатие дисков, их проверка, дефрагментация; архивирование, сбор статистики и т.д.); системные обрабатывающие программы (компиляторы, редакторы связей, загрузчики, отладчики, текстовые или графические редакторы); библиотеки процедур различного назначения для разработки приложений (математические функции, функции ввода-вывода и т.д.); программы, предоставляющие дополнительные услуги (калькулятор, некоторые игры); По способу оформления: приложения, т.е. самостоятельные программы; библиотеки процедур, вызываемые из приложений. Модули, выполняющие основные функции ОС: управление процессами; управление памятью; управление вводом-выводом и файловая система; интерфейс прикладного программирования API (Application Program Interface) для поддержки обращений к ядру из приложений. Все модули (как вспомогательные, так и пользовательские приложения) обращаются к функциям ядра посредством системных вызовов Операционная система для осуществления своих управляющих функций должна иметь по отношению к приложениям определенные привилегии. Поэтому аппаратура компьютера поддерживает как минимум два режима: пользовательский режим (user mode) – для работы приложений; привилегированный режим, он же – режим ядра (kernel mode), или режим супервизора (supervisor mode) – для работы ОС или ее частей. Привилегии обеспечиваются за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных со следующими операциями: переключением процессора с задачи на задачу; - управлением устройствами ввода-вывода; доступом к механизмам распределения и защиты памяти. В пользовательском режиме безусловно запрещено выполнение инструкции перехода в привилегированный режим. Другие инструкции запрещается выполнять при определенных условиях, полностью контролируемых ОС. Например, ввод-вывод данных или доступ к памяти разрешены приложению, если соответствующие ресурсы выделены только этому приложению, и запрещены, если данные (соответственно память) являются общими для ОС и других приложений. Переключение процессора из пользовательского режима в привилегированный при системном вызове ядра, а затем обратное переключение повышает устойчивость ОС, но замедляет выполнение системных вызовов. Многослойная структура ОС Вычислительную систему, работающую под управлением ОС на базе ядра, можно рассматривать как систему из трех иерархически упорядоченных слоев Функции нижележащего слоя являются примитивами для построения более сложных функций вышележащего слоя. Взаимодействие слоев осуществляется через посредство функций межслойного интерфейса. Система представляется как иерархия слоев. При такой организации ОС приложения могут взаимодействовать с аппаратурой только через слой ядра. Многослойный подход применим и к структуре ядра. Средства аппаратной поддержки ОС – аппаратные средства, прямо участвующие в организации вычислительных процессов: средства поддержки привилегированного режима, система прерываний, переключение контекстов процессов, трансляция адресов, защита памяти и т.п. Машинозависимые модули – программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Базовые механизмы ядра. Модули этого слоя не принимают решений о распределении ресурсов, а только отрабатывают принятые на более высоком уровне решения. Выполняются наиболее примитивные операции ядра: программное переключение контекстов процессов, перемещение страниц между памятью и диском, диспетчеризация прерываний и т.п. Менеджеры ресурсов. Модули этого уровня реализуют управление основными ресурсами системы. Группировка модулей в менеджеры обычно осуществляется по функциям основных подсистем ОС: выделяются менеджеры процессов, ввода-вывода и файловой системы (могут быть объединены), оперативной памяти. Интерфейс системных вызовов. Взаимодействует непосредственно с приложениями и системными утилитами, образуя прикладной программный интерфейс ОС (API). В привилегированном режиме работает только небольшая часть ОС – микроядро, защищенное от остальных частей ОС приложений. Микроядерная архитектура В состав функций микроядра включаются те функции ОС, которые трудно или не возможно выполнить в пространстве пользователя. Однозначного решения о переносе в пользовательский режим тех или иных системных функций не существует. В общем случае как пользовательские приложения оформляются многие менеджеры ресурсов. По определению, основным назначением такого приложения является обслуживание запросов других приложений (создание процесса, выделение памяти, проверка прав доступа и т.д.). Поэтому менеджеры ресурсов, вынесенные в пользовательский режим, называются серверами ОС. Одной из главных задач микроядра является под-держка взаимодействия серверов. Механизм обращения к функциям ОС с микроядерной архитектурой В качестве посредника выступает микроядро, выполняющееся в привилегированном режиме и имеющее доступ к адресным пространствам всех приложений. Такая схема обработки запроса соответствует модели клиент-сервер, где микрядро выполняет роль транспортных средств. ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС: обладают переносимостью, расширяемостью, надежностью, подходят для поддержки распределенных вычислений. Преимущества и недостатки микроядерной архитектуры Основным недостатком микроядерной архитектуры является снижение производительности по сравнению с классическим вариантом. При обращении к часто используемым функциям работа приложений существенно замедляется. Основная проблема при использовании микроядерного подхода – что включать в микроядро, а что – выносить в пользовательское пространство. Свойство переносимости (или мобильности) ОС состоит в возможности переноса ее кода с процессора (в общем случае аппаратной платформы) одного типа на процессор (в общем случае аппаратную платформу) другого типа. Проблема переносимости тесно взаимосвязана со структуризацией компонентов ОС и обеспечением максимально возможного разделения аппаратно-зависимых и аппаратно-независимых компонентов и уменьшения числа первых, т.е. с архитектурой ОС. Переносимость ОС Принципы обеспечения переносимости - Большая часть кода ОС должна быть написана на языке, трансляторы с которого имеются на всех машинах, куда предполагается переносить систему. Такими языками являются стандартизованные языки высокого уровня. - Объем машинно-зависимых частей кода, взаимодействующих с аппаратурой, должен быть минимизирован. Для управления аппаратурой должен быть написан набор аппаратно-зависимых функций. Тогда при переносе ОС должны быть изменены только эти функции и данные (характеристики аппаратных средств), которыми они манипулируют. - Аппаратно-зависимый код должен быть сосредоточен (локализован) в нескольких модулях, а не распределен по всей системе. В идеале слой машинно-зависимых компонентов должен полностью экранировать остальную часть ОС от аппаратной платформы, имитируя некую виртуальную аппаратуру, и все вышележащие слои могут быть написаны для управления этой виртуальной аппаратурой. Домашнее Задание-Ответить на Контрольные вопросы в Рабочей Тетради:Лекция 2-Архитектура операционных систем : 1. Опишите концепции построения ОС; 2. Назовите и охарактеризуйте типы ядер ОС; 3. Что такое распределенность ОС? Лекция 3- Микроядерная архитектура (модель «клиент-сервер»): 1. Объясните концепцию микроядерной архитектуры? 2. Какие преимущества и недостатки имеет микроядерная архитектура? 3. Как обеспечивается совместимость ОСс разными типами ядер. |