Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Лекция 1. Введение в сетевые ОС
Современная информационно-вычислительная система (ИВС) является сложным многоуровневым комплексом взаимодействующих аппаратных и программных компонентов (рис. 1.1).

Аппаратные компоненты представлены тремя нижними уровнями:
1) физических устройств (представляет аппаратуру ИВС, состоящую из интегральных микросхем, проводников, механических устройств и т. п.). Он целиком находится в области компетенции специалиста по электронике;
2) микроархитектуры (рассматривает аппаратные компоненты ИВС, которые выступают в роли функциональных единиц, акцентируя внимание не на внутренней архитектуре и способе построения, а на выполняемых ими задачах и взаимосвязи с другими компонентами). В качестве примера можно привести внутренние регистры процессора, арифметико-логическое устройство;
3) машинного языка (набор команд, используемый процессором, обычно состоит из 50-300 команд, предназначенных преимущественно для перемещения данных по компьютеру, выполнения арифметических операций и операций сравнения).
Программные компоненты ИВС представлены верхними тремя уровнями, которые можно разбить на два подуровня (системное ПО и прикладное ПО):
1) прикладных программ (прикладное ПО), т. е. приложениями, востребованными с точки зрения пользователей: текстовыми редакторами, СУБД, Интернет-приложениями и т. п.;
2) средств разработки ПО (системное ПО), т. е. компиляторами, интерпретаторами, отладчиками и текстовыми редакторами исходных текстов;
3) операционной системы (системное ПО), являющимся посредником между АО и прикладным ПО и играющим важную роль экрана между разработчиком прикладного ПО и тонкостями функционирования АО. Его особенностью является то, что ПО, работающее на этом уровне, запускается в привилегированном режиме и защищено от вмешательства пользователя с помощью аппаратных средств. ПО, работающее на уровнях прикладных программ и средств разработки, функционирует только в пользовательском режиме.
Можно выделить две основные функции ОС:
· управление ресурсами, которое включает такие задачи, как планирование ресурса (определение, какому процессу, когда и в каком количестве следует выделить данный ресурс), удовлетворение запросов на ресурсы, мониторинг ресурса (поддержание оперативной информации о том, занят или свободен ресурс и какая доля уже распределена), разрешение конфликтующих запросов;
· функционирование в роли виртуальной машины (предоставление доступа к аппаратуре ИВС как к набору виртуальных устройств, скрывая специфику их функционирования, а также реализация для этого механизмов защиты).
Следует заметить, что в данном контексте ресурс может быть как программным, так и аппаратным. К числу аппаратных ресурсов можно отнести процессор (процессорное время), оперативную память, дисковое пространство, внешние устройства, к программным ресурсам - трансляторы, компоновщики, средства программного управления внешними устройствами, библиотеки системных и прикладных программ, базы данных и т. п.
Запросы на доступ к ресурсам поступают со стороны процессов. Процессом (задачей) является последовательность действий, предписанных программой или ее логически законченной частью, а также данные, используемые при этом (является минимальной единицей работы, для которой выделяются ресурсы).
В дальнейшем под термином операционная система мы будем понимать комплекс программ, обеспечивающий управление ресурсами ИВС как виртуальной машины, а также управление процессами, использующими эти ресурсы.
Поскольку операционная система выступает в роли менеджера ресурсов, то в ней должен быть реализован и интерфейс взаимодействия, с помощью которого пользователи или процессы могут обращаться с запросами. Поэтому обязательной чертой ОС является наличие:
· пользовательского интерфейса, т. е. командного языка (символьного или графического) для управления функционированием системы и набора сервисных услуг, освобождающих пользователя от выполнения рутинных операций;
· программного интерфейса, т. е. набора услуг, позволяющих программисту обходиться без кодирования рутинных операций.
Со времени своего появления ОС прошли долгий путь эволюции от простейших однопользовательских однозадачных систем до современных многопользовательских многозадачных ОС. Для упрощения рассмотрения различных представителей ОС в дальнейшем следует провести их классификацию. Возможна следующая классификация ОС.
1. По количеству пользователей, одновременно обслуживаемых системой, – однопользовательские и многопользовательские. В однопользовательской системе все функциональные устройства компьютера находятся в полном распоряжении одного пользователя. Многопользовательская система включает компьютер без основных средств интерфейса, предназначенных для обслуживания многих пользователей, и набор терминалов, обеспечивающих взаимодействие пользователей с этим компьютером. Как правило, в состав терминала входят монитор, клавиатура и «мышь», а в современных системах – еще и мини-компьютер с процессором и памятью для поддержки графического пользовательского интерфейса.
2. По числу процессов, которые могут одновременно выполняться под управлением ОС, – однозадачные и многозадачные. Однозадачная ОС позволяет одновременно присутствовать в памяти только одному процессу, и все ресурсы находятся в его эксклюзивном пользовании. Если ОС поддерживает возможность одновременного выполнения нескольких различных программ, но без разбиения программы на ряд подзадач, то можно говорить о мультипрограммной ОС. Мультипрограммность представляет собой простейшую форму многозадачности. Полностью реализованным многозадачный режим считается тогда, когда существует возможность разбиения каждой из программ на задачи, что требует наличия в составе ОС средств для взаимодействия и синхронизации процессов, и в данном случае можно говорить о многозадачности ОС.
Для поддержки различных режимов работы вычислительных систем существуют следующие типы ОС: однопользовательские однозадачные, однопользовательские многозадачные, многопользовательские многозадачные.
3. По дисциплине обслуживания – системы с вытесняющим или согласующим режимом. Дисциплина обслуживания является важным показателем для многопользовательских многозадачных ОС, т. к. определяет порядок смены процессов на процессоре ИВС. В случае вытесняющей многозадачности выделением задачам процессорного времени занимается исключительно ОС. В случае согласующей (кооперативной) многозадачности каждая задача, получившая управление, сама определяет, когда ей отдать процессор другой задаче (в целом, режим более эффективный, т. к. позволяет задаче самой выбирать удобный и безопасный момент своего прерывания, однако она должна отказаться при этом от монопольного использования процессора).
4. По типу доступа пользователя – системы с пакетной обработкой, системы разделения времени, системы реального времени. Специфика систем с пакетной обработкой заключается в том, что они ориентированы на обработку больших объемов данных, и среди процессов ОС отсутствуют интерактивные (т. е. пользователь как элемент ИВС исключен). Данное допущение позволяет оптимизировать работу планировщика задач на переключение контекстов в наиболее подходящие для этого моменты, а не тогда, когда это необходимо пользователю.
Основной задачей интерактивных систем является организация взаимодействия с пользователем и выполнение его запросов. Специфика в данном случае заключается в том, что оптимизируется не столько эффективность вычислительного процесса, сколько скорость реакции на действия пользователя.
В случае систем реального времени приходится говорить о планировании выполнения процессов в условиях периодического поступления внешних воздействий. При этом моменты наступления таких событий и время реакции на них известны. Планировщику необходимо организовать переключение процессов таким образом, чтобы не нарушить временные рамки. Среди систем реального времени можно выделить системы с жесткими требованиями (нарушение временных лимитов не допустимо в принципе) и системы с мягкими требованиями (нарушение нежелательно, но не смертельно).
5. По типу средств вычислительной техники, для управления ресурсами которых предназначены однопроцессорные, многопроцессорные, сетевые, распределенные ОС. Многопроцессорные системы отличаются от однопроцессорных ОС тем, что нуждаются в синхронизации при одновременном доступе к данным в памяти, расширенными средствами синхронизации процессов, а также управления транзакциями.
Сетевые и распределённые системы в отличие от автономных должны дополнительно эффективно организовывать вычисления в сети и разделять ресурсы между множеством выполняемых в сети процессов.
Поскольку предметом изучения курса являются сетевые операционные системы и их функционирование в IP-сетях, то необходимо определить понятие компьютерной сети.
Компьютерная сеть – это набор компьютеров, связанных коммуникационной системой и снабженных соответствующим ПО, позволяющим пользователям получать доступ к ресурсам этого набора компьютеров.
В настоящее время существует множество стандартов построения компьютерных сетей. Так, например, можно говорить о технологиях локальных (множество взаимодействующих компьютеров территориально сгруппировано в одном месте), глобальных (взаимодействующие компьютеры удалены друг от друга на значительные расстояния и связаны глобальными линиями передачи данных) и городских (занимают промежуточное положение между локальными и глобальными) сетей. Для всех из них де-факто стандартным стало применение стека протоколов TCP/IP, основанного на IP-протоколе (ненадёжный маршрутизируемый межсетевой протокол передачи данных), поэтому можно говорить о таком виде сетей, как IP-сети.
Все формы сетевого взаимодействия так или иначе основываются на понятии «клиент-серверной архитектуры». Клиентом является сторона, обращающаяся с запросом, сервером - сторона, удовлетворяющая запрос. Клиент выполняет следующие функции: обеспечивает интерфейс пользователя (причем для различных служб он может быть разным), формирует запросы, отображает данные, полученные с сервера, в необходимой форме. Сервер выполняет запросы клиентов, хранение и управление данными.
Сетевая ОС осуществляет задачу поддержки сетевой деятельности. Она выполняет следующие функции:
· связывает все компьютеры и периферийные устройства в единую вычислительную систему, делая их ресурсы доступными через сеть;
· обеспечивает безопасность, контролируя доступ к сетевым ресурсам;
· осуществляет администрирование сети.
Сетевая ОС характеризуется тем, что предоставляет пользователю некоторую виртуальную ИВС, работать с которой гораздо проще, нежели с реальной сетевой аппаратурой. При этом пользователь сетевой ОС всегда помнит о том, что имеет дело с сетевыми ресурсами и для доступа к ним необходимо выполнить определенные особые операции.
Направлением развития сетевых ОС является достижение как можно более высокой степени «прозрачности» сетевых ресурсов. В идеальном случае сетевая ОС должна представить пользователю их в виде ресурсов единой централизованной виртуальной машины. Такую систему можно назвать истинно распределенной ОС.
ПО сетевой ОС состоит из двух важных компонентов: клиентской и серверной частей ОС. Совокупность серверной и клиентской частей ОС, предоставляющих доступ к конкретному типу ресурса вычислительной системы через сеть, называется сетевой службой. Она дает возможность пользователям иметь некоторый набор услуг, называемый также сетевым сервисом.
Основой клиентского ПО является редиректор, в задачу которого входит перехват запросов пользователя. В зависимости от результатов анализа, запрос либо передается на локальную шину компьютера, либо направляется через сеть серверу. Основой серверного ПО является одноименный компонент, задача которого - обработка поступающих запросов.
На практике сложилось несколько подходов к построению сетевых операционных систем, различающихся глубиной внедрения сетевых служб в операционную систему (рис. 1.2 - 1.4).


Рис. 1.2. Сетевые службы глубоко встроены в ОС

![]()
Рис. 1.3. Сетевые службы объединены в виде некоторого набора - оболочки

![]()
Рис. 1.4. Сетевые службы производятся и поставляются в виде отдельного ПО.
В зависимости от того как распределены задачи между рабочими станциями сети, они могут выступать в трех ролях:
· рабочая станция, занятая исключительно обслуживанием запросов, играет роль выделенного сервера сети;
· рабочая станция, обращающаяся с запросами к ресурсам другой машины, исполняет роль клиентского узла;
· рабочая станция, совмещающая функции клиента и сервера, является одноранговым узлом.
IP-сети могут быть построены по одной из схем:
· одноранговая сеть – в этом случае на все компьютеры устанавливается ОС, которая предоставляет всем потенциально равные возможности (такая ОС называется одноранговой);
· сеть с выделенными серверами – в данном случае существует дифференциация между узлами по типу используемой ОС. На сервер устанавливается специализированная (серверная) ОС, лучше приспособленная для эффективной обработки интенсивно поступающих запросов. Клиенты же получают клиентскую версию ОС, из которой удалена серверная часть, что значительно упрощает их организацию и позволяет уделить большее внимание пользовательскому интерфейсу и клиентским частям сетевых служб.
Лекция 2. Структура ОС
Под структурой ОС понимают набор составляющих ее программных модулей, а также связи и способы взаимодействия между ними.
Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые платформы. Какой-либо единой структуры ОС нет, но существуют универсальные подходы к структурированию. Далее будут рассмотрены пять различных использующихся (или использовавшихся ранее) структур: монолитные системы, многоуровневые системы, виртуальные машины, экзоядро и модель «клиент - сервер».
Первые ОС и системы для персональных компьютеров были монолитными, т. е. неструктурированными. Они работали без разделения на привилегированный и непривилегированный коды и допускали произвольные вызовы процедур, операции чтения и записи. Тем не менее и в такой неструктурированной системе возможно разделение всех ее модулей на две группы:
· выполняющие основные функции ОС (управление процессами, памятью, устройствами ввода-вывода и т. п.);
· выполняющие вспомогательные функции ОС.
Вспомогательные модули ОС обычно подразделяются на следующие группы:
· утилиты – программы, решающие отдельные задачи администрирования;
· системные обрабатывающие программы – текстовые или графические редакторы, компиляторы, компоновщики, отладчики;
· программы предоставления пользователю дополнительных услуг – специальные варианты UI, калькулятор, игры и т. п.;
· библиотеки процедур, упрощающие разработку приложений, например библиотека математических функций, функций ввода-вывода и т. п.
Для обеспечения высокой скорости работы модули, выполняющие основные функции ОС, постоянно находятся в оперативной памяти, т. е. являются резидентными, а вспомогательные модули загружаются по мере необходимости, т. е. выступают транзитными.
Для надежного управления ходом выполнения приложений ОС должна иметь по отношению к ним определенные привилегии, обеспечить которые невозможно без специальных средств аппаратной поддержки. АО должно поддерживать как минимум два режима работы – пользовательский и привилегированный (называемый также режимом ядра или режимом супервизора). Часть ОС, работающая в привилегированном режиме, является ядром. Приложения ставятся в подчиненное состояние за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных с переключением процессора с задачи на задачу, управлением вводом-выводом и т. д. Доступ к памяти разрешается, если обращение идет к области, выделенной приложению, и запрещается при обращении к областям, занимаемым ОС или другими приложениями. Каждое приложение работает в своем адресном пространстве.
Повышение устойчивости ОС, обеспечиваемое перенесением основных функций ОС в ядро, работающее в привилегированном режиме, достигается за счет замедления выполнения системных вызовов. Системный вызов ядра инициирует переключение режимов работы процессора, а при возврате происходит обратное переключение. Во всех типах процессоров из-за дополнительной задержки переключения системное обращение к привилегированному ядру выполняется медленнее (рис. 2.1).


Рис. 2.1. Системное обращение к привилегированному ядру
Вычислительную систему, работающую под управлением ОС на основе ядра, можно рассматривать как систему, состоящую из трех иерархически расположенных слоев: нижний слой образует аппаратура, промежуточный – ядро, а утилиты, обрабатывающие программы и приложения, составляют верхний системный слой. Поскольку ядро представляет собой сложный многофункциональный комплекс, то следующим шагом является структурирование и самого ядра.
Результатом структуризации монолитной операционной системы при АО, позволяющем реализовать несколько режимов работы, явилась модель многоуровневой ОС. В подобной ОС функции системы разделяются на отдельные слои. Каждый слой, или уровень, иерархии системы создает уровень абстракции для вышележащих слоев. Он пользуется сервисами, предоставляемыми нижними слоями, и сам обеспечивает сервисами вышележащие слои. Строгие правила касаются только взаимодействия между слоями системы, а между модулями внутри слоя связи могут быть произвольными. Преимущество данного подхода заключается в том, что изменение любого слоя не затрагивает уровни, находящиеся под ним. Идея была реализована в экспериментальных системах THE [1968], Venus [1972].
Такую структуру принято изображать в виде системы концентрических окружностей, иллюстрируя тот факт, что каждый слой может взаимодействовать только со смежными. Структура уровня АО и системного уровня ПО ИВС представлена на рис 2.2.


Рис. 2.2. Структура аппаратного и системного уровней ИВС
АО ИВС на данном рисунке представлено двумя нижними уровнями: аппаратуры и средств аппаратной поддержки ОС. В отдельный слой средств аппаратной поддержки от слоя аппаратуры выделяются те компоненты, которые прямо участвуют в организации вычислительного процесса (поддержка привилегированного режима, система прерываний, переключение контекстов процессов, защита областей памяти и т. д.).
Верхние четыре уровня формируют ядро. Слой машинно-зависимых компонентов ОС составляют программные модули, в которых отражена специфика аппаратной платформы компьютера (разрядность, архитектурные особенности процессора, набор команд и т. п.). В идеале этот слой полностью экранирует вышележащие слои от особенностей аппаратуры.
Слой базовых механизмов ядра обеспечивает наиболее примитивные операции, такие как программное переключение контекстов процессов, диспетчеризацию прерываний, перемещение страниц из памяти на диск и обратно. Модули данного слоя не принимают решений о распределении ресурсов, а только выполняют решения, принятые на вышележащих уровнях.
Слой менеджеров ресурсов состоит из модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы, таких как менеджеры процессов, ввода-вывода, файловой системы, оперативной памяти и т. п.
Слой интерфейса системных вызовов обеспечивает непосредственное взаимодействие приложений и системных утилит с ядром и доступ к ресурсам, образуя прикладной интерфейс ОС.
Следует отметить, что разбиение на подобные уровни достаточно условно. Некоторые слои могут объединяться в один (например, слой аппаратно-зависимых компонентов и базовых механизмов, базовые механизмы и менеджеры ресурсов) или распадаться на несколько подслоев (например, менеджер ввода-вывода на нижний слой драйверов дисков и сетевых адаптеров и верхний слой драйверов файловых систем и протоколов сетевых служб). В ряде случаев для ускорения работы ядра происходит также обращение с верхних слоев напрямую к функциям нижних (например, со слоя системных вызовов напрямую к базовым механизмам ядра). Выбор количества слоев – компромисс между расширяемостью и логичностью системы и замедлением работы.
Необходимость организации работы на распределенном АО и улучшение расширяемости и переносимости ОС обусловили следующий шаг в эволюции ее структуры – появление клиент-серверной ОС. Особенностью данной структуры является то, что существенная часть модулей ядра переносится из привилегированного режима в пользовательский и функционирует в качестве автономных серверов. Получая запрос на операцию, клиентский процесс посылает запрос серверному, который его обрабатывает и высылает ответ. Все серверы работают как процессы в режиме пользователя (а не в режиме ядра) и не имеют прямого доступа к оборудованию. В задачу ядра входит главным образом только управление связью между клиентом и сервером (рис. 2.3).


Рис. 2.3. Различия между многоуровневой и клиент-серверной ОС
В том случае если набор функций ядра сделан минимально возможным (по схеме на рис. 2.2 это уровни аппаратно-зависимых модулей и базовых механизмов ядра), а все остальные функции перенесены в пользовательский режим, то следует говорить о легковесном ядре или микроядре. Соответствующая ОС называется ОС на основе микроядра.
Клиент-серверный (микроядерный) подход к построению ОС обладает своими достоинствами и недостатками. Главными достоинствами являются:
· расширяемость (простое добавление/удаление компонентов);
· облегченная конфигурируемость;
· надежность (серверы не могут повлиять друг на друга и не имеют доступа к аппаратуре и данным ядра);
· поддержка распределенных вычислений, так как используются механизмы обмена сообщениями, идентичные сетевым.
Основным недостатком клиент-серверной ОС является ее пониженная (по отношению к многоуровневой) производительность, так как при передаче сообщения необходимо переключать режимы работы процессора четыре раза вместо двух (рис. 2.4).


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


Рис. 2.5. Структура ОС виртуальной машины
ОС, построенная по принципу экзоядра, отличается от виртуальной машины тем, что каждый пользователь обеспечивается абсолютной копией реального компьютера, но с доступом только к подмножеству ресурсов (например, одна виртуальная машина получает доступ к блокам диска с номерами от 0 до 1023, другая - от 1024 до 2047 и т. д.). На нижнем уровне в режиме ядра работает программа, которая называется экзоядро (exokernel). В ее задачу входит распределение ресурсов для виртуальных машин и последующая проверка их использования (отслеживание попыток использовать чужой ресурс). Преимущество этой программы заключается в том, что она позволяет обойтись без карт отображения ресурсов. При других методах работы каждая виртуальная машина считает, что она использует свой собственный диск с нумерацией блоков от 0 до некоторого максимума. Поэтому монитор виртуальной машины должен поддерживать таблицы преобразования адресов на диске (и всех других ресурсов). Необходимость преобразования отпадает при наличии экзоядра, которому нужно только хранить запись о том, какой виртуальной машине выделен данный ресурс. Такой подход имеет еще одно преимущество: он отделяет многозадачность (в экзоядре) от операционной системы пользователя (в пространстве пользователя) с меньшими затратами, так как для этого ему необходимо всего лишь не допускать вмешательства одной виртуальной машины в работу другой.
Из перечисленных структур монолитные ОС представляют скорее исторический интерес, так как заложенные в них принципы либо устарели, либо были усовершенствованы в многоуровневых и клиент-серверных ОС. Виртуальные машины и ОС на основе экзоядра представляют скорее энциклопедический интерес, так как область их применения достаточно узка, и они мало распространены. Наиболее распространенными на данном этапе являются многоуровневые и клиент-серверные ОС, и для них существенно важной (и также влияющей на структуру) является проблема совместимости.
Под совместимостью будем понимать возможность ОС выполнять приложения, написанные для других ОС. Необходимо различать совместимость на двоичном уровне и на уровне исходных текстов. Совместимость на уровне исходных текстов требует наличия соответствующего компилятора в составе ПО компьютера, на котором предполагается использование приложения, а также совместимость на уровне библиотек и системных вызовов. Для конечного пользователя основное значение имеет двоичная совместимость. Она зависит от многих факторов, самый главный из которых – архитектура процессора, на котором работает ОС. Если процессор использует тот же набор команд и тот же диапазон адресов, то двоичная совместимость может быть достигнута достаточно легко. Для этого потребуется выполнение следующих условий:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


