Главная » Просмотр файлов » Ю. Вахалия - UNIX изнутри (2003)

Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 69

Файл №1114670 Ю. Вахалия - UNIX изнутри (2003) (Ю. Вахалия - UNIX изнутри (2003)) 69 страницаЮ. Вахалия - UNIX изнутри (2003) (1114670) страница 692019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 69)

Также существуют гибридные системы (рис. 7.4, в), в которых группы процессоров разделяют между собой некоторый объем локальной памяти и при этом обладают возможностью доступа к памяти других групп СР1.1. Модель Х1.1МА весьма сложна для практической реализации, так как программисту требуется немало усилий для того, чтобы скрыть подробности аппаратной архитектуры от пользовательских приложений. В системах ХОКМА каждый процессор обладает прямым доступом только к локальной для него области памяти. Доступ к удаленной памяти осуществляется посредством передачи сообщений. Аппаратура должна поддерживать высокую скорость взаимодействия, обладать большой пропускной способностью, достаточной для осуществления удаленного доступа к памяти. При построении систем па основе архитектуры ХОКМА необходимо реализовать в ОС управление кэщ-памятью, поддержку модели на уровне планировщика, а также создать компиляторы, умеющие оптимизировать коды программ конкретно для данной архитектуры.

В этой главе мы будем рассказывать только о системах, основанных на модели УМА. ?.3.2. Поддержка синхронизации Синхронизация в многопроцессорных системах сильно зависит от ес аппаратной поддержки. Представим, как проходит простейшая операция блокировки ресурса при помощи флага 1осйед, обрабатываемого в области разделяемой памяти. Процедура может состоять из указанной ниже последовательности операций.

1. Чтение флага. 2. Если значение флага равно нулю (следовательно, ресурс свободен), то блокируем ресурс путем установки флага в единицу. ' При этом кэширование данных, инструкций и ореобраэоваиив адресов происходит в каждек процессоре отдел ьио.

7.3. Многопроцессорные системы 295 3. Возврашаем ТКОЕ в случае удачной блокировки ресурса или ЕАг5Е в противоположном случае. Р2 Рис. 7.5. Возникновение состязательности при невыполнении условия неделимости операции тестирования и установки В многопроцессорной системс две нити, выполняющиеся иа двух различных процессорах, могут производить эти операции одновременно. При этом обе нити будут считать, что обладают эксклюзивным правом иа ресурс (как зто показано иа рис. 7.5).

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

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

Операция тестирования и установки идеально подходит для простых случаев блокировки ресурсов. Если команда возвращает единицу, вызвавшая ее нить занимает ресурс. Если возвращает ноль, то требуемый ресурс уже занят другой нитью. Освобождение ресурса производится путем сброса бита в 0. Примерами практической реализапии операции тестирования и установки являются ВВ551 (Вгапсп оп ВК Бег апд Бег 1пгег!оскед) на машине ЧАХ-11 [5] и 005ТОВ (1оа0 апс[ БТоге ()пз18пеб Вусе) на БРАКС.

Инструкции взаимосвязи с загрузкой и хранения по условию В некоторых процессорах применяется пара специальных инструкций загрузки и хранения, используемых для неделимых операций чтения, изменения и записи. Команда взаимосвязи г загрузкой (1оап'-11пяег1, иногда называемая 1оай-1осяей) загружает значение из памяти в регистр и устанавливает флаг, заставляющий аппаратуру проверять это значение. Если какой-либо из процессов запишет даьшые в эту область памяти, аппаратное обеспечение сбросит флаг. Инструкция хранения по условию (зсоге-сопс[1с[опа1) сохраняет новую величину переменной в область памяти, представленную установленным флагом. Кроме этого, команда установит значение еше одного регистра, указывающего на то, что была проведена операция сохранения. 7.3.3. Программная архитектура С точки зрения программного обеспечения существуют три типа многопроцессорных систем: основанные на связке ведущий-ведомый, несимметричные и симметричные.

Модель типа ведущий-ведомый (1пазсег-э1аче) является несимметричной [8[, так как один из процессоров в системе играет роль ведуа1его (гпазсег), в то время как остальные являются подчиненными (з1аче). В таких системах возможна ситуация, при которой только ведущий процессор обла. дает правом обработки ввода-вывода и получения прерываний от различных устройств.

В некоторых случаях коды ядра выполняются только на ведущем процессоре, при этом остальные СР() могут быгь заняты исключительно пользовательскими программами. При соблк>денни таких условий упрощается разработка систем, но преимушества многопроцессорных архитектур используются далеко не в полной мере. Результаты тестов показали [1[, что в системах (1111Х тратится более 40% общего процессорного времени на выполнение в режиме ядра. Следовательно, наиболее приемлемым вариантом является распределение подпрограмм ядра между несколькими процессорами. В функционально несимметричных многопроцессорных системах различные подсистемы выполняются на отдельных пропессорах.

Например, на одном из процессоров могут работать сетевые процедуры, в том время как другой 7.4. Особенности синхронизации в многопроцессорных системах 297 занят обработкой ввода-вывода. Такой вариант более подходит для специализированных систем, чем для систем общего применения, к которым относится 11)с)1Х.

Одной из удачных реализаций модели является файловый сервер Ацэрех )х(55000 110). Симлетричг<ая многопроцессорная обработка (эупцпсспс шц!11ргосезэ(пй, 5МР) является наиболее популярной моделью выполнения. В системах, основанных на этой архитектуре, все процессоры равнозначны и разделяют между собой единственную копию кодов и данных ядра, а также обладают доступом к различным системным ресурсам, таким как память или периферийные устройства.

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

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

Такое свойство однопроцессорных ОС совершенно не подходит для многопроцессорных систем, в которых коды ядра могут выполняться одновременно на нескольких СР(1. Данные, не требовавшие защиты от повреждения при использовании единственного процессора, теперь необходимо защищать. Рассмотрим проблему на примере организации доступа к таблице ресурсов 1РС (см. раздел 6.3.1).

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

Необходимо также пересмотреть основные элементы, использующиеся при осуществлении блокировки ресурсов. В традиционных системах ядро просто проверяет флаг 1ос1ео и устанавливает его для блокировки объекта. В многопроцессорных архитектурах может случиться так, что один и тот же флаг 298 Глава 7. Синхронизация. Многопроцессорные системы (остер начнет проверяться двумя нитями одновременно. В этом случае обе нити обнаружат флаг сброшенным и сделают вывод о том, что ресурс свободен. Затем нити установят флаг и начнут использовать объект, что может принести к совершенно неожиданным резулш атам, Следовательно, многопроцессорные системы должны поддерживать неделимые операции проверки и установки флагов, гарантирующие занятие ресурса одновременно только одной нитью, Еше одним примером необходимости изменений является приостановка обработки прерываний. В многопроцессорных системах нить обычно имеет право блокировать прерывания, относящиеся только к тому процессору, на котором она выполняется.

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

Система должна поддерживать некий механизм, позволяющий приостанавливать обработку прерываний, возникающих на других процессорах. Одним из возможных решений проблемы является использование глобальных уровней )р!, поддерживаемых на программном уровне. 7.4.1. Проблема выхода из режима ожидания В многопроцессорных системах механизм ожидания-возобновления выполнения работает некорректно. 11ример возникновения состязательности прн применении этой технологии показан на рис. 7.6. Кить Н1 заблокировала ресурс Р1. Нить Н2, выполняюгцаяся на другом процессоре, пытается получить тот же ресурс, но обнаруживает, что он уже занят. Тогда нить Н2 вызывает функцию Меер(), чтобы иерей~и в режим ожидания ресурса Р1.

Между операциями проверки занятости ресурса и вызовом з(еерО происходит освобождение Р1, при этом Н1 инициирует пробуждение всех нитей, находящихся в режиме ожидания этого ресурса. Так как нить Н2 еше не успела переместиться в очередь ожидания, она не может получить сигнал о необходимости возобновления работы. В результате возникает ситуация, когда ресурс уже свободен, но при этом нить Н2 продолжает ожидать его разблокирования.

Если в дальнейшем ни одна нить не запросит ресурс Р1, то Н2 буде~ оставаться в режиме ожидания постоянно. Описанная ситуапия получила название проблемы потери сигнала выхода из режима ожидания. Для ее решения необходимо объединить процедуру проверки ресурса на занятость и последуюший вызов з(еер() в единую, неделимую операцию. т.4. Особенности синхронизации в многопроцессорных системах 299 опытка блокировки г — -- — — — — — — -- — -~ ~~Н2) Разблокирование Р1 Нет нитей для пробуждения Вызов в~вар Блокирована по Р1 Не блокирован Ф Рис. 7.8. Проблема потери сигнала выхода из режима ожидания Приведенный пример показывает необходимость привлечения совершенно иных механизмов работы с ресурсами для многопроцессорных систем. Если при нх разработке учесть и другие проблемы традиционных реализаций 13Х1Х, то результатом станет создание наилучших решений, что повлияет и па производительность систем.

Характеристики

Тип файла
PDF-файл
Размер
8,36 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее