Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТОИ 17-32.docx
Скачиваний:
12
Добавлен:
25.09.2019
Размер:
57.84 Кб
Скачать
  1. Определите понятие ресурса. Дайте классификацию ресурсов. Какие проблемы связаны с разделением ресурсов процессами?

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

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

Основными критериями классификации являются:

  1. по “реальности существования”;

  2. по возможности расширения свойств (возможности виртуализации);

  3. по структурному признаку;

  4. по характеру использования (возможности повторного использования);

  5. по допустимой схеме использования;

  6. по “степени активности”;

  7. по времени существования;

  8. по “степени важности”;

  9. по форме реализации.

  1. Реальность существования” отражает факт разделения ресурсов на физические (реальные) и виртуальные.

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

  3. Структурный признак устанавливает наличие или отсутствие у ресурса некой структуры, определенной внутренней организации.

Ресурс является простым (или единичным), если не содержит составных элементов и рассматривается при распределении как единое целое, то есть он неделим.

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

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

  1. По возможности повторного использования

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

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

Примеры: Примерами повторно используемых ресурсов являются оперативная память и процессор (и все аппаратные ресурсы), файлы, из которых считывается информация и т.п.

Потребляемым ресурсом является, например, сообщение, передаваемое одним процессом другому.

  1. по времени существования ресурсы также можно классифицировать: существуют временные и постоянные ресурсы.

  2. Ресурсы различаются также схемами использования.

Параллельная схема предполагает параллельное (то есть одновременное) использование одного ресурса или одних и тех же единиц ресурса несколькими процессами.

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

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

Примеры:

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

  1. По степени активности различают активные и пассивные ресурсы.

  2. По степени важности различают главные и второстепенные ресурсы.

  3. По форме реализации различают “твердые” и “мягкие” ресурсы.

Проблемы:

  1. Проблема синхронизации

Проблема реализации взаимного исключения возникает при разделении данных несколькими процессами.(стр46)

Пример: «писатель-читатель»

  1. Проблема тупика

  1. Сформулируйте проблему взаимного исключения.

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

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

Рассмотрим пример. В ВС существует несколько процессов P1, P2, ... , Pn, каждый из которых увеличивает значение разделяемой (общей) переменной C. Таким образом, в каждой из выполняющихся программ должны быть операторы вида C := C + 1.

Причем для выполнения этого оператора процесс должен прочитать текущее значение переменной C (обозначим оператор чтения read(C)) и сохранить новое значение этой переменной после увеличения (обозначим операцию записи write(C)). Следовательно, увеличение значения счетчика C выполняется с помощью последовательности из трех (как минимум) операций: чтения текущего значения переменной, увеличения значения этой переменной на 1 и сохранения увеличенного значения:

read(C);

inc(C);

write(C).

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

Порядок выполнения операций процессами

Процесс

1

2

3

4

Pi

read(C)

inc(C)

write(C)

...

Pj

...

read(C)

inc(C)

write(C)

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