Файл: Сетевые операционные системы (Обзор популярных сетевых операционных систем).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 04.04.2023

Просмотров: 368

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рис.1 Структура сетевой операционной системы

В сетевой операционной системе отдельной машины можно выделить несколько частей (рисунок 1):

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

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

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

4. Коммуникационные средства операционной системы, с помощью которых происходит обмен сообщениями между сетевыми операционными системами внутри сети. Эта часть является средством транспортировки сообщений и обеспечивает адресацию и буферизацию сообщений, выбор маршрута передачи сообщения по сети, надежность передачи и т.п.[5][5]

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

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


Монолитные системы

Как ни парадоксально, но в общем случае "структура" монолитной системы представляет собой отсутствие структуры (рисунок 2). Операционная система написана в виде набора процедур, каждая из которых может вызывать другие самостоятельно и когда ей это нужно. При использовании данной техники каждая процедура системы имеет хорошо определенный интерфейс и при необходимости может вызвать любую другую.[6][7]

Рис.2 Монолитная сетевая операционная система

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

Многоуровневые системы

При структуризации от монолитных систем, как правило, переходят к многоуровневым. Уровни состоят из групп функций операционной системы - файловая система, управление процессами и устройствами и т.п. Каждый уровень может взаимодействовать только со своим непосредственным соседом, расположенным уровнем выше или ниже. Прикладные программы или модули самой операционной системы передают запросы вверх и вниз по этим уровням (рисунок 3).[7][8]

Рис. 3 Многоуровневая сетевая операционная система

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

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

Применительно к структурированию операционных систем идея использования взаимодействия клиент-сервер и микроядра состоит в разбиении ее на несколько процессов (серверов), каждый из которых выполняет отдельный набор сервисных функций. Каждый сервер выполняется в пользовательском режиме. Клиент, которым может быть либо другой компонент операционной системы, либо прикладная программа, запрашивает сервис, посылая сообщение на сервер. Ядро операционной системы (микроядро), работает в привилегированном режиме и доставляет сообщение нужному серверу, затем сервер выполняет операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения (рисунок 4).[8][9]


Рис. 4 Модель клиент-сервер

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

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

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

Достоинства и недостатки микроядерного подхода

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

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

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

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

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

Основным недостатком использования микроядерного подхода можно выделить снижение быстродействия на локальных задачах - замедление скорости выполнения системных вызовов при передаче сообщений через микроядро по сравнению с классическим подходом.[10][11]


Объектно-ориентированный подход

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

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

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

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

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

Объектно-ориентированный подход является одной из самых перспективных тенденций в конструировании программного обеспечения.[11][12]

Множественные прикладные среды

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

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

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

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


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

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

1.5 Основные ресурсы и службы сетевой операционной системы

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

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

Сетевая операционная система реализует в этой подсистеме удаленное взаимодействие между процессами и их работу с удаленными ресурсами.

Планирование процессов

При планировании процессов системе необходимо решать следующие задачи:

• выбор процесса из очереди готовых для выполнения

• определение момент времени для смены выполняемого процесса

• переключение контекстов "старого" и "нового" процессов

На сегодняшний день существует большое количество различных алгоритмов планирования процессов и каждый из них решает вышеперечисленные задачи по-разному. Каждый из них обеспечивает различное качество мультипрограммирования и преследует разные цели. Из всего множества алгоритмов можно выделить две основные группы встречающихся наиболее часто алгоритмов: алгоритмы, которые основаны на квантовании и алгоритмы, основанные на приоритетах.[13][14]

В соответствии с алгоритмами, основанными на квантовании, смена активного процесса происходит в случае, если: