
- •Самарская государственная академия путей сообщения
- •Организация вычислительных процессов в эвм и системах Арбитраж, планирование и диспетчеризация
- •Самара 2005
- •Рецензенты: к.Т.Н., доцент н.А. Локтев (нпц «Информационные и транспортные системы»);
- •1.Мультипроцессорный и мультипрограммный
- •3.Основы организации планирования
- •4.Планирование вычислительных процессов
- •6.Практические и лабораторные работы
- •1.Мультипроцессорный и мультипрограммный способы организации вычислительных процессов
- •1.1. Мультипроцессорные системы и арбитраж
- •1.2. Мультипрограммные системы
- •1.3. Гиперпотоковая организация вычислений
- •2.Процессы и потоки в вычислительных системах
- •2.1. Определение процессов, потоков и ресурсов вс
- •2.2. Состояния потоков
- •3. Основы организации планирования и диспетчеризации процессов и потоков
- •3.1. Принципы планирования процессов и потоков
- •3.2. Классификация алгоритмов планирования (вытесняющие и невытесняющие, бесприоритетные и приоритетные алгоритмы)
- •3.3. Линейные алгоритмы планирования
- •3.4.Алгоритмы планирования, основанные на квантовании
- •3.5.Алгоритмы планирования, основанные на приоритетах
- •3.6. Смешанные алгоритмы планирования
- •4. Планирование вычислительных процессов
- •4.1. Принципы планирования в системах реального времени
- •4.2.Планирование с предельными сроками
- •4.3.Частотно-монотонное планирование
- •5.Планирование в windows 2000
- •5.1. Уровни приоритетов потоков в Windows 2000
- •5.2. Особенности алгоритмов планирования в Windows 2000
- •5.3.Учет квантов и управление их величиной
- •5.4.Динамическое повышение приоритета
- •5.5.Планирование потоков в симметричных мультипроцессорных системах
- •6. Практические и лабораторные работы по планированию процессов и потоков
- •6.1. Изучение диспетчера задач и системного монитора
- •6.2. Мониторинг использования ресурсов вычислительной системы
- •Запустите системный монитор.
- •Добавьте на график различные счетчики объекта «Память» и понаблюдайте за их изменением в процессе работы вычислительной системы.
- •6.3. Учет квантов и управление их величиной
- •6.4. Изучение изменения состояния потоков при планировании
- •6.5. Изучение динамического изменения приоритета потока активного процесса
- •6.6.Изучение динамического повышения приоритета gui-потоков
- •6.7. Изучение динамического повышения приоритетов при нехватке процессорного времени
- •Библиографический список Основная литература
5.5.Планирование потоков в симметричных мультипроцессорных системах
В мультипроцессорной системе с N процессорами всегда активны N-1 потоков с наивысшими приоритетами, работающими на дополнительных N-1 процессорах. С остальными потоками с более низким приоритетом работает единственный оставшийся процессор. Например, если в системе три процессора, то два потока с наивысшими приоритетами будут выполняться на двух процессорах, в то время как третий процессор будет работать со всеми остальными потоками с более низкими приоритетами.
У каждого потока есть маска привязки к процессорам (affinity mask) /11/, указывающая, на каких процессорах можно выполнять данный поток. Потоки наследуют маску привязки процесса. По умолчанию начальная маска для всех процессов (потоков) включает весь набор активных процессоров, т.е. любой поток может выполняться на любом процессоре.
Изменения возможны при обращении приложения к функции SetProcessAffinityMask или SetThreadAffinityMask.
В блоке потока ядра каждого потока хранятся номера двух особых процессоров: идеального – предпочтительного для выполнения данного потока и последнего – на котором поток работал прошлый раз.
Как только поток готов к выполнению, Windows 2000 сначала пытается подключить его к простаивающему процессору. Если таких процессоров несколько, предпочтение сначала отдается идеальному процессору для данного потока, затем последнему. Действительно, процессор, на котором поток выполнялся прошлый раз, скорее всего еще хранит данные потока в своем кэше второго уровня, что в конечном итоге повышает производительность ВС.
Если все эти процессоры заняты, Windows 2000 выбирает первый доступный из простаивающих процессоров, для чего сканирует маску свободных процессоров в направлении убывания их номеров.
Если у выбранного процессора уже есть поток, ожидающий в состоянии Standby выделения процессорного времени, и его приоритет ниже, чем у нового потока, последний вытесняет первый и становится следующим выполняемым на данном процессоре. Если к процессору уже подключен какой-то поток, Windows 2000 сравнивает приоритеты текущего и нового потока. Если приоритет текущего потока меньше, чем у нового, первый помечается как подлежащий выполнению, и Windows 2000 ставит в очередь межпроцессорное прерывание для переключения процессора с текущего потока на новый.
6. Практические и лабораторные работы по планированию процессов и потоков
6.1. Изучение диспетчера задач и системного монитора
Запустите диспетчер задач. Для этого используйте сочетание клавиш «Shift+Ctrl+Esc», либо «Alt+Ctrl+Del»/Диспетчер задач (Task List).
Перейдите на закладку «Приложения». Вы увидите список запущенных на данный момент приложений. Выберите пункт меню «Файл/Новая задача (Выполнить…)» и запустите «Блокнот» — он должен появиться в списке запущенных приложений.
Перейдите на закладку «Процессы». Вы увидите список запущенных процессов. Попробуйте изменить базовый приоритет процесса Блокнот (Notepad) на «Реального времени» (рис. 6.1), затем обратно на «Средний».
Рис.
6.1. Изменение приоритета потока Notepad
Перейдите на закладку «Быстродействие». Здесь отображается хронология загрузки центрального процессора и использования памяти. Двойным щелчком увеличьте размер графика загруженности процессора, а затем верните его в первоначальное состояние.
Запустите системный монитор.
Откройте диалоговое окно «Свойства: системный монитор». Для этого щелкните правой клавишей мыши в окне графика и выберите пункт меню «Свойства».
Изменяйте значение различных параметров в этом окне, наблюдайте за их влиянием на отображение графиков.
По окончании работы закройте системный монитор и диспетчер задач.
Подготовьте отчет с выводами о видах задач, наиболее загружающих процессор. Как распределяется время работы процессора между двумя режимами – пользовательским и ядра?