Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Семейства операционных систем.



Часто существует преемственность между различными ОС.

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

На основе такой преемственности можно построить “генеалогические деревья” ОС.

Так, например, можно выделить несколько семейств ныне эксплуатирующихся ОС, а также семейств, которые уже вымерли или вымирают.

Процветают:

· системы для больших компьютеров IBM OS-360, IBM-Vm, OS/2;

· семейство UNIX, в том числе ОС Linux.


Архитектура ОС.

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

1. Ядро – модули, выполняющие основные функции ОС.

2. модули, выполняющие вспомогательные функции.

Модули ядра выполняют:

· управление процессами

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

· управление устройствами ввода-вывода

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

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

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

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

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

Решение о том, является ли какая-либо программа частью ОС или нет, принима­ет производитель ОС.

Вспомогательные модули ОС подразделяются на следующие группы:

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

· системные обрабатывающие программы — текстовые и графические редакторы, компиляторы, компоновщики, отладчики;

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

· библиотеки процедур – упрощают разработку при­ложений (например, библиотека математических функций, функций ввода-вывода и т. п.).

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

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


 
 

 


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

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

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

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

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

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

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

Так, например, на базе четырех уровней, обеспечиваемых процессорами Intel, ОС OS/2 строит трехуровневую систему привилегий, а Windows NT – двухуровневую.

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

Рассмотренная архитектура ОС, основанная на привилегированном ядре и приложениях поль­зовательского режима, стала классической. Ее используют многие известные ОС: UNIX, VMS, OS/390, OS/2, Windows NT.

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

В этом случае обра­щения приложений к ядру осуществляются быстрее, но при этом отсутствует надежная аппаратная защита памяти.


Многослойная структура ОС

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

· нижний слой – образуется аппаратурой;

· промежуточный — ядро;

· верхний слой – модули, реализующие вспомогательные функции.

 
 

 


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

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

 
 

 


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

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

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


Достоинства такой системы организации:

· упрощается разработка системы;

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

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

Например:

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

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

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

· Менеджеры ресурсов. Слой состоит из мощных функциональных модулей, реализующих стратегические задачи по управлению основными ресурсами вычислительной системы. Здесь работают менеджеры (диспетчеры) процессов, ввода-вывода, файловой системы и оперативной памяти. Разбиение на менеджеры может быть различным. например менеджер файловой системы иногда объединяют с менеджером ввода-вывода, а функции управления доступом пользователей к системе в целом и ее отдельным объектам поручают отдельному менеджеру безопасности.

Каждый из менеджеров ведет учет свободных и используемых ресурсов определенного типа и планирует их распределение в соответствии с запросами приложений.

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

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

Приведенное разбиение ядра ОС на слои – достаточно условно. Такое разбиение и распределение функций может быть иным.

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

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

 

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

1. Надежностью. В случае ошибки в программном или аппаратном оборудовании система должна обнаружить ошибку и либо попытаться исправить положения. Либо сообщить об этом пользователю и постараться свести к минимуму ущерб.

2. Защитой. Пользователь не хочет, чтобы другие пользователи (если он, например, работает в сети) ему мешали. Поэтому ОС должна защищать пользователя от воздействия чужих ошибок и от попыток злоумышленного вмешательства.

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

4. Предсказуемостью. Требование, которое пользователь может предъявлять к системе, в большинстве случаев, непредсказуемы. Но пользователь предпочитает, что бы обслуживание не очень сильно менялось в течении продолжительного времени. В частности, ввода программы в машину пользователь должен иметь основанные на предыдущем опыте приблизительное представление о том, когда ему следует ожидать выдачи результатов.

5. Удобством. Все ясно, как и то, что универсальных удобств не существует. Здесь может идти речь об определенном классе задач.

Пару слов о выполняемых функциях:

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

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

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

Внешние устройства. Методы распределения устройств ввода-вывода и каналов связи различны. Задача пользуется периферийным устройством столько времени, сколько ей нужно, а затем отказывается от него. Устройство с быстрым произвольным доступом, такие как, накопители на дисках, можно совместно использовать в нескольких задачах по принципу “операция за операцией”, т.е. нескольким задачам разрешается использовать устройство попеременно. Если, скажем, две задачи попытаются выполнить операцию ввода-вывода на одном устройстве одновременно, то возникают очередь и задержка.

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

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

Эффективное распределение периферийных устройств трудно реализовать по двум причинам:

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

Во-вторых, эффективность стратегии распределения очень трудно измерить.

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

Методы распределения устройств ввода-вывода, контроллеров и каналов сильно зависит от устройств.

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

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

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

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

Супервизор.

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

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

Функции супервизора. Функции супервизора можно грубо разделить на четыре области:

· контроль и управление;

· организация связей;

· защита и ограничения;

· обслуживающие программы;

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

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

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

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

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

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

Супервизор может также организовать систему защиты с помощью специальных “паролей”.

Доступ к защищенным ресурсам разрешается только по соответствующему паролю.

С целью защиты супервизора в некоторых системах существуют два типа режима работы:

· режим супервизора;

· рабочий режим.

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

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

Использование супервизора – это пример построения ОС на принципе централизованного управления.

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

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

У централизованного супервизора есть и существенные недостатки. Так программам не разрешается устанавливать связи друг с другом самостоятельно.

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

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

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

 

 

 

 


В состав микроядра входят

  1. Машинно-зависимые модули;
  2. Модули, выполняющие основные базовые функции ядра по управлению процессами;
  3. Обработка прерываний;
  4. Управлению виртуальной памятью;
  5. Пересылка сообщений и управление вводом-выводом

 

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

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

Для реализации микроядерной архитектуры необходимым условием является наличие в ОС удобного и эффективного способа вызова одного процесса из другого. Поддержка такого механизма – одна из главных задач микроядра.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-07-13; Просмотров: 892; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.059 с.)
Главная | Случайная страница | Обратная связь