Главная страница
Навигация по странице:

  • Эта программа не определяет точно приоритет про- цесса. Process Viewer точно определяет только приоритет потока.

  • Эти программы надо запускать не на виртуальной машине, а на физиче- ском компьютере.

  • Properties

  • Диспетчер задач

  • Realtime , High , AboveNormal , Normal , BelowNormal , Idle.

  • Лабораторная работа 6. Исследование процессов и потоков в операционной системе Windows


    Скачать 284.44 Kb.
    НазваниеЛабораторная работа 6. Исследование процессов и потоков в операционной системе Windows
    Дата23.11.2022
    Размер284.44 Kb.
    Формат файлаpdf
    Имя файлаOS LR6.pdf
    ТипЛабораторная работа
    #808775

    1
    Операционные системы.
    Лабораторная работа №6.
    Исследование процессов и потоков в операционной системе Windows
    Цель работы: Познакомиться с особенностями организации работы процессов и потоков в ОС Windows.
    Методические указания.
    В Windows используется 32 уровня динамических приоритетов. Минимальный уровень -
    0, максимальный - 31. Чем выше уровень динамического приоритета, тем чаще запускается по- ток на выполнение. Особенностью приоритетов Windows по сравнению с UNIX является то, что весь диапазон разделён на три уровня: системный, динамический и реального времени. На этих уровнях по-разному организуется планирование выполнения потоков.
    Системный уровень имеет численное значение 0. Это самый низкий уровень динамиче- ского приоритета. Такой приоритет имеет только системный процесс Idle. Никакие другие про- цессы не могут иметь такой приоритет. Можно сказать, что системный уровень создан специ- ально для процесса Idle.
    Динамический уровень включает в себя численные значения приоритета от 1 до 15. ОС может повышать приоритеты потоков, находящихся на этом уровне. Поэтому этот уровень называется динамический. На этом уровне приоритета выполняются абсолютное большинство процессов и потоков. Повышение приоритета потока происходит в следующих случаях:
    1) Поток отвечает за отрисовку окна приложения. При выводе окна на первый план прио- ритет потока повышается на 2.
    2) Если поток ожидает ввода данных пользователем (ввод с клавиатуры, движение мыши) повышается приоритет у этого потока.
    3) После разблокировки потока, ожидавшего завершения операции ввода/вывода или реак- ции системы на запрос, повышается приоритет разблокированного потока.
    4) Если поток долгое время не выполняется из-за низкого приоритета, у него повышается приоритет выполнения.
    Поток выполняется с повышенным приоритетом несколько квантов времени, потом при- оритет снижается до базового.
    Уровень реального времени используется в исключительных случаях, когда процесс должен обрабатывать данные, поступающие в реальном времени. Это значит, процесс должен обработать порцию данных за ограниченное время, так как через короткий промежуток време- ни поступит новая порция данных, которую тоже надо успеть обработать. Поток реального времени не прерывается таймером и выполняется до тех пор, пока он сам не отдаст управление
    ОС. На персональном компьютере потоки реального времени обрабатывают аудио и видеодан- ные.
    Другой особенностью приоритетов выполнения в Windows является то, что приоритет процессов не может быть любым. Из всего диапазона приоритетов процессы могут иметь толь- ко некоторые значения. Значения приоритетов, которые принимают процессы называются клас- сами приоритетов. Всего существует 6 классов приоритета выполнения.
    1) Real time class (значение 24),
    2) High class (значение 13),
    3) Above normal class (выше обычного) (значение 10),
    4) Normal class (значение 8),
    5) Below normal class (ниже обычного) (значение 6),
    6) Idle class (значение 4).

    2
    Таким образом, процесс, выполняющийся на динамическом уровне может принимать одно из пяти возможных значений приоритета выполнения.
    Весь диапазон перекрывается приоритетами потоков. Приоритет потока назначается отно- сительно приоритета процесса. При изменении приоритета процесса изменяются приоритеты потоков. В результате относительный приоритет потока остаётся неизменным, а абсолютный меняется. Приоритет потока может быть равен приоритету процесса, может быть выше или ни- же на одну или две единицы. Также приоритет потока может принимать максимально или ми- нимально возможные значения приоритета своего уровня. Есть семь относительных приорите- тов потоков:
    1) Normal: такой же, как и у процесса;
    2) Above normal: +1 к приоритету процесса;
    3) Below normal: -1;
    4) Highest: +2;
    5) Lowest: -2;
    6) Time critical: устанавливает базовый приоритет потока для Real time класса в 31, для остальных классов в 15.
    7) Idle: устанавливает базовый приоритет потока для Real time класса в 16, для остальных классов в 1.
    Связь приоритетов потоков с приоритетом процесса показана на рисунке.
    Рис. Зависимость приоритета потока от приоритета процесса.
    Потоки с приоритетами Highest и Above Normal обычно используются для взаимодей-

    3 ствия с пользователем. В этом случае пользователю не придётся долго ждать отклика системы, так как потоки, осуществляющие ввод данных с клавиатуры, мыши или вывод на экран, будут выполняться в первую очередь. Фоновые потоки, особенно те, которые интенсивно используют процессор или жёсткий диск, могут быть установлены в Below normal или Lowest, чтобы гаран- тировать, что они могут быть вытеснены при необходимости.
    При выполнении лабораторной работы требуется записывать полученные результаты. В результате выполнения лабораторной работы должен быть оформлен отчёт, который должен быть показан преподавателю. Отчёт должен содержать задание или вопрос и результат выпол- нения задания или ответ на вопрос. В отчёте должны содержаться объяснения полученных ре- зультатов и подробные ответы на поставленные вопросы.
    При выполнении лабораторной работы необходимо использовать следующие утилиты: pviewer.exe, procexp.exe, badapp32.exe.
    Указания по выполнению лабораторной работы.
    1. Запустите диспетчер задач, откройте вкладку «Производительность» («Быстродействие»).
    Запишите сколько в системе запущено процессов и потоков.
    2. Запустите программу «Process Viewer» pviewer.exe и запишите требуемую информацию.
    При анализе информации следует учитывать, что Process Viewer предназначен для измене- ния приоритета процесса или потока. Эта программа не определяет точно приоритет про-
    цесса. Process Viewer точно определяет только приоритет потока. Таким образом, приоритет процесса надо определять исходя из приоритетов потоков, входящих в него.
    1) Определите, запущен ли процесс Idle?
    2) Сколько времени процесс Idle проводит в режиме ядра, а сколько в пользовательском режиме? Объясните, чем пользовательский режим отличается от режима ядра?
    3) Запишите численное значение уровня привилегий у процесса Idle?
    4) Сколько потоков у процесса Idle? Почему у этого процесса именно такое количество по- токов?
    5) Какой динамический приоритет у потоков процесса Idle.
    6) Какой класс динамического приоритета у процесса Idle.
    7) Есть ли процессы, в которых запущено больше чем два потока. Приведите примеры та- ких процессов.
    3. Запустите программу «Блокнот» (Notepad). Нажмите кнопку Refresh в программе «Process
    Viewer».
    1) Найдите процесс, относящийся к программе «Блокнот» (Notepad). Сколько потоков у этого процесса?
    2) Сколько времени процесс проводит в режиме ядра, а сколько в пользовательском режи- ме?
    3) Определите, какой поток в процессе Notepad является потоком управления (базовым по- током)?
    4) Введите в программе «Блокнот» какой-нибудь текст. Сохраните документ в файл.
    Нажмите кнопку Refresh в программе «Process Viewer».
    5) Сколько потоков стало у процесса Notepad? Заполните следующую таблицу:
    Поток № Процессорное время Привилегированный режим работы, %
    Работа в режиме пользователя, %
    6) Объясните, почему увеличилось количество потоков?

    4 7) Поясните, каким образом один поток может работать в режиме пользователя и в при- вилегированном режиме?
    4. Запустите «Диспетчер задач» (Task Manager).
    1) Какие приложения запущены?
    2) Перейдите на вкладку Службы. Есть ли связь между полем идентификатор процесса и числом в скобках в pviewer?
    3) Сколько служб запущено в системе? Учтите, в «Диспетчере задач» показаны службы ра- ботающие и остановленные. Считать надо только работающие службы.
    5. Исследование динамического изменения приоритета потока.
    Для дальнейших исследований понадобятся программы Process Explorer (procexp.exe) и badapp32.exe. Эти программы надо запускать не на виртуальной машине, а на физиче-
    ском компьютере.
    1) Запустите программу badapp32.exe.
    2) Запустите программу procexp.exe. Появится окно, разделённое на две части. В верхней части представлен список процессов. В нижней части находится список описателей объектов (handle) для процесса или список используемых dll в зависимости от настрой- ки. Для определения потоков процесса надо выделить требуемый процесс и нажать правую кнопку мыши. В контекстном меню надо выбрать Properties и закладку
    Threads. На этой вкладке показаны стартовые адреса всех потоков процесса, а также их
    ID. Также представлены базовый (Base Priority) и динамический приоритеты (Dynamic
    Priority) выбранного потока.
    3) Выберите процесс badapp32.exe. Сколько потоков входит в этот процесс? Определите, какой поток является потоком управления?
    4) Запишите состояние потока управления (State). Запишите значения базового и динами- ческого приоритетов потока управления. Поясните, что значит базовый и динамиче- ский приоритеты потока. Почему динамический приоритет больше базового?
    5) Сделайте окно badapp32 активным и проследите, как меняется приоритет потока управ- ления. Как меняется приоритет потока управления при переводе окна в фон? Объясните получившиеся результаты.
    6. Определение численных значений приоритетов выполнения процессов.
    1) Для дальнейшей работы необходимо программу badapp32, используя меню, переве- сти в состоянии зависания (Hang). Используя Process Explorer, определите базовый и динамические приоритеты потока управления.
    2) Откройте Диспетчер задач, выберите вкладку «Подробности» («Службы») и найдите процесс badapp32.exe. Меняйте приоритет процесса утилитой «Диспетчер за- дач» и установите численные значения динамических приоритетов процесса Realtime,
    High, AboveNormal, Normal, BelowNormal, Idle. Для установки приоритета в Realtime необходимо обладать правами администратора. Запишите в отчёт численные значения, соответствующие перечисленным приоритетам.


    написать администратору сайта