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

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

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

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

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

Это означает, что система должна поддерживать некие методики защиты блокированных ресурсов. В ()1х!1Х зашита ресурсов реализована при помощи флагов !ослеп' (ресурс занят) и иаптео (ресурс необходим). Если нити необходимо получить доступ к рззделяемому ресурсу (например, буферу), то в первую очередь ей нужно проверить состояние флага !остей.

Если флаг не установлен, нить установит 290 Глава 7. Синхронизация. Многопроцессорные системы его и начнет манипуляции с ресурсом. Если другая нить попытается получить доступ к тому же ресурсу, опа обнаружит флаг (осМег! и приостановит работу («заснеть) до тех пор, пока ресурс нс станет доступным. Перед блокировкой нить установит для ресурса флаг вапгео. Приостановка работы нити означает помешение ее в очередь спящих нитей и изменение информации о ее статусе, оповещающей о приостановке работы в ожидании определенного ресурса. После этого нить освобождает процессор и передает его следуюшей работоспособной нити системы.

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

В какой-то момент времени нить станет текущей. Первым ег действием прн получении процессорного времени будет являться проверка флага 1ос1ег!. Если флаг це установлен, нить сможет продолжить манипуляции с необходимым ей ресурсом. 7.2.3. Ограничения традиционного ядра 0й!Х Традиционная модель синхронизации корректно работает на однопроцессорных машинах, но она, к сожалению, не избавлена от проблем, связанных с производительностью системы. В многопроцессорных системах использо. ванне традиционной модели невозможно, что и будет более подробно показе но в разделе 7.4.

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

Применение такой методики блокировки приводит к двум последствиям. Во-первых, на каждый канал может ссылаться более чем одно событие. На. пример, одна из нитей может заблокировать буфер, инициализировать проведение над ним определенных действий и приостановить работу до тех пор, 7.2. Синхронизация в ядре традиционных реализаций 0Ы!Х 291 пока эти действия не будут закончены. Если другая нить попытается получить доступ к тому же буферу, то обнаружит его заблокированным. Следовательно, ей придется приостановить выполнение в ожидании освобождения ресурса.

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

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

раздел 5.5.4). Одним из решений проблемы является ассоциация отдельной очереди ожидания каждому ресурсу или событию (рис. 7.2), что позволит оптимипировать задержки при пробуждении процессов, но приведет к необходимости выделения большего объема памяти для хранения большего количества очередей. Обычный заголовок очереди наряду с другой информацией имеет два указателя (на предыдущую и следующую очереди). Общее количество объектов синхронизации может оказаться слишком большим, так что поддержка отдельной очереди ожидания для каждого из них является неприемлемой. 292 Глава 7. Синхронизация.

Многопроцессорные системы ~ф д РЗ Р4 Рис. 7.2. Отдельные очереди для каждого ресурса системы Турникеты 1:"1- Р1 2-и))~~~ РЗ Рис. Т.З. Блокировка нитей с применением турникетов В систел1е Во!апз 2.х представлено более эффективное решение 171: каждый объект синхронизации поддерживает двухразрядное поле, указывающее иа структуру турникета, которая содержит очередь ожидания и другую необходимую информацию (рис. 7.3).

Ядро выделяет турникеты только для тех ресурсов, которые ожидают заблокированные нити. Для ускорения процедуры выделения ядро поддерживает набор турникетов, размер которого больше, чем общее количество активных нитей в системе. Такой подход удобен для приложений реального времени, так как даст минимальные задержки. Более подробно технология синхронизации системы Бо!апз 2.х описана в разделе 5.6.7.

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

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

Под третьим свойством подразумевается программ. ная архитектура, определяющая взаимодействие процессоров, подсистем ядоя и пользовательских процессов. 7.3. Многопроцессорные системы 293 7.3.1. Модель памяти С точки зрения аппаратуры многопроцессорные системы можно разделить на три категории в зависимости от доступа к памяти и взаимосвязи компонентов (рис.

7.4): + с унифицированным доступом к памяти (()п1топп Метогу Ассезз, () МА); + с неунифицированным доступом к памяти (Хоп-()п1гопп Мепюгу Ассезз, ЯШМА); + с невозможностью доступа к удаленной памяти (Хо Кепюге Мептогу Ассезз, ХОтсМА). ючатель тема сотной ацией Шина г" — — — - — — - — — --, Переключатель или система с перекрестной коммутацией Г" Рис. 7.4.

Категории систем: а — 0МА, б — МАМА, в — гибридная архитектура Ы0МА, г — МОЭМА 294 Глава 7. Синхронизация. Многопроцессорные системы Наиболее распространенные системы основаны на методе ()МА или разделяемой памяти (рис. 7А, а). В таких системах все процессоры обладают равнозначным доступом к основной памяти' и устройствам ввода-вывода, которые обычно соединяются между собой единой шиной.

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

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

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

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

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