Многозадачность – способность операционной системы обеспечить совместное использование процессора несколькими программами, т.е. выполнять более одной программы (задачи) одновременно. Рабочие программы можно назвать задачами.
Однозадачность – один процесс должен завершиться прежде, чем может начаться другой.
Процесс – выполняемая программа, ему принадлежит адресное пространство и выделенные ресурсы, а также один или более потоков, выполняющихся в его контексте. В Windows 2000 и UNIX загруженная в память программа называется процессом. В Windows 95 также применяется термин процесс. Термины процесс и задача можно считать синонимами.
Поток – основная единица, которой ОС выделяет процессное время, и минимальный квант кода, который может быть запланирован для выполнения. Поток – это часть процесса, выполняющаяся в данный момент времени. Поток работает в адресном пространстве процесса и использует ресурсы, выделенные процессу.
Любой процесс содержит хотя бы один поток, 16-разрядные приложения имеют один поток, 32-разрядные могут включать несколько потоков.
Ресурсами владеют процессы, а не потоки.
Корпоративная многозадачность – контроль над процессором никогда не отбирается у задачи, приложение должно самостоятельно отказаться от контроля над процессором, чтобы другое приложение заработало. Программа должна учитывать необходимость возврата управления процессором операционной системе, иначе ОС будет заблокирована.
Вытесняющая многозадачность – ОС получает контроль над процессором без согласия выполняющегося приложения.
С помощью планирования ОС определяет, какой поток использует процессор в данный момент времени. Каждому потоку присваивается приоритет. Планирование основано на заранее заданной единице времени – кванте (продолжительность кванта зависит от конфигурации системы). Уровни приоритетов – от 0 (наименьший) до 31 (наибольший). Поток с наибольшим приоритетом получает процессор в свое распоряжение.
Приоритет каждого потока определяется по:- классу приоритета процесса, которому принадлежит поток;
- уровню приоритета потока внутри класса приоритета его процесса.
Уровни приоритетов Windows разделены на два класса:- реального времени (приоритеты от 16 до 31) используются для выполнения основных функций ОС и обычно не применяются для приложений;
- переменного приоритета (от 0 до 15) – определяет процессорный приоритет приложения; приоритет 0 – для бесстраничного системного потока.
Базовые уровни приоритетов:- низкий – запускает приложение с уровнем приоритета 4;
- обычный – запускает приложение с уровнем приоритета 7;
- высокий – запускает приложение с уровнем приоритета 13;
- реального времени – запускает приложение с уровнем приоритета 24.