В. Столлингс - Операционные системы (1114679), страница 101
Текст из файла (страница 101)
При выполнении потока ВВ оль дольше, чем позволяет его квота, он приостанавливается, и для выполнения зыби ыбирается поток реального времени с равным или более высоким приоритетом. На Рис. 10.9 (~СОМР981) приведен пример, иллюстрирующий отличия использования й Р1РО, ВВ, П положим, что программа содержит четыре поток ока с относительными приоритетами, показанными на Рис Предположим им также, что все ожидающие потоки готовы к выполнению„когда тек ий п ущ отак завершается или переходит в состояние ожидания, и что в про- г лава 10.
Многопроцессорное планирование и планирование... 638 ° В а С вА а" ьласс Глобальное Последовательность приоритетов значение планирования б) Выполнение при ВГС-планировании а) Относительные приоритеты потоков 0 4вВ е С -У В -ъ С вЂ” ~"А т~ в) Выполнение при ВВ-планировании Рис. 10.0. Пример плапированил 1.1пих Рис 1010 Кла приор „а 8Ъ,К4 Часть 4, Планнро ссе его выполнения не появляются и ются потоки с более высоким приоритетом. На ' ' :тессе ис. 10.9,б показана очеРеДность выполнениЯ поток потоков если они принвдлежаг ~~ла Е1ЕО. П т О выполняется до его завершения или состояния классу ЯСНЕ1) Е1ЕО.
оток в Ожидания; затем, несмотря на р Ож,, авные приоритеты потоков В и С, выполняется ' ток В как дольше находившийся в "ся в состоянии ожидания. Поток В выполняется ПОТО го то же и оисходнт С по до его завер шения или состояния ожидания, после че Р н С. И наконец, выполняется поток А. ТОКОМ ° з ° На рис. 10.9,е показана очередность выполнения потоков луч ринад вс аеихп лежности классу Я ле СНЕЭ ВВ. Сперва до перехода в состояние ожидания или завер..:,', О. Затем чередуясь (поскольку они имеют одинаковый,' шения выполняется поток .
тем„ шенин — поток А. о итет), выполняются потоки В и С, а после их завершения — поток приоритет, я ЯСНЕВ ОТНЕВ. Поток из этогО' Последним классом планирования является в том сл ае, если не имеется готовых к вы-. ласса может выполняться только в то уч клас полнению потоков реального времени. В пределах к с НЕВ лас а ЯСНЕВ ОТНЕВ ис;" пользуется традиционное планирование 1Лч1Х, описанное в разделе 9.3. ~а"::=;::йжн~в""' Алгоритм планирования в БХ1Х ЯУВ4 представляет собой преобразован алгоритм из ранних систем УХ1Х (описанный р й в азделе 9.3).
Новый алгор разработан таким образом, что дает наивысш пр р ий ио итет процессам реаль я исваивается процессам ядра, а пол времени, приоритет следующего уровня присваив вательские процессы (известные как процессы р д сы с аз елением времени) получ низший приоритет. иционного алгоритма- " В ЯЪ'В4 реализованы два основных изменения традиционного ал 1. Добавлено вытесняющее планирование на осно нове статических приор в систему введено множество из 160 уровне р р й и ио итетов, разделенных'" три класса. 2. В ны точки вытеснения. Поскольку базово др е я о не вытесняемо, его несен няемые до полнение может ыть р б азделено на небольшие части, выполи ве шения без прерывания.
В промежутках жду ме выполнением этих ф ментов размещены гочки вытеснения, в котор др ых я о может быть безо прервано и в которых может начаться выполнение нового п Роцесса. Точка вытеснения может быть определена как область кода где в се структуры данных ядра либо обновлены и согласованы либо заблокированы У аны при по мощи семафора. На рис. 10.10 показаны 160 уровней приоритетов, определенные в Ят~тК4. Каждый процесс принадлежит одному из трех классов приоритетов и получает свой уровень приоритета в пределах данного класса.
Вот краткое описание кэж лого класса приоритетов. а Реального времени (159-100). Процессы этих уровней приоритета гаранти. рованно выбираются для выполнения прежде любых процессов ядр» и про. цессов с разделением времени. Кроме того, процессы реального времени мо гут использовать точки вытеснения для прерывания выполнения процессов ядра и пользовательских процессов. ч Ядра (99-60). Процессы с этими уровнями приоритета гарантированно выбираются для выполнения прежде всех процессов с разделением времени, но уступают процессам реального времени. е Разделения времени (69-0).
Процессы с низшим приоритетом, принадлежащие пользовательским приложениям (кроме приложений реального времени). На ис. 10. Р . 10.11 показано, как реализовано планирование в ЯУК4. С каждым уровнем п ио и Р ритета связана своя очередь. и процессы одного уровня приоритета латтируются с с использованием круговой стратегии. Битовый вектор бс1асстпзр держит по о но ~я» если соотве одному биту для каждого уровня приоритета.
этот бит устанавлива"ЯтОЩийся и соответствующая данному приоритету очередь не пуста. Когда выполто Роцесс блокируется или вытесняется, диспетчер обращается к веке иа РУ бс1эст-гл Р и запускает готовый к выполнению процесс из непустой очереди ттро наивысшим и и Р оритетом. Кроме того, по достижении точки вытеснения ядро веряет состо тояние флага )сргттттхытт. Если данный флаг установлен, это означа- О. Многопроцессорное планирование и планирование... баб 1О. Рис.
10.11. Очереди диспетчера ЯВ~'4 Класс приоритеюа реальиоперемеии что в состоянии готовности имеется как минимум один процесс Реального ~емени, и в э о. и в этом случае ядро вытесняет текущий процесс (если его приоритет ~же, чем м у готового к выполнению процесса реального времени с наивысшим >иоритетом). ф, Приоритет процесса в классе разделяемого времени является величиной пере.
енной. Планировщик снижает приоритет процесса всякий раз при использовании,.:: м очередного кванта времени и повышает — при блокировке процесса в ожидании екоторого события илн ресурса. Квант времени, выделяемый процессу с разделени- ': я времени, зависит от его приоритета и изменяется от 100 шэ для приоритета О до ''.. О пж для приоритета 59. Для сравнения — каждый процесс реального времени ": меет Фиксированный приоритет и Фиксированный квант времени.
10.5 ПЛ~ф~Я~~~Ж~Ю Операционная система чч шс(ожз 2000 (%'2К) разработана таким образом, чтоб ' ыть по возможности максимально чувствительной либо к нуждам отдельного нол~~'.,' ователя в интерактивной среде, либо в роли сервера. В Ж2К реализован пл цик с вытеснением и гибкой системой уровней приоритетов, включающий кр лавирование на каждом уровне, а для некоторых уровней — динамическое измен пее приоритета на основе текущей активности потоков. Приоритеты процессов и потоков Приоритеты в 'Ю2К организованы в виде двух групп, или классов: реал 'о времени и переменные.
Каждая из этих групп состоит из 16 уровней при еета. Потоки, требующие немедленного внимания, находятся в классе реал альн времени„который включает такие функции„как осуществление коммуник и задачи реального времени. В целом, поскольку Ж2К использует вытесняющий планировщик с у~ приоритетов, потоки с приоритетами реального времени имеют преимуще ество отношению к прочим потокам. В однопроцессорной системе, когда станов готовым к выполнению поток с приоритетом более высоким, чем у вып выпол щегося в настоящий момент, низкоприоритетный поток вытесняется и на'пЯ ...„, выполняться более высокоприоритетный поток. Приоритеты из разных классов обрабатываются несколько по-р о по- азн,.
(Рис, 10.12). В классе приоритетов реального времени все потоки имеют Ф Рованный приоритет, который никогда не изменяется, и все активные пото,;, определенным уровнем приоритета располагаются в круговой очереди д уровня. В классе переменных приоритетов поток начинает работу с неко изначально присвоенным ему приоритетом, который затем может изменяться как в большую, так и в меньшую сторону. таким образом, на каждом уровне приоритета имеется своя очередь„но процессы могут переходить из одной очере ди в другую в пределах одного класса переменных приоритетов. Поток с приори тетом 15 не может получить приоритет 16, как и какой-либо другой приоритет из класса реального времени.
Рис. 10.12. Приоритеты, потоков И'иЫоие о1Т Начальный приоритет потока в классе переменных приоритетов определяется двумя величинами: базовым приоритетом процесса и базовым приоритетом потока. Одним из атрибутов процесса является его базовый приоритет, который может принимать значение от О до 15. Каждый объект по- Глава 10. Многопроцессорное планирование и планирование... -Щ7 ка, связанный с объектом процесса, имеет собственный базовый приоритет, ;оторый указывает базовый приоритет потока по отношению к приоритету процесса, и может отличаться от базового приоритета процесса не более"%ем ~а 2 уровня в большую или меньшую сторону. Так, например, если базовай— триоритет процесса равен 4, а базовый приоритет одного из его потоков ра.