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

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

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

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

Добавлен: 04.04.2023

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

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

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

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

• произошла ошибка в ходе выполнения;

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

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

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

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

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

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

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


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

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

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

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

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

Управление памятью

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

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


Рис. 5 Иерархия памяти

Основные типы памяти представлены на рисунке 5. При перемещении сверху вниз происходит следующее:

• снижается стоимость бита;

• возрастает емкость;

• возрастает время доступа;

• снижается частота обращений процессора к памяти.

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

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

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

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

Управление вводом-выводом

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

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

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


Файловая система.

Файловая система локальной операционной системы - часть операционной системы, главной задачей которого является обеспечение пользователя удобным интерфейсом при работе с данными, которые хранятся на диске и обеспечение совместного использования файлов сразу несколькими пользователями и процессами.[18][19]

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

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

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

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

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

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


Основные характеристики:

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

2. Прозрачность. Сетевая файловая система автоматически создает связи между программными и аппаратными компонентами, которые обеспечивают пользователю доступ к различным сетевым ресурсам. При этом сетевая файловая система не требует от пользователя знать где эти ресурсы физически расположены. Даже в случае изменения сетевого адреса или места расположения ресурса, пользователь легко сможет получить к нему доступ, обращаясь к сетевому ресурсу по имени.[20][21]

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

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

Выводы:

  • Операционная система - это комплекс взаимосвязанных программ, задачей которого является повышение эффективности аппаратной части компьютера путем рационального управления его ресурсами и их распределения, а также обеспечение удобства пользователя за счет предоставления ему расширенной виртуальной машины.
  • К числу основных ресурсов, управление которыми осуществляет операционная система, относятся процессоры, основная память, диски, наборы данных, таймеры, накопители на магнитных лентах, принтеры, сетевые устройства и некоторые другие. Ресурсы распределяются между процессами. Для решения задач управления ресурсами разные операционные системы используют различные алгоритмы.
  • Наиболее важными являются подсистемы управления процессами, памятью, управления файлами и внешними устройствами, а также подсистемы пользовательского интерфейса, защиты данных и администрирования.
  • Прикладному программисту возможности операционной системы доступны в виде набора функций, составляющих интерфейс прикладного программирования (API - Application Programming Interface).
  • Термин «сетевая операционная система» используется в двух смыслах: как совокупность операционных систем всех компьютеров сети и как операционная система отдельного компьютера.
  • К основным функциональным компонентам сетевой операционной системы относятся средства управления локальными ресурсами и сетевые средства. Сетевые средства можно разделить на три группы: средства предоставления локальных ресурсов и услуг в общее пользование (серверная часть операционной системы), средства запроса доступа к удаленным ресурсам и услугам (клиентская часть операционной системы или редиректор) и транспортные средства операционной системы (совместно с коммуникационной системой обеспечивают передачу сообщений между узлами сети).
  • Совокупность серверной и клиентской частей, предоставляющих доступ к конкретному типу ресурса компьютера через сеть, называется сетевой службой. Сетевая служба предоставляет пользователям сети набор услуг - сетевой сервис. Каждая служба связана с определенным типом сетевых ресурсов и/или определенным способом доступа к этим ресурсам. Сетевые службы могут быть либо встроены в операционную систему, либо реализованы в виде программной оболочки.
  • В зависимости от того, как распределены функции между компьютерами сети, они могут выступать в трех разных ролях. Выделенный сервер - занимается исключительно обслуживанием запросов других узлов сети. Клиентский узел – обращается с запросами к ресурсам других узлов. Одноранговым же узлом называют компьютер, который совмещает функции сервер и клиента.
  • Одноранговые сети состоят только из одноранговых узлов. При этом все компьютеры в сети имеют потенциально равные возможности. Одноранговые операционные системы одновременно включают в себя как серверные, так и клиентские компоненты сетевых служб. Одноранговые сети значительно проще в организации и эксплуатации.
  • В сетях с выделенными серверами используются специальные варианты сетевых операционных систем, оптимизированные для роли либо в роли серверов, либо клиентов. Для серверных операционных систем характерна поддержка мощных аппаратных платформ, в том числе мультипроцессорных, широкий набор сетевых служб, поддержка большого числа одновременно выполняемых процессов и сетевых соединений, наличие развитых средств защиты и централизованного администрирования сети. Клиентские операционные системы, являясь более простыми, в свою очередь призваны обеспечивать удобный пользовательский интерфейс и набор редиректоров, позволяющий получать доступ к разнообразным сетевым ресурсам.
  • В число требований, предъявляемых сегодня к сетевым операционным системам, входят: функциональная полнота и эффективность управления ресурсами, модульность и расширяемость, переносимость и многоплатформенность, совместимость на уровне приложений и пользовательских интерфейсов, надежность и отказоустойчивость, безопасность и производительность.