Организация вычислительных процессов в ЭВМ и системах

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

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 18.10.2014
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

2.По окончании ожидания на каком-либо событии исполнительной системы или на семафоре приоритет потока, ожидавшего его, повышается на один уровень.

3.По окончании операции ожидания потоками активного процесса на объекте ядра функция ядра KiUnwaitThread динамически повышает его текущий приоритет. Это увеличивает отзывчивость интерактивного приложения по окончании ожидания. В результате повышаются шансы на немедленное возобновление его потока -- особенно если в фоновом режиме выполняется несколько процессов с тем же базовым приоритетом.

4.При пробуждении GUI-потоков из-за операций с окнами их поток дополнительно повышается на два уровня, что также создает преимущества интерактивным приложениям.

5.При задержке из-за нехватки процессорного времени потока, готового к выполнению. Пусть, например, имеется поток с приоритетом 7, который постоянно вытесняет поток с приоритетом 4, не давая ему получить процессорное время; при этом поток с приоритетом 11 ожидает освобождения ресурса, занятого потоком с приоритетом 4. В этом случае поток с приоритетом 11 не может получить управление из-за того, что поток с приоритетом 4 не может освободить ресурс из-за нехватки процессорного времени, которое «съедает» поток с приоритетом 7. Для решения такого рода проблем диспетчер настройки баланса Windows 2000 раз в секунду сканирует очередь готовых к выполнению потоков и ищет потоки, которые находятся в состоянии Ready в течение более 300 тактов системного времени (примерно 3-4 секунды). Обнаружив такой поток, диспетчер настройки баланса повышает его приоритет до 15 и выделяет ему квант, вдвое больший обычного. По истечении этого двойного кванта приоритет потока немедленно снижается до исходного уровня. Если этот поток не успел закончить свою работу или другой поток с более высоким приоритетом готов к выполнению, то после снижения приоритета он возвращается в очередь готовых потоков. В итоге через 300 тактов системного таймера его приоритет может быть снова повышен. Для снижения потерь процессорного времени диспетчер настройки баланса сканирует не всю очередь готовых к выполнению потоков, а только первые 16 из них, при этом он запоминает, на каком потоке он остановился и в следующий раз начинает просмотр с него. Кроме того, он повышает приоритет не более чем у 10 потоков за один проход.

Динамическое повышение приоритета предназначено для оптимизации общей пропускной способности и отзывчивости системы, а также для устранения потенциально «нечестных» сценариев планирования. Однако от применения этого механизма выигрывают далеко не все приложения. Windows 2000 никогда не увеличивает приоритет потоков в диапазоне реального времени (16-31), поэтому планирование таких потоков по отношению к другим всегда предсказуемо.

5.5 Планирование потоков в симметричных мультипроцессорных системах

В мультипроцессорной системе с N процессорами всегда активны N-1 потоков с наивысшими приоритетами, работающими на дополнительных N-1 процессорах. С остальными потоками с более низким приоритетом работает единственный оставшийся процессор. Например, если в системе три процессора, то два потока с наивысшими приоритетами будут выполняться на двух процессорах, в то время как третий процессор будет работать со всеми остальными потоками с более низкими приоритетами.

У каждого потока есть маска привязки к процессорам (affinity mask) /11/, указывающая, на каких процессорах можно выполнять данный поток. Потоки наследуют маску привязки процесса. По умолчанию начальная маска для всех процессов (потоков) включает весь набор активных процессоров, т.е. любой поток может выполняться на любом процессоре.

Изменения возможны при обращении приложения к функции SetProcessAffinityMask или SetThreadAffinityMask.

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

Как только поток готов к выполнению, Windows 2000 сначала пытается подключить его к простаивающему процессору. Если таких процессоров несколько, предпочтение сначала отдается идеальному процессору для данного потока, затем последнему. Действительно, процессор, на котором поток выполнялся прошлый раз, скорее всего еще хранит данные потока в своем кэше второго уровня, что в конечном итоге повышает производительность ВС.

Если все эти процессоры заняты, Windows 2000 выбирает первый доступный из простаивающих процессоров, для чего сканирует маску свободных процессоров в направлении убывания их номеров.

Если у выбранного процессора уже есть поток, ожидающий в состоянии Standby выделения процессорного времени, и его приоритет ниже, чем у нового потока, последний вытесняет первый и становится следующим выполняемым на данном процессоре. Если к процессору уже подключен какой-то поток, Windows 2000 сравнивает приоритеты текущего и нового потока. Если приоритет текущего потока меньше, чем у нового, первый помечается как подлежащий выполнению, и Windows 2000 ставит в очередь межпроцессорное прерывание для переключения процессора с текущего потока на новый.

6. ПРАКТИЧЕСКИЕ И ЛАБОРАТОРНЫЕ РАБОТЫ ПО ПЛАНИРОВАНИЮ ПРОЦЕССОВ И ПОТОКОВ

6.1 Изучение диспетчера задач и системного монитора

1. Запустите диспетчер задач. Для этого используйте сочетание клавиш «Shift+Ctrl+Esc», либо «Alt+Ctrl+Del»/Диспетчер задач (Task List).

2. Перейдите на закладку «Приложения». Вы увидите список запущенных на данный момент приложений. Выберите пункт меню «Файл/Новая задача (Выполнить…)» и запустите «Блокнот» -- он должен появиться в списке запущенных приложений.

Размещено на http://www.allbest.ru

3. Перейдите на закладку «Процессы». Вы увидите список запущенных процессов. Попробуйте изменить базовый приоритет процесса Блокнот (Notepad) на «Реального времени» (рис. 6.1), затем обратно на «Средний».
4. Перейдите на закладку «Быстродействие». Здесь отображается хронология загрузки центрального процессора и использования памяти. Двойным щелчком увеличьте размер графика загруженности процессора, а затем верните его в первоначальное состояние.
5. Запустите системный монитор.
6. Откройте диалоговое окно «Свойства: системный монитор». Для этого щелкните правой клавишей мыши в окне графика и выберите пункт меню «Свойства».
7. Изменяйте значение различных параметров в этом окне, наблюдайте за их влиянием на отображение графиков.
8. По окончании работы закройте системный монитор и диспетчер задач.
9. Подготовьте отчет с выводами о видах задач, наиболее загружающих процессор. Как распределяется время работы процессора между двумя режимами - пользовательским и ядра?
6.2 Мониторинг использования ресурсов вычислительной системы

1. Запустите системный монитор.

2. Добавьте на график различные счетчики объекта «Память» и понаблюдайте за их изменением в процессе работы вычислительной системы.
3. Добавьте на график различные счетчики объекта «Процессор» и изучите их изменение при работе вычислительной системы (рис. 6.2).

Размещено на http://www.allbest.ru

4. Запустите копирование большого объема данных на соседний компьютер по сети.
5. Добавьте на график различные счетчики объекта «Сетевой интерфейс» и проанализируйте их изменение в процессе копирования (рис. 6.3).

Размещено на http://www.allbest.ru

6. Изучите изменение состояния других счетчиков в процессе копирования, например, объекта IP. Подготовьте выводы по работе системного монитора.
6.3 Учет квантов и управление их величиной

Размещено на http://www.allbest.ru

Win32-функция GetSystemTimeAdjustment возвращает величину интервала системного таймера. Для ее определения запустите программу «Clockers» из папки \sysint\ (рис. 6.4) и изучите ее работу.
Диалоговое окно «Параметры быстродействия» позволяет выбрать либо короткие переменные кванты (оптимизировать для приложений), либо длинные фиксированные (оптимизировать для фоновых служб) (рис. 6.5).

Размещено на http://www.allbest.ru

Эти два варианта соответствуют установкам по умолчанию для Windows 2000 Professional и Windows 2000 Server соответственно. Как управление величиной квантов влияет на производительность ВС? Подготовьте отчет с выводами по работе.
6.4 Изучение изменения состояния потоков при планировании

1. Запустите стандартную программу «Блокнот» (notepad.exe).

2. Запустите «Системный монитор» (Панель управления / Администрирование).

3. Выберите режим просмотра диаграмм.

4. Щелкните правой кнопкой мыши и выберите пункт «Свойства».

5. Откройте вкладку «График» и установите максимальное значение вертикальной шкалы равным 7.

6. Щелкните на панели инструментов кнопку «Добавить» (показана в виде знака «плюс») для открытия диалогового окна «Добавить счетчики».

7. Выберите в списке «Объект:» объект «Поток», а затем счетчик «Состояние потока». Для определения его значений необходимо щелкнуть кнопкой «Объяснение» (рис. 6.6).

Размещено на http://www.allbest.ru

Размещено на http://www.allbest.ru

Прокрутите список вхождений до строки notepad /0 (рис. 6.7) и нажмите кнопку «Добавить».

8. Прокрутите список до процесса Mmc (Microsoft Management Console, в котором выполняется элемент «Системный монитор»), выберите все его потоки и добавьте их на график.

9. Закройте диалоговое окно «Добавить счетчики». Поток Notepad должен находиться в состоянии 5, т.е. Waiting (в данном случае поток ждет GUI_ввода).

10. Один из потоков Mmc находится в состоянии Running (значение 2). Этот поток постоянно опрашивает состояние других потоков.

11. Попеременно сворачивая окно программы «Блокнот» в панель задач и восстанавливая его, добейтесь появления «перепадов» состояния потока Notepad (рис. 6.8).

6.5 Изучение динамического изменения приоритета потока активного процесса

1. Запустите утилиту «CPU Stress».

2. Запустите системный монитор из Windows NT 4.

3. Добавьте в список графиков счетчик «Текущий приоритет» объекта «Поток» Cpustres /1.

4. Установите максимум по вертикальной шкале 16, интервал 0,01 с.

Размещено на http://www.allbest.ru

5. Активизируйте процесс Cpustres. В результате приоритет потока Cpustres должен повыситься на 2 уровня, а потом снизиться до базового, как показано на рис. 6.9.

Размещено на http://www.allbest.ru

Чтобы увеличить частоту динамического повышения приоритета потока Cpustress, увеличьте значение Activity с Low до Medium, затем до Busy. При увеличении параметра Activity до значения Maximum повышения приоритета не происходит, так как поток входит в вечный цикл и никаких функций ожидания не вызывает. Какая цель достигается в ВС за счет динамического изменения приоритета активного потока?

6.6Изучение динамического повышения приоритета GUI-потоков

1. Запустите программу «Блокнот».

2. Запустите системный монитор из Windows NT 4.

3. Добавьте в список графиков счетчик «Текущий приоритет» объекта «Поток» notepad /0.

4. Установите максимум по вертикальной шкале 16, интервал 0,01 с.

5. Приоритет потока Notepad должен быть в пределах 8-10, так как после повышения его приоритета на 2 уровня как у потока активного процесса, его приоритет мог не успеть снизиться из-за его перехода в состояние ожидания.

Размещено на http://www.allbest.ru

6. Активизируйте монитор производительности и подвигайте курсор мыши в окне программы «Блокнот». Вы увидите, что его приоритет колеблется между 10 и 9, а приоритет 8 будет у него в течение очень короткого времени, так что его можно и не заметить (рис. 6.10).

7. Активизируйте окно потока Notepad, при этом его приоритет повысится до 12, так повышение приоритета происходит дважды: сначала как у GUI-потока, пробужденного активностью подсистемы управления окнами, затем как у потока активного процесса.

8. Теперь при движении курсора мыши в окне программы «Блокнот», приоритет его потока может понижаться до 10 из-за динамического снижения приоритета по истечении кванта, но все равно останется выше базового как минимум на два уровня, так как этот поток является потоком активного процесса.

9. Какая цель достигается в ВС за счет динамического изменения приоритета GUI-потоков?

6.7 Изучение динамического повышения приоритетов при нехватке процессорного времени

1. Запустите утилиту «CPU Stress». Измените значение в списке Activity для активного потока с Low на Maximum. Далее смените приоритет потока с Normal на Below Normal (рис. 6.11).

Размещено на http://www.allbest.ru

2. Запустите системный монитор из Windows NT 4.

3. Добавьте в список графиков счетчик «% загруженности процессора» объекта «Поток» Cpustres /1.

4. Увеличьте приоритет системного монитора из Windows NT 4 до уровня реального времени.

5. Запустите еще один экземпляр потока Cpustres. Измените в нем значение Activity для Thread 1 с Low на Maximum (рис. 6.12).

6. Теперь переключитесь в системный монитор. Вы должны наблюдать всплески активности процессора примерно каждые 4 секунды, так как приоритет потока возрос до 15. Проведите анализ работы ВС в этом режиме.

Размещено на http://www.allbest.ru

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Основная литература

1. Сетевые операционные системы/ В.Г. Олифер, Н.А. Олифер. - СПб.: Питер, 2001. - 544 с.

2. Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. - СПб.: Питер, 2004. - 668 с.

3. Организация ЭВМ /К. Хамахер, З. Вранешич, С. Заки. - СПб.: Питер, 2003. - 848 с.

4. Таненбаум Э. Архитектура компьютера. - СПб.: Питер, 2002. - 704с.

5. Столлингс В. Структурная организация и архитектура компьютерных систем. - М.: Издательский Дом «Вильямс», 2002. - 896 с.

6. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 624 с.

7. Гордеев А.В. Операционные системы. - СПб.: Питер, 2004. - 416 с.

8. Системное программное обеспечение/ А.В. Гордеев, А.Ю. Молчанов. - СПб.: Питер, 2001. - 736 с.

9. Зыль С.Н. Операционная система реального времени QNX: от теории к практике. - СПб.: БХВ-Петербург, 2004. - 192 с.

10. Иртегов Д. В. Введение в операционные системы. - СПб.: БХВ-Петербург, 2002. - 624 с.

11. Соломон Д., Русинович М. Внутреннее устройство Microsoft Windows 2000. Мастер-класс. - СПб: Питер, 2004. - 746 с.

12. Танненбаум Э. Современные операционные системы. - СПб.: Питер, 2002. - 1040 с.

13. Столлингс В. Операционные системы. Внутреннее устройство и принципы проектирования. - М.: Изд. Дом «Вильямс», 2002. - 848 с.

Дополнительная литература

1. Операционные системы. Параллельные и распределенные системы / Д. Бэкон, Г. Харрис. - СПб.: Питер, 2004. - 800 с.

2. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. - М.: Вильямс, 2003. - 512 с.

3. Пирогов В.Ю. Ассемблер для Windows. - СПб.: БХВ Петербург, 2003. - 656 с.

4. Засов В.А., Савченков Н.Н. Введение в операционные системы. Методические указания для студентов специальностей ИС и АТС. - Самара: СамИИТ, 2002. - 28 с.

5. Засов В.А. Основы микропроцессорной техники: Учебное пособие. -СамИИТ, 2001. - 215 с.

Размещено на Allbest.ru


Подобные документы

  • Алгоритмы планирования мультипрограммных операционных систем. Оценка возможности выполнения двух процессов в реальном времени. Организация доступа к критической секции с использованием передачи сообщений. Обнаружение блокировок в вычислительной системе.

    курсовая работа [858,7 K], добавлен 24.03.2015

  • Основные функции и процессы подсистемы управления процессами. Диспетчеризация процессов (потоков). Алгоритмы планирования выполнения потоков. Назначение и разновидности приоритетов в операционных системах. Функции подсистемы управления основной памятью.

    презентация [117,7 K], добавлен 20.12.2013

  • Взаимодействие процессов и потоков в операционной системе, основные алгоритмы и механизмы синхронизации. Разработка школьного курса по изучению процессов в операционной системе Windows для 10-11 классов. Методические рекомендации по курсу для учителей.

    дипломная работа [3,2 M], добавлен 29.06.2012

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

    контрольная работа [302,7 K], добавлен 06.08.2013

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

    реферат [124,6 K], добавлен 18.02.2012

  • Общая организация файловой системы. Виртуальные страницы. Команды для работы с ФС. Способы организации файлов. Системные вызовы управления процессами. Алгоритм работы планировщика процессов. Мультипрограммный режим работы ОС. Структура ядра системы.

    курсовая работа [645,3 K], добавлен 23.03.2015

  • Обзор операционных систем, обеспечивающих взаимную синхронизацию процессов и потоков. Понятие критической секции и критических данных, описание приема взаимного исключения. Использование блокирующих переменных и семафоров. Объекты-взаимоисключения.

    доклад [26,7 K], добавлен 27.12.2013

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

    контрольная работа [125,7 K], добавлен 15.09.2013

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

    презентация [175,6 K], добавлен 11.10.2014

  • Рассмотрение способов просмотра состояния процессов через диспетер задач в операционной системе Windows: определение взаимосвязи процессов и потоков, времени работы системы в пользовательском режиме. Ознакомление со сведениями о файлах драйверов.

    лабораторная работа [3,1 M], добавлен 07.04.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.