Организация многозадачности

Одним из наиболее актуальных вопросов, которые решает любая многозадачная операционная система, в том числе и системы Windows 9x, состоит в организации по возможности простого, но эффективного способа предоставления процессор­ного времени различным параллельно выполняющимся программам. Другими сло­вами, речь идет о диспетчеризации задач. Многозадачность,в общем случае, означает способность операционной системы обеспечивать совместное использование процессора несколькими программами. Большинство разработчиков операционных систем называют работающие программы задачами, поэтому задачей можно считать загруженную в память программу, которая что-то делает. В большинстве операционных систем, в том числе и в Windows NT, и в UNIX, выполнение приложения называется про­цессом. Однако в уже упомянутых операционных системах Windows 3.x почти все­гда использовался термин «задача», и лишь изредка - «процесс». Имейте в виду, что в операционных системах Windows 9x используется исключительно термин «процесс», а понятие задачи было официально исключено из терминологии Win­dows. Вкладывая совершенно такой же смысл в слово «процесс», разработчики Microsoft тем самым попытались поставить операционные системы семейства Windows 9x как бы на один уровень с другими операционными системами, таки­ми, например, как Windows NT. В большей части документации по Windows 3.1 мы можем обнаружить оба упомянутых слова. Основная причина изменения тер­минологии - реализация мультизадачности при сохранении мультипрограммно­го режима работы. Другими словами, речь идет о поддержке в этих операционных системах возможности многопоточноговыполнения приложений. Поэтому поми­мо отхода от термина задача и использования термина процесс, мы должны отметить, что во всех этих операционных системах стал использоваться термин поток выполнения,или тред(thread).

Поддержкой многозадачности занимается планировщик (scheduler). Он имеет дело главным образом с временем и событиями. Процессу в Windows 95/98 выделяется квант времени, который определяет, как долго данный процесс может использовать процессор. По окончании кванта Бремени планировщик определяет следует ли передать процессор в распоряжение другого процесса. В отличие от Window NT, Windows 95/98 не поддерживает мультипроцессорные системы, в которых планировщик может выделять процессам больше одного процессора. Решения, принимаемые планировщиком, определяются событиями.

При вытесняющем планировании только система может решать, в каком порядке, как долго и какие задачи (в нашем случае — потоки) будут выполняться. Планировщик может в любой момент отнять процессор у одного из потоков выполнения и передать его в распоряжение другого. Обычно такой акт вытеснения происходит в результате реакции на событие, требующее внимания. Планировщик присваивает каждому из работающих процессов приоритет (priority). По токи его наследуют, хотя при создании нового потока ему можно задать и иной приоритет. В случае если происходит событие, относящееся к потоку, обладающему более высоким приоритетом, планировщик приостанавливает (вытесняет) текущий поток и начинает выполнять тот, у которого приоритет больше.

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

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

· Постсинхронизированное снижение приоритета. Ранее повышенное значение приоритета постепенно возвращается к исходному значению.

· Наследование приоритета. Служит для быстрого повышения приоритета. Обыч­но это делается для того, чтобы позволить потоку с низким приоритетом быстро закончить работу с выделенным для монопольного использования ресурсом, который необходим потокам с высоким приоритетом. Windows 95/98 восста­навливает исходное значение унаследованного приоритета сразу же после удов­летворения конфликтного условия.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: