Обзорная лекция № 34

для студентов специальности

«Программное обеспечение информационных технологий»

доцента кафедры ИВТ, к.т.н. Ливак Е.Н.

 

 

ОПЕРАЦИОННЫЕ СИСТЕМЫ

 

Основные понятия, факты

Основные функции ОС. Классификация ОС. Принципы построения ОС. Архитектура ОС. Микроядерные и монолитные ОС. Технология микроядра. Тенденции в проектировании ОС. Сетевые ОС.

 

Навыки и умения

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

 

Назначение и функции операционной системы

 

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

 

Обычно ОС определяется через ее функции -

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

 

Другими словами, две основные функции (назначение) ОС:

1)     предоставлять пользователю некую расширенную виртуальную машину, с которой легче работать (легче программировать), чем непосредственно с аппаратурой реального компьютера или реальной сети;

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

2)     управлять ресурсами вычислительной системы.

Поэтому в специальной литературе ОС представляется всегда двояко:

как расширенная виртуальная машина и

как система управления ресурсами.

 

Функции ОС

·        прием от пользователя (оператора) заданий или команд, сформулированных на соответствующих языках, и их обработка;

·        загрузка в ОП программ и их исполнение;

·        инициация программы (передача ей управления);

·        прием и исполнение программных запросов на запуск, приостановку, остановку других программ; организация взаимодействия между задачами;

·        идентификация всех программ и данных;

·        обеспечение работы системы управления файлами и/или систем управления БД;

·        обеспечение режима мультипрограммирования (многозадачности);

·        планирование и диспетчеризация задач;

·        обеспечение функций по организации и управлению операциями ввода/вывода;

·        удовлетворение жестким ограничениям на время ответа в режиме реального времени (для соответствующих ОС);

·        управление памятью, организация виртуальной памяти;

·        организация механизмов обмена сообщениями и данными между выполняющимися программами;

·        защита одной программы от влияния другой; обеспечение сохранности данных;

·        аутентификация, авторизация и другие средства обеспечения безопасности;

·        предоставление услуг на случай частичного сбоя системы;

·        обеспечение работы систем программирования;

·        параллельное исполнение нескольких задач.

 

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

Наиболее важные из них

ü      подсистема управления процессами,

ü      подсистема управления памятью,

ü      подсистема управления файлами,

ü      подсистема управления внешними устройствами,

ü      подсистема пользовательского интерфейса,

ü      подсистема защиты данных и администрирования.

 

Замечание. Часто под ОС понимается то ПО, которое запускается в режиме ядра (привилегированном режиме, режиме супервизора).

 

Классификация операционных систем

 

Операционные системы различаются

ü      особенностями реализации внутренних алгоритмов управления основными ресурсами компьютера (процессорами, памятью, устройствами),

ü      особенностями использованных методов проектирования,

ü      типами аппаратных платформ,

ü      критериями эффективности,

ü      особенностями реализации сетевых решений

ü      и многими другими свойствами.

 

Особенности алгоритмов управления ресурсами

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

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

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

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

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

По числу одновременно работающих пользователей ОС делятся на:

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

!!! Следует заметить, что не всякая многозадачная система является многопользовательской, и не всякая однопользовательская ОС является однозадачной.

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

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

При вытесняющей многозадачности решение о переключении процессора с одного процесса на другой принимается операционной системой, а не самим активным процессом.

 

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

ОС подразделяются на поддерживающие и неподдерживающие многонитевость.

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

 

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

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

Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

В современных ОС введены функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows NT фирмы Microsoft и NetWare 4.1 фирмы Novell.

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

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

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

 

Особенности аппаратных платформ

На свойства операционной системы непосредственное влияние оказывают аппаратные средства, на которые она ориентирована.

По типу аппаратуры различают операционные системы

·        персональных компьютеров,

·        мини-компьютеров,

·        мейнфреймов,

·        кластеров

·        и сетей ЭВМ.

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

 

В зависимости от выбранного критерия эффективности операционные системы делятся на:

§        системы пакетной обработки (например, OC EC),

§        системы разделения времени (UNIX, VMS),

§        системы реального времени (QNX, RT/11).

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

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

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

ü      в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам;

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

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

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

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

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

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

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

Каждому пользователю системы разделения времени предоставляется терминал, с которого он может вести диалог со своей программой.

Каждой задаче выделяется только квант процессорного времени,

Þ ни одна задача не занимает процессор надолго, и время ответа оказывается приемлемым.

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

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

1)     на выполнение принимается каждая запущенная пользователем задача, а не та, которая "выгодна" системе,

2)     увеличивается время работы, так как выполняется более частое переключение процессора с задачи на задачу.

Таким образом, критерием эффективности систем разделения времени является не максимальная пропускная способность, а удобство и эффективность работы пользователя.

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

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

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

Это время называется временем реакции системы, а соответствующее свойство системы - реактивностью.

Для этих систем мультипрограммная смесь представляет собой фиксированный набор заранее разработанных программ, а выбор программы на выполнение осуществляется исходя из текущего состояния объекта или в соответствии с расписанием плановых работ.

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

 

Особенности архитектуры ОС

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

К базовым концепциям относятся:

·        способы построения ядра ОС;

·        построение на базе ООПодхода;

·        наличие нескольких прикладных сред;

·        распределенная организация ОС.

 

По способам построения ядра ОС подразделяются на

·        монолитные (Windows, Linux – можем сами собрать ядро, включив в него модули и драйверы, которые считаем целесообразным включить);

·        микроядерные (QNX).

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

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

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

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

 

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

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

·        хорошую защиту данных за счет их инкапсуляции во внутренние структуры объекта, что делает данные недоступными для несанкционированного использования извне,

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

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

Многие современные операционные системы поддерживают одновременно прикладные среды MS-DOS, Windows, UNIX (POSIX), OS/2 или хотя бы некоторого подмножества из этого популярного набора. Концепция множественных прикладных сред наиболее просто реализуется в ОС на базе микроядра.

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

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

 

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

 

Напомним, необходимые основные моменты.

Микропроцессоры Intel x86/Pentium аппаратно поддерживают 4 уровня привилегий (режима): 0..3.

Большинство ОС поддерживают двухуровневую систему привилегий: привилегированный режим (режим ядра, пространство ядра) и пользовательский режим (пространство пользователя). (Например, Windows NT, UNIX)

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

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

_______________________________________________________________________

 

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

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

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

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

Þ    модули, выполняющие основные функции ОС - ядро ОС;

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

 

Модули ядра выполняют базовые функции ОС

·        управление процессами,

·        управление памятью,

·        управление устройствами ввода-вывода.

 

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

 

Вспомогательные модули ОС

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

 

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

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

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

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

·        системные обрабатывающие программы - текстовые и графические редакторы, компиляторы, компоновщики, отладчики (Замечание. Чаще эти программы являются частью систем программирования).

 

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

 

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

 

Обратим внимание на то, что многие модули ОС оформлены как обычные приложения. Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Некоторая программа может существовать определенное время как пользовательское приложение, а потом стать частью ОС (например, Web-браузер компании Microsoft - сначала поставлялся как отдельное приложение, затем стал частью ОС Windows, затем, по решению, суда снова превратился в самостоятельное приложение).

 

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

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

 

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

 

Вспомогательные модули ОС

 

Приложения пользователей

 
 

 

 

 

 

Привилегированный режим

 
 

 

 

 

 


Термин "ядро" в различных ОС трактуется по-разному. Но чаще всего, именно это свойство - работа в привилегированном режиме - служит основным определением понятия "ядра".

 

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

 

Необходимо обратить внимание, на то, что работа системы с привилегированным ядром замедляется за счет замедления выполнения системных вызовов.

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

Продемонстрируем это ни рисунке.

приложение

 

приложение

 
 

 

 

 

 

 

 

 

 


t - время переключения режимов

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

Ее используют многие популярные ОС (UNIX, VAX VMS, IBM OS/390, OS/2, Windows NT (c модификациями)).

Иногда разработчики отступают от классического варианта архитектуры и организуют работу ядра и приложений в одном режиме Þ ??? что лучше, если, например, в ОС NetWare ядро и специфические загружаемые модули NLM работают в привилегированном режиме, а что хуже???

Очевидно, что в одном режиме работа идет и в ОС, разработанных для процессоров, не поддерживающих привилегированный режим. Например, Intel 8088/86. ОС MS-DOS состоит из двух модулей msdos.sys и io.sys (по сути это ядро системы, хотя так никогда не называлось). К ним с системными вызовами обращаются командный интерпретатор command.com, системные утилиты и приложения. Þ Приложения вполне могут разрушать основные модули ОС.

 

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

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

ü      Экономия ОП. (Постоянно в ОП располагаются только самые необходимые коды.)

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

 

РЕЗЮМЕ по простейшей структурной организации ОС

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

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

Þ    Вспомогательные модули являются транзитными. Модули ядра - резидентными.

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

 

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

 

Является альтернативой классическому способу построения ОС.

Суть микроядерной архитектуры состоит в следующем.

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

 

Микроядро защищено от остальных частей ОС и приложений.

В состав микроядра входят обычно

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

§        модули, выполняющие базовые функции ядра:

-                управление процессами (только код для переключения процессора с процесса на процесс);

-                обработка прерываний (перехват аппаратных прерываний);

-                управление виртуальной памятью (установка регистров блока управления памятью);

-                управление устройствами ввода-вывода (загрузка или чтение регистров устройств);

-                пересылка сообщений;

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

 

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

(Напомним, что в этом заключается принцип функциональной избирательности)

 

 

 

 

 

 

 

 

 

 

 

 

 

 


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

Они также оформлены в виде приложений.

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

 

Механизм обращения к серверам ОС выглядит следующим образом.

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

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

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

 

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Преимущества и недостатки микроядерной архитектуры

 

Операционные системы, основанные на микроядерной архитектуре, удовлетворяют большинству требований, предъявляемым к современным ОС:

ü      обладают переносимостью

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

ü      высокая степень расширяемости

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

ü      достаточная надежность

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

ü      поддержка распределенных вычислений

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

 

Основной (и по сути единственный) недостаток микроядерной архитектуры -

снижение производительности.

 

При классической организации ОС выполнение системного вызова сопровождается двумя переключениями режимов:

приложение

 

приложение

 
 

 

 

 

 

 

 

 

 


А при микроядерной организации - четырьмя:

 

приложение

 

Сервер ОС

 

приложение

 
 

 

 

 

 

 

 

 

 


Однако, при современных скоростях процессоров снижение производительности в 20% не считается фатальным.

 

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

 

 

РЕЗЮМЕ по микроядерной архитектуре ОС

Þ    Микроядерная архитектура является альтернативой классическому способу построения ОС.

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

Þ    Микроядерные ОС обладают переносимостью, расширяемостью, надежностью, поддерживают распределенные приложения. За эти достоинства приходится платить снижением производительности.

 

Наиболее ярким представителем микроядерных ОС является ОС реального времени QNX. Микроядро QNX поддерживает только планирование и диспетчеризацию процессов, взаимодействие процессов, обработку прерываний и сетевые службы нижнего уровня. Микроядро обеспечивает всего лишь пару десятков системных вызовов, но благодаря этому оно может быть целиком размещено во внутреннем кэше даже таких процессоров, как Intel 486. Разные версии этой ОС имеют различные объемы ядер — от 8 до 46 Кбайт.

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

 

Тенденции развития ОС

 

Микроядерные ОС в настоящее время разрабатываются чаще монолитных.

Множество исследований в области ОС фокусируется на констуировании расширяемых ОС (следовательно, микроядерных).

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

 

 

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

 

ОС компьютерной сети во многом аналогична ОС автономного компьютера.

 

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

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

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

 

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

-         Сетевые ОС

-         Распределенные ОС.

 

Пользователь сетевой ОС всегда помнит, что он имеет дело с сетевыми ресурсами.

Он всегда знает, где хранятся его файлы, знает, на какой машине выполняется его задание.

 

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

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

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

В настоящее время практически все сетевые ОС еще очень далеки от истинной распределенности.

 

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

 

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

 

Итак, термин сетевая ОС используется в двух значениях: 1) как совокупность ОС всех компьютеров сети, 2) ОС отдельного компьютера, способного работать в сети.

Функциональные компоненты сетевой ОС

¨      Средства управления локальными ресурсами

(реализуют функции ОС автономного компьютера)

¨      Сетевые средства:

§        Серверная часть ОС (средства для предоставления локальных ресурсов и услуг в общее пользование)

§        Клиентская часть ОС (средства запроса доступа к удаленным ресурсам и услугам)

§        Транспортные средства ОС (совместно с коммуникационной системой обеспечивают передачу сообщений между компьютерами):

           формируют сообщения,

           разбивают сообщения на части (пакеты, кадры),

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

           организуют надежную доставку сообщений,

           определяют маршрут в сложной сети и др.

Правила взаимодействия компьютеров при передачи сообщений по сети фиксируются в коммуникационных протоколах (Ethernet, Token Ring, IP, IPX и др)

 

Основные функции клиентской части

           способность отличить запрос к удаленному файлу от запроса к локальному файлу, т.е. клиентская часть ОС сама распознает и перенаправляет (redirect) запрос к удаленной машине (Þ клиентскую часть часто называют редиректором);

           Преобразование форматов запросов к ресурсам:

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

 

 

Подходы к построению сетевых ОС

Различаются глубиной внедрения сетевых служб в ОС:

           сетевые службы глубоко встроены в ОС;

           сетевые службы объединены в виде некоторого набора – оболочки;

           сетевые службы производятся и поставляются в виде отдельного продукта.

 

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

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

Например, сетевая ОС LAN Manager является надстройкой над локальной ОС OS/2.

ОС со встроенными сетевыми службами – Windows NT, все версии UNIX, NetWare, OS/2 Warp.

 

Другой вариант сетевых служб – объединение их в виде некоторого набора (оболочки). В этом случае все службы должны быть согласованы между собой, т.е. могут обращаться друг к другу, могут иметь в своем составе общие компоненты (например, общую подсистему аутентификации).

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

Примеры – LAN Server, LAN Manager.

 

Третий способ реализации сетевой службы – в виде отдельного продукта.

Примеры:

сервер удаленного управления WinFrame (компании Citrix), предназначен для работы в среде Windows NT. Он дополняет возможности встроенного в Windows NT сервера удаленного доступа Remote Access Server;

программный продукт NetWare Connect – служба удаленного доступа для NetWare.

 

Одноранговые и серверные сетевые ОС

 

Компьютер в сети может выступать в трех разных ролях:

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

-         роль клиентского узла (обращается с запросами к ресурсам другой машины);

-         одноранговый узел – это компьютер, совмещающий функции клиента и сервера.

 

Сеть может быть построена по одной из следующих схем:

-         сеть на основе одноранговых узлов – одноранговая сеть;

-         сеть на основе клиентов и серверов – сеть с выделенными серверами;

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

(Каждая из этих схем обладает своими достоинствами и недостатками, определяющими их области применения.)

 

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

Сетевые ОС такого типа наз. одноранговыми ОС.

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

Примеры одноранговых ОС: LANtastic, Personal Ware, Windows for Workgroups, Windows NT Workstation, Windows 95/98.

 

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

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

Отличия серверных ОС:

¨      поддержка мощных аппаратных платформ, в том числе мультипроцессорных;

¨      поддержка большого числа одновременно выполняемых процессов и сетевых соединений;

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

¨      более широкий набор сетевых служб.

 

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

Наиболее простые клиентские ОС поддерживают только базовые сетевые службы – обычно файловую службу и службу печати.

 

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

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

Например, ОС Windows NT выпускается в варианте для рабочей станции - Windows NT Workstation - и в варианте для выделенного сервера - Windows NT Server. Оба эти варианта включают клиентские и серверные части многих сетевых служб.