Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Брой распознанный текст.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.18 Mб
Скачать

2.1. Основные аспекты операционных систем

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

2.1.1. Функции операционной системы

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

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

  • длительного хранения данных и управления ими (внешняя память);

  • выполнения программ пользователей (процессор и оперативная па­мять);

  • использования устройств ввода/вывода, включая устройства для дальней передачи данных (устройства ввода/вывода).

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

  • допустимых пользователях и их правах (управление пользователями);

  • выполняемых в данное время программах (управление процессами);

так и информацию о фактическом внутреннем распределении ресурсов системы, такую как:

« состояние процессора (управление процессором);

  • распределение оперативной памяти (управление оперативной памя­тью) и внешней памяти (управление внешней памятью);

  • конкретизация устройств ввода/вывода (унрааление устройствами).

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

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

Наряду с этим на структуру ОС и ее функции существенное влияние оказывает число пользовательских программ, одновременно обрабаты­ваемых системой, и в связи с этим говорят о режиме работы систем'-;. Если ОС выполняет пользовательские программы строго одну поело другой, т. е. в каждый момент времени в процессе обработки находится только одна программа, то говорят об одно- иди моно- программном ре­жиме работы системы. При этом каждая программа выполняется без ее прерываний в процессе вычислений. Впрочем, этот режим используется только в очень простых ОС, ориентированных на одного пользователя. Из соображений более полного использования ресурсов ВС и одновре­менного обслуживания многих пользователей ОС в большинстве случаев обрабатывают одновременно (параллельно) несколько программ (соответственно, запросов пользователей). Таким образом, если в один и тот же момент времени в процессе выполнения может находиться много программ, то говорят о много- или мульти- программном режиме работы системы.

На эксплуатационную ситуацию ВС существенно влияют вид желае­мого использования ВС и число ее пользователей. В однопользователь­ском режиме ВС используется только одним пользователем. В этом слу­чае достаточно однопрограммного режима работы ВС. Однако если и здесь желательно определенные запросы пользователя выполнять парал­лельно, т. е. наряду друг с другом (типичный пример - печать результатов как фоновый процесс), то однопрограммного режима работы системы уже недостаточно даже в случае одного пользователя. В многопользова­тельском режиме многие пользователи одновременно применяют ВС. Ес­ли к тому же пользователи ведут диалог с ВС, то говорят о системе разде­ления времени (англ. time sharing); в этом случае требуется мультипро­граммный режим работы ВС. При этом программы пользователей (которые считаются упорядоченными и замкнутыми в кольцо) поочеред­но получают определенный квант процессорного времени. Функциони­рование системы разделения времени требует учета готовых к выполне­нию программ, и благодаря этому ОС осушестатяет упра&тение выпол­нением программ.

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

ОС для систем разделения времени, естественно, являются более сложными, чем однопрограммные ОС. Здесь возникают и совершенно Новые требования, как, например, желание иметь системную поддержку Для общения пользователей между собой. Часто многие ВС - как с од­ним, так и с несколькими рабочими местами - объединяют в сеть, так что система разделения времени возникает в форме вычислительной се­ти. При этом объединение в сеть производится так, что на каждой вклю­чаемой в сеть ВС устанавливается (инсталлируется) своя собственная ОС, а затем эти ОС обмениваются сообщениями; иногда для сети ин­сталлируется единая ОС разделения времени, которая выполняет функ­ции ОС одновременно дтя всех объединенных в сеть ВС. В последнем случае части ОС выполняются на разных машинах. Реализация функций ОС осуществляется здесь путем обмена поручениями в форме сообще­ний. Объединение в сети порождает и новые вопросы в связи с аспекта­ми зашиты, сохранности данных и техники коммуникации (обмен сооб- ше ни я ми).

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

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

Таким образом, часть задач, стоящих перед ОС, можно представит:, себе следующим образом. В системе имеется ряд готовых к выполнении* программ (запросов пользователей). Каждая программа имеет в с вое распоряжении определенные, фактически уже выделенные ей ресурс (место памяти, процессор, устройства ввода/вывода и т. д.), и дтя каждой программы (каждого пользователя) определены ограничительные рамки дтя ресурсов, за которые программа не имеет права выходить (например, ограничения на время вычислений или объем занимаемой памяти). Тоги задача ОС состоит в таком распределении ресурсов системы, чтобы все­гда существовал достаточный резерв для возможности удовлетворена поступающих в систему запросов. Эту задачу распределения ресурсов v*.i хотим пояснить на наглядном примере.

Пример (банковский алгоритм). Рассмотрим следующую постановку за.и- чи. Банк имеет п клиентов и с единиц капитала. Каждый клиент i им^ .т свой максимальный размер т, возможного кредита и выданный в на­стоящее время кредит aj. Между клиентами и банком существуют сле­дующие соглашения:

  1. Банк гарантирует каждому клиенту i, что он по своему запросу полу­чает в обшей сложности кредит до гтц единиц капитала (впрочем, в зависимости от обстоятельств, может быть только через определенное время ожидания).

  2. Каждый клиент i гарантирует, что он предусмотренный для него кре­дит в конечное время по частям выберет до заданного размера (< ггц) и затем полностью его вернет.

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

Набросанная здесь схематическая постановка задачи имеет теорети- ко-игровой характер. Ее можно понимать как игру между банком и кли­ентами, в которой банк теряет (проигрывает), если он не может выпол­нить свои обязательства.

Игровая позиция (состояние) банка определяется вектором а = (3|, ..., ап) отдельных сумм, одолженных к заданному времени п клиентам. Положение банка назовем надежным, если банк может выполнить свои обязательства независимо от последовательности отдельных требований клиентов, если только клиенты будут выполнять свои обязательства.

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

    1. max {irij : 1 < i < n} < с .

Если условие (0) справедливо, то начальное положение с а; = 0 для всех i надежно. В противном случае положение банка ненадежно, поскольку существует по меньшей мере один клиент, который может затребовать больше капитала, чем банк вообще его имеет, так что по отношению к этому клиенту банк наверняка не сможет выполнить свои обязательства.

Любое положение а является надежным, если для оставшегося капи­тала г = с - ^aj банка справедливо следующее условие: существует клиент к такой, что справедливы следующие два высказывания:

    1. mk-ak<r,

    2. положение b с Ь^ = а, для i * к и Ь^ = 0 является надежным.

Это определение является рекурсивным. Выводимый отсюда алгоритм всегда завершается, так как на каждом шагу' капитал одного клиента по­лагается равным нулю, так что самое большее за п шагов определение приводит к случаю (0).

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

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

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

Если сначала условие (0) не задано, то определенные клиенты мог не получить оговоренные максимальные кредиты. Если будет нарушен» условие надежности, то может возникнуть "тупиковая" ситуация (аш deadly embrace). Если в таком положении находятся одновременно в. с клиенты при расчете па их максимальные кредиты, то банк не мол. ; удовлетворить пи один из запросов клиентов. Банк не может выдержа > своих обязательств, а тогда клиенты не обязаны возвращать взятые имя ранее суммы до тех пор, пока им не выдадут полностью оговоренш - кредиты, так что не может иметь места никакая деятельность, т.е. во - пикает тупик. Если же банк начинает свою деятельностью в надежном положении (когда, например, имеет место (0) и а^ = 0 для всех i), то вы­держивание условий (1) и (2) ведет всегда снова к надежному полож - нпю - в этом случае надежность положения является инвариантом.

Проблема банкира в упрошенном виде соответствует классической !••»- стнновке задачи управления распределением ресурсов в ОС. При э; л| распределении должно быть обеспечено, чтобы к каждому моменту в. " мепи имелось достаточно свободных ресурсов для удовлетворения s.>>- требностей и запросов, поступающих снова и снова от отдельных поль вателей.Как и в банковском алгоритме, в ОС при каждом запросе пользова­теля на ресурсы должно приниматься решение о том, может ли запрос удоалетворяться немедленно, или он должен быть отложен до тех пор, когда система придет в такое состояние, при котором запрос можно удовлетворить без опасности прийти в тупиковое состояние.

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

  • выделение процессорного времени при оптимальной пропускной способности (с целыо достижения возможно более высокого темпа обработки запросов);

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

  • упрааление устройствами ввода/вывода.

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

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

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