Файл: Сетевые операционные системы (Условия, предъявляемые к сетевым ос).pdf

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

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

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

Добавлен: 13.03.2024

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

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

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

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

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

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

Характерным примером такой системы является UNIX. [9,11]

Рис.2 Монолитная сетевая ОС

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

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

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

Хотя такой структурный подход на практике обычно работал неплохо, сегодня он все больше воспринимается монолитным. Когда стало ясно, что операционные системы живут долго и должны иметь возможности развития и расширения, монолитный подход сменился моделью клиент-сервер с тесно связанной с ней концепция микроядра. [9,12]

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

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

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

Одним из представителей микроядерных ОС является ОС PB QNX. В функции ее микроядра входят только диспетчеризация процессов, IPC, обработка прерываний и сетевые сервисы. В такое микроядро заложено небольшое число системных вызовов, и его можно разместить полностью в кэше процессора. К микроядерным архитектурам также относятся MAC ОС X,Symbian OS, Jari OS. [9,14]

Клиент-серверные ОС

Расширяя понятие микроядра, в Microsoft была разработана ОС Windows NT, в которой функции управления процессором были выделены в отдельный модуль для реализации поддержки различных архитектур процессоров. В то же время был разработан единый механизм взаимодействия процессоров пользователя с ядром. При этом в архитектуре Windows NT на ядро ОС возложены все обычные функции, такие как управление памятью, диспетчеризацией, безопасностью, вводом-выводом и межпроцессорными обменами. Кроме ядра NT содержит специальный слой, названный уровнем абстракции от оборудования, который изолирует ядро, драйверы устройств и исполняемую часть NT от аппаратных платформ, на которых должна работать ОС. Такое решение позволяет, не изменяя всего остального программного обеспечения, переходить с одной аппаратной платформы к другой. Более того, заменяя драйвер процессора, можно легко перейти от одно- к многопроцессорной схеме. [9,14-15]


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

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

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

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

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

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

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

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

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

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

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


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

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

Выводы:

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

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

1.1.3 Основные ресурсы и службы сетевой ос

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Память, к которой может иметь доступ СОС может быть локальной, разделяемой, распределенной, для работы со всеми видами памяти в ОС создается менеджер памяти. [2,139]

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

При перемещении слева направо происходит следующее:

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

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

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

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

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

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

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

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

преобразует виртуальные адреса в физические.

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