Многозадачность с фиксированными разделами
Большинство современных систем позволяет одновременный запуск нескольких процессов. Наличие нескольких процессов, работающих в один и тот же момент времени означает, что когда один процесс приостановлен в ожидании завершения операции ввода-вывода, другой может использовать центральный процессор. Таким образом, многозадачность увеличивает загрузку процессора. На сетевых серверах всегда одновременно работают несколько процессов (для разных клиентов), но и большинство клиентских машин в наши дни также имеют эту возможность. Самый простой способ достижения многозадачности состоит в разбиении памяти на n,возможно не равных, разделов. Когда задание поступает в память, оно располагается во входной очереди к наименьшему разделу, достаточно большому для того, чтобы вместить это задание. Так как размер разделов неизменен, то все неиспользуемое работающим процессом пространство в разделе пропадает. Недостаток этого способа заключается в том, что к большому разделу очереди почти не бывает, а к маленьким разделам выстраивается довольно много задач. Небольшие задания должны ждать своей очереди, чтобы попасть в память, несмотря на то, что свободна основная часть памяти. Усовершенствованный способ заключается в организации одной общей очереди для всех разделов.Как только раздел освобождается, задачу, находящуюся ближе к началу очереди и подходящую для выполнения в этом разделе, можно загрузитьв него и начать ее обработку. С другой стороны, нежелательно тратить большие разделы на маленькие задачи, поэтому существует другая стратегия. Она заключается в том, что каждый раз после освобождения раздела происходит поиск в очереди наибольшего для этого раздела задания, и именно оно выбирается для обработки. Однако этот алгоритм отстраняет от обработки мелкие задачи, хотя крайне желательно предоставить для наименьших задач лучшее обслуживание. Выходом из положения служит создание хотя бы одного маленького раздела, который позволит выполнять мелкие задания без долгого ожидания освобождения больших разделов. Другой подход предусматривает следующий алгоритм: задачу, которая имеет право быть выбранной для обработки, можно пропустить не более k раз. Когда задача пропускается, к счетчику добавляется единица. Если значение счетчика стало равным k, игнорировать задачу больше нельзя.
При использовании многозадачности повышается эффективность загрузки ЦП. Грубо говоря, если средний процесс выполняет вычисления только 20% от времени, которое он находится в памяти, то при обработке пяти процессов ЦП должен быть загружен полностью. Реальная же ситуация предполагает, что все пять процессов никогда не ожидают завершения операции ввода-вывода одновременно.
Более совершенная модель исследует эксплуатацию центрального процессора, используя закономерности теории вероятности. Допустим, что процесс проводит часть своего времени p в ожидании завершения операции ввода-вывода. Если в памяти находятся одновременно nпроцессов, то вероятность того, что все они ждут ввод-вывод (в таком случае центральный процессор будет бездействовать) равна pn. Тогда степень загрузки центрального процессора будет выражаться формулой .
Эта вероятностная модель является довольно грубым приближением. Она неявно предполагает, что все nпроцессов независимы, то есть допускается такая ситуация, что из находящихся в памяти пяти процессов три работают, а два ждут. Но когда в системе функционирует один ЦП, он не может одновременно обрабатывать три процесса, поэтому готовый к работе процесс обязан ждать освобождения процессора. Таким образом, в реальности процессы не являются независимыми. Однако общая идея многозадачности позволяет процессам использовать центральный процессор тогда, когда при других обстоятельствах он бы бездействовал.
Эта простая модель, тем не менее, позволяет сделать приблизительный, прогноз относительно производительности ЦП. Предположим, например, что компьютер имеет 32 Мбайт памяти, 16 Мбайт отдано операционной системе, а каждая пользовательская программа занимает по 4 Мбайт. При таких размерах разделов памяти можно одновременно загрузить в память четыре пользовательские программы. При 80 % времени на ожидание ввода-вывода в среднем мы получим загруженность ЦП равной 1-0,84, или примерно 60%. Добавление еще 16 Мбайт памяти позволит системе повысить степень многозадачности от четырех до восьми и таким образом повысить степень загруженности процессора до 83 %. Другими словами, дополнительные 16 Мбайт увеличат производительность на 38 %.
Еще 16 Мбайт могли бы повысить загрузку процессора с 83 до 93 %, увеличив производительность всего лишь на 12 %. С помощью этой модели владелец может убедиться, что первые 16 Мбайт оперативной памяти – это хорошее вложение капитала, а вторые – нет.
Дата добавления: 2015-08-20; просмотров: 1385;