Использование многозадачности повышает эффективность загрузки центрального процессора. Так, если средний процесс выполняет вычисления только 20 % от общего времени реализации процесса, а остальное время находится в состоянии ожидания завершения операции ввода-вывода, то при присутствии в памяти одновременно пяти процессов центральный процессор должен быть занят все время [Таненбаум]. Такая модель является достаточно грубой и не учитывает ряд факторов.
Рассмотрим более точную модель загрузки центрального процессора с использованием теории вероятности. Предположим, что процесс проводит часть своего времени в ожидании завершения операции ввода-вывода. Обозначим вероятность этого состояния (бездействия процессора) через р. Если в памяти находится одновременно М процессов, вероятность того, что все М процессов ждут ввод-вывод, равна рМ. Тогда степень загрузки центрального процессора будет выражаться через коэффициент:
rЦП= 1 – рМ.
На рисунке показана зависимость степени загрузки центрального процессора от числа М, называемого коэффициентом мультипрограммирования.
rЦП,%
М
Рисунок 5 - Зависимость коэффициента загрузки rЦП центрального процессора от коэффициента мультипрограммирования М
Из рисунка видно, что если процессы проводят 80 % своего времени в ожидании завершения операции ввода-вывода, то для того, чтобы получить потерю времени процессора ниже 20 %, в памяти должны одновременно находиться более 10 процессов.
Необходимо отметить, что описанная выше вероятностная модель является также не точной. Она неявно предполагает, что все М процессов независимы, то есть допустима следующая ситуация: в памяти находятся пять процессов, из них три работают, а два ждут. Но когда в системе присутствует один центральный процессор, он не может одновременно обрабатывать три процесса, поэтому уже готовый к работе процесс обязан ждать освобождения процессора. Таким образом, в реальности процессы не являются независимыми. Более адекватную модель можно построить с использованием теории массового обслуживания.
Хотя модель на рисунке__ очень проста, тем не менее, она позволяет сделать приблизительную оценку производительности центрального процессора. Например, предположим, что компьютер имеет 32 Мбайт памяти, 16 Мбайт отдано операционной системе, а каждая программа пользователя занимает по 4 Мбайт. При таких заданных размерах одновременно можно загрузить в память четыре пользовательские программы. При 80 % времени на ожидание ввода-вывода в среднем получается загруженность процессора rЦП = 1 - 0,84 или около 60 %. Добавление еще 16 Мбайт памяти позволит системе повысить коэффициент мультипрограммирования до восьми и таким образом повысить степень загрузки процессора до 83 %. Другими словами, дополнительные 16 Мбайт увеличат производительность на 38 %.
Если добавить ещё 16 Мбайт, то загрузку процессора можно повысить с 83 до 93 %, но при этом производительность процессора увеличится всего лишь на 12 %. [Таненбаум].