Одним из наиболее актуальных вопросов, которые решает любая многозадачная операционная система, в том числе и системы windows 9х, состоит в организации по возможности простого, но эффективною способа предоставления процессорного времени различным параллельно выполняющимся программам. Другими словами, речь идет о диспетчеризации задач.
Мы уже знаем, что многозадачность, в общем случае, означает способность операционной системы обеспечивать совместное использование процессора несколькими программами. Большинство разработчиков операционных систем называют работающие программы задачами, поэтому задачей можно считать загруженную в память программу, которая что-то делает.
Диспетчер задач (потоков выполнения) использует следующие три механизма, с помощью которых он пытается равномерно распределять время процессора между всеми вычислениями в целях обеспечения бесперебойной и одновременно быстрой реакции системы.
· Динамическое изменение приоритета. Диспетчер на время может повысить или понизить приоритет того или иного потока. Так, например, нажатие клавиши или щелчок мыши говорит ему о том, что приоритет потока, к которому относится действие пользователя, должен быть повышен.
· Постсинхронизированное снижение приоритета. Ранее повышенное значение приоритета постепенно возвращается к исходному значению.
· Наследование приоритета. Служит для быстрого повышения приоритета. Обычно это делается для того, чтобы позволить потоку с низким приоритетом быстро закончить работу с выделенным для монопольного использования ресурсом, который необходим потокам с высоким приоритетом. Windows 95/98 восстанавливает исходное значение унаследованного приоритета сразу же после удовлетворения конфликтного условия.
Для загрузки операционные системы windows 95/98 используют операционную систему ms dos 7.0 (ms dos 98). И в случае если в секции [options] файла msdos.sys имеется строка bootgui= 0, процессор работает в обычном реальном режиме. Распределение памяти в ms dos 7.0 такое же, как и в предыдущих версиях dos. Однако при загрузке интерфейса gui перед загрузкой ядра windows 95/98 процессор переключается в защищенный режим работы и начинает распределять память уже с помощью страничного механизма.
Приложения и подсистемы windows 9х (за исключением ядра) никогда не работают с физической памятью. Разделение на виртуальную и физическую память является ключевым аспектом работы системы. Приложения и подсистемы windows 9х имеют дело с определенными интерфейсами прикладного программирования и виртуальными адресными пространствами. Базовая система работает как с физической памятью, так и с виртуальными адресными пространствами.