Задачность - единица работы компьютерной системы, требующая выделения ресурсов.
Многозадачность – это способность системы выполнять одновременно несколько приложений.
Можно одновременно делать расчеты, печатать документ и играть в игру.
На самом деле процессор или ядро процессора каждый момент времени может решать только одну задачу. Для каждой задачи выделяется своя доля времени процессора.
У пользователя создается иллюзия одновременного решения задач.
Различают два вида многозадачности:
1)кооперативная
2)преемптивная.
В кооперативной многозадачности каждому приложению назначается приоритет. Задачи малого приоритета решаются во время простоя задачи большого приоритета (ожидание нажатия клавиши, чтение – запись на диск и др.). Каждая задача самостоятельно решает, когда отдать процессор другой задаче.
Задача большого приоритета может забрать себе все время процессора.
В преемптивной многозадачности каждая задача получает фиксированный квант (кусочки) времени процессора. Окончание кванта всегда приводит к попытке передать управление другой задаче. Задачи решаются по очереди, являются преемниками друг друга. Ответственность за передачу процессора несет ОС.
Приложения Windows способны порождать процессы.
Процесс – совокупность действий, которые могут выполняться независимо от других процессов. Например, можно открыть несколько окон и независимо обрабатывать несколько документов. За каждым окном закреплен процесс.
Поток – это часть процесса, который может выполняться независимо от других потоков. Например, вычисление в разных ячейках таблицы могут выполняться независимо друг от друга
Деление процесса на потоки функция самого приложения, а порядок предоставления потокам процессорного времени осуществляется операционной системой.
Процесс состоит из потоков, в крайнем случае, из одного. Многозадачность Windows основана на способности ОС обрабатывать много потоков.
Основная память компьютера делится между потоками. Каждый поток работает только со своим участком памяти и не имеет право записывать данные в другие участки памяти.
ОС успешнее справляться с многозадачностью, если она поддерживает многопроцессорную обработку. Тогда процессы будут фактически выполняться одновременно, каждый на своем процессоре.
Есть две разновидности многопроцессорной обработки:
1) асимметричная
2) симметричная.
При асимметричной обработке один или несколько процессоров обслуживают только операционную систему, а остальные заняты только приложениями.
При симметричной обработке любой процесс может быть поручен любому свободному процессору. Симметричная обработка более предпочтительна, т.к. в целом отказоустойчива и более равномерно распределяет нагрузку.