Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Приоритеты потоков. Классы приоритетов процессов и относительные приоритеты потоковВ ОС Windows в любой момент времени могут выполняться потоки с разными приоритетами, каждому из которых может соответствовать один из уровней приоритета в диапазоне от 0..31. Приоритеты потоков в системе учитываются следующим образом: 1. При распределении процессорного времени ищутся потоки с наивысшим уровнем 31. Если они присутствуют, то им последовательно предоставляется процессорное время. 2. После выполнения всех таких потоков, отыскиваются потоки с меньшими значениями приоритетов, и они начинают выполняться. Во всех случаях, поток с более высоким уровнем приоритета, когда он запускается на выполнение, вытесняет из процессора поток с более низким уровнем приоритета, даже в том случае, когда еще не закончился квант процессорного времени, отведенный для низкоприоритетного потока. Это означает, что в системе реализуется дисциплина обслуживания потоков с абсолютными динамическими приоритетами. В момент загрузки ОС создается особый поток, называемый потоком обнуления страниц. Ему присваивается нулевой уровень приоритета. Ни один другой поток, кроме этого, не может иметь такой уровень приоритета. Поток обнуления страниц подготавливает для использования свободные страницы в ОП при отсутствии в системе других потоков. Алгоритм, по которому потоки, с учетом их приоритетов, выполняются в системе, реализуется частью ядра ОС, которая называется планировщиком потоков. Внутренние особенности этого алгоритма скрыты от пользователей и разработчиков прикладных программ. Для них имеется возможность использовать средства WinAPI. На уровне этих средств, в системе реализованы две концепции, связанные с приоритетностью: 1. Концепция класса приоритета процесса; 2. Концепция относительных приоритетов потоков в рамках одного процесса. Существует 6 классов приоритетов процессов: 1. Простаивающий. Потоки в таком процессе выполняются, когда система не занята другой работой. Этот класс обычно используется для вспомогательных программ, работающих в фоновом режиме, например, экранных заставок, программ сбора статистической информации и т.д.; 2. Ниже обычного. Этот класс используется в версиях начиная с Windows 2000 и является промежуточным. Он введен с целью расширения множества классов приоритетов; 3. Обычный. Это самый распространенный класс приоритета. Потоки в таких процессах не предъявляют особых требований к выделению им процессорного времени. В этом классе выполняется большая часть прикладных программ; 4. Выше обычного. Как и второй, является промежуточным; 5. Высокий. Потоки в таком процессе немедленно реагируют на различные события, и позволяют выполнять критические по времени исполнения программы. Например, в этом классе приоритета выполняется программа Internet Explorer. При её запуске, все потоки с более низкими приоритетами вытесняются из процессора. Это сделано для того, чтобы независимо от ситуации в системе, пользователь мог бы получить быструю ответную реакцию IE на команды пользователя; 6. Реального времени. Используется относительно редко, для обеспечения очень быстрой ответной реакции программы на какие-либо события. К примеру, необходимость с минимальной задержкой реагировать на события аппаратной части компьютера, либо когда требуется выполнить быстротечную операцию, которую нельзя прервать ни при каких обстоятельствах. Выбор класса приоритета процесса осуществляется заданием соответствующего параметра функции создания процесса, в которой каждый класс указывается своим собственным идентификатором. После выбора класса приоритета процесса, для потоков процесса в данном классе может быть задан один из семи возможных уровней относительных приоритетов. Они имеют общепринятые названия: 1. Простаивающий. В этом случае, поток выполняется с уровнем относительного приоритета равным 16 в классе процессов реального времени, и с уровнем относительного приоритета, равным единице – в других классах; 2. Низший. Поток выполняется с уровнем относительного приоритета на два уровня ниже обычного для данного класса уровня; 3. Ниже обычного. Здесь поток выполняется с относительным уровнем приоритета на один уровень ниже обычного уровня для данного класса; 4. Обычный. Поток выполняется со следующими значениям уровнями приоритетов для всех классов: 4, 6, 8, 10, 13, 24; 5. Выше обычного. Поток выполняется с относительным уровнем приоритета на один уровень больше обычного уровня для данного класса; 6. Высший. Поток выполняется с относительным уровнем приоритета на два уровня выше обычного уровня для данного класса; 7. Критичный по времени. Поток выполняется с относительным уровнем 31 в классе процессов реального времени, и с относительным уровнем, равным 15, во всех других классах.
Дата добавления: 2014-10-10; просмотров: 589; Нарушение авторских прав Мы поможем в написании ваших работ! |