Учебное пособие: Архитектура операционных систем
Лекция 2
Требования к современным ОС
— Главные требования:
— выполнение основных функций эффективного управления ресурсами
— обеспечение удобного интерфейса для пользователя и прикладных программ
Требования к современным ОС
— Расширяемость
— Переносимость или многоплатформенность
— Совместимость
— Надежность и отказоустойчивость
— Безопасность
— Производительность
1. Расширяемость ОС
— ОС всегда изменяются со временем эволюционно, и эти изменения более значимы, чем изменения аппаратных средств
— Если код ОС написан таким образом, что дополнения и изменения могут вноситься без нарушения целостности системы, то такую ОС называют расширяемой
— Расширяемость достигается за счет модульной структуры ОС (программы строятся из набора отдельных модулей, взаимодействующих только через функциональный интерфейс)
2. Переносимость или многоплатформенность
— В идеале код ОС должен легко переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа
— Переносимые ОС имеют несколько вариантов реализации для разных платформ
3. Совместимость
— Для пользователя, переходящего с одной ОС на другую, очень привлекательна возможность запуска в новой ОС привычного приложения.
— Если ОС имеет средства для выполнения прикладных программ, написанных для других ОС, то про нее говорят, что она обладает совместимостью с этими ОС
— Понятие совместимости включает также поддержку пользовательских интерфейсов других ОС
4. Надежность и отказоустойчивость
— ОС должна быть защищена как от внутренних, так и от внешних ошибок, сбоев и отказов.
— Действия ОС должны быть всегда предсказуемыми, а приложения не должны иметь возможности наносить вред ОС.
— Надежность и отказоустойчивость ОС прежде всего определяются архитектурными решениями, положенными в ее основу, а также качеством ее реализации
— Важно, включает ли ОС программную поддержку аппаратных средств обеспечения отказоустойчивости, таких, например, как дисковые массивы или источники бесперебойного питания.
5. Безопасность
— Современная ОС должна защищать данные и другие ресурсы вычислительной системы от несанкционированного доступа.
— средства аутентификации — определения легальности пользователей
— авторизации — предоставления легальным пользователям дифференцированных прав доступа к ресурсам
— аудита — фиксации всех «подозрительных» для безопасности системы событий
— В сетевых ОС к задаче контроля доступа добавляется задача защиты данных, передаваемых по сети.
6. Производительность
— ОС должна обладать настолько хорошим быстродействием и временем реакции, насколько это позволяет аппаратная платформа
— На производительность ОС влияют:
— архитектура ОС
— многообразие функций
— качество программирования кода
— возможность исполнения ОС на высокопроизводительной (многопроцессорной) платформе
Основные принципы построения операционных систем
— Модульности
— Функциональной избирательности
— Генерируемости
— Функциональной избыточности
— Виртуализации
— Независимости программ от внешних устройств
— Совместимости
— Открытой и наращиваемой ОС
— Мобильности (переносимости)
— Обеспечения безопасности вычислений
Принцип модульности ОС
— Под модулем в общем случае понимают функционально законченный элемент системы, выполненный в соответствии с принятыми межмодульными интерфейсами.
— Модуль предполагает возможность без труда заменить его на другой при наличии заданных интерфейсов
— Наибольший эффект от его использования достижим, когда принцип распространен одновременно на операционную систему, прикладные программы и аппаратуру
Принцип функциональной избирательности
— В ОС выделяется некоторая часть важных модулей, которые должны постоянно находиться в оперативной памяти для более эффективной организации вычислительного процесса (ядро)
— При формировании состава ядра требуется учитывать два противоречивых требования.
— 1) В состав ядра должны войти наиболее часто используемые системные модули.
— 2) Количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, был бы не слишком большим.
— Транзитные программные модули загружаются в оперативную память только при необходимости и в случае отсутствия свободного пространства могут быть замещены другими транзитными модулями.
Принцип генерируемости ОС
— Этот принцип позволяет настраивать центральную системную управляющую программу ОС, исходя из конкретной конфигурации конкретного вычислительного комплекса и круга решаемых задач.
— Эта процедура проводится редко, перед протяженным периодом эксплуатации ОС.
— Процесс генерации осуществляется с помощью специальной программы-генератора и соответствующего входного языка для этой программы, позволяющего описывать программные возможности системы и конфигурацию машины.
— Принцип генерируемости существенно упрощает настройку ОС на требуемую конфигурацию вычислительной системы
Принцип функциональной избыточности
— Этот принцип учитывает возможность проведения одной и той же работы различными средствами
— Позволяет:
— быстро и наиболее адекватно адаптировать ОС к определенной конфигурации вычислительной системы
— обеспечить максимально эффективную загрузку технических средств при решении конкретного класса задач
— получить максимальную производительность при решении заданного класса задач
Принцип виртуализации
— Этот принцип позволяет представить структуру системы в виде определенного набора планировщиков процессов и распределителей ресурсов (мониторов) и использовать единую централизованную схему распределения ресурсов.
— Наиболее естественным и законченным проявлением концепции виртуальности является понятие виртуальной машины .
— Любая ОС скрывает от пользователя и его приложений реальные аппаратные и иные ресурсы, заменяя их некоторой абстракцией.
Принцип виртуализации
— Виртуальная машина, предоставляемая пользователю, воспроизводит архитектуру реальной машины, но архитектурные элементы в таком представлении выступают с новыми или улучшенными характеристиками:
— единообразная по логике работы память (виртуальная) практически неограниченного объема.
— произвольное количество процессоров (виртуальных), способных работать параллельно и взаимодействовать во время работы.
— произвольное количество внешних устройств (виртуальных), способных работать с памятью виртуальной машины параллельно или последовательно, асинхронно или синхронно по отношению к работе того или иного виртуального процессора, которые инициируют работу этих устройств.
Принцип независимости программ от внешних устройств
— Связь программ с конкретными устройствами производится не на уровне трансляции программы, а в период планирования её исполнения
— В результате перекомпиляция при работе программы с новым устройством, на котором располагаются данные, не требуется.
— Принцип позволяет одинаково осуществлять операции управления внешними устройствами независимо от их конкретных физических характеристик
Принцип совместимости
— Это способность ОС выполнять программы, написанные для других ОС или для более ранних версий данной операционной системы, а также для другой аппаратной платформы.
— Двоичная совместимость достигаетс, когда можно запустить исполняемую программу на выполнение на другой ОС. Для этого необходимы:
— совместимость на уровне команд процессора,
— совместимость на уровне системных вызовов и даже на уровне библиотечных вызовов, если они являются динамически связываемыми.
— Совместимость на уровне исходных текстов требует наличия соответствующего транслятора в составе системного программного обеспечения, а также совместимости на уровне библиотек и системных вызовов. При этом необходима перекомпиляция имеющихся исходных текстов в новый выполняемый модуль.
Принцип открытой и наращиваемой ОС
— Открытая ОС доступна для анализа как пользователям, так и системным специалистам, обслуживающим вычислительную систему.
— Наращиваемая (модифицируемая, развиваемая) ОС позволяет не только использовать возможности генерации, но и вводить в ее состав новые модули, совершенствовать существующие и т. д.
— Необходимо, чтобы можно было внести дополнения и изменения, и не нарушить целостность системы.
Принцип мобильности (переносимости)
— Операционная система относительно легко должна переноситься с процессора одного типа на процессор другого типа и с аппаратной платформы одного типа на аппаратную платформу другого типа.
— Большая часть ОС должна быть написана на языке, который имеется на всех системах, на которые планируется в дальнейшем ее переносить. То есть ОС должна быть написана на языке высокого уровня, предпочтительно стандартизованном.
— Важно минимизировать или исключить части кода, которые непосредственно взаимодействуют с аппаратными средствами.
— Если аппаратно-зависимый код не может быть полностью исключен, то он должен быть изолирован в нескольких хорошо локализуемых модулях. Аппаратно-зависимый код не должен быть распределен по всей системе.
Принцип обеспечения безопасности вычислений
— Правила безопасности определяют свойства:
— защита ресурсов одного пользователя от других
— установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов
— Более безопасные системы не только снижают эффективность, но и существенно ограничивают число доступных прикладных пакетов, которые соответствующим образом могут выполняться в подобной системе
Классификация ОС
по числу одновременно выполняемых задач
— однозадачные (MS DOS) и
— многозадачные
— Системы пакетной обработки (ОС ЕС)
— Системы с разделением времени (Unix, Linux, Windows)
— Системы реального времени (RT11, QNX)
Классификация ОС
по числу одновременно работающих пользователей на ЭВМ ОС разделяются на
— однопользовательские (MS DOS);
— многопользовательские (Unix, Linux, Windows 95 — XP)
Классификация ОС
по типу лицензии:
— проприетарная (семейство Windows)
— открытая (большинство Linux и UNIX систем).
Классификация ОС
по архитектуре:
— микроядерные (VxWorks, QNX);
— монолитные (Windows XP);
— гибридные (Windows NT, большинство Linux);
Классификация ОС
по использованию процессора:
— однопроцессорные;
— многопроцессорные системы (начиная с OS/2, Net Ware, Widows NT, большинство современных ОС).
Классификация ОС
по применению:
— рабочих станций (DOS, МАС OS, Windows 98, XP, Vista),
— серверов (AIX, Windows 2000, Windows Server 2003, Windows Vista Server 2008),
— ОС реального времени;
— встроенные ОС (VxWorks, QNX, Nucleus),
— для мобильных устройств (Windows CE, Pocket PC, Windows Mobile, Palm OS, Symbian OS),
— для сетевых маршрутизаторов (IOS от Cisco),
Классификация ОС
по возможности сетевого взаимодействия:
— локальные (DOS);
— сетевые (Netware 3.x – 6.x, UNIX, Linux, FreeBSD).
ОС как система управления ресурсами
основные ресурсы современных вычислительных систем:
— Процессоры
— Основная память
— Таймеры
— Наборы данных
— Диски
— Принтеры
— Сетевые устройства
— и др.
Ресурсы распределяются между процессами.
Процесс
— Процесс (задача) – базовое понятие большинства современных ОС.
— Процесс – программа в стадии выполнения.
— Программа – это статический объект, представляющий собой файл с кодами и данными.
— Процесс — это динамический объект, который возникает в ОС после того, как пользователь или ОС решает «запустить программу на выполнение», то есть создать новую единицу вычислительной работы.
Задачи ОС по управлению ресурсами
Управление ресурсами вычислительной системы с целью наиболее эффективного их использования является назначением ОС.
Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:
— планирование ресурса — то есть определение, какому процессу, когда и в каком количестве (если ресурс может выделяться частями) следует выделить данный ресурс;
— удовлетворение запросов на ресурсы;
— отслеживание состояния и учет использования ресурса — то есть поддержание оперативной информации о том, занят или свободен ресурс и какая доля ресурса уже распределена;
— разрешение конфликтов между процессами.