Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль2.docx
Скачиваний:
175
Добавлен:
04.06.2015
Размер:
973.92 Кб
Скачать

8.Требования предъявляемые к ос. Ресурсы и их распределение в операционной системе.

Требования предъявляемые к ОС.

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

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

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

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

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

  • Безопасность. ОС должна обладать средствами защиты ресурсов одних пользователей от других. Правила безопасности определяют такие свойства, как защита ресурсов одного пользователя от других и установление квот по ресурсам для предотвращения захвата одним пользователем всех системных ресурсов (таких как память).Иерархия уровней безопасности помечает низший уровень безопасности как D, а высший - как А:

  1. В класс D попадают системы, оценка которых выявила их несоответствие требованиям всех других классов;

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

  3. Системы уровня В, в отличие от уровня С, защищает систему от ошибочного поведения пользователя;

  4. Уровень А является самым высоким уровнем безопасности, он требует в дополнение ко всем требованиям уровня В выполнения формального, математически обоснованного доказательства соответствия системы требованиям безопасности.

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

Ресурсы и их распределение в операционной системе.

Ресурс – это продолжительность использования какого-то объекта или объём работы, выполненной объектом до момента достижения им некого предельного состояния, при котором дальнейшее использование объекта нежелательно или невозможно;

Системные ресурсы – совокупность аппаратных ресурсов и системных сервисов. Основными потребителями системных ресурсов являются процессы, выполняемые в системе.

Свойства и классификация ресурсов

1) по реальности существования

  • физический – реально существует, обладает всеми физ. свойствами;

  • виртуальный – представляет модель физического и реализуется программным путём;

3) по степени активности

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

  • пассивный (память);

4) по времени существования

  • временный (появляется и уничтожается);

  • постоянный – существует после процесса;

5) по степени важности

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

  • второстепенный;

7) по структуре

  • составные – могут быть в нескольких состояниях (свободен – частично занят - занят);

  • простые (свободен - занят);

9) характер использования

  • параллельно - используются несколькими процессами одновременно (память);

  • последовательно (запрос  исполнение  освобождение);

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

  • планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;

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

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

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

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

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

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

Ресурс - объекты предоставления доступа. Ими может быть аппаратное устройство или часть информации.

Обнаружение и устранение взаимоблокировок

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

Избежание взаимоблокировки

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

Предотвращение взаимоблокировок

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

Атака условия взаимного исключения

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

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

Атака условия удержания и ожидания

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

Атака условия отсутствия принудительной выгрузки ресурса

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

Атака условия циклического ожидания

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