Управление процессором в режиме мультипрограммирования

Понятие мультипрограммирования

Операционные системы, поддерживающие мульти-програм-мирование, в зависимости от выбранного критерия эффективности вычислительной системы можно разделить на несколько основных типов: системы пакетной обработки, системы разделения времени и системы реального времени. Некоторые операционные системы могут поддерживать одновремен­но несколько режимов, например часть задач может выполняться в режиме па­кетной обработки, а часть – в режиме реального времени или в режиме разделе­ния времени.

Мультипрограммирование в системах

Пакетной обработки

При использовании мультипрограммирования для повышения пропускной спо­собности компьютера главная цель – минимизация простоев всех устройств компьютера, и в первую очередь центрального процессора. Простои в системе могут возникать по многим причинам. Наиболее часто выполняемая задача приостанавливается при ожидании ввода данных для обработки от пользователя, внешних устройств или каких-либо измерительных датчиков. При возникновении такого рода блокировки выполняемой задачи ес­тественным решением, ведущим к повышению эффективности использования процессора, является переключение процессора на выполнение другой задачи, у которой есть данные для обработки. Такая концепция мультипрограммирова­ния положена в основу так называемых пакетных систем.

Поскольку главной целью и критерием эффективности систем пакетной обработки являет­ся максимальная пропускная способность, т.е. решение максимального числа задач в единицу времени, такие системы предназначались в основном для решения задач вычислительного характера, не требующих быстрого получения результатов.

Рациональный режим функционирования в системах пакетной обработки достигается благодаря использованию следующей схемы функционирования: в начале работы формируется пакет заданий, каждое задание содержит требование к системным ресурсам; из этого пакета за­даний формируется мультипрограммная смесь, т.е. множество одновремен­но выполняемых задач. Причем смесь строится таким образом, что одновременно должны выполняться задачи, предъявляющие разные требования к ресурсам с целью обеспечения сба­лансированной загрузки всех устройств вычислительной машины. Например, в мультипрограммной смеси желательно одновременное присутствие вычислитель­ных задач и задач с интенсивным вводом-выводом. Таким образом, выбор нового задания из пакета заданий зависит от внутренней ситуации, складывающейся в системе, т.е. выбирается “выгодное” с точки зрения критерия эффективности системы задание. Следствием такой схемы организации мультипрограммирования в вычисли­тельных системах, работающих под управлением пакетных ОС, является отсутствие гарантии выполнения какого-либо задания в течение определенного пе­риода времени.

Рассмотрим более детально совмещение во времени операций ввода-вывода и вычислений.

Достигнуть описанного выше совмещения можно несколькими способами. Один из них характе­рен для компьютеров, имеющих специализированный процессор ввода-вывода. В компьютерах класса мэйнфреймов такие процессоры называют каналами. Как правило, канал имеет систему команд, отличающуюся от системы команд цен­трального процессора. Эти команды специально предназначены для управления внешними устройствами. Ка­нальные программы могут храниться в той же оперативной памяти, что и про­граммы центрального процессора. Однако в системе команд центрального процессора предусматривается специальная инструкция, с помощью которой каналу переда­ются параметры и указания на то, какую программу ввода-вывода он должен вы­полнить. Начиная с этого момента центральный процессор и канал могут работать параллельно (рис.1,а).

а

б

Рис. 1. Параллельное выполнение вычислений и операций ввода-вывода

Существует и другой способ совмещения вычислений с операциями ввода-вывода. Он реализован в компьютерах, управление внешними устройствами в которых осуществляется так называемыми контроллерами. Каждое внешнее устройство (или группа внеш­них устройств одного типа) имеет свой собственный контроллер, который авто­номно отрабатывает команды, поступающие от центрального процессора. При этом контроллер и центральный процессор работают асинхронно. Многие внешние устройства включают электромеханические узлы, вследствие чего контроллер выпол­няет свои команды управления устройствами существенно медленнее, чем цен­тральный процессор свои. Именно это обстоятельство используется для организации параллельного выполнения вычислений и операций ввода-вывода: в промежутке между передачей команд контроллеру центральный процессор может выполнять вычисления (рис.1,б). Контроллер может сообщить центральному процессору о том, что он готов принять следующую команду, с помощью специального сигнала, либо центральный процессор узнает об этом, периодически опрашивая состояние кон­троллера.

Таким образом, для достижения максимальной эффективности решения задач операционной системой необходимо обеспечить наиболее возможное совмещение вычислений и ввода-вывода. Рассмотрим случай, когда процессор выполня­ет только одну задачу. В этой ситуации степень ускорения зависит от природы данной задачи и от того, насколько тщательно был выявлен возможный паралле­лизм при ее программировании. В задачах, в которых преобладают либо вычисле­ния, либо ввод-вывод, ускорение почти отсутствует. Параллелизм в рамках од­ной задачи невозможен также, когда для продолжения вычислений необходимо полное завершение операции ввода-вывода, например, когда дальнейшие вычис­ления зависят от вводимых данных. В таких случаях неизбежны простои цен­трального процессора или канала.

Если же в системе выполняются одновременно несколько задач, появляется воз­можность совмещения вычислений одной задачи с вводом-выводом другой. Пока одна задача ожидает какого-либо события (заметим, что таким событием в муль­типрограммной системе может быть не только завершение ввода-вывода, но и, например, наступление определенного момента времени, разблокирование фай­ла или загрузка с диска недостающей страницы программы), процессор не про­стаивает, как это происходит при последовательном выполнении программ, а выполняет другую задачу.

Общее время выполнения смеси задач часто оказывается меньше, чем их сум­марное время последовательного выполнения (рис.2,а). Впрочем, выполнение отдельной задачи в мультипрограммном режиме может занять больше времени, чем при монопольном выделении процессора этой задаче. Этот легко объясняется тем, что при совместном использовании процессора в системе могут возникать ситуации, ко­гда задача готова выполняться, но процессор занят выполнением другой задачи. В таких случаях задача, завершившая ввод-вывод, готова выполняться, но выну­ждена ждать освобождения процессора, что удлиняет срок ее выполнения. Так, из рис. 2 видно, что в однопрограммном режиме задача А выполняется за 6 единиц времени, а в мультипрограммном – за 7. Задача В также вместо 5 единиц времени выполняется за 6. Но зато время выполнения обеих задач в мультипро­граммном режиме составляет всего 8 единиц, что на 3 единицы меньше, чем при последовательном выполнении.

Рис. 2. Время выполнения двух задач: а – в однопрограммной системе;

б – в мультипрограммной системе

В системах пакетной обработки переключение процессора с выполнения одной задачи на выполнение другой происходит по инициативе самой активной задачи, например, когда она отказывается от процессора из-за необходимости выпол­нить операцию ввода-вывода. Поэтому существует высокая вероятность того, что одна задача может надолго занять процессор и выполнение интерактивных задач станет невозможным. Взаимодействие пользователя с вычислительной ма­шиной, на которой установлена система пакетной обработки, сводится к тому, что он приносит задание, отдает его диспетчеру-оператору, а после выполнения всего пакета заданий получает результат. Очевидно, что такой порядок повышает эффективность функционирования аппаратуры, но снижает эф­фективность работы пользователя.

Наши рекомендации