top of page

1. Предмет и задачи курса

Предметом изучения в данном курсе являются операционные системы (ОС) современных компьютеров.

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

  • организации эффективной работы аппаратуры компьютера;

  • обеспечению удобного использования ресурсов компьютера как прикладными программами, так и пользователем, работающим с компьютером.

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

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

  • практическое воплощение этих принципов, алгоритмов, структур в наиболее распространенных современных ОС.

2. Основные принципы построения ОС. (по Таненбауму)

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

Принцип модульности

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

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

По своему определению модуль предполагает возможность без труда заменить его на другой при наличии заданных интерфейсов.

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

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

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

Принцип функциональной избирательности (Особого режима)

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

При формировании состава ядра требуется учитывать два противоречивых требования.

1)     В состав ядра должны войти наиболее часто используемые системные модули.

2)     Количество модулей должно быть таковым, чтобы объем памяти, занимаемый ядром, был бы не слишком большим.

Ядро, как можно понять из названия, это основная, «самая системная» часть операционной системы. Имеются разные определения ядра. Согласно одному из них, ядро – это резидентная часть системы, т.е. к ядру относится тот программный код, который постоянно находится в памяти в течение всей работы системы. Остальные модули ОС являются транзитными, т.е. подгружаются в память с диска по мере необходимости на время своей работы. К транзитным частям системы относятся:

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

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

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

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

- другие виды программ, в зависимости от конкретной системы.

Не менее важным является определение ядра, основанное на различении режимов работы компьютера. Все современные процессоры поддерживают, как минимум, два режима: привилегированный режим (он же режим ядра, kernel mode или супервизорный режим) и непривилегированный (режим задачи, режим пользователя, user mode). Программы, работающие в режиме ядра, имеют полный, неограниченный доступ ко всем ресурсам компьютера: его командам, адресам, портам ввода/вывода и т.п. В режиме задачи возможности программы ограничены, она, в частности, не может выполнить некоторые специальные команды. Аппаратное разграничение возможностей является абсолютно необходимым условием реализации надежной защиты данных в многопользовательской системе. Отсюда вытекает и определение ядра как части ОС, работающей в режиме ядра. Все остальные программы, как системные утилиты, так и программы пользователей, работают в режиме пользователя и должны обращаться к ядру для выполнения многих системных действий.

Принцип генерируемости ОС

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

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

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

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

Принцип функциональной избыточности

Этот принцип учитывает возможность проведения одной и той же работы различными средствами.

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

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

Принцип виртуализации

Предполагает предоставление пользователю виртуальных ресурсов, которые на самом деле может и не существовать, может быть выделен из других ресурсов.

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

Наиболее распространенным является понятие виртуальных машин.

Виртуальные машины – это совокупность виртуальных ресурсов.

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

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

Примером реализации принципа виртуализации может служить VDM-машина (virtual DOS machine) — защищенная подсистема, предоставляющая полную среду MS-DOS и консоль для выполнения MS-DOS приложений.

Принцип независимости программ от внешних устройств

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

Пример: печать документов.

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

Принцип совместимости

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

Желательно, чтобы все ОС были совместимы, то есть работали по одним и тем же алгоритмам. Если система удовлетворяет этому принципу, то разработчикам программного обеспечения не нужно будет создавать свои программы отдельно для каждой ОС. Этому принципу удовлетворяют системы только 2-х фирм Microsoft и Novell.

Необходимо разделять вопросы двоичной совместимости и совместимости на уровне исходных текстов приложений.

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

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

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

Принцип открытой и наращиваемой ОС

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

Этот принцип иногда трактуют как расширяемость системы.

К открытым ОС, прежде всего, следует отнести UNIX-системы и, естественно, ОС Linux.

Принцип мобильности (переносимости)

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

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

Например, стандарт POSIX, разработанных для Unix, т создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода

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

Принцип обеспечения безопасности вычислений

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

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

Контрольные вопросы 

bottom of page