Файл: Сетевые операционные системы (Планирование процессов)).pdf

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

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

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

Добавлен: 03.04.2023

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

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

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  1. поддерживать возможность работы на многопроцессорной ЭВМ (с симметричной многопроцессорностью)
  2. быть многозадачной и поддерживать нити в рамках одного процесса.
  3. при необходимости быть многопользовательской.

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

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

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

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

В структуре сетевой операционной системы отдельной ЭВМ выделяют следующие несколько частей (рисунок 1):

  1. Средства управления локальными ресурсами компьютера. Состоит из функций распределения оперативной памяти между процессами, функций планирования и диспетчеризации процессов, управления ресурсами процессоров в мультипроцессорных машинах, управления различными периферийными устройствами и другие функции управления ресурсами локальных операционных систем.
  2. Средства которые предоставляют собственные ресурсы и услуги системы в общее пользование - серверная часть операционной системы. Эти средства обеспечивают блокировку файлов и записей для сохранения их целостности при совместного использования; ведение справочников имен сетевых ресурсов; обработку запросов удаленного доступа к собственной файловой системе и базе данных; управление очередью запросов удаленных пользователей к периферийным устройствам.
  3. Средства запроса, предоставляющие доступ к удаленным ресурсам и услугам и дающие возможности их использования - клиентская часть операционной системы. Данная часть ОС распознает и направляет в сеть запросы к удаленным ресурсам от приложений и пользователей. Учитывая то, что запросы поступают от приложения в локальной форме, а передаются в сеть в форме, соответствующей требованиям сервера. Еще клиентская часть осуществляет прием поступающих от серверов ответов и преобразует их в локальный формат. Таким образом, для приложений выполнение локальных и удаленных запросов неразличимо.
  4. Коммуникационные средства ОС - производят обмен сообщениями между сетевыми операционными системами в сети. Эта часть функционала нужна для обеспечения адресации и буферизации сообщений. Также отвечает за выбор маршрута передачи сообщения по сети, надежность передачи и т.д., таким образом являясь средством транспортировки сообщений.
    1. Архитектура сетевой ОС

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

Монолитная система

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

Рисунок 2. Монолитная система

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

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

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

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

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

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

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


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

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

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

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

  1. Благодаря тому что весь машинно-зависимый код изолирован в микроядро мы получаем высокую степень совместимости и переносимости.
  2. Микроядерный подход дает возможность легко менять специализацию ОС. На ограниченном наборе строго определенных интерфейсов основывается упорядоченный рост и эволюции ОС. Такая система выполняет свои серверные подсистемы в режиме пользователя, как обычные прикладные программы. И это дает нам возможность изменять и добавлять серверы, не влияя на целостность микроядра.
  3. Надежность микроядерной архитектуры намного выше, чем у монолитной. Готовую систему проще тестировать. Ядро выполняется в привилегированном, защищенном режиме и сбой внешних служб, не приводит к краху системы в целом.
  4. Поддержка распределенных и сетевых приложений хорошо вписывается в концепцию микроядра, который основан на горизонтальном разделении служб ОС.
  5. Главным недостатком микроядерного подхода является снижение быстродействия на локальных задачах по сравнению с классическим подходом, в связи с обработкой всех взаимодействий через микроядро.

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

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

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


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

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

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

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

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

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

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

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

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

    1. Основные ресурсы и службы сетевой ОС

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

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


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

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

Процесс планирование процессов представляет собой несколько основных составляющих:

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

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

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

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

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

 процесс завершился и сам покинул систему;

 произошла ошибка;

 процесс перешел в состояние ожидания;

 исчерпан квант процессорного времени, отведенный данному процессу.

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

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

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