ПРОГРАММНАЯ СРЕДА WINDOWS
Многозадачность в Windows
Как известно, все версии Windows поддерживают
многозадачность. В Windows 3.1 имеется только один тип многозадачности -
основанный на процессах. В новых системах Windows поддерживается два типа
многозадачности: основанный на процессах и основанный на потоках. Рассмотрим
их чуть подробнее.
Процесс — это программа, которая выполняется. При
многозадачности такого типа две или более программы могут выполняться
параллельно. Конечно, они по очереди используют ресурсы центрального
процессора и с технической точки зрения выполняются неодновременно, но
благодаря высокой скорости работы компьютера это практически незаметно.
Поток — это отдельная часть исполняемого кода. Название
произошло от понятия «направление протекания процесса». В многозадачности
данного типа отдельные потоки внутри одного процесса также могут выполняться
одновременно. Все процессы имеют, по крайней мере, один поток, но в Windows
95 и Windows NT их может быть несколько.
Отсюда можно сделать вывод, что в Windows 95 и Windows NT
допускается существование процессов, две или более частей которых выполняются
одновременно. Оказывается, такое предположение верно. Следовательно, при
работе в этих операционных системах возможно параллельное выполнение как
программ, так и их отдельных частей. Это позволяет писать очень эффективные
программы.
Есть и другое существенное различие между многозадачностями
Windows 3.1 и Windows 95/NT. В Windows 3.1 используется неприоритетная
многозадачность. Это означает, что процесс, выполняющийся в данный момент,
получает доступ к ресурсам центрального процессора и удерживает их в течение
необходимого ему времени. Таким образом, неправильно выполняющаяся программа
может захватить все ресурсы процессора и не давать выполняться другим
процессам. В отличие от этого в Windows 95 и Windows NT используется
приоритетная многозадачность. В этом случае каждому активному потоку
предоставляется определенный промежуток времени работы процессора. По
истечении данного промежутка управление автоматически передается следующему
потоку. Это не дает возможность программам полностью захватывать ресурсы
процессора. Интуитивно должно быть понятно, что такой способ более
предпочтителен
|