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

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

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

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

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

Такой подход увеличивает производительность работы вызовов 1РС. 5.7.1. Поддержка нескольких процессоров Как уже говорилось, система МасЬ функционирует на самых различных аппаратных архитектурах, от небольших персональных компьютеров до машин, имеющих сотни процессоров. Планировщик системы обладает несколькими средствами, позволяющими эффективно управлять процессорами системы. Для вытеснения в МасЬ не применяются межпроцессорные прерывания. Предположим, что некоторое событие на одном из процессоров привело к появлению готовой к выполнению нити, имеющей приоритет больший, чеи у другой нити, выполняющейся на другом процессоре. Нить с меньшим приоритетом не будет вытеснена до тех пор, пока другой процессор обрабатыва- 5.7.

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

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

Задача наследует набор от своего предка, а первоначальной зидаче (1пй|а! гази) предоставляется набор процессоров, принятый по умолчанию. Исходно такой набор состоит из всех процессоров системы, и на этом наборе выполняются внутренние нити ядра и демоны. О1 Рис. 5.12. Выделение процессоров в Масл Выделение процессоров может быть выполнено при помощи программы-сервера прикладного уровня (выполняющейся как привилегированное задание), которая и определяет политику присвоения. На рис. 5.12 показана типичная схема взаимодействий между приложением, сервером и ядром.

Приложение выделяет набор процессоров всем своим нитям. Сервер назначает процессоры для этого набора. Последовательность действий при этом описана ниже. 1. Приложение запрашивает ядро о выделении для себя набора процес- соров. 2. Приложение запрашивает сервер о процессорах для этого набора.

3. Сервер запрашивает ядро о назначении процессоров набору. 4. Сервер отвечает приложению, подтверждая, что процессоры были вы- делены. 226 Глава 5. Планирование процессов 5. Приложение запрашивает ядро о назначении своих нитей этому набору. 6. Приложение использует процессоры и уведомляет сервер, когда завершает свою работу, 7. Сервер переназначает процессоры. Такой подход позволяет добиться потрясающей гибкости в управлении процессорами, особенно для массивно-параллельных систем с большим количеством процессоров. Например, существует возможность назначить их некоторое количество одной задаче или группе задач, гарантируя тем самым предоставление им части доступных ресурсов независимо от общей загруженности системы. В крайних случаях приложение может добиваться выделения по одному процессору для каждой своей нити. Такой подход называется групповым тшинировинием (йапй зс11ег1ц11пя).

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

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

Некоторые из них могут оказаться более быстрыми, чем другие, некоторые могут содержать блок вычислений с плавающей точкой и т. д. Возможность составления процессоров в наборы позволяет использовать определенные процессоры для выполнения свойственной им задачи. Например, процессоры с блоком вычислений с плавающей точкой логично назначать только нитям, которым необходима максимальная производительность при работе с вещественными числами. Кроме всего перечисленного, нить может быть временно ограничена определенным процессором. Такая возможность поддерживается, в первую очередь, для совместимости части кода системы Мас11 с 13Х1Х в области непа- 5.8.

Планировщик реального времени О!0йа! 0Ьйх 227 раллельиой (небезопасной в многопроцессорной системе) обработки. Эта часть кода выполняется иа одном процессоре, называемом главным процессором (тазгег ргосеззог). Каждый процессор имеет локальную очередь выполнения, а каждый набор — глобальную, используемую совместно всеми процессорами набора. Сначала процессоры проверяют свои локальные очереди, отдавая таким образом предпочтение ограниченным данным процессором нитям (или неограниченным использованием данного процессора нитям, обладающим высокими приоритетами).

Такое решение привнесло максимальную производительность для непараллельного кода 1)ЪПХ, защищая от эффекта «бутылочного горлышка». 5.8. Планировщик реального времени О!9йа! 0М!Х Планировщик операционной системы И81га1 Т)ЪЛХ поддерживает приложения, выполняющиеся как в режиме разделения времени, так и в режиме реального времени 151. Ои совместим с интерфейсом РОБ1Х 1003.1Ъ |81, определяющим программное расширение реального времени.

Несмотря иа факт, что ГЭ181га! 1)Ъ11Х произошла от ОС Маей, ее планировщик был полностью переработан. Ои поддерживает следующие классы планирования: + 5НЕ0 ОТНЕК, или класс разделения времени. + 5НЕ0 Е1ГО, или класс РТРО («первым вошел, первым вышел»). + 5НЕ0 кй, или класс карусельного обслуживания. Для установки класса планирования и приоритета процесса приложение может вызвать зсйеб зе1зсйедп!ег.

По умолчанию используется класс разделения времени, в ко~ором приоритеты изменяются динамически иа основе величины любезности и уровня использования процессора. Оставшиеся два класса используют постоянные приоритеты. Процессы, задействующие политику класса 5НЕ0 ЕТЕО, ие имеют определенного кванта времени и выполняются до тех пор, пока сами ие освободят процессор или ие будут вытеснены более высокоприоритетным процессом. Классам разделения времени и карусельного обслуживания определен квант времени, который влияет иа диспетчеризацию процессов, обладающих одинаковым приоритетом.

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

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

Приоритеты подразделяются на три перекрывающихся класса, которые позволяют увеличить гибкость. Назначение приоритетов процессам регулируется следующими правилами: + Процессы класса разделения времени имеют приоритеты в диапазоне от 0 до 29. Для увеличения приоритетов выше 19 требуются привилегии суперпользователя. + Пользователи управляют приоритетами процессов класса разделения времени посредством изменения величины их «любезности».

Значение величины «любезности» находится в диапазоне от — 20 до +20, где меньшие числа указывают на более высокий приоритет 1для обратной совместимости). Отрицательные величины, соответствуюшие приоритетам лиапазона 20-29, может задавать только суперпользователь системы. + Фактор использования процессора уменьшает приоритеты процессов класса разделения времени в зависимости от полученного ими количества процессорного времени.

+ Системные процессы обладают фиксированными приоритетами в диапазоне 20-31. + Процессам с фиксированными приоритетами может быть назначен любой приоритет в диапазоне 0-63. Однако для назначения приоритетов выше 19 требуются привилегии суперпользователя. Процессы реального времени имеют приоритеты в диапазоне от 32 до 63, поскольку системные процессы не должны их вытеснять. Вызов зспео зеграгап~ применяется для изменения приоритетов процессов классов Е1ЕО и карусельного обслуживания. Вызов зспео у1еЫ перемещаег вызвавший его процесс в конец очереди его приоритета, что эквивалентно освобождению процессора для любого готового к выгюлнению процесса, обладающего тем же приоритетом.

Если таких процессов не обнаружено, процесс, вызывавший зс6ео у1еЫ, продолжит выполнение. 5.8.1. Поддержка нескольких процессоров Система Е11611а! УХ1Х позволяет эффективно использовать такое свойство систем, как многопроцессорность, посредством настройки своего планировщика для оптимизации переключений контекста н использования каша 16]. 5.9.

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

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

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

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