Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
У. Столлингс ГЛАВА 5 Многопроцессорные вычислен...doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
2.98 Mб
Скачать

5.8. Резюме, ключевые термины и контрольные вопросы

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

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

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

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

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

Ключевые термины

Бинарный семафор Монитор Пережидание занятости

Блокирующие операции Неблокирующие операции Семафор

Взаимоблокировка Параллельные вычисления Сильный семафор

Взаимоисключение Параллельные процессы Слабый семафор

Голодание Передача сообщений Сопрограммы

Контрольные вопросы

  1. Перечислите основные проблемы, связанные с концепцией параллельных вычислений.

  2. Каковы три различных контекста, в которых проявляются параллельные вычисления?

  3. Каковы основные требования к выполнению параллельных процессов?

  4. Перечислите три степени осведомленности процесса о наличии других процессов и вкратце опишите их.

  5. В чем основное различие между конкурирующими и сотрудничающими процессами?

  6. Перечислите основные проблемы, связанные с конкуренцией процессов, и вкратце опишите их.

  7. Перечислите требования к взаимоисключениям.

  8. Какие операции могут выполняться над семафорами?

  9. В чем различие между бинарными и обобщенными семафорами?

  1. В чем различие между сильными и слабыми семафорами?

  2. Что такое монитор?

  3. В чем состоит различие между блокирующими и неблокирующими операциями в системе передачи сообщений?

  4. Какие условия обычно связаны с задачей читателей/писателей?