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

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

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

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

Когда процесс завершил выполнение системного вызова и находится в состоянии возврата в режим задачи, его приоритет сбрасывается обратно в значение текущего приоритета в режиме задачи. Измененный таким образом приоритет может оказаться ниже, чем приоритет какого-либо иного запущенного процесса; в этом случае ядро системы произведет переключение контекста. Приоритет в режиме задачи зависит от двух факторов: «любезности» (и!се) н последней измеренной величины использования процессора.

Степень любезности (шее уа1це) является числом в диапазоне от 0 до 39 со значением 20 по умолчанию. Увеличение значения приводит к уменьшению приоритета. Фоновым процессам автоматически задаются более высокие значения степени благоприятствия. Уменьшить эту величину для какого-либо процесса может только суперпользователь, поскольку при этом поднимется его приоритет. Степень любезности называется так потому, что одни пользователи могут быль поставлены в более выгодные условия другими пользователями посредством увеличения кем-либо из последних значения уровня любезности для своих менее важных процессов'. Системы разделения времени пытаются выделить процессорное время таким образом, чтобы конкурирующие процессы получили его примерно в рав- ' На котором он был заблокирован, — Прим.

ред. г Команда п1се(1) принимает любые значения в диапазоне от — 20 до 19 (отрнцательные величины может задавать только суперпользователь). Это число используется как увеличение текущего значения фактора любезности. 196 Глава 5. Планирование процессов ных количествах, Такой подход требует слежения за использованием процессора каждым из процессов. Поле р срц структуры ргос содержит величину результата последнего сделанного измерения использования процессора процессом. При создании процесса значение этого поля инициализируется нулем. На каждом тике обработчик таймера увеличивает р срц на единицу для текущего процесса до максимального значения, равного 127.

Более того, каждую секунду ядро системы вызывает процедуру зспе0срцО (запускаемую через отложенный вызов), которая уменьшает значение р срц каждого процесса исходя из фактора толураспада» (десау Еасгог). В системе 5'тгКЗ используется фиксированное значение этого фактора, равное )ь В 4.3ВБР для расчета фактора полураспада применяется следующая формула; оесау - 12*1 сап ачегаце)Л2*1 сап ачегаде + 1): где 1оао ачегаде — это среднее количество процессов, находящихся в состоянии готовности к выполнению, за последнюю секунду. Процедура зс)тедсрц() также пересчитывает приоритеты для режима задачи всех процессов по формуле р цагргт - Р05ЕР + (р срц/4) + 12*р п1се): где Р05Ей — базовый приоритет в режиме задачи, равный 50. В результате, если процесс в последний раз' использовал большое количество процессорного времени, его р срц будет увеличен. Это приведет к росту значения р цзгрп' и, следовательно, к понижению приоритета. Чем дольше процесс простаивает в очереди на выполнение, тем больше фактор полураспада уменьшает его р срц, что приводит к повышению его приоритета.

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

Вычислительные приложения, такие как компиляторы или редакторы связей, обычно обладают более высокими значениями р срц и работают на значительно более низких приоритетах. Фактор использования процессора обеспечивает справедливость и равенство при планировании процессов в режиме разделения времени. Основная идея заключается в хранении приоритетов всех таких процессов примерно в том же диапазоне в течение некоторого периода времени. Приоритеты могут повышаться или понижаться в рамках этого диапазона в зависимости от того, сколько процессорного времени эти процессы получали в последний ' До вытеснения другим процессом. — )?Рим.

лед, 5.4. Планирование в традиционных системах Ой!Х 197 раз. Если приоритеты будут меняться слишком медленно, процессы, начавшие работу с низким приоритетами, сохранят их в течение долгого периода времени, что приведет к их фактическому зависанию, Фактор полураспада обеспечивает экспонеициальио взвешенное среднее значение использования процессора в течение всего периода функционирования процесса. Формула, применяемая в системе 3'у'КЗ, подсчитывает простое экспоиеициальиое среднее, что имеет побочный эффект, заключаюшийся в росте приоритетов при увеличении загрузки системы [21.

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

В системе 4.3ВВР фактор полураспада зависит от загруженности системы. Если загрузка велика, ои влияет иесушествеиио. Следовательно, для процессов, получаюших процессорное время, снижение приоритетов будет происходить быстро. 5.4.2. Реализация планировщика Планировшик содержит массив оз, состоящий из 32 очередей выполнения (рис. 5.2).

Каждая очередь соответствует четырем соседствуюшим приоритетам. Таким образом, очередь О используется для приоритетов 0-3, очередь 1 для приоритетов 4 — 7 и т. д. Каждая очередь содержит начало двунаправленного связанного списка структур ргос. Глобальная переменная ьуЫсййз хранит битовую маску, в которой для каждой очереди зарезервирован один бит. Бит устанавливается, если в очереди имеется хотя бы один процесс.

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

По выходу из процедуры зссс1спо вновь назначенный процесс продолжает выполнение. При переключении контекста происходит сохранение состояния регистров текущего процесса (регистров общего назначения, счетчика команд, указателя стека и т, д.) в его блоке управления, являющемся частью области о, с последующей загрузкой регистров из сохраненного контекста очередного процесса. Поле р аддг структуры ргос указывает на элементы таблицы страниц области ш Это поле использует процедура зис1сп() для нахождения блока РСВ очередного процесса. Так как машина 1с'АХ-11 стала основной платформой для ранних реализаций систем 4ВВР и Яузгеш Ъ', ее архитектура оказала сильное влияние на реализацию планировщика. ЧАХ имела две специальные инструкции — ЕЕ5 (Ейпд Бгзг Бей найти первый установленный) и ЕЕС (Бпд Р(гзг С!еаг, найти первый очищенный), применяемые для работы с 32-битовыми полями.

Это послужило причиной размещения 128 приоритетов в 32 очередях. В ЧАХ также имелись специальные инструкции (1МЯЯН1 и ЙЕМЯН1) для атомарных операций вставки и удаления элементов из двунаправленных связанных списков, а также другие команды (1РРСТХ и БНРСТХ), загружающие и сохраняюшие контекст процесса. Все это позволило Ъ'АХ отрабатывать весь алгоритм планирования, используя при этом небольшой набор машинных инструкций. 5.4.3. Операции с очередью выполнения Процесс, обладающий наивысшим приоритетом, запускается всегда, если только текущий процесс не выполняется в режиме ядра. Каждому процессу назначается квант времени фиксированного размера (в системе 4.3ВЯР это 100 миллисекунд).

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

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

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

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

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

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

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

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