Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Краткие теоретические сведения. Процессорное время выделяется потокам в соответствии с их уровнем приоритета




Процессорное время выделяется потокам в соответствии с их уровнем приоритета. Потоку с более низким приоритетом не выделяется время, если на него претендует поток с более высоким уровнем приоритета. Более того, про­цесс с более низким приоритетом прерывается до истечения кванта времени, если на процессор претендует более приоритетный поток.

Уровни приоритетов варьируются в диапазоне от 0 (низший) до 31 (высший).

Действующий приоритет каждого потока образуют три составляющие: класс приоритета процесса, уровень приоритета потока внутри класса при­оритета процесса, динамический уровень приоритета.

Класс приоритета процесса и уровень приоритета потока внутри класса определяют базовый уровень приоритета потока. Привилегированными счита­ются приоритеты от 16 до 31, они резервируются за системными программами реального времени. Прикладная программа получить приоритет выше 15 не может.

Определены следующие классы приоритетов, которым соответствуют константы:

– Idle (простаивающий) – IDLE_PRIORITY_CLASS (4), процесс активи­зируется только при простое других процессов;

– Normal (нормальный) – NORMAL_PRIORITY_CLASS (7), большинство процессов в системе, в частности, все процессы пользователя; приоритет владеющего активным окном процесса повышается на 2 и составляет 9;

– High (высокий) – HIGH_PRIORITY_CLASS (13), системные процессы, реагиру­ющие на соответствующие события;

– Real time (реального времени) – REALTIME_PRIORITY_CLASS (24), некоторые системные процессы в "особых случаях".

Внутри классов приоритетов процессов определены уровни приоритетов потоков:

– низший (THREAD_PRIORITY_LOWEST) – –2 от уровня класса;

– пониженный (THREAD_PRIORITY_BELOW_NORMAL) – –1 от уровня класса;

– нормальный (THREAD_PRIORITY_NORMAL) – равен уровню класса;

– повышенный (THREAD_PRIORITY_ABOVE_NORMAL) – +1 к уровню класса;

– высший (THREAD_PRIORITY_HIGHEST) – +2 к уровню класса;

– простаивающий (THREAD_PRIORITY_IDLE) – равен 16 для REALTIME_­PRIORITY_­CLASS и 1 для остальных классов;

– «критический» (THREAD_PRIORITY_TIME_CRITICAL) – равен 31 для REALTIME_PRIORITY_CLASS и 15 для остальных классов.

Для класса REALTIME_PRIORITY_CLASS может использоваться также расширенный диапазон значений – от –7 до +6. Начиная с Windows 2003 были добавлены два специальных значения: THREAD_MODE_BACKGROUND_BEGIN и THREAD_MODE_BACKGROUND_END, они связаны с дополнительными возмож­ностями планировщика.

Динамический уровень приоритета образуется повышением базового уровня потока на две единицы при поступлении сообщений в его очередь; по истечении некоторого времени восстанавливается исходное значение. Вре­менное повышение приоритета делается также и для долго не получавшего управление потока. Эти правила действуют только для потоков с уровнем приоритета не выше 15.

Для управления приоритетами выполнения процессов и потоков служат следующие функции.

GetPriorityClass() – получение текущего класса приоритета для процесса;

SetPriorityClass() – установка класса приоритета для процесса;

GetThreadPriority() – получение текущего приоритета выполнения потока;

SetThreadPriority() – установка приоритета выполнения потока.

В сбалансированной системе высокоприоритетные потоки выполняют, как правило, короткие операции, связанные с реагированием на события. Кроме того, само событийное управление процессами предполагает частое переклю­чение в состояние ожидания. Это дает шанс на исполнения потокам с низким уровнем приоритета.

Контрольные вопросы

1. Понятия приоритета процесса и потока. Роль приоритетов в плани­ровании выполнения задач.

2. Классы приоритетов. Краткая характеристика основных классов при­ори­тетов.

3. Функция для получения всех выполняющихся в данный момент про­цессов. Ее параметры и использование.

4. Функция для получения всех модулей заданного процесса. Ее пара­метры и использование.

5. Основные функции для управления приоритетами.

6. Создание всплывающих меню.

Задание

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

 

Лабораторная работа №14
Реестр Windows

Цели работы:

1) изучение системного реестра Windows;

2) изучение API для работы с реестром;

3) практическое ознакомление с некоторыми задачи, связанными с работой с реестром.





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 361 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Что разум человека может постигнуть и во что он может поверить, того он способен достичь © Наполеон Хилл
==> читать все изречения...

2508 - | 2325 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.