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

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

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

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

Добавлен: 28.04.2023

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

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

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

Структура доменов (англ. Domain) - используется в сетевых операционных системах LANServer и LANManager. Все ресурсы и пользователи сети объединены в группы. Домен можно рассматривать как аналог таблиц объектов, но в этом случае таблица является общей для нескольких серверов. Ресурсы серверов являются общими для всего домена. Чтобы получить доступ к ресурсам сети, пользователю достаточно зарегистрироваться в домене. Однако, как и в случае с таблицами объектов, при использовании этого подхода к сети с несколькими доменами возникают проблемы с организацией взаимодействия и управления, т.к. необходимо определять ресурсы, список пользователей и их права доступа для каждого домена отдельно [16].

Служба доменных имен (англ. Domain Name System, DNS) лишена этих недостатков. Все ресурсы сети: сетевая печать, хранение данных, пользователи, серверы и т.п. рассматриваются как отдельные каталоги системы. Таблицы, определяющие DNS, находятся на каждом сервере. Это повышает надежность системы и упрощает обращение пользователя к ресурсам сети. Зарегистрировавшись на одном сервере, пользователь получает доступ ко всем ресурсам сети. Управление такой системой проще, чем при использовании доменов, т.к. все ресурсы сети определяются при помощи одной таблицы [3].

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

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


Важнейшей функцией сетевой операционной системы является организация рационального использования всех аппаратных и программных ресурсов системы. К основным ресурсам можно отнести: процессоры, память (виртуальная память), внешние устройства [6].

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

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

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

Согласно алгоритмам, основанным на квантовании, изменение активного процесса происходит, если [3]:

  • процесс завершен и покинул систему;
  • произошла ошибка;
  • процесс перешел в состояние ожидания;
  • квант процессорного времени, выделенного на этот процесс, исчерпан.

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

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


Существует два вида алгоритмов приоритета: алгоритмы, использующие относительные приоритеты, и алгоритмы, использующие абсолютные приоритеты [26].

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

Во многих операционных системах алгоритмы планирования строятся с использованием как квантования, так и приоритетов. Например, планирование основано на квантовании, но размер кванта и / или порядок выбора процесса из готовой очереди определяются приоритетами процессов [2].

Существует два основных типа процедур планирования процессов - вытесняющие и невытесняющие.

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

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

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

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


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

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

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

Виртуальная память - это совокупность программно-аппаратных средств, позволяющих пользователям писать программы, Код и объем данных которых превышает объем доступной оперативной памяти; для этого виртуальная память решает следующие задачи [11]:

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

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

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

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

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


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

Современная файловая система имеет многоуровневую структуру, на верхнем уровне которой находится так называемый коммутатор файловых систем (в Windows, например, этот коммутатор называется installable file system Manager - installable filesystem manager, IFS) [29]. Он обеспечивает интерфейс между запросами приложения и конкретной файловой системой, к которой обращается приложение. Переключатель файловой системы преобразует запросы в формат, воспринимаемый уровнем файловой системы [6].

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

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

Также распределенная файловая система должна обеспечивать безопасность и надежность не только при хранении, но и при передаче данных. База данных NFS - это многоуровневая объектная база данных, которая поддерживает информацию о ресурсах для всех серверов в сети [18].

Распределение заключается в том, что информация не хранится на одном сервере, а разделена на части, называемые разделами.

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